diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..28bd05a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,35 @@ +name: Continuous Integration +on: [push, pull_request] +jobs: + build: + name: ${{matrix.os}}/${{matrix.build-type}} + runs-on: ${{matrix.os}}-latest + steps: + - uses: actions/checkout@v2 + - name: Make build directory + run: cmake -E make_directory build + - name: Configure + working-directory: build + run: | + cmake ../Sources \ + -DCMAKE_BUILD_TYPE=${{matrix.build-type}} + shell: bash + - name: Compile + working-directory: build + run: cmake --build . --config ${{matrix.build-type}} + - name: Upload binary (Mac) + if: matrix.os == 'macos' + uses: actions/upload-artifact@v2 + with: + name: cpu-${{matrix.build-type}} + path: build/cpu + - name: Upload binary (Windows) + if: matrix.os == 'windows' + uses: actions/upload-artifact@v2 + with: + name: cpu-${{matrix.build-type}}.exe + path: build/${{matrix.build-type}}/cpu.exe + strategy: + matrix: + os: [windows, macos] + build-type: [Release, Debug] diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7fa7392 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +build/ +.vscode +*.swp diff --git a/Release/com.elgato.cpu.streamDeckPlugin b/Release/com.elgato.cpu.streamDeckPlugin deleted file mode 100644 index c3b91f7..0000000 Binary files a/Release/com.elgato.cpu.streamDeckPlugin and /dev/null differ diff --git a/Sources/CMakeLists.txt b/Sources/CMakeLists.txt new file mode 100644 index 0000000..4f0376f --- /dev/null +++ b/Sources/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.10) + +project(com.elgato.cpu VERSION 1.2) + +if (APPLE) + set( + STREAMDECK_PLUGIN_DIR + "$ENV{HOME}/Library/ApplicationSupport/com.elgato.StreamDeck/Plugins" + ) +endif() +set( + CMAKE_INSTALL_PREFIX + "${STREAMDECK_PLUGIN_DIR}/${CMAKE_PROJECT_NAME}" + CACHE STRING "See cmake documentation" +) + +set(CMAKE_CXX_STANDARD 11) +set(CXX_STANDARD_REQUIRED true) +if (MSVC) + add_definitions("/Zc:__cplusplus" -DUNICODE=1) +endif() +include_directories("${CMAKE_SOURCE_DIR}") + +include("StreamDeckSDK.cmake") + +set( + SOURCES + MyStreamDeckPlugin.cpp + main.cpp +) +if (APPLE) + list(APPEND SOURCES macOS/CpuUsageHelper.cpp) +elseif (WIN32) + list(APPEND SOURCES Windows/CpuUsageHelper.cpp) +endif() +add_executable( + cpu + ${SOURCES} +) +target_link_libraries(cpu StreamDeckSDK) diff --git a/Sources/Common/EPLJSONUtils.h b/Sources/Common/EPLJSONUtils.h deleted file mode 100644 index 0ed27b7..0000000 --- a/Sources/Common/EPLJSONUtils.h +++ /dev/null @@ -1,153 +0,0 @@ -//============================================================================== -/** -@file EPLJSONUtils.h - -@brief Utility methods for JSON parser from N.Lohmann - https://github.com/nlohmann/json - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -//------------------------------------------------------------------------------ -// Includes -//------------------------------------------------------------------------------ - -#include "../Vendor/json/src/json.hpp" -using json = nlohmann::json; - -class EPLJSONUtils -{ - -public: - - //! Get object by name - static bool GetObjectByName(const json& inJSON, const std::string& inName, json& outObject) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return false; - - // Check value is an array - if (!iter->is_object()) - return false; - - // Assign value - outObject = *iter; - - return true; - } - - //! Get array by name - static bool GetArrayByName(const json& inJSON, const std::string& inName, json& outArray) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return false; - - // Check value is an array - if (!iter->is_array()) - return false; - - // Assign value - outArray = *iter; - - return true; - } - - //! Get string by name - static std::string GetStringByName(const json& inJSON, const std::string& inName, const std::string& defaultValue = "") - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is a string - if (!iter->is_string()) - return defaultValue; - - // Return value - return *iter; - } - - //! Get string - static std::string GetString(const json& j, const std::string& defaultString = "") - { - // Check value is a string - if (!j.is_string()) - return defaultString; - - return j; - } - - //! Get bool by name - static bool GetBoolByName(const json& inJSON, const std::string& inName, bool defaultValue = false) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is a bool - if (!iter->is_boolean()) - return defaultValue; - - // Return value - return *iter; - } - - //! Get integer by name - static int GetIntByName(const json& inJSON, const std::string& inName, int defaultValue = 0) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is an integer - if (!iter->is_number_integer()) - return defaultValue; - - // Return value - return *iter; - } - - //! Get unsigned integer by name - static unsigned int GetUnsignedIntByName(const json& inJSON, const std::string& inName, unsigned int defaultValue = 0) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is an unsigned integer - if (!iter->is_number_unsigned()) - return defaultValue; - - // Return value - return *iter; - } - - //! Get float by name - static float GetFloatByName(const json& inJSON, const std::string& inName, float defaultValue = 0.0) - { - // Check desired value exists - json::const_iterator iter(inJSON.find(inName)); - if (iter == inJSON.end()) - return defaultValue; - - // Check value is an integer - if (!iter->is_number_float() && !iter->is_number_integer()) - return defaultValue; - - // Return value - return *iter; - } -}; diff --git a/Sources/Common/ESDBasePlugin.h b/Sources/Common/ESDBasePlugin.h deleted file mode 100644 index 18a8fda..0000000 --- a/Sources/Common/ESDBasePlugin.h +++ /dev/null @@ -1,39 +0,0 @@ -//============================================================================== -/** -@file ESDBasePlugin.h - -@brief Plugin base class - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -class ESDConnectionManager; - -class ESDBasePlugin -{ -public: - ESDBasePlugin() { } - virtual ~ESDBasePlugin() { } - - void SetConnectionManager(ESDConnectionManager * inConnectionManager) { mConnectionManager = inConnectionManager; } - - virtual void KeyDownForAction(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - virtual void KeyUpForAction(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - - virtual void WillAppearForAction(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - virtual void WillDisappearForAction(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - - virtual void DeviceDidConnect(const std::string& inDeviceID, const json &inDeviceInfo) = 0; - virtual void DeviceDidDisconnect(const std::string& inDeviceID) = 0; - - virtual void SendToPlugin(const std::string& inAction, const std::string& inContext, const json &inPayload, const std::string& inDeviceID) = 0; - -protected: - ESDConnectionManager *mConnectionManager = nullptr; - -}; diff --git a/Sources/Common/ESDConnectionManager.cpp b/Sources/Common/ESDConnectionManager.cpp deleted file mode 100644 index 40e1837..0000000 --- a/Sources/Common/ESDConnectionManager.cpp +++ /dev/null @@ -1,314 +0,0 @@ -//============================================================================== -/** -@file ESDConnectionManager.cpp - -@brief Wrapper to implement the communication with the Stream Deck application - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDConnectionManager.h" -#include "EPLJSONUtils.h" - - -void ESDConnectionManager::OnOpen(WebsocketClient* inClient, websocketpp::connection_hdl inConnectionHandler) -{ - DebugPrint("OnOpen"); - - // Register plugin with StreamDeck - json jsonObject; - jsonObject["event"] = mRegisterEvent; - jsonObject["uuid"] = mPluginUUID; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::OnFail(WebsocketClient* inClient, websocketpp::connection_hdl inConnectionHandler) -{ - std::string reason; - - if(inClient != nullptr) - { - WebsocketClient::connection_ptr connection = inClient->get_con_from_hdl(inConnectionHandler); - if(connection != NULL) - { - reason = connection->get_ec().message(); - } - } - - DebugPrint("Failed with reason: %s\n", reason.c_str()); -} - -void ESDConnectionManager::OnClose(WebsocketClient* inClient, websocketpp::connection_hdl inConnectionHandler) -{ - std::string reason; - - if(inClient != nullptr) - { - WebsocketClient::connection_ptr connection = inClient->get_con_from_hdl(inConnectionHandler); - if(connection != NULL) - { - reason = connection->get_remote_close_reason(); - } - } - - DebugPrint("Close with reason: %s\n", reason.c_str()); -} - -void ESDConnectionManager::OnMessage(websocketpp::connection_hdl, WebsocketClient::message_ptr inMsg) -{ - if (inMsg != NULL && inMsg->get_opcode() == websocketpp::frame::opcode::text) - { - std::string message = inMsg->get_payload(); - DebugPrint("OnMessage: %s\n", message.c_str()); - - try - { - json receivedJson = json::parse(message); - - std::string event = EPLJSONUtils::GetStringByName(receivedJson, kESDSDKCommonEvent); - std::string context = EPLJSONUtils::GetStringByName(receivedJson, kESDSDKCommonContext); - std::string action = EPLJSONUtils::GetStringByName(receivedJson, kESDSDKCommonAction); - std::string deviceID = EPLJSONUtils::GetStringByName(receivedJson, kESDSDKCommonDevice); - json payload; - EPLJSONUtils::GetObjectByName(receivedJson, kESDSDKCommonPayload, payload); - - if(event == kESDSDKEventKeyDown) - { - mPlugin->KeyDownForAction(action, context, payload, deviceID); - } - else if(event == kESDSDKEventKeyUp) - { - mPlugin->KeyUpForAction(action, context, payload, deviceID); - } - else if(event == kESDSDKEventWillAppear) - { - mPlugin->WillAppearForAction(action, context, payload, deviceID); - } - else if(event == kESDSDKEventWillDisappear) - { - mPlugin->WillDisappearForAction(action, context, payload, deviceID); - } - else if(event == kESDSDKEventDeviceDidConnect) - { - json deviceInfo; - EPLJSONUtils::GetObjectByName(receivedJson, kESDSDKCommonDeviceInfo, deviceInfo); - mPlugin->DeviceDidConnect(deviceID, deviceInfo); - } - else if(event == kESDSDKEventDeviceDidDisconnect) - { - mPlugin->DeviceDidDisconnect(deviceID); - } - else if (event == kESDSDKEventSendToPlugin) - { - mPlugin->SendToPlugin(action, context, payload, deviceID); - } - } - catch (...) - { - } - } -} - -ESDConnectionManager::ESDConnectionManager( - int inPort, - const std::string &inPluginUUID, - const std::string &inRegisterEvent, - const std::string &inInfo, - ESDBasePlugin *inPlugin) : - - mPort(inPort), - mPluginUUID(inPluginUUID), - mRegisterEvent(inRegisterEvent), - mPlugin(inPlugin) -{ - if (inPlugin != nullptr) - inPlugin->SetConnectionManager(this); -} - -void ESDConnectionManager::Run() -{ - try - { - // Create the endpoint - mWebsocket.clear_access_channels(websocketpp::log::alevel::all); - mWebsocket.clear_error_channels(websocketpp::log::elevel::all); - - // Initialize ASIO - mWebsocket.init_asio(); - - // Register our message handler - mWebsocket.set_open_handler(websocketpp::lib::bind(&ESDConnectionManager::OnOpen, this, &mWebsocket, websocketpp::lib::placeholders::_1)); - mWebsocket.set_fail_handler(websocketpp::lib::bind(&ESDConnectionManager::OnFail, this, &mWebsocket, websocketpp::lib::placeholders::_1)); - mWebsocket.set_close_handler(websocketpp::lib::bind(&ESDConnectionManager::OnClose, this, &mWebsocket, websocketpp::lib::placeholders::_1)); - mWebsocket.set_message_handler(websocketpp::lib::bind(&ESDConnectionManager::OnMessage, this, websocketpp::lib::placeholders::_1, websocketpp::lib::placeholders::_2)); - - websocketpp::lib::error_code ec; - std::string uri = "ws://127.0.0.1:" + std::to_string(mPort); - WebsocketClient::connection_ptr connection = mWebsocket.get_connection(uri, ec); - if (ec) - { - DebugPrint("Connect initialization error: %s\n", ec.message().c_str()); - return; - } - - mConnectionHandle = connection->get_handle(); - - // Note that connect here only requests a connection. No network messages are - // exchanged until the event loop starts running in the next line. - mWebsocket.connect(connection); - - // Start the ASIO io_service run loop - // this will cause a single connection to be made to the server. mWebsocket.run() - // will exit when this connection is closed. - mWebsocket.run(); - } - catch (websocketpp::exception const & e) - { - // Prevent an unused variable warning in release builds - (void)e; - DebugPrint("Websocket threw an exception: %s\n", e.what()); - } -} - -void ESDConnectionManager::SetTitle(const std::string &inTitle, const std::string& inContext, ESDSDKTarget inTarget) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSetTitle; - jsonObject[kESDSDKCommonContext] = inContext; - - json payload; - payload[kESDSDKPayloadTarget] = inTarget; - payload[kESDSDKPayloadTitle] = inTitle; - jsonObject[kESDSDKCommonPayload] = payload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SetImage(const std::string &inBase64ImageString, const std::string& inContext, ESDSDKTarget inTarget) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSetImage; - jsonObject[kESDSDKCommonContext] = inContext; - - json payload; - payload[kESDSDKPayloadTarget] = inTarget; - const std::string prefix = "data:image/png;base64,"; - if (inBase64ImageString.empty() || inBase64ImageString.substr(0, prefix.length()).find(prefix) == 0) - payload[kESDSDKPayloadImage] = inBase64ImageString; - else - payload[kESDSDKPayloadImage] = "data:image/png;base64," + inBase64ImageString; - jsonObject[kESDSDKCommonPayload] = payload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::ShowAlertForContext(const std::string& inContext) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventShowAlert; - jsonObject[kESDSDKCommonContext] = inContext; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::ShowOKForContext(const std::string& inContext) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventShowOK; - jsonObject[kESDSDKCommonContext] = inContext; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SetSettings(const json &inSettings, const std::string& inContext) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSetSettings; - jsonObject[kESDSDKCommonContext] = inContext; - jsonObject[kESDSDKCommonPayload] = inSettings; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SetState(int inState, const std::string& inContext) -{ - json jsonObject; - - json payload; - payload[kESDSDKPayloadState] = inState; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSetState; - jsonObject[kESDSDKCommonContext] = inContext; - jsonObject[kESDSDKCommonPayload] = payload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SendToPropertyInspector(const std::string & inAction, const std::string & inContext, const json & inPayload) -{ - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSendToPropertyInspector; - jsonObject[kESDSDKCommonContext] = inContext; - jsonObject[kESDSDKCommonAction] = inAction; - jsonObject[kESDSDKCommonPayload] = inPayload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); -} - -void ESDConnectionManager::SwitchToProfile(const std::string& inDeviceID, const std::string& inProfileName) -{ - if(!inDeviceID.empty()) - { - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventSwitchToProfile; - jsonObject[kESDSDKCommonContext] = mPluginUUID; - jsonObject[kESDSDKCommonDevice] = inDeviceID; - - if(!inProfileName.empty()) - { - json payload; - payload[kESDSDKPayloadProfile] = inProfileName; - jsonObject[kESDSDKCommonPayload] = payload; - } - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); - } -} - -void ESDConnectionManager::LogMessage(const std::string& inMessage) -{ - if(!inMessage.empty()) - { - json jsonObject; - - jsonObject[kESDSDKCommonEvent] = kESDSDKEventLogMessage; - - json payload; - payload[kESDSDKPayloadMessage] = inMessage; - jsonObject[kESDSDKCommonPayload] = payload; - - websocketpp::lib::error_code ec; - mWebsocket.send(mConnectionHandle, jsonObject.dump(), websocketpp::frame::opcode::text, ec); - } -} - diff --git a/Sources/Common/ESDConnectionManager.h b/Sources/Common/ESDConnectionManager.h deleted file mode 100644 index f975760..0000000 --- a/Sources/Common/ESDConnectionManager.h +++ /dev/null @@ -1,67 +0,0 @@ -//============================================================================== -/** -@file ESDConnectionManager.h - -@brief Wrapper to implement the communication with the Stream Deck application - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -#include "ESDBasePlugin.h" -#include "ESDSDKDefines.h" - -#include -#include -#include -#include - -typedef websocketpp::config::asio_client::message_type::ptr message_ptr; -typedef websocketpp::client WebsocketClient; - -class ESDConnectionManager -{ -public: - - ESDConnectionManager( - int inPort, - const std::string &inPluginUUID, - const std::string &inRegisterEvent, - const std::string &inInfo, - ESDBasePlugin *inPlugin); - - // Start the event loop - void Run(); - - // API to communicate with the Stream Deck application - void SetTitle(const std::string &inTitle, const std::string& inContext, ESDSDKTarget inTarget); - void SetImage(const std::string &inBase64ImageString, const std::string& inContext, ESDSDKTarget inTarget); - void ShowAlertForContext(const std::string& inContext); - void ShowOKForContext(const std::string& inContext); - void SetSettings(const json &inSettings, const std::string& inContext); - void SetState(int inState, const std::string& inContext); - void SendToPropertyInspector(const std::string& inAction, const std::string& inContext, const json &inPayload); - void SwitchToProfile(const std::string& inDeviceID, const std::string& inProfileName); - void LogMessage(const std::string& inMessage); - -private: - - // Websocket callbacks - void OnOpen(WebsocketClient * inClient, websocketpp::connection_hdl inConnectionHandler); - void OnFail(WebsocketClient * inClient, websocketpp::connection_hdl inConnectionHandler); - void OnClose(WebsocketClient * inClient, websocketpp::connection_hdl inConnectionHandler); - void OnMessage(websocketpp::connection_hdl, WebsocketClient::message_ptr inMsg); - - // Member variables - int mPort = 0; - std::string mPluginUUID; - std::string mRegisterEvent; - websocketpp::connection_hdl mConnectionHandle; - WebsocketClient mWebsocket; - ESDBasePlugin * mPlugin = nullptr; -}; - diff --git a/Sources/Common/ESDLocalizer.cpp b/Sources/Common/ESDLocalizer.cpp deleted file mode 100644 index 51f6777..0000000 --- a/Sources/Common/ESDLocalizer.cpp +++ /dev/null @@ -1,63 +0,0 @@ -//============================================================================== -/** -@file ESDLocalizer.cpp - -@brief Utility functions to handle localization - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDLocalizer.h" -#include "ESDUtilities.h" -#include "EPLJSONUtils.h" -#include - -static ESDLocalizer* sLocalizer = nullptr; - -void ESDLocalizer::Initialize(const std::string &inLanguageCode) -{ - if(sLocalizer == nullptr) - { - sLocalizer = new ESDLocalizer(inLanguageCode); - } -} - -ESDLocalizer::ESDLocalizer(const std::string &inLanguageCode) -{ - try - { - std::string pluginPath = ESDUtilities::GetPluginPath(); - if (!inLanguageCode.empty() && !pluginPath.empty()) - { - std::string localizationFilePath = ESDUtilities::AddPathComponent(pluginPath, inLanguageCode + ".json"); - std::ifstream localizationFile(localizationFilePath, std::ifstream::in); - if (localizationFile.is_open()) - { - json jsonData = json::parse(localizationFile); - EPLJSONUtils::GetObjectByName(jsonData, "Localization", mLocalizationData); - } - } - } - catch(...) - { - - } -} - -std::string ESDLocalizer::GetLocalizedString(const std::string &inDefaultString) -{ - if (sLocalizer != nullptr) - { - return sLocalizer->GetLocalizedStringIntern(inDefaultString); - } - - return inDefaultString; -} - -std::string ESDLocalizer::GetLocalizedStringIntern(const std::string &inDefaultString) -{ - return EPLJSONUtils::GetStringByName(mLocalizationData, inDefaultString, inDefaultString); -} diff --git a/Sources/Common/ESDLocalizer.h b/Sources/Common/ESDLocalizer.h deleted file mode 100644 index 1854883..0000000 --- a/Sources/Common/ESDLocalizer.h +++ /dev/null @@ -1,29 +0,0 @@ -//============================================================================== -/** -@file ESDLocalizer.h - -@brief Utility functions to handle localization - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -class ESDLocalizer -{ -public: - - static void Initialize(const std::string &inLanguageCode); - - static std::string GetLocalizedString(const std::string &inDefaultString); - -private: - ESDLocalizer(const std::string &inLanguageCode); - std::string GetLocalizedStringIntern(const std::string &inDefaultString); - - json mLocalizationData; -}; - diff --git a/Sources/Common/ESDSDKDefines.h b/Sources/Common/ESDSDKDefines.h deleted file mode 100644 index 2af1170..0000000 --- a/Sources/Common/ESDSDKDefines.h +++ /dev/null @@ -1,173 +0,0 @@ -//============================================================================== -/** -@file ESDSDKDefines.h - -@brief Defines used for the Stream Deck communication - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - -// -// Current version of the SDK -// - -#define kESDSDKVersion 2 - - -// -// Common base-interface -// - -#define kESDSDKCommonAction "action" -#define kESDSDKCommonEvent "event" -#define kESDSDKCommonContext "context" -#define kESDSDKCommonPayload "payload" -#define kESDSDKCommonDevice "device" -#define kESDSDKCommonDeviceInfo "deviceInfo" - - -// -// Events -// - -#define kESDSDKEventKeyDown "keyDown" -#define kESDSDKEventKeyUp "keyUp" -#define kESDSDKEventWillAppear "willAppear" -#define kESDSDKEventWillDisappear "willDisappear" -#define kESDSDKEventDeviceDidConnect "deviceDidConnect" -#define kESDSDKEventDeviceDidDisconnect "deviceDidDisconnect" -#define kESDSDKEventApplicationDidLaunch "applicationDidLaunch" -#define kESDSDKEventApplicationDidTerminate "applicationDidTerminate" -#define kESDSDKEventSystemDidWakeUp "systemDidWakeUp" -#define kESDSDKEventTitleParametersDidChange "titleParametersDidChange" -#define kESDSDKEventDidReceiveSettings "didReceiveSettings" -#define kESDSDKEventDidReceiveGlobalSettings "didReceiveGlobalSettings" -#define kESDSDKEventPropertyInspectorDidAppear "propertyInspectorDidAppear" -#define kESDSDKEventPropertyInspectorDidDisappear "propertyInspectorDidDisappear" - - -// -// Functions -// - -#define kESDSDKEventSetTitle "setTitle" -#define kESDSDKEventSetImage "setImage" -#define kESDSDKEventShowAlert "showAlert" -#define kESDSDKEventShowOK "showOk" -#define kESDSDKEventGetSettings "getSettings" -#define kESDSDKEventSetSettings "setSettings" -#define kESDSDKEventGetGlobalSettings "getGlobalSettings" -#define kESDSDKEventSetGlobalSettings "setGlobalSettings" -#define kESDSDKEventSetState "setState" -#define kESDSDKEventSwitchToProfile "switchToProfile" -#define kESDSDKEventSendToPropertyInspector "sendToPropertyInspector" -#define kESDSDKEventSendToPlugin "sendToPlugin" -#define kESDSDKEventOpenURL "openUrl" -#define kESDSDKEventLogMessage "logMessage" - - -// -// Payloads -// - -#define kESDSDKPayloadSettings "settings" -#define kESDSDKPayloadCoordinates "coordinates" -#define kESDSDKPayloadState "state" -#define kESDSDKPayloadUserDesiredState "userDesiredState" -#define kESDSDKPayloadTitle "title" -#define kESDSDKPayloadTitleParameters "titleParameters" -#define kESDSDKPayloadImage "image" -#define kESDSDKPayloadURL "url" -#define kESDSDKPayloadTarget "target" -#define kESDSDKPayloadProfile "profile" -#define kESDSDKPayloadApplication "application" -#define kESDSDKPayloadIsInMultiAction "isInMultiAction" -#define kESDSDKPayloadMessage "message" - -#define kESDSDKPayloadCoordinatesColumn "column" -#define kESDSDKPayloadCoordinatesRow "row" - -// -// Device Info -// - -#define kESDSDKDeviceInfoID "id" -#define kESDSDKDeviceInfoType "type" -#define kESDSDKDeviceInfoSize "size" -#define kESDSDKDeviceInfoName "name" - -#define kESDSDKDeviceInfoSizeColumns "columns" -#define kESDSDKDeviceInfoSizeRows "rows" - - -// -// Title Parameters -// - -#define kESDSDKTitleParametersShowTitle "showTitle" -#define kESDSDKTitleParametersTitleColor "titleColor" -#define kESDSDKTitleParametersTitleAlignment "titleAlignment" -#define kESDSDKTitleParametersFontFamily "fontFamily" -#define kESDSDKTitleParametersFontSize "fontSize" -#define kESDSDKTitleParametersCustomFontSize "customFontSize" -#define kESDSDKTitleParametersFontStyle "fontStyle" -#define kESDSDKTitleParametersFontUnderline "fontUnderline" - - -// -// Connection -// - -#define kESDSDKConnectSocketFunction "connectElgatoStreamDeckSocket" -#define kESDSDKRegisterPlugin "registerPlugin" -#define kESDSDKRegisterPropertyInspector "registerPropertyInspector" -#define kESDSDKPortParameter "-port" -#define kESDSDKPluginUUIDParameter "-pluginUUID" -#define kESDSDKRegisterEventParameter "-registerEvent" -#define kESDSDKInfoParameter "-info" -#define kESDSDKRegisterUUID "uuid" - -#define kESDSDKApplicationInfo "application" -#define kESDSDKPluginInfo "plugin" -#define kESDSDKDevicesInfo "devices" -#define kESDSDKColorsInfo "colors" -#define kESDSDKDevicePixelRatio "devicePixelRatio" - -#define kESDSDKApplicationInfoVersion "version" -#define kESDSDKApplicationInfoLanguage "language" -#define kESDSDKApplicationInfoPlatform "platform" - -#define kESDSDKApplicationInfoPlatformMac "mac" -#define kESDSDKApplicationInfoPlatformWindows "windows" - -#define kESDSDKColorsInfoHighlightColor "highlightColor" -#define kESDSDKColorsInfoMouseDownColor "mouseDownColor" -#define kESDSDKColorsInfoDisabledColor "disabledColor" -#define kESDSDKColorsInfoButtonPressedTextColor "buttonPressedTextColor" -#define kESDSDKColorsInfoButtonPressedBackgroundColor "buttonPressedBackgroundColor" -#define kESDSDKColorsInfoButtonMouseOverBackgroundColor "buttonMouseOverBackgroundColor" -#define kESDSDKColorsInfoButtonPressedBorderColor "buttonPressedBorderColor" - - -typedef int ESDSDKTarget; -enum -{ - kESDSDKTarget_HardwareAndSoftware = 0, - kESDSDKTarget_HardwareOnly = 1, - kESDSDKTarget_SoftwareOnly = 2 -}; - -typedef int ESDSDKDeviceType; -enum -{ - kESDSDKDeviceType_StreamDeck = 0, - kESDSDKDeviceType_StreamDeckMini = 1, - kESDSDKDeviceType_StreamDeckXL = 2, - kESDSDKDeviceType_StreamDeckMobile = 3 -}; - diff --git a/Sources/Common/ESDUtilities.h b/Sources/Common/ESDUtilities.h deleted file mode 100644 index faf9a81..0000000 --- a/Sources/Common/ESDUtilities.h +++ /dev/null @@ -1,32 +0,0 @@ -//============================================================================== -/** -@file ESDUtilities.h - -@brief Various filesystem and other utility functions - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#pragma once - - -class ESDUtilities -{ -public: - - static void DoSleep(int inMilliseconds); - - // Return a path with the appending path component - static std::string AddPathComponent(const std::string &inPath, const std::string &inComponentToAdd); - - // Return the path without the last component. Returns path if it is already a root folder (i.e. 'C:\\', '\\ABC' or '/'). - // Return an empty string if error - static std::string GetFolderPath(const std::string& inPath); - - // Get the path of the .sdPlugin bundle - static std::string GetPluginPath(); -}; - diff --git a/Sources/Common/ESDUtilitiesMac.cpp b/Sources/Common/ESDUtilitiesMac.cpp deleted file mode 100644 index 029cbfd..0000000 --- a/Sources/Common/ESDUtilitiesMac.cpp +++ /dev/null @@ -1,188 +0,0 @@ -//============================================================================== -/** -@file ESDUtilities.cpp - -@brief Various filesystem and other utility functions - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDUtilities.h" -#include - - -static std::string CFStringGetStdString(CFStringRef inStringRef, CFStringEncoding inEncoding) -{ - if (inStringRef == NULL) - return ""; - - std::string outString; - - CFRange range = CFRangeMake(0, CFStringGetLength(inStringRef)); - while (range.length > 0) - { - UInt8 buffer[512]; - - CFIndex produced; - CFIndex consumed = CFStringGetBytes(inStringRef, range, inEncoding, 0, false, buffer, sizeof(buffer), &produced); - if (consumed == 0) - return ""; - - outString += std::string((const char*)buffer, produced); - - range.location += consumed; - range.length -= consumed; - } - - return outString; -} - -static bool HasSuffix(const std::string& inString, const std::string& inSuffix) -{ - return (inString.length() >= inSuffix.length()) && (inSuffix.length() > 0) && (inString.compare(inString.size() - inSuffix.size(), inSuffix.size(), inSuffix) == 0); -} - -void ESDUtilities::DoSleep(int inMilliseconds) -{ - usleep(1000 * inMilliseconds); -} - - -static char GetFileSystemPathDelimiter() -{ - return '/'; -} - - -std::string ESDUtilities::AddPathComponent(const std::string &inPath, const std::string &inComponentToAdd) -{ - if (inPath.size() <= 0) - return inComponentToAdd; - - char delimiter = GetFileSystemPathDelimiter(); - char lastChar = inPath[inPath.size() - 1]; - - bool pathEndsWithDelimiter = (delimiter == lastChar ) || ('/' == lastChar); - bool compStartsWithDelimiter = (delimiter == inComponentToAdd[0]) || ('/' == inComponentToAdd[0]); - - std::string result; - if (pathEndsWithDelimiter && compStartsWithDelimiter) - result = inPath + inComponentToAdd.substr(1); - else if (pathEndsWithDelimiter || compStartsWithDelimiter) - result = inPath + inComponentToAdd; - else - result = inPath + GetFileSystemPathDelimiter() + inComponentToAdd; - - return result; -} - -std::string ESDUtilities::GetFolderPath(const std::string& inPath) -{ - // - // Use the platform specific delimiter - // - std::string delimiterString = std::string(1, GetFileSystemPathDelimiter()); - - // - // Remove the trailing delimiters - // - std::string pathWithoutTrailingDelimiters = inPath; - while (pathWithoutTrailingDelimiters.length() > delimiterString.length() && HasSuffix(pathWithoutTrailingDelimiters, delimiterString)) - { - pathWithoutTrailingDelimiters = pathWithoutTrailingDelimiters.substr(0, pathWithoutTrailingDelimiters.length() - delimiterString.length()); - } - - size_t pos = pathWithoutTrailingDelimiters.find_last_of(delimiterString); - if (std::string::npos != pos) - { - std::string foundPath = inPath.substr(0, pos); - - // - // Remove the trailing delimiters - // - std::string foundPathWithoutTrailingDelimiters = foundPath; - while (foundPathWithoutTrailingDelimiters.length() > delimiterString.length() && HasSuffix(foundPathWithoutTrailingDelimiters, delimiterString)) - { - foundPathWithoutTrailingDelimiters = foundPathWithoutTrailingDelimiters.substr(0, foundPathWithoutTrailingDelimiters.length() - delimiterString.length()); - } - - if (foundPathWithoutTrailingDelimiters.empty() && delimiterString == "/") - { - return "/"; - } - - return foundPathWithoutTrailingDelimiters; - } - - return ""; -} - -std::string ESDUtilities::GetPluginPath() -{ - static std::string sPluginPath; - - if(sPluginPath.empty()) - { - CFBundleRef bundleRef = CFBundleGetMainBundle(); - if(bundleRef != NULL) - { - CFURLRef executableURL = CFBundleCopyExecutableURL(bundleRef); - if(executableURL != NULL) - { - CFURLRef checkURL = CFURLCreateCopyDeletingLastPathComponent(kCFAllocatorDefault, executableURL); - while(checkURL != NULL) - { - CFStringRef lastPathComponent = CFURLCopyLastPathComponent(checkURL); - if(lastPathComponent == NULL || (CFStringCompare(lastPathComponent, CFSTR("/"), 0) == kCFCompareEqualTo) || (CFStringCompare(lastPathComponent, CFSTR(".."), 0) == kCFCompareEqualTo)) - { - if(lastPathComponent != NULL) - { - CFRelease(lastPathComponent); - } - - CFRelease(checkURL); - checkURL = NULL; - break; - } - - CFRelease(lastPathComponent); - - CFStringRef pathExtension = CFURLCopyPathExtension(checkURL); - if(pathExtension != NULL) - { - if(CFStringCompare(pathExtension, CFSTR("sdPlugin"), 0) == kCFCompareEqualTo) - { - CFStringRef path = CFURLCopyFileSystemPath(checkURL, kCFURLPOSIXPathStyle); - if(path != NULL) - { - sPluginPath = CFStringGetStdString(path, kCFStringEncodingUTF8); - CFRelease(path); - } - } - - CFRelease(pathExtension); - } - - CFURLRef previousURL = checkURL; - checkURL = CFURLCreateCopyDeletingLastPathComponent(kCFAllocatorDefault, previousURL); - CFRelease(previousURL); - - if(!sPluginPath.empty()) - { - CFRelease(checkURL); - checkURL = NULL; - break; - } - } - - CFRelease(executableURL); - } - } - } - - return sPluginPath; -} - diff --git a/Sources/Common/ESDUtilitiesWindows.cpp b/Sources/Common/ESDUtilitiesWindows.cpp deleted file mode 100644 index 87b2067..0000000 --- a/Sources/Common/ESDUtilitiesWindows.cpp +++ /dev/null @@ -1,278 +0,0 @@ -//============================================================================== -/** -@file ESDUtilities.cpp - -@brief Various filesystem and other utility functions - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDUtilities.h" - -void ESDUtilities::DoSleep(int inMilliseconds) -{ - Sleep(inMilliseconds); -} - - -static bool HasPrefix(const std::string& inString, const std::string& inPrefix) -{ - return (inString.length() >= inPrefix.length()) && (inPrefix.length() > 0) && (inString.compare(0, inPrefix.length(), inPrefix) == 0); -} - -static bool HasSuffix(const std::string& inString, const std::string& inSuffix) -{ - return (inString.length() >= inSuffix.length()) && (inSuffix.length() > 0) && (inString.compare(inString.size() - inSuffix.size(), inSuffix.size(), inSuffix) == 0); -} - -static char GetFileSystemPathDelimiter() -{ - // In Windows both slash and backslash are allowed - return '\\'; -} - - -static bool IsNetworkDriveRoot(const std::string& inUtf8Path) -{ - if (!inUtf8Path.empty()) - { - std::string delimiterString = std::string(1, GetFileSystemPathDelimiter()); - // On Windows, check if the platform specific delimiter is used. If not, fallback on the delimiter "/" - size_t delimiterPosition = inUtf8Path.find_last_of(delimiterString); - if (std::string::npos == delimiterPosition) - { - delimiterString = "/"; - } - - std::string networkPrefix = delimiterString + delimiterString; - if (HasPrefix(inUtf8Path, networkPrefix)) - { - std::string pathWithoutNetworkPrefix = inUtf8Path.substr(networkPrefix.length(), inUtf8Path.length() - networkPrefix.length()); - if (pathWithoutNetworkPrefix.find_first_of(delimiterString) == pathWithoutNetworkPrefix.find_last_of(delimiterString)) - return true; - } - } - - return false; -} - -static std::string GetFileName(const std::string& inPath) -{ - // - // Use the platform specific delimiter - // - std::string delimiterString = std::string(1, GetFileSystemPathDelimiter()); - - // - // On Windows, check if the platform specific delimiter is used. - // If not, fallback on the delimiter "/" - // - size_t delimiterPosition = inPath.find_last_of(delimiterString); - if (std::string::npos == delimiterPosition) - { - delimiterString = "/"; - delimiterPosition = inPath.find_last_of(delimiterString); - if (std::string::npos == delimiterPosition) - { - // No delimiter -> return the path - return inPath; - } - } - else - { - // Special handling "C:\\" - if (HasSuffix(inPath, ":\\")) - return inPath; - } - - // - // Remove the trailing delimiters - // - std::string pathWithoutTrailingDelimiter = inPath; - while (pathWithoutTrailingDelimiter.length() > delimiterString.length() && HasSuffix(pathWithoutTrailingDelimiter, delimiterString)) - { - pathWithoutTrailingDelimiter = pathWithoutTrailingDelimiter.substr(0, pathWithoutTrailingDelimiter.length() - delimiterString.length()); - } - - // - // Special cases - // - if (pathWithoutTrailingDelimiter.empty() || pathWithoutTrailingDelimiter == delimiterString) - { - return delimiterString; - } - - // - // Get the last path component - // - size_t pos = pathWithoutTrailingDelimiter.find_last_of(delimiterString); - if (std::string::npos != pos && pathWithoutTrailingDelimiter.length() > pos) - { - return pathWithoutTrailingDelimiter.substr(pos + 1); - } - - // - // Fallback - // - return pathWithoutTrailingDelimiter; -} - -static std::string GetExtension(const std::string& inPath) -{ - const std::string fileName = GetFileName(inPath); - size_t pos = fileName.find_last_of("."); - if (std::string::npos != pos && ((pos + 1) != fileName.length())) - { - return fileName.substr(pos); - } - else - { - return ""; - } -} - -std::string ESDUtilities::AddPathComponent(const std::string &inPath, const std::string &inComponentToAdd) -{ - if (inPath.size() <= 0) - return inComponentToAdd; - - char delimiter = GetFileSystemPathDelimiter(); - char lastChar = inPath[inPath.size() - 1]; - - bool pathEndsWithDelimiter = (delimiter == lastChar ) || ('/' == lastChar); - bool compStartsWithDelimiter = (delimiter == inComponentToAdd[0]) || ('/' == inComponentToAdd[0]); - - std::string result; - if (pathEndsWithDelimiter && compStartsWithDelimiter) - result = inPath + inComponentToAdd.substr(1); - else if (pathEndsWithDelimiter || compStartsWithDelimiter) - result = inPath + inComponentToAdd; - else - result = inPath + GetFileSystemPathDelimiter() + inComponentToAdd; - - for (std::string::size_type i=0; i< result.size(); i++) - { - if (result[i] == '/') - result[i] = delimiter; - } - - return result; -} - -std::string ESDUtilities::GetFolderPath(const std::string& inPath) -{ - // - // Use the platform specific delimiter - // - std::string delimiterString = std::string(1, GetFileSystemPathDelimiter()); - - // - // On Windows, check if the platform specific delimiter is used. - // If not, fallback on the delimiter "/" - // - size_t delimiterPosition = inPath.find_last_of(delimiterString); - if (std::string::npos == delimiterPosition) - { - delimiterString = "/"; - } - - // Special handling "C:\\" or "C:/" - if (HasSuffix(inPath, ":" + delimiterString)) - return inPath; - - if (IsNetworkDriveRoot(inPath)) - return inPath; - - // - // Remove the trailing delimiters - // - std::string pathWithoutTrailingDelimiters = inPath; - while (pathWithoutTrailingDelimiters.length() > delimiterString.length() && HasSuffix(pathWithoutTrailingDelimiters, delimiterString)) - { - pathWithoutTrailingDelimiters = pathWithoutTrailingDelimiters.substr(0, pathWithoutTrailingDelimiters.length() - delimiterString.length()); - } - - size_t pos = pathWithoutTrailingDelimiters.find_last_of(delimiterString); - if (std::string::npos != pos) - { - std::string foundPath = inPath.substr(0, pos); - - // Special handling "C:\\" - if (HasSuffix(foundPath, ":\\")) - return foundPath; - else if (HasSuffix(foundPath, ":")) - return foundPath + "\\"; - - // - // Remove the trailing delimiters - // - std::string foundPathWithoutTrailingDelimiters = foundPath; - while (foundPathWithoutTrailingDelimiters.length() > delimiterString.length() && HasSuffix(foundPathWithoutTrailingDelimiters, delimiterString)) - { - foundPathWithoutTrailingDelimiters = foundPathWithoutTrailingDelimiters.substr(0, foundPathWithoutTrailingDelimiters.length() - delimiterString.length()); - } - - if (foundPathWithoutTrailingDelimiters.empty() && delimiterString == "/") - { - return "/"; - } - - return foundPathWithoutTrailingDelimiters; - } - - // Special handling "C:" - if (HasSuffix(pathWithoutTrailingDelimiters, ":")) - return pathWithoutTrailingDelimiters + delimiterString; - - return ""; -} - - -std::string ESDUtilities::GetPluginPath() -{ - static std::string sPluginPath; - - if(sPluginPath.empty()) - { - char path[MAX_PATH] = { 0 }; - DWORD result = GetModuleFileNameA(NULL, path, MAX_PATH); - if (result > 0) - { - std::string pathString(path); - - while (!pathString.empty()) - { - if (pathString == "/" || HasSuffix(pathString, ":\\")) - { - break; - } - - std::string pathExtension = GetExtension(pathString); - if (pathExtension == ".sdPlugin") - { - sPluginPath = pathString; - break; - } - - std::string parentPath = GetFolderPath(pathString); - if (parentPath != pathString) - { - pathString = parentPath; - } - else - { - break; - } - } - } - else - { - DebugPrint("Could not get path.\n"); - } - } - - return sPluginPath; -} diff --git a/Sources/Common/main.cpp b/Sources/Common/main.cpp deleted file mode 100644 index e74346b..0000000 --- a/Sources/Common/main.cpp +++ /dev/null @@ -1,108 +0,0 @@ -//============================================================================== -/** -@file main.cpp - -@brief Parse arguments and start the plugin - -@copyright (c) 2018, Corsair Memory, Inc. - This source code is licensed under the MIT-style license found in the LICENSE file. - -**/ -//============================================================================== - -#include "ESDConnectionManager.h" -#include "../MyStreamDeckPlugin.h" -#include "ESDLocalizer.h" -#include "EPLJSONUtils.h" - -int main(int argc, const char* const argv[]) -{ - if (argc != 9) - { - DebugPrint("Invalid number of parameters %d instead of 9\n", argc); - return 1; - } - - int port = 0; - std::string pluginUUID; - std::string registerEvent; - std::string info; - - for(int argumentIndex = 0 ; argumentIndex < 4 ; argumentIndex++) - { - std::string parameter(argv[1 + 2 * argumentIndex]); - std::string value(argv[1 + 2 * argumentIndex + 1]); - - if (parameter == kESDSDKPortParameter) - { - port = std::atoi(value.c_str()); - } - else if (parameter == kESDSDKPluginUUIDParameter) - { - pluginUUID = value; - } - else if (parameter == kESDSDKRegisterEventParameter) - { - registerEvent = value; - } - else if (parameter == kESDSDKInfoParameter) - { - info = value; - } - } - - if(port == 0) - { - DebugPrint("Invalid port number\n"); - return 1; - } - - if(pluginUUID.empty()) - { - DebugPrint("Invalid plugin UUID\n"); - return 1; - } - - if(registerEvent.empty()) - { - DebugPrint("Invalid registerEvent\n"); - return 1; - } - - if (info.empty()) - { - DebugPrint("Invalid info\n"); - return 1; - } - - // Create the plugin - MyStreamDeckPlugin *plugin = new MyStreamDeckPlugin(); - - // Initialize localization helper - std::string language = "en"; - - try - { - json infoJson = json::parse(info); - json applicationInfo; - if(EPLJSONUtils::GetObjectByName(infoJson, kESDSDKApplicationInfo, applicationInfo)) - { - language = EPLJSONUtils::GetStringByName(applicationInfo, kESDSDKApplicationInfoLanguage, language); - } - } - catch(...) - { - - } - - ESDLocalizer::Initialize(language); - - // Create the connection manager - ESDConnectionManager *connectionManager = new ESDConnectionManager(port, pluginUUID, registerEvent, info, plugin); - - // Connect and start the event loop - connectionManager->Run(); - - return 0; -} - diff --git a/Sources/MyStreamDeckPlugin.cpp b/Sources/MyStreamDeckPlugin.cpp index 94d14ea..89b87a8 100644 --- a/Sources/MyStreamDeckPlugin.cpp +++ b/Sources/MyStreamDeckPlugin.cpp @@ -19,7 +19,7 @@ #include "Windows/CpuUsageHelper.h" #endif -#include "Common/ESDConnectionManager.h" +#include class CallBackTimer { diff --git a/Sources/MyStreamDeckPlugin.h b/Sources/MyStreamDeckPlugin.h index f8512c5..6abf2a8 100644 --- a/Sources/MyStreamDeckPlugin.h +++ b/Sources/MyStreamDeckPlugin.h @@ -10,8 +10,12 @@ **/ //============================================================================== -#include "Common/ESDBasePlugin.h" +#include + #include +#include + +using json = nlohmann::json; class CpuUsageHelper; class CallBackTimer; diff --git a/Sources/StreamDeckSDK.cmake b/Sources/StreamDeckSDK.cmake new file mode 100644 index 0000000..a48c428 --- /dev/null +++ b/Sources/StreamDeckSDK.cmake @@ -0,0 +1,33 @@ +include(ExternalProject) + +ExternalProject_Add( + StreamDeckSDK_build + URL https://github.com/fredemmott/StreamDeck-CPPSDK/releases/download/v1.0/StreamDeckSDK-v1.0.zip + URL_HASH SHA512=3a2c5e2c0fc7ea4dca6e6a0a36bfe9726bcbbf9248d70bac1542362bcdc395ba26713891082798346a7d17035bba366fae9d6f371c9fcff227ea8d19a23a07c8 + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX= + -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} +) + +ExternalProject_Get_Property( + StreamDeckSDK_build + INSTALL_DIR +) +add_library(StreamDeckSDK INTERFACE) +add_dependencies(StreamDeckSDK StreamDeckSDK_build) +target_link_libraries( + StreamDeckSDK + INTERFACE + ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}StreamDeckSDK${CMAKE_STATIC_LIBRARY_SUFFIX} +) +target_include_directories(StreamDeckSDK INTERFACE ${INSTALL_DIR}/include) +target_compile_definitions(StreamDeckSDK INTERFACE -DASIO_STANDALONE=1) + +if (APPLE) + find_library(CORE_FOUNDATION_LIBRARY CoreFoundation REQUIRED) + target_link_libraries( + StreamDeckSDK + INTERFACE + ${CORE_FOUNDATION_LIBRARY} + ) +endif() diff --git a/Sources/Vendor/asio/COPYING b/Sources/Vendor/asio/COPYING deleted file mode 100644 index 752844a..0000000 --- a/Sources/Vendor/asio/COPYING +++ /dev/null @@ -1,4 +0,0 @@ -Copyright (c) 2003-2018 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/Sources/Vendor/asio/INSTALL b/Sources/Vendor/asio/INSTALL deleted file mode 100644 index f045678..0000000 --- a/Sources/Vendor/asio/INSTALL +++ /dev/null @@ -1,5 +0,0 @@ -See doc/index.html for information on: - - External dependencies - - Using asio - - Supported platforms - - How to build the tests and examples diff --git a/Sources/Vendor/asio/LICENSE_1_0.txt b/Sources/Vendor/asio/LICENSE_1_0.txt deleted file mode 100644 index 36b7cd9..0000000 --- a/Sources/Vendor/asio/LICENSE_1_0.txt +++ /dev/null @@ -1,23 +0,0 @@ -Boost Software License - Version 1.0 - August 17th, 2003 - -Permission is hereby granted, free of charge, to any person or organization -obtaining a copy of the software and accompanying documentation covered by -this license (the "Software") to use, reproduce, display, distribute, -execute, and transmit the Software, and to prepare derivative works of the -Software, and to permit third-parties to whom the Software is furnished to -do so, all subject to the following: - -The copyright notices in the Software and this entire statement, including -the above license grant, this restriction and the following disclaimer, -must be included in all copies of the Software, in whole or in part, and -all derivative works of the Software, unless such copies or derivative -works are solely in the form of machine-executable object code generated by -a source language processor. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT -SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE -FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. diff --git a/Sources/Vendor/asio/Makefile.am b/Sources/Vendor/asio/Makefile.am deleted file mode 100644 index 0acdc02..0000000 --- a/Sources/Vendor/asio/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip - -SUBDIRS = include src - -MAINTAINERCLEANFILES = \ - $(srcdir)/aclocal.m4 \ - $(srcdir)/configure \ - $(srcdir)/config.guess \ - $(srcdir)/config.sub \ - $(srcdir)/depcomp \ - $(srcdir)/install-sh \ - $(srcdir)/missing \ - $(srcdir)/mkinstalldirs \ - $(srcdir)/Makefile.in \ - asio-*.tar.gz - -EXTRA_DIST = \ - LICENSE_1_0.txt \ - doc diff --git a/Sources/Vendor/asio/Makefile.in b/Sources/Vendor/asio/Makefile.in deleted file mode 100644 index 6d79b0e..0000000 --- a/Sources/Vendor/asio/Makefile.in +++ /dev/null @@ -1,780 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ - $(am__configure_deps) $(am__DIST_COMMON) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno config.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - cscope distdir distdir-am dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -CSCOPE = cscope -DIST_SUBDIRS = $(SUBDIRS) -am__DIST_COMMON = $(srcdir)/Makefile.in COPYING INSTALL README compile \ - config.guess config.sub depcomp install-sh missing -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - if test -d "$(distdir)"; then \ - find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -rf "$(distdir)" \ - || { sleep 5 && rm -rf "$(distdir)"; }; \ - else :; fi -am__post_remove_distdir = $(am__remove_distdir) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip -GZIP_ENV = --best -DIST_TARGETS = dist-bzip2 dist-gzip dist-zip -distuninstallcheck_listfiles = find . -type f -print -am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ - | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip -SUBDIRS = include src -MAINTAINERCLEANFILES = \ - $(srcdir)/aclocal.m4 \ - $(srcdir)/configure \ - $(srcdir)/config.guess \ - $(srcdir)/config.sub \ - $(srcdir)/depcomp \ - $(srcdir)/install-sh \ - $(srcdir)/missing \ - $(srcdir)/mkinstalldirs \ - $(srcdir)/Makefile.in \ - asio-*.tar.gz - -EXTRA_DIST = \ - LICENSE_1_0.txt \ - doc - -all: all-recursive - -.SUFFIXES: -am--refresh: Makefile - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - $(am__cd) $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -$(am__aclocal_m4_deps): - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscope: cscope.files - test ! -s cscope.files \ - || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) -clean-cscope: - -rm -f cscope.files -cscope.files: clean-cscope cscopelist -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -rm -f cscope.out cscope.in.out cscope.po.out cscope.files - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - $(am__remove_distdir) - test -d "$(distdir)" || mkdir "$(distdir)" - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done - -test -n "$(am__skip_mode_fix)" \ - || find "$(distdir)" -type d ! -perm -755 \ - -exec chmod u+rwx,go+rx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r "$(distdir)" -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz - $(am__post_remove_distdir) -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 - $(am__post_remove_distdir) - -dist-lzip: distdir - tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz - $(am__post_remove_distdir) - -dist-xz: distdir - tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz - $(am__post_remove_distdir) - -dist-tarZ: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__post_remove_distdir) - -dist-shar: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 - @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz - $(am__post_remove_distdir) -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__post_remove_distdir) - -dist dist-all: - $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' - $(am__post_remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.lz*) \ - lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ - *.tar.xz*) \ - xz -dc $(distdir).tar.xz | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir) - chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst - chmod a-w $(distdir) - test -d $(distdir)/_build || exit 0; \ - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build/sub \ - && ../../configure \ - $(AM_DISTCHECK_CONFIGURE_FLAGS) \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - --srcdir=../.. --prefix="$$dc_install_base" \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ - && cd "$$am__cwd" \ - || exit 1 - $(am__post_remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' -distuninstallcheck: - @test -n '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: trying to run $@ with an empty' \ - '$$(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - $(am__cd) '$(distuninstallcheck_dir)' || { \ - echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ - exit 1; \ - }; \ - test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ - am--refresh check check-am clean clean-cscope clean-generic \ - cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \ - dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \ - distcheck distclean distclean-generic distclean-tags \ - distcleancheck distdir distuninstallcheck dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/README b/Sources/Vendor/asio/README deleted file mode 100644 index cb5ab7f..0000000 --- a/Sources/Vendor/asio/README +++ /dev/null @@ -1,4 +0,0 @@ -asio version 1.12.2 -Released Sunday, 09 December 2018. - -See doc/index.html for API documentation and a tutorial. diff --git a/Sources/Vendor/asio/aclocal.m4 b/Sources/Vendor/asio/aclocal.m4 deleted file mode 100644 index a49964a..0000000 --- a/Sources/Vendor/asio/aclocal.m4 +++ /dev/null @@ -1,1171 +0,0 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. - -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, -[m4_warning([this file was generated for autoconf 2.69. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically 'autoreconf'.])]) - -# Copyright (C) 2002-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.16' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to -# '$srcdir', '$srcdir/..', or '$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is '.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ([2.52])dnl - m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - - -# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], - [$1], [CXX], [depcc="$CXX" am_compiler_list=], - [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], - [$1], [UPC], [depcc="$UPC" am_compiler_list=], - [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES. -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE([dependency-tracking], [dnl -AS_HELP_STRING( - [--enable-dependency-tracking], - [do not reject slow dependency extractors]) -AS_HELP_STRING( - [--disable-dependency-tracking], - [speeds up one-time build])]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -AC_SUBST([am__nodep])dnl -_AM_SUBST_NOTMAKE([am__nodep])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - AS_CASE([$CONFIG_FILES], - [*\'*], [eval set x "$CONFIG_FILES"], - [*], [set x $CONFIG_FILES]) - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`AS_DIRNAME(["$am_mf"])` - am_filepart=`AS_BASENAME(["$am_mf"])` - AM_RUN_LOG([cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles]) || am_rc=$? - done - if test $am_rc -ne 0; then - AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking).]) - fi - AS_UNSET([am_dirpart]) - AS_UNSET([am_filepart]) - AS_UNSET([am_mf]) - AS_UNSET([am_rc]) - rm -f conftest-deps.mk -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking is enabled. -# This creates each '.Po' and '.Plo' makefile fragment that we'll need in -# order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. -m4_define([AC_PROG_CC], -m4_defn([AC_PROG_CC]) -[_AM_PROG_CC_C_O -]) - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.65])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[AC_DIAGNOSE([obsolete], - [$0: two- and three-arguments forms are deprecated.]) -m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if( - m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), - [ok:ok],, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) - AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) -AM_MISSING_PROG([AUTOCONF], [autoconf]) -AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) -AM_MISSING_PROG([AUTOHEADER], [autoheader]) -AM_MISSING_PROG([MAKEINFO], [makeinfo]) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -AC_SUBST([mkdir_p], ['$(MKDIR_P)']) -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES([CC])], - [m4_define([AC_PROG_CC], - m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES([CXX])], - [m4_define([AC_PROG_CXX], - m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES([OBJC])], - [m4_define([AC_PROG_OBJC], - m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], - [_AM_DEPENDENCIES([OBJCXX])], - [m4_define([AC_PROG_OBJCXX], - m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl -]) -AC_REQUIRE([AM_SILENT_RULES])dnl -dnl The testsuite driver may need to know about EXEEXT, so add the -dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This -dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) - fi -fi -dnl The trailing newline in this macro's definition is deliberate, for -dnl backward compatibility and to allow trailing 'dnl'-style comments -dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. -]) - -dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST([install_sh])]) - -# Copyright (C) 2003-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless 'enable' is passed literally. -# For symmetry, 'disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], - [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], - am_maintainer_other[ make rules and dependencies not useful - (and sometimes confusing) to the casual installer])], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MAKE_INCLUDE() -# ----------------- -# Check whether make has an 'include' directive that can support all -# the idioms we need for our automatic dependency tracking code. -AC_DEFUN([AM_MAKE_INCLUDE], -[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) - AS_CASE([$?:`cat confinc.out 2>/dev/null`], - ['0:this is the am__doit target'], - [AS_CASE([$s], - [BSD], [am__include='.include' am__quote='"'], - [am__include='include' am__quote=''])]) - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -AC_MSG_RESULT([${_am_result}]) -AC_SUBST([am__include])]) -AC_SUBST([am__quote])]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it is modern enough. -# If it is, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - AC_MSG_WARN(['missing' script is too old or missing]) -fi -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# -------------------- -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) - -# _AM_SET_OPTIONS(OPTIONS) -# ------------------------ -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_CC_C_O -# --------------- -# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC -# to automatically call this. -AC_DEFUN([_AM_PROG_CC_C_O], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([compile])dnl -AC_LANG_PUSH([C])dnl -AC_CACHE_CHECK( - [whether $CC understands -c and -o together], - [am_cv_prog_cc_c_o], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i]) -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -AC_LANG_POP([C])]) - -# For backward compatibility. -AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_RUN_LOG(COMMAND) -# ------------------- -# Run COMMAND, save the exit status in ac_status, and log it. -# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) -AC_DEFUN([AM_RUN_LOG], -[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD - ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD - (exit $ac_status); }]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken - alias in your environment]) - fi - if test "$[2]" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT([yes]) -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi -AC_CONFIG_COMMANDS_PRE( - [AC_MSG_CHECKING([that generated files are newer than configure]) - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - AC_MSG_RESULT([done])]) -rm -f conftest.file -]) - -# Copyright (C) 2009-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# ("yes" being less verbose, "no" or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], [dnl -AS_HELP_STRING( - [--enable-silent-rules], - [less verbose build output (undo: "make V=1")]) -AS_HELP_STRING( - [--disable-silent-rules], - [verbose build output (undo: "make V=0")])dnl -]) -case $enable_silent_rules in @%:@ ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -dnl -dnl A few 'make' implementations (e.g., NonStop OS and NextStep) -dnl do not support nested variable expansions. -dnl See automake bug#9928 and bug#10237. -am_make=${MAKE-make} -AC_CACHE_CHECK([whether $am_make supports nested variables], - [am_cv_make_support_nested_variables], - [if AS_ECHO([['TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi]) -if test $am_cv_make_support_nested_variables = yes; then - dnl Using '$V' instead of '$(V)' breaks IRIX make. - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AC_SUBST([AM_V])dnl -AM_SUBST_NOTMAKE([AM_V])dnl -AC_SUBST([AM_DEFAULT_V])dnl -AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor 'install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in "make install-strip", and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# -------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004-2018 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of 'v7', 'ustar', or 'pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -# -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AC_SUBST([AMTAR], ['$${TAR-tar}']) - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' - -m4_if([$1], [v7], - [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], - - [m4_case([$1], - [ustar], - [# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) - if test $am_uid -le $am_max_uid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi - AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) - if test $am_gid -le $am_max_gid; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - _am_tools=none - fi], - - [pax], - [], - - [m4_fatal([Unknown tar format])]) - - AC_MSG_CHECKING([how to create a $1 tar archive]) - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_$1-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) - AC_MSG_RESULT([$am_cv_prog_tar_$1])]) - -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - diff --git a/Sources/Vendor/asio/compile b/Sources/Vendor/asio/compile deleted file mode 100755 index 99e5052..0000000 --- a/Sources/Vendor/asio/compile +++ /dev/null @@ -1,348 +0,0 @@ -#! /bin/sh -# Wrapper for compilers which do not understand '-c -o'. - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. -# Written by Tom Tromey . -# -# 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, 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 . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' - -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent tools from complaining about whitespace usage. -IFS=" "" $nl" - -file_conv= - -# func_file_conv build_file lazy -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv/,$2, in - *,$file_conv,*) - ;; - mingw/*) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin/*) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine/*) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_cl_dashL linkdir -# Make cl look for libraries in LINKDIR -func_cl_dashL () -{ - func_file_conv "$1" - if test -z "$lib_path"; then - lib_path=$file - else - lib_path="$lib_path;$file" - fi - linker_opts="$linker_opts -LIBPATH:$file" -} - -# func_cl_dashl library -# Do a library search-path lookup for cl -func_cl_dashl () -{ - lib=$1 - found=no - save_IFS=$IFS - IFS=';' - for dir in $lib_path $LIB - do - IFS=$save_IFS - if $shared && test -f "$dir/$lib.dll.lib"; then - found=yes - lib=$dir/$lib.dll.lib - break - fi - if test -f "$dir/$lib.lib"; then - found=yes - lib=$dir/$lib.lib - break - fi - if test -f "$dir/lib$lib.a"; then - found=yes - lib=$dir/lib$lib.a - break - fi - done - IFS=$save_IFS - - if test "$found" != yes; then - lib=$lib.lib - fi -} - -# func_cl_wrapper cl arg... -# Adjust compile command to suit cl -func_cl_wrapper () -{ - # Assume a capable shell - lib_path= - shared=: - linker_opts= - for arg - do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - eat=1 - case $2 in - *.o | *.[oO][bB][jJ]) - func_file_conv "$2" - set x "$@" -Fo"$file" - shift - ;; - *) - func_file_conv "$2" - set x "$@" -Fe"$file" - shift - ;; - esac - ;; - -I) - eat=1 - func_file_conv "$2" mingw - set x "$@" -I"$file" - shift - ;; - -I*) - func_file_conv "${1#-I}" mingw - set x "$@" -I"$file" - shift - ;; - -l) - eat=1 - func_cl_dashl "$2" - set x "$@" "$lib" - shift - ;; - -l*) - func_cl_dashl "${1#-l}" - set x "$@" "$lib" - shift - ;; - -L) - eat=1 - func_cl_dashL "$2" - ;; - -L*) - func_cl_dashL "${1#-L}" - ;; - -static) - shared=false - ;; - -Wl,*) - arg=${1#-Wl,} - save_ifs="$IFS"; IFS=',' - for flag in $arg; do - IFS="$save_ifs" - linker_opts="$linker_opts $flag" - done - IFS="$save_ifs" - ;; - -Xlinker) - eat=1 - linker_opts="$linker_opts $2" - ;; - -*) - set x "$@" "$1" - shift - ;; - *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) - func_file_conv "$1" - set x "$@" -Tp"$file" - shift - ;; - *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) - func_file_conv "$1" mingw - set x "$@" "$file" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift - done - if test -n "$linker_opts"; then - linker_opts="-link$linker_opts" - fi - exec "$@" $linker_opts - exit 1 -} - -eat= - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: compile [--help] [--version] PROGRAM [ARGS] - -Wrapper for compilers which do not understand '-c -o'. -Remove '-o dest.o' from ARGS, run PROGRAM with the remaining -arguments, and rename the output as expected. - -If you are trying to build a whole package this is not the -right script to run: please start by reading the file 'INSTALL'. - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "compile $scriptversion" - exit $? - ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ - icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) - func_cl_wrapper "$@" # Doesn't return... - ;; -esac - -ofile= -cfile= - -for arg -do - if test -n "$eat"; then - eat= - else - case $1 in - -o) - # configure might choose to run compile as 'compile cc -o foo foo.c'. - # So we strip '-o arg' only if arg is an object. - eat=1 - case $2 in - *.o | *.obj) - ofile=$2 - ;; - *) - set x "$@" -o "$2" - shift - ;; - esac - ;; - *.c) - cfile=$1 - set x "$@" "$1" - shift - ;; - *) - set x "$@" "$1" - shift - ;; - esac - fi - shift -done - -if test -z "$ofile" || test -z "$cfile"; then - # If no '-o' option was seen then we might have been invoked from a - # pattern rule where we don't need one. That is ok -- this is a - # normal compilation that the losing compiler can handle. If no - # '.c' file was seen then we are probably linking. That is also - # ok. - exec "$@" -fi - -# Name of file we expect compiler to create. -cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` - -# Create the lock directory. -# Note: use '[/\\:.-]' here to ensure that we don't use the same name -# that we are using for the .o file. Also, base the name on the expected -# object file name, since that is what matters with a parallel build. -lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d -while true; do - if mkdir "$lockdir" >/dev/null 2>&1; then - break - fi - sleep 1 -done -# FIXME: race condition here if user kills between mkdir and trap. -trap "rmdir '$lockdir'; exit 1" 1 2 15 - -# Run the compile. -"$@" -ret=$? - -if test -f "$cofile"; then - test "$cofile" = "$ofile" || mv "$cofile" "$ofile" -elif test -f "${cofile}bj"; then - test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" -fi - -rmdir "$lockdir" -exit $ret - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/Sources/Vendor/asio/config.guess b/Sources/Vendor/asio/config.guess deleted file mode 100755 index 256083a..0000000 --- a/Sources/Vendor/asio/config.guess +++ /dev/null @@ -1,1476 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright 1992-2018 Free Software Foundation, Inc. - -timestamp='2018-03-08' - -# This file 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 3 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 . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). -# -# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. -# -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess -# -# Please send patches to . - - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright 1992-2018 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > "$dummy.c" ; - for c in cc gcc c89 c99 ; do - if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -case "$UNAME_SYSTEM" in -Linux|GNU|GNU/*) - # If the system lacks a compiler, then just pick glibc. - # We could probably try harder. - LIBC=gnu - - eval "$set_cc_for_build" - cat <<-EOF > "$dummy.c" - #include - #if defined(__UCLIBC__) - LIBC=uclibc - #elif defined(__dietlibc__) - LIBC=dietlibc - #else - LIBC=gnu - #endif - EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" - - # If ldd exists, use it to detect musl libc. - if command -v ldd >/dev/null && \ - ldd --version 2>&1 | grep -q ^musl - then - LIBC=musl - fi - ;; -esac - -# Note: order is significant - the case branches are not exclusive. - -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ - echo unknown)` - case "$UNAME_MACHINE_ARCH" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) - arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` - machine="${arch}${endian}"-unknown - ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in - earm*) - os=netbsdelf - ;; - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval "$set_cc_for_build" - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in - Debian*) - release='-gnu' - ;; - *) - release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi}" - exit ;; - *:Bitrig:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; - *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; - *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; - *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; - *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; - *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; - *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; - *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; - mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; - "EV4.5 (21064)") - UNAME_MACHINE=alpha ;; - "LCA4 (21066/21068)") - UNAME_MACHINE=alpha ;; - "EV5 (21164)") - UNAME_MACHINE=alphaev5 ;; - "EV5.6 (21164A)") - UNAME_MACHINE=alphaev56 ;; - "EV5.6 (21164PC)") - UNAME_MACHINE=alphapca56 ;; - "EV5.7 (21164PC)") - UNAME_MACHINE=alphapca57 ;; - "EV6 (21264)") - UNAME_MACHINE=alphaev6 ;; - "EV6.7 (21264A)") - UNAME_MACHINE=alphaev67 ;; - "EV6.8CB (21264C)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8AL (21264B)") - UNAME_MACHINE=alphaev68 ;; - "EV6.8CX (21264D)") - UNAME_MACHINE=alphaev68 ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE=alphaev69 ;; - "EV7 (21364)") - UNAME_MACHINE=alphaev7 ;; - "EV7.9 (21364A)") - UNAME_MACHINE=alphaev79 ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; - arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval "$set_cc_for_build" - SUN_ARCH=i386 - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH=x86_64 - fi - fi - echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" - ;; - sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && - dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`"$dummy" "$dummyarg"` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] - then - if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ - [ "$TARGET_BINARY_INTERFACE"x = x ] - then - echo m88k-dg-dgux"$UNAME_RELEASE" - else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" - fi - else - echo i586-dg-dgux"$UNAME_RELEASE" - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[4567]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/lslpp ] ; then - IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in - 9000/31?) HP_ARCH=m68000 ;; - 9000/[34]??) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "$sc_cpu_version" in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in - 32) HP_ARCH=hppa2.0n ;; - 64) HP_ARCH=hppa2.0w ;; - '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "$HP_ARCH" = "" ]; then - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ "$HP_ARCH" = hppa2.0w ] - then - eval "$set_cc_for_build" - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH=hppa2.0w - else - HP_ARCH=hppa64 - fi - fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux"$HPUX_REV" - exit ;; - 3050*:HI-UX:*:*) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo "$UNAME_MACHINE"-unknown-osf1mk - else - echo "$UNAME_MACHINE"-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; - *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; - *:FreeBSD:*:*) - UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in - amd64) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; - i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; - *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; - *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; - *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; - i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; - *:Interix*:*) - case "$UNAME_MACHINE" in - x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; - authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; - IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; - esac ;; - i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" - exit ;; - *:GNU:*:*) - # the GNU system - echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" - exit ;; - i*86:Minix:*:*) - echo "$UNAME_MACHINE"-pc-minix - exit ;; - aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - aarch64_be:Linux:*:*) - UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arm*:Linux:*:*) - eval "$set_cc_for_build" - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - else - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi - else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf - fi - fi - exit ;; - avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; - crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; - e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; - ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval "$set_cc_for_build" - sed 's/^ //' << EOF > "$dummy.c" - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" - test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } - ;; - mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; - or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; - ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; - ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; - riscv32:Linux:*:* | riscv64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; - sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; - x86_64:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; - xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; - i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; - i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; - i*86:*:4.*:*) - UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" - else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" - else - echo "$UNAME_MACHINE"-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configure will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo "$UNAME_MACHINE"-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv"$UNAME_RELEASE" - else - echo mips-unknown-sysv"$UNAME_RELEASE" - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; - SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; - *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval "$set_cc_for_build" - if test "$UNAME_PROCESSOR" = unknown ; then - UNAME_PROCESSOR=powerpc - fi - if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then - if [ "$CC_FOR_BUILD" != no_compiler_found ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - case $UNAME_PROCESSOR in - i386) UNAME_PROCESSOR=x86_64 ;; - powerpc) UNAME_PROCESSOR=powerpc64 ;; - esac - fi - # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc - if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_PPC >/dev/null - then - UNAME_PROCESSOR=powerpc - fi - fi - elif test "$UNAME_PROCESSOR" = i386 ; then - # Avoid executing cc on OS X 10.9, as it ships with a stub - # that puts up a graphical alert prompting to install - # developer tools. Any system running Mac OS X 10.7 or - # later (Darwin 11 and later) is required to have a 64-bit - # processor. This is not true of the ARM version of Darwin - # that Apple uses in portable devices. - UNAME_PROCESSOR=x86_64 - fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; - NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = 386; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; - *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" - exit ;; - i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; - i*86:AROS:*:*) - echo "$UNAME_MACHINE"-pc-aros - exit ;; - x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; - amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; -esac - -echo "$0: unable to guess system type" >&2 - -case "$UNAME_MACHINE:$UNAME_SYSTEM" in - mips:Linux | mips64:Linux) - # If we got here on MIPS GNU/Linux, output extra information. - cat >&2 <&2 </dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = "$UNAME_MACHINE" -UNAME_RELEASE = "$UNAME_RELEASE" -UNAME_SYSTEM = "$UNAME_SYSTEM" -UNAME_VERSION = "$UNAME_VERSION" -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/Sources/Vendor/asio/config.sub b/Sources/Vendor/asio/config.sub deleted file mode 100755 index 9ccf09a..0000000 --- a/Sources/Vendor/asio/config.sub +++ /dev/null @@ -1,1801 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright 1992-2018 Free Software Foundation, Inc. - -timestamp='2018-03-08' - -# This file 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 3 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 . -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that -# program. This Exception is an additional permission under section 7 -# of the GNU General Public License, version 3 ("GPLv3"). - - -# Please send patches to . -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - -Canonicalize a configuration name. - -Options: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright 1992-2018 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo "$1" - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - android-linux) - os=-linux-android - basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown - ;; - *) - basic_machine=`echo "$1" | sed 's/-[^-]*$//'` - if [ "$basic_machine" != "$1" ] - then os=`echo "$1" | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | wasm32 \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine - ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) - ;; - ms1) - basic_machine=mt-unknown - ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none - ;; - xscaleeb) - basic_machine=armeb-unknown - ;; - - xscaleel) - basic_machine=armel-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | wasm32-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-pc - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2*) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; - i*86v32) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - nsv-tandem) - basic_machine=nsv-tandem - ;; - nsx-tandem) - basic_machine=nsx-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - x64) - basic_machine=x86_64-pc - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases that might get confused - # with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # es1800 is here to avoid being matched by es* (a different OS) - -es1800*) - os=-ose - ;; - # Now accept the basic system types. - # The portable systems comes first. - # Each alternative MUST end in a * to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ - | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ - | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ - | -midnightbsd*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -xray | -os68k* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo "$os" | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo "$os" | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo "$os" | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4*) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -pikeos*) - # Until real need of OS specific support for - # particular features comes up, bare metal - # configurations are quite functional. - case $basic_machine in - arm*) - os=-eabi - ;; - *) - os=-elf - ;; - esac - ;; - -nacl*) - ;; - -ios) - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - c8051-*) - os=-elf - ;; - hexagon-*) - os=-elf - ;; - tic54x-*) - os=-coff - ;; - tic55x-*) - os=-coff - ;; - tic6x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - pru-*) - os=-elf - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` - ;; -esac - -echo "$basic_machine$os" -exit - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/Sources/Vendor/asio/configure b/Sources/Vendor/asio/configure deleted file mode 100755 index 4082bc9..0000000 --- a/Sources/Vendor/asio/configure +++ /dev/null @@ -1,6474 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for asio 1.12.2. -# -# -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. -# -# -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} -if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which - # is contrary to our usage. Disable this feature. - alias -g '\${1+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi -" - as_required="as_fn_return () { (exit \$1); } -as_fn_success () { as_fn_return 0; } -as_fn_failure () { as_fn_return 1; } -as_fn_ret_success () { return 0; } -as_fn_ret_failure () { return 1; } - -exitcode=0 -as_fn_success || { exitcode=1; echo as_fn_success failed.; } -as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } -as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } -as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : - -else - exitcode=1; echo positional parameters were not saved. -fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" - as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO - as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO - eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 -test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : - as_have_required=yes -else - as_have_required=no -fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : - -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -as_found=false -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - as_found=: - case $as_dir in #( - /*) - for as_base in sh bash ksh sh5; do - # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : - CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : - break 2 -fi -fi - done;; - esac - as_found=false -done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } -IFS=$as_save_IFS - - - if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 -fi - - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." - else - $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, -$0: including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." - fi - exit 1 -fi -fi -fi -SHELL=${CONFIG_SHELL-/bin/sh} -export SHELL -# Unset more variables known to interfere with behavior of common tools. -CLICOLOR_FORCE= GREP_OPTIONS= -unset CLICOLOR_FORCE GREP_OPTIONS - -## --------------------- ## -## M4sh Shell Functions. ## -## --------------------- ## -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - - - as_lineno_1=$LINENO as_lineno_1a=$LINENO - as_lineno_2=$LINENO as_lineno_2a=$LINENO - eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && - test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { - # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -test -n "$DJDIR" || exec 7<&0 &1 - -# Name of the host. -# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= - -# Identity of this package. -PACKAGE_NAME='asio' -PACKAGE_TARNAME='asio' -PACKAGE_VERSION='1.12.2' -PACKAGE_STRING='asio 1.12.2' -PACKAGE_BUGREPORT='' -PACKAGE_URL='' - -ac_unique_file="include/asio.hpp" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -HAVE_CXX14_FALSE -HAVE_CXX14_TRUE -HAVE_CXX11_FALSE -HAVE_CXX11_TRUE -WINDOWS_TARGET_FALSE -WINDOWS_TARGET_TRUE -HAVE_BOOST_COROUTINE_FALSE -HAVE_BOOST_COROUTINE_TRUE -SEPARATE_COMPILATION_FALSE -SEPARATE_COMPILATION_TRUE -STANDALONE_FALSE -STANDALONE_TRUE -HAVE_OPENSSL_FALSE -HAVE_OPENSSL_TRUE -EGREP -GREP -CXXCPP -RANLIB -am__fastdepCXX_FALSE -am__fastdepCXX_TRUE -CXXDEPMODE -ac_ct_CXX -CXXFLAGS -CXX -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -am__nodep -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -AM_DEFAULT_V -AM_V -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_URL -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL -am__quote' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_maintainer_mode -enable_silent_rules -enable_dependency_tracking -with_boost -enable_separate_compilation -enable_boost_coroutine -with_openssl -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CXX -CXXFLAGS -CCC -CXXCPP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *=) ac_optarg= ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - case $ac_envvar in #( - '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; - esac - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - as_fn_error $? "missing argument to $ac_option" -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - as_fn_error $? "working directory cannot be determined" -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - as_fn_error $? "pwd does not report name of working directory" - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures asio 1.12.2 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/asio] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of asio 1.12.2:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode - enable make rules and dependencies not useful (and - sometimes confusing) to the casual installer - --enable-silent-rules less verbose build output (undo: "make V=1") - --disable-silent-rules verbose build output (undo: "make V=0") - --enable-dependency-tracking - do not reject slow dependency extractors - --disable-dependency-tracking - speeds up one-time build - --enable-separate-compilation separate compilation of asio source - --enable-boost-coroutine use Boost.Coroutine to implement stackful coroutines - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-boost=DIR location of boost distribution - --with-openssl=DIR location of openssl - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to the package provider. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -asio configure 1.12.2 -generated by GNU Autoconf 2.69 - -Copyright (C) 2012 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi - -## ------------------------ ## -## Autoconf initialization. ## -## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_compile - -# ac_fn_cxx_try_compile LINENO -# ---------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_compile - -# ac_fn_cxx_try_cpp LINENO -# ------------------------ -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_cxx_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_cpp - -# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES -# --------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_cxx_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_cxx_check_header_mongrel - -# ac_fn_cxx_try_run LINENO -# ------------------------ -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_cxx_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_cxx_try_run - -# ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES -# --------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_cxx_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_cxx_check_header_compile -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by asio $as_me 1.12.2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" - done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; - 2) - as_fn_append ac_configure_args1 " '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - as_fn_append ac_configure_args " '$ac_arg'" - ;; - esac - done -done -{ ac_configure_args0=; unset ac_configure_args0;} -{ ac_configure_args1=; unset ac_configure_args1;} - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - $as_echo "## ---------------- ## -## Cache variables. ## -## ---------------- ##" - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - $as_echo "## ----------------- ## -## Output variables. ## -## ----------------- ##" - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## -## File substitutions. ## -## ------------------- ##" - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - $as_echo "## ----------- ## -## confdefs.h. ## -## ----------- ##" - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -$as_echo "/* confdefs.h */" > confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special files - # actually), so we avoid doing that. DJGPP emulates it as a regular file. - if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then : - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - -am__api_version='1.16' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - - done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; -esac - -# Do 'set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - am_has_slept=no - for am_try in 1 2; do - echo "timestamp, slept: $am_has_slept" > conftest.file - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - as_fn_error $? "ls -t appears to fail. Make sure there is not a broken - alias in your environment" "$LINENO" 5 - fi - if test "$2" = conftest.file || test $am_try -eq 2; then - break - fi - # Just in case. - sleep 1 - am_has_slept=yes - done - test "$2" = conftest.file - ) -then - # Ok. - : -else - as_fn_error $? "newly created file is older than distributed files! -Check your system clock" "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -# If we didn't sleep, we still need to ensure time stamps of config.status and -# generated files are strictly newer. -am_sleep_pid= -if grep 'slept: no' conftest.file >/dev/null 2>&1; then - ( sleep 1 ) & - am_sleep_pid=$! -fi - -rm -f conftest.file - -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# Expand $ac_aux_dir to an absolute path. -am_aux_dir=`cd "$ac_aux_dir" && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --is-lightweight"; then - am_missing_run="$MISSING " -else - am_missing_run= - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using 'strip' when the user -# run "make install-strip". However 'strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the 'STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done - done -IFS=$as_save_IFS - -fi - - test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AWK+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then : - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in # ((( - yes) AM_DEFAULT_VERBOSITY=0;; - no) AM_DEFAULT_VERBOSITY=1;; - *) AM_DEFAULT_VERBOSITY=1;; -esac -am_make=${MAKE-make} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 -$as_echo_n "checking whether $am_make supports nested variables... " >&6; } -if ${am_cv_make_support_nested_variables+:} false; then : - $as_echo_n "(cached) " >&6 -else - if $as_echo 'TRUE=$(BAR$(V)) -BAR0=false -BAR1=true -V=1 -am__doit: - @$(TRUE) -.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then - am_cv_make_support_nested_variables=yes -else - am_cv_make_support_nested_variables=no -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 -$as_echo "$am_cv_make_support_nested_variables" >&6; } -if test $am_cv_make_support_nested_variables = yes; then - AM_V='$(V)' - AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' -else - AM_V=$AM_DEFAULT_VERBOSITY - AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY -fi -AM_BACKSLASH='\' - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='asio' - VERSION='1.12.2' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# For better backward compatibility. To be removed once Automake 1.9.x -# dies out for good. For more background, see: -# -# -mkdir_p='$(MKDIR_P)' - -# We need awk for the "check" target (and possibly the TAP driver). The -# system "awk" is bad on some platforms. -# Always define AMTAR for backward compatibility. Yes, it's still used -# in the wild :-( We should find a proper way to deprecate it ... -AMTAR='$${TAR-tar}' - - -# We'll loop over all known methods to create a tar archive until one works. -_am_tools='gnutar plaintar pax cpio none' - -# The POSIX 1988 'ustar' format is defined with fixed-size fields. - # There is notably a 21 bits limit for the UID and the GID. In fact, - # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 - # and bug#13588). - am_max_uid=2097151 # 2^21 - 1 - am_max_gid=$am_max_uid - # The $UID and $GID variables are not portable, so we need to resort - # to the POSIX-mandated id(1) utility. Errors in the 'id' calls - # below are definitely unexpected, so allow the users to see them - # (that is, avoid stderr redirection). - am_uid=`id -u || echo unknown` - am_gid=`id -g || echo unknown` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UID '$am_uid' is supported by ustar format" >&5 -$as_echo_n "checking whether UID '$am_uid' is supported by ustar format... " >&6; } - if test $am_uid -le $am_max_uid; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - _am_tools=none - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether GID '$am_gid' is supported by ustar format" >&5 -$as_echo_n "checking whether GID '$am_gid' is supported by ustar format... " >&6; } - if test $am_gid -le $am_max_gid; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - _am_tools=none - fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 -$as_echo_n "checking how to create a ustar tar archive... " >&6; } - - # Go ahead even if we have the value already cached. We do so because we - # need to set the values for the 'am__tar' and 'am__untar' variables. - _am_tools=${am_cv_prog_tar_ustar-$_am_tools} - - for _am_tool in $_am_tools; do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; do - { echo "$as_me:$LINENO: $_am_tar --version" >&5 - ($_am_tar --version) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && break - done - am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x ustar -w "$$tardir"' - am__tar_='pax -L -x ustar -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H ustar -L' - am__tar_='find "$tardir" -print | cpio -o -H ustar -L' - am__untar='cpio -i -H ustar -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_ustar}" && break - - # tar/untar a dummy directory, and stop if the command works. - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 - (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - rm -rf conftest.dir - if test -s conftest.tar; then - { echo "$as_me:$LINENO: $am__untar &5 - ($am__untar &5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 - (cat conftest.dir/file) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi - done - rm -rf conftest.dir - - if ${am_cv_prog_tar_ustar+:} false; then : - $as_echo_n "(cached) " >&6 -else - am_cv_prog_tar_ustar=$_am_tool -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 -$as_echo "$am_cv_prog_tar_ustar" >&6; } - - - - - - -# POSIX will say in a future version that running "rm -f" with no argument -# is OK; and we want to be able to make that assumption in our Makefile -# recipes. So use an aggressive probe to check that the usage we want is -# actually supported "in the wild" to an acceptable degree. -# See automake bug#10828. -# To make any issue more visible, cause the running configure to be aborted -# by default if the 'rm' program in use doesn't match our expectations; the -# user can still override this though. -if rm -f && rm -fr && rm -rf; then : OK; else - cat >&2 <<'END' -Oops! - -Your 'rm' program seems unable to run without file operands specified -on the command line, even when the '-f' option is present. This is contrary -to the behaviour of most rm programs out there, and not conforming with -the upcoming POSIX standard: - -Please tell bug-automake@gnu.org about your system, including the value -of your $PATH and any error possibly output before this message. This -can help us improve future automake versions. - -END - if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then - echo 'Configuration will proceed anyway, since you have set the' >&2 - echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 - echo >&2 - else - cat >&2 <<'END' -Aborting the configuration process, to ensure you take notice of the issue. - -You can download and install GNU coreutils to get an 'rm' implementation -that behaves properly: . - -If you want to complete the configuration process using your problematic -'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM -to "yes", and re-run configure. - -END - as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 - fi -fi - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 -$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } -cat > confinc.mk << 'END' -am__doit: - @echo this is the am__doit target >confinc.out -.PHONY: am__doit -END -am__include="#" -am__quote= -# BSD make does it like this. -echo '.include "confinc.mk" # ignored' > confmf.BSD -# Other make implementations (GNU, Solaris 10, AIX) do it like this. -echo 'include confinc.mk # ignored' > confmf.GNU -_am_result=no -for s in GNU BSD; do - { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 - (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - case $?:`cat confinc.out 2>/dev/null` in #( - '0:this is the am__doit target') : - case $s in #( - BSD) : - am__include='.include' am__quote='"' ;; #( - *) : - am__include='include' am__quote='' ;; -esac ;; #( - *) : - ;; -esac - if test "$am__include" != "#"; then - _am_result="yes ($s style)" - break - fi -done -rm -f confinc.* confmf.* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 -$as_echo "${_am_result}" >&6; } - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then : - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' - am__nodep='_no' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 -$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } -if ${am_cv_prog_cc_c_o+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF - # Make sure it works both with $CC and with simple cc. - # Following AC_PROG_CC_C_O, we do the test twice because some - # compilers refuse to overwrite an existing .o file with -o, - # though they will create one. - am_cv_prog_cc_c_o=yes - for am_i in 1 2; do - if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 - ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } \ - && test -f conftest2.$ac_objext; then - : OK - else - am_cv_prog_cc_c_o=no - break - fi - done - rm -f core conftest* - unset am_i -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 -$as_echo "$am_cv_prog_cc_c_o" >&6; } -if test "$am_cv_prog_cc_c_o" != yes; then - # Losing compiler, so override with the script. - # FIXME: It is wrong to rewrite CC. - # But if we don't then we get into trouble of one sort or another. - # A longer-term fix would be to have automake use am__CC in this case, - # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" - CC="$am_aux_dir/compile $CC" -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CC_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -if test -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CXX"; then - ac_cv_prog_CXX="$CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CXX"; then - ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if ${ac_cv_cxx_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if ${ac_cv_prog_cxx_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -else - CXXFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - -else - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_prog_cxx_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$ac_cv_prog_cxx_g" >&6; } -if test "$ac_test_CXXFLAGS" = set; then - CXXFLAGS=$ac_save_CXXFLAGS -elif test $ac_cv_prog_cxx_g = yes; then - if test "$GXX" = yes; then - CXXFLAGS="-g -O2" - else - CXXFLAGS="-g" - fi -else - if test "$GXX" = yes; then - CXXFLAGS="-O2" - else - CXXFLAGS= - fi -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CXX" am_compiler_list= - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if ${am_cv_CXX_dependencies_compiler_type+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named 'D' -- because '-MD' means "put the output - # in D". - rm -rf conftest.dir - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CXX_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with - # Solaris 10 /bin/sh. - echo '/* dummy */' > sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with '-c' and '-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle '-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs. - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # After this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested. - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvc7 | msvc7msys | msvisualcpp | msvcmsys) - # This compiler won't grok '-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CXX_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } -CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then - am__fastdepCXX_TRUE= - am__fastdepCXX_FALSE='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - - - -$as_echo "#define _REENTRANT 1" >>confdefs.h - - - -# Check whether --with-boost was given. -if test "${with_boost+set}" = set; then : - withval=$with_boost; - if test "${withval}" = no; then - STANDALONE="yes" - else - CPPFLAGS="$CPPFLAGS -I${withval} -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" - LIBS="$LIBS -L${withval}/stage/lib" - fi - -else - - BOOSTDIR=`ls -1d ../boost_*_*_*/ 2>/dev/null | sort -t "_" -k 2nr -k 3nr -k 4nr | head -n 1 | sed -e 's/\/$//'` - if test "${BOOSTDIR}" != ""; then - BOOSTDIR="`pwd`/${BOOSTDIR}" - if test -d "${BOOSTDIR}"; then - echo "using automatically detected boost from ${BOOSTDIR}" - CPPFLAGS="$CPPFLAGS -I${BOOSTDIR} -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" - LIBS="$LIBS -L${BOOSTDIR}/stage/lib" - fi - fi - -fi - - -# Check whether --enable-separate-compilation was given. -if test "${enable_separate_compilation+set}" = set; then : - enableval=$enable_separate_compilation; - SEPARATE_COMPILATION=yes - -fi - - -# Check whether --enable-boost-coroutine was given. -if test "${enable_boost_coroutine+set}" = set; then : - enableval=$enable_boost_coroutine; - HAVE_BOOST_COROUTINE=yes - -fi - - -if test "$STANDALONE" != yes; then - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 -$as_echo_n "checking how to run the C++ preprocessor... " >&6; } -if test -z "$CXXCPP"; then - if ${ac_cv_prog_CXXCPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CXXCPP needs to be expanded - for CXXCPP in "$CXX -E" "/lib/cpp" - do - ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -else - ac_cv_prog_CXXCPP=$CXXCPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 -$as_echo "$CXXCPP" >&6; } -ac_preproc_ok=false -for ac_cxx_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_cxx_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_cxx_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_cxx_check_header_mongrel "$LINENO" "boost/noncopyable.hpp" "ac_cv_header_boost_noncopyable_hpp" "$ac_includes_default" -if test "x$ac_cv_header_boost_noncopyable_hpp" = xyes; then : - -else - - echo "Can't find boost headers. Please check the location of the boost" - echo "distribution and rerun configure using the --with-boost=DIR option." - echo "Alternatively, run with --without-boost to enable standalone build." - exit 1 - -fi - - -fi - - -# Check whether --with-openssl was given. -if test "${with_openssl+set}" = set; then : - withval=$with_openssl; - CPPFLAGS="$CPPFLAGS -I${withval}/include" - LIBS="$LIBS -L${withval}/lib" - -fi - - -ac_fn_cxx_check_header_mongrel "$LINENO" "openssl/ssl.h" "ac_cv_header_openssl_ssl_h" "$ac_includes_default" -if test "x$ac_cv_header_openssl_ssl_h" = xyes; then : - -else - - OPENSSL_FOUND=no - -fi - - - -if test x$OPENSSL_FOUND != xno; then - LIBS="$LIBS -lssl -lcrypto" -fi - - if test x$OPENSSL_FOUND != xno; then - HAVE_OPENSSL_TRUE= - HAVE_OPENSSL_FALSE='#' -else - HAVE_OPENSSL_TRUE='#' - HAVE_OPENSSL_FALSE= -fi - - -WINDOWS=no -case $host in - *-*-linux*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - LIBS="$LIBS -lrt" - ;; - *-*-solaris*) - if test "$GXX" = yes; then - CXXFLAGS="$CXXFLAGS -D_PTHREADS" - else - # We'll assume Sun's CC. - CXXFLAGS="$CXXFLAGS -mt" - fi - LIBS="$LIBS -lsocket -lnsl -lpthread" - ;; - *-*-mingw32*) - CXXFLAGS="$CXXFLAGS -mthreads" - LDFLAGS="$LDFLAGS -mthreads" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-*-mingw64*) - CXXFLAGS="$CXXFLAGS -mthreads" - LDFLAGS="$LDFLAGS -mthreads" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-pc-cygwin*) - CXXFLAGS="$CXXFLAGS -D__USE_W32_SOCKETS -D_WIN32_WINNT=0x0501" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-apple-darwin*) - CXXFLAGS="$CXXFLAGS" - LDFLAGS="$LDFLAGS" - ;; - *-*-freebsd*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - ;; - *-*-netbsd*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - ;; -esac - -if test "$GXX" = yes; then - CXXFLAGS="$CXXFLAGS -ftemplate-depth-256" -fi - -if test "$STANDALONE" = yes; then - CPPFLAGS="$CPPFLAGS -DASIO_STANDALONE" -fi - -if test "$SEPARATE_COMPILATION" = yes; then - CPPFLAGS="$CPPFLAGS -DASIO_SEPARATE_COMPILATION" -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++11 is enabled" >&5 -$as_echo_n "checking whether C++11 is enabled... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if __cplusplus < 201103L - #error C++11 not available - #endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_CXX11=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - HAVE_CXX11=no; -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C++14 is enabled" >&5 -$as_echo_n "checking whether C++14 is enabled... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if __cplusplus < 201402L - #error C++14 not available - #endif -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - HAVE_CXX14=yes; -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - HAVE_CXX14=no; -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test "$GXX" = yes; then - if test "$STANDALONE" = yes; then - if test "$HAVE_CXX11" = no; then - HAVE_CXX11=yes - CPPFLAGS="-std=c++0x $CPPFLAGS" - fi - fi -fi - - if test x$STANDALONE = xyes; then - STANDALONE_TRUE= - STANDALONE_FALSE='#' -else - STANDALONE_TRUE='#' - STANDALONE_FALSE= -fi - - - if test x$SEPARATE_COMPILATION = xyes; then - SEPARATE_COMPILATION_TRUE= - SEPARATE_COMPILATION_FALSE='#' -else - SEPARATE_COMPILATION_TRUE='#' - SEPARATE_COMPILATION_FALSE= -fi - - - if test x$HAVE_BOOST_COROUTINE = xyes; then - HAVE_BOOST_COROUTINE_TRUE= - HAVE_BOOST_COROUTINE_FALSE='#' -else - HAVE_BOOST_COROUTINE_TRUE='#' - HAVE_BOOST_COROUTINE_FALSE= -fi - - - if test x$WINDOWS != xno; then - WINDOWS_TARGET_TRUE= - WINDOWS_TARGET_FALSE='#' -else - WINDOWS_TARGET_TRUE='#' - WINDOWS_TARGET_FALSE= -fi - - - if test x$HAVE_CXX11 = xyes; then - HAVE_CXX11_TRUE= - HAVE_CXX11_FALSE='#' -else - HAVE_CXX11_TRUE='#' - HAVE_CXX11_FALSE= -fi - - - if test x$HAVE_CXX14 = xyes; then - HAVE_CXX14_TRUE= - HAVE_CXX14_FALSE='#' -else - HAVE_CXX14_TRUE='#' - HAVE_CXX14_FALSE= -fi - - -ac_config_files="$ac_config_files Makefile include/Makefile src/Makefile src/tests/Makefile src/examples/cpp03/Makefile src/examples/cpp11/Makefile src/examples/cpp14/Makefile src/examples/cpp17/Makefile" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) { eval $ac_var=; unset $ac_var;} ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \. - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - if test ! -f "$cache_file" || test -h "$cache_file"; then - cat confcache >"$cache_file" - else - case $cache_file in #( - */* | ?:*) - mv -f confcache "$cache_file"$$ && - mv -f "$cache_file"$$ "$cache_file" ;; #( - *) - mv -f confcache "$cache_file" ;; - esac - fi - fi - else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -U= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" - as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 -$as_echo_n "checking that generated files are newer than configure... " >&6; } - if test -n "$am_sleep_pid"; then - # Hide warnings about reused PIDs. - wait $am_sleep_pid 2>/dev/null - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - as_fn_error $? "conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then - as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_OPENSSL_TRUE}" && test -z "${HAVE_OPENSSL_FALSE}"; then - as_fn_error $? "conditional \"HAVE_OPENSSL\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${STANDALONE_TRUE}" && test -z "${STANDALONE_FALSE}"; then - as_fn_error $? "conditional \"STANDALONE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${SEPARATE_COMPILATION_TRUE}" && test -z "${SEPARATE_COMPILATION_FALSE}"; then - as_fn_error $? "conditional \"SEPARATE_COMPILATION\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_BOOST_COROUTINE_TRUE}" && test -z "${HAVE_BOOST_COROUTINE_FALSE}"; then - as_fn_error $? "conditional \"HAVE_BOOST_COROUTINE\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${WINDOWS_TARGET_TRUE}" && test -z "${WINDOWS_TARGET_FALSE}"; then - as_fn_error $? "conditional \"WINDOWS_TARGET\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_CXX11_TRUE}" && test -z "${HAVE_CXX11_FALSE}"; then - as_fn_error $? "conditional \"HAVE_CXX11\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi -if test -z "${HAVE_CXX14_TRUE}" && test -z "${HAVE_CXX14_FALSE}"; then - as_fn_error $? "conditional \"HAVE_CXX14\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi - -: "${CONFIG_STATUS=./config.status}" -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -as_write_fail=0 -cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false - -SHELL=\${CONFIG_SHELL-$SHELL} -export SHELL -_ASEOF -cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 -## -------------------- ## -## M4sh Initialization. ## -## -------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in #( - *posix*) : - set -o posix ;; #( - *) : - ;; -esac -fi - - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -as_myself= -case $0 in #(( - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break - done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - exit 1 -fi - -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - - -# as_fn_error STATUS ERROR [LINENO LOG_FD] -# ---------------------------------------- -# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are -# provided, also output the error to LOG_FD, referencing LINENO. Then exit the -# script with STATUS, using 1 if that was 0. -as_fn_error () -{ - as_status=$1; test $as_status -eq 0 && as_status=1 - if test "$4"; then - as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 - fi - $as_echo "$as_me: error: $2" >&2 - as_fn_exit $as_status -} # as_fn_error - - -# as_fn_set_status STATUS -# ----------------------- -# Set $? to STATUS, without forking. -as_fn_set_status () -{ - return $1 -} # as_fn_set_status - -# as_fn_exit STATUS -# ----------------- -# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. -as_fn_exit () -{ - set +e - as_fn_set_status $1 - exit $1 -} # as_fn_exit - -# as_fn_unset VAR -# --------------- -# Portably unset VAR. -as_fn_unset () -{ - { eval $1=; unset $1;} -} -as_unset=as_fn_unset -# as_fn_append VAR VALUE -# ---------------------- -# Append the text in VALUE to the end of the definition contained in VAR. Take -# advantage of any shell optimizations that allow amortized linear growth over -# repeated appends, instead of the typical quadratic growth present in naive -# implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : - eval 'as_fn_append () - { - eval $1+=\$2 - }' -else - as_fn_append () - { - eval $1=\$$1\$2 - } -fi # as_fn_append - -# as_fn_arith ARG... -# ------------------ -# Perform arithmetic evaluation on the ARGs, and store the result in the -# global $as_val. Take advantage of shells that can avoid forks. The arguments -# must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : - eval 'as_fn_arith () - { - as_val=$(( $* )) - }' -else - as_fn_arith () - { - as_val=`expr "$@" || test $? -eq 1` - } -fi # as_fn_arith - - -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in #((((( --n*) - case `echo 'xy\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - xy) ECHO_C='\c';; - *) echo `echo ksh88 bug on AIX 6.1` > /dev/null - ECHO_T=' ';; - esac;; -*) - ECHO_N='-n';; -esac - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -pR' - fi -else - as_ln_s='cp -pR' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - - -# as_fn_mkdir_p -# ------------- -# Create "$as_dir" as a directory, including parents if necessary. -as_fn_mkdir_p () -{ - - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || eval $as_mkdir_p || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" - - -} # as_fn_mkdir_p -if mkdir -p . 2>/dev/null; then - as_mkdir_p='mkdir -p "$as_dir"' -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 -## ----------------------------------- ## -## Main body of $CONFIG_STATUS script. ## -## ----------------------------------- ## -_ASEOF -test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# Save the log message, to keep $0 and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by asio $as_me 1.12.2, which was -generated by GNU Autoconf 2.69. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions -from templates according to the current configuration. Unless the files -and actions are specified as TAGs, all are instantiated by default. - -Usage: $0 [OPTION]... [TAG]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - --config print configuration, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to the package provider." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" -ac_cs_version="\\ -asio config.status 1.12.2 -configured by $0, generated by GNU Autoconf 2.69, - with options \\"\$ac_cs_config\\" - -Copyright (C) 2012 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=?*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - --*=) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg= - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - '') as_fn_error $? "missing file argument" ;; - esac - as_fn_append CONFIG_FILES " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; - - *) as_fn_append ac_config_targets " $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; - "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "src/tests/Makefile") CONFIG_FILES="$CONFIG_FILES src/tests/Makefile" ;; - "src/examples/cpp03/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp03/Makefile" ;; - "src/examples/cpp11/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp11/Makefile" ;; - "src/examples/cpp14/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp14/Makefile" ;; - "src/examples/cpp17/Makefile") CONFIG_FILES="$CONFIG_FILES src/examples/cpp17/Makefile" ;; - - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= ac_tmp= - trap 'exit_status=$? - : "${ac_tmp:=$tmp}" - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status -' 0 - trap 'as_fn_exit 1' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 -ac_tmp=$tmp - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr=`echo X | tr X '\015'` -# On cygwin, bash can eat \r inside `` if the user requested igncr. -# But we know of no other shell where ac_cr would be empty at this -# point, so we can use a bashism as a fallback. -if test "x$ac_cr" = x; then - eval ac_cr=\$\'\\r\' -fi -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 -ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\)..*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\)..*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ - || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 -_ACEOF - -# VPATH may cause trouble with some makes, so we remove sole $(srcdir), -# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ -h -s/// -s/^/:/ -s/[ ]*$/:/ -s/:\$(srcdir):/:/g -s/:\${srcdir}:/:/g -s/:@srcdir@:/:/g -s/^:*// -s/:*$// -x -s/\(=[ ]*\).*/\1/ -G -s/\n// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - - -eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$ac_tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - as_fn_append ac_file_inputs " '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$ac_tmp/stdin" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ - "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined" >&2;} - - rm -f "$ac_tmp/stdin" - case $ac_file in - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; - esac \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - ;; - - - :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Older Autoconf quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - # TODO: see whether this extra hack can be removed once we start - # requiring Autoconf 2.70 or later. - case $CONFIG_FILES in #( - *\'*) : - eval set x "$CONFIG_FILES" ;; #( - *) : - set x $CONFIG_FILES ;; #( - *) : - ;; -esac - shift - # Used to flag and report bootstrapping failures. - am_rc=0 - for am_mf - do - # Strip MF so we end up with the name of the file. - am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile which includes - # dependency-tracking related rules and includes. - # Grep'ing the whole file directly is not great: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ - || continue - am_dirpart=`$as_dirname -- "$am_mf" || -$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$am_mf" : 'X\(//\)[^/]' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$am_mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - am_filepart=`$as_basename -- "$am_mf" || -$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ - X"$am_mf" : 'X\(//\)$' \| \ - X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$am_mf" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { echo "$as_me:$LINENO: cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles" >&5 - (cd "$am_dirpart" \ - && sed -e '/# am--include-marker/d' "$am_filepart" \ - | $MAKE -f - am--depfiles) >&5 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } || am_rc=$? - done - if test $am_rc -ne 0; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the - '--disable-dependency-tracking' option to at least be able to build - the package (albeit without support for automatic dependency tracking). -See \`config.log' for more details" "$LINENO" 5; } - fi - { am_dirpart=; unset am_dirpart;} - { am_filepart=; unset am_filepart;} - { am_mf=; unset am_mf;} - { am_rc=; unset am_rc;} - rm -f conftest-deps.mk -} - ;; - - esac -done # for ac_tag - - -as_fn_exit 0 -_ACEOF -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/Sources/Vendor/asio/configure.ac b/Sources/Vendor/asio/configure.ac deleted file mode 100644 index d78c9d7..0000000 --- a/Sources/Vendor/asio/configure.ac +++ /dev/null @@ -1,186 +0,0 @@ -AC_INIT(asio, [1.12.2]) -AC_CONFIG_SRCDIR(include/asio.hpp) -AM_MAINTAINER_MODE -AM_INIT_AUTOMAKE([tar-ustar]) - -AC_CANONICAL_HOST -AM_PROG_CC_C_O -AC_PROG_CXX -AC_LANG(C++) -AC_PROG_RANLIB - -AC_DEFINE(_REENTRANT, [1], [Define this]) - -AC_ARG_WITH(boost, - AC_HELP_STRING([--with-boost=DIR],[location of boost distribution]), -[ - if test "${withval}" = no; then - STANDALONE="yes" - else - CPPFLAGS="$CPPFLAGS -I${withval} -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" - LIBS="$LIBS -L${withval}/stage/lib" - fi -], -[ - BOOSTDIR=`ls -1d ../boost_*_*_*/ 2>/dev/null | sort -t "_" -k 2nr -k 3nr -k 4nr | head -n 1 | sed -e 's/\/$//'` - if test "${BOOSTDIR}" != ""; then - BOOSTDIR="`pwd`/${BOOSTDIR}" - if test -d "${BOOSTDIR}"; then - echo "using automatically detected boost from ${BOOSTDIR}" - CPPFLAGS="$CPPFLAGS -I${BOOSTDIR} -DBOOST_CHRONO_HEADER_ONLY -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING" - LIBS="$LIBS -L${BOOSTDIR}/stage/lib" - fi - fi -]) - -AC_ARG_ENABLE(separate-compilation, -[ --enable-separate-compilation separate compilation of asio source], -[ - SEPARATE_COMPILATION=yes -]) - -AC_ARG_ENABLE(boost-coroutine, -[ --enable-boost-coroutine use Boost.Coroutine to implement stackful coroutines], -[ - HAVE_BOOST_COROUTINE=yes -]) - -if test "$STANDALONE" != yes; then - AC_CHECK_HEADER([boost/noncopyable.hpp],, - [ - echo "Can't find boost headers. Please check the location of the boost" - echo "distribution and rerun configure using the --with-boost=DIR option." - echo "Alternatively, run with --without-boost to enable standalone build." - exit 1 - ],[]) -fi - -AC_ARG_WITH(openssl, - AC_HELP_STRING([--with-openssl=DIR],[location of openssl]), -[ - CPPFLAGS="$CPPFLAGS -I${withval}/include" - LIBS="$LIBS -L${withval}/lib" -],[]) - -AC_CHECK_HEADER([openssl/ssl.h],, -[ - OPENSSL_FOUND=no -],[]) - -if test x$OPENSSL_FOUND != xno; then - LIBS="$LIBS -lssl -lcrypto" -fi - -AM_CONDITIONAL(HAVE_OPENSSL,test x$OPENSSL_FOUND != xno) - -WINDOWS=no -case $host in - *-*-linux*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - LIBS="$LIBS -lrt" - ;; - *-*-solaris*) - if test "$GXX" = yes; then - CXXFLAGS="$CXXFLAGS -D_PTHREADS" - else - # We'll assume Sun's CC. - CXXFLAGS="$CXXFLAGS -mt" - fi - LIBS="$LIBS -lsocket -lnsl -lpthread" - ;; - *-*-mingw32*) - CXXFLAGS="$CXXFLAGS -mthreads" - LDFLAGS="$LDFLAGS -mthreads" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-*-mingw64*) - CXXFLAGS="$CXXFLAGS -mthreads" - LDFLAGS="$LDFLAGS -mthreads" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-pc-cygwin*) - CXXFLAGS="$CXXFLAGS -D__USE_W32_SOCKETS -D_WIN32_WINNT=0x0501" - LIBS="$LIBS -lws2_32 -lmswsock" - WINDOWS=yes - ;; - *-apple-darwin*) - CXXFLAGS="$CXXFLAGS" - LDFLAGS="$LDFLAGS" - ;; - *-*-freebsd*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - ;; - *-*-netbsd*) - CXXFLAGS="$CXXFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - ;; -esac - -if test "$GXX" = yes; then - CXXFLAGS="$CXXFLAGS -ftemplate-depth-256" -fi - -if test "$STANDALONE" = yes; then - CPPFLAGS="$CPPFLAGS -DASIO_STANDALONE" -fi - -if test "$SEPARATE_COMPILATION" = yes; then - CPPFLAGS="$CPPFLAGS -DASIO_SEPARATE_COMPILATION" -fi - -AC_MSG_CHECKING([whether C++11 is enabled]) -AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#if __cplusplus < 201103L]] - [[#error C++11 not available]] - [[#endif]])], - [AC_MSG_RESULT([yes]) - HAVE_CXX11=yes;], - [AC_MSG_RESULT([no]) - HAVE_CXX11=no;]) - -AC_MSG_CHECKING([whether C++14 is enabled]) -AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[#if __cplusplus < 201402L]] - [[#error C++14 not available]] - [[#endif]])], - [AC_MSG_RESULT([yes]) - HAVE_CXX14=yes;], - [AC_MSG_RESULT([no]) - HAVE_CXX14=no;]) - -if test "$GXX" = yes; then - if test "$STANDALONE" = yes; then - if test "$HAVE_CXX11" = no; then - HAVE_CXX11=yes - CPPFLAGS="-std=c++0x $CPPFLAGS" - fi - fi -fi - -AM_CONDITIONAL(STANDALONE,test x$STANDALONE = xyes) - -AM_CONDITIONAL(SEPARATE_COMPILATION,test x$SEPARATE_COMPILATION = xyes) - -AM_CONDITIONAL(HAVE_BOOST_COROUTINE,test x$HAVE_BOOST_COROUTINE = xyes) - -AM_CONDITIONAL(WINDOWS_TARGET,test x$WINDOWS != xno) - -AM_CONDITIONAL(HAVE_CXX11,test x$HAVE_CXX11 = xyes) - -AM_CONDITIONAL(HAVE_CXX14,test x$HAVE_CXX14 = xyes) - -AC_OUTPUT([ - Makefile - include/Makefile - src/Makefile - src/tests/Makefile - src/examples/cpp03/Makefile - src/examples/cpp11/Makefile - src/examples/cpp14/Makefile - src/examples/cpp17/Makefile]) diff --git a/Sources/Vendor/asio/depcomp b/Sources/Vendor/asio/depcomp deleted file mode 100755 index 65cbf70..0000000 --- a/Sources/Vendor/asio/depcomp +++ /dev/null @@ -1,791 +0,0 @@ -#! /bin/sh -# depcomp - compile a program generating dependencies as side-effects - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1999-2018 Free Software Foundation, Inc. - -# 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, 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 . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -case $1 in - '') - echo "$0: No command. Try '$0 --help' for more information." 1>&2 - exit 1; - ;; - -h | --h*) - cat <<\EOF -Usage: depcomp [--help] [--version] PROGRAM [ARGS] - -Run PROGRAMS ARGS to compile a file, generating dependencies -as side-effects. - -Environment variables: - depmode Dependency tracking mode. - source Source file read by 'PROGRAMS ARGS'. - object Object file output by 'PROGRAMS ARGS'. - DEPDIR directory where to store dependencies. - depfile Dependency file to output. - tmpdepfile Temporary file to use when outputting dependencies. - libtool Whether libtool is used (yes/no). - -Report bugs to . -EOF - exit $? - ;; - -v | --v*) - echo "depcomp $scriptversion" - exit $? - ;; -esac - -# Get the directory component of the given path, and save it in the -# global variables '$dir'. Note that this directory component will -# be either empty or ending with a '/' character. This is deliberate. -set_dir_from () -{ - case $1 in - */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; - *) dir=;; - esac -} - -# Get the suffix-stripped basename of the given path, and save it the -# global variable '$base'. -set_base_from () -{ - base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` -} - -# If no dependency file was actually created by the compiler invocation, -# we still have to create a dummy depfile, to avoid errors with the -# Makefile "include basename.Plo" scheme. -make_dummy_depfile () -{ - echo "#dummy" > "$depfile" -} - -# Factor out some common post-processing of the generated depfile. -# Requires the auxiliary global variable '$tmpdepfile' to be set. -aix_post_process_depfile () -{ - # If the compiler actually managed to produce a dependency file, - # post-process it. - if test -f "$tmpdepfile"; then - # Each line is of the form 'foo.o: dependency.h'. - # Do two passes, one to just change these to - # $object: dependency.h - # and one to simply output - # dependency.h: - # which is needed to avoid the deleted-header problem. - { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" - sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" - } > "$depfile" - rm -f "$tmpdepfile" - else - make_dummy_depfile - fi -} - -# A tabulation character. -tab=' ' -# A newline character. -nl=' -' -# Character ranges might be problematic outside the C locale. -# These definitions help. -upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ -lower=abcdefghijklmnopqrstuvwxyz -digits=0123456789 -alpha=${upper}${lower} - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi - -# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. -depfile=${depfile-`echo "$object" | - sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Avoid interferences from the environment. -gccflag= dashmflag= - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -cygpath_u="cygpath -u -f -" -if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvisualcpp -fi - -if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 -fi - -if test "$depmode" = xlc; then - # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. - gccflag=-qmakedep=gcc,-MF - depmode=gcc -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. -## Unfortunately, FreeBSD c89 acceptance of flags depends upon -## the command line argument order; so add the flags where they -## appear in depend2.am. Note that the slowdown incurred here -## affects only configure: in makefiles, %FASTDEP% shortcuts this. - for arg - do - case $arg in - -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; - *) set fnord "$@" "$arg" ;; - esac - shift # fnord - shift # $arg - done - "$@" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. -## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. -## (see the conditional assignment to $gccflag above). -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). Also, it might not be -## supported by the other compilers which use the 'gcc' depmode. -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The second -e expression handles DOS-style file names with drive - # letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the "deleted header file" problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. -## Some versions of gcc put a space before the ':'. On the theory -## that the space means something, we add a space to the output as -## well. hp depmode also adds that space, but also prefixes the VPATH -## to the object. Take care to not repeat it in the output. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like '#:fec' to the end of the - # dependency line. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ - | tr "$nl" ' ' >> "$depfile" - echo >> "$depfile" - # The second pass generates a dummy entry for each header file. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" - ;; - -xlc) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts '$object:' at the - # start of each line; $object doesn't have directory information. - # Version 6 uses the directory in both cases. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.u - tmpdepfile2=$base.u - tmpdepfile3=$dir.libs/$base.u - "$@" -Wc,-M - else - tmpdepfile1=$dir$base.u - tmpdepfile2=$dir$base.u - tmpdepfile3=$dir$base.u - "$@" -M - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - aix_post_process_depfile - ;; - -tcc) - # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 - # FIXME: That version still under development at the moment of writing. - # Make that this statement remains true also for stable, released - # versions. - # It will wrap lines (doesn't matter whether long or short) with a - # trailing '\', as in: - # - # foo.o : \ - # foo.c \ - # foo.h \ - # - # It will put a trailing '\' even on the last line, and will use leading - # spaces rather than leading tabs (at least since its commit 0394caf7 - # "Emit spaces for -MD"). - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. - # We have to change lines of the first kind to '$object: \'. - sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" - # And for each line of the second kind, we have to emit a 'dep.h:' - # dummy dependency, to avoid the deleted-header problem. - sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" - rm -f "$tmpdepfile" - ;; - -## The order of this option in the case statement is important, since the -## shell code in configure will try each of these formats in the order -## listed in this file. A plain '-MD' option would be understood by many -## compilers, so we must ensure this comes after the gcc and icc options. -pgcc) - # Portland's C compiler understands '-MD'. - # Will always output deps to 'file.d' where file is the root name of the - # source file under compilation, even if file resides in a subdirectory. - # The object file name does not affect the name of the '.d' file. - # pgcc 10.2 will output - # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using '\' : - # foo.o: sub/foo.c ... \ - # sub/foo.h ... \ - # ... - set_dir_from "$object" - # Use the source, not the object, to determine the base name, since - # that's sadly what pgcc will do too. - set_base_from "$source" - tmpdepfile=$base.d - - # For projects that build the same source file twice into different object - # files, the pgcc approach of using the *source* file root name can cause - # problems in parallel builds. Use a locking strategy to avoid stomping on - # the same $tmpdepfile. - lockdir=$base.d-lock - trap " - echo '$0: caught signal, cleaning up...' >&2 - rmdir '$lockdir' - exit 1 - " 1 2 13 15 - numtries=100 - i=$numtries - while test $i -gt 0; do - # mkdir is a portable test-and-set. - if mkdir "$lockdir" 2>/dev/null; then - # This process acquired the lock. - "$@" -MD - stat=$? - # Release the lock. - rmdir "$lockdir" - break - else - # If the lock is being held by a different process, wait - # until the winning process is done or we timeout. - while test -d "$lockdir" && test $i -gt 0; do - sleep 1 - i=`expr $i - 1` - done - fi - i=`expr $i - 1` - done - trap - 1 2 13 15 - if test $i -le 0; then - echo "$0: failed to acquire lock after $numtries attempts" >&2 - echo "$0: check lockdir '$lockdir'" >&2 - exit 1 - fi - - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp2) - # The "hp" stanza above does not work with aCC (C++) and HP's ia64 - # compilers, which have integrated preprocessors. The correct option - # to use with these is +Maked; it writes dependencies to a file named - # 'foo.d', which lands next to the object file, wherever that - # happens to be. - # Much of this is similar to the tru64 case; see comments there. - set_dir_from "$object" - set_base_from "$object" - if test "$libtool" = yes; then - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir.libs/$base.d - "$@" -Wc,+Maked - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - "$@" +Maked - fi - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" - # Add 'dependent.h:' lines. - sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" - else - make_dummy_depfile - fi - rm -f "$tmpdepfile" "$tmpdepfile2" - ;; - -tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in 'foo.d' instead, so we check for that too. - # Subdirectories are respected. - set_dir_from "$object" - set_base_from "$object" - - if test "$libtool" = yes; then - # Libtool generates 2 separate objects for the 2 libraries. These - # two compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir$base.o.d # libtool 1.5 - tmpdepfile2=$dir.libs/$base.o.d # Likewise. - tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -ne 0; then - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" - do - test -f "$tmpdepfile" && break - done - # Same post-processing that is required for AIX mode. - aix_post_process_depfile - ;; - -msvc7) - if test "$libtool" = yes; then - showIncludes=-Wc,-showIncludes - else - showIncludes=-showIncludes - fi - "$@" $showIncludes > "$tmpdepfile" - stat=$? - grep -v '^Note: including file: ' "$tmpdepfile" - if test $stat -ne 0; then - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The first sed program below extracts the file names and escapes - # backslashes for cygpath. The second sed program outputs the file - # name when reading, but also accumulates all include files in the - # hold buffer in order to output them again at the end. This only - # works with sed implementations that can handle large buffers. - sed < "$tmpdepfile" -n ' -/^Note: including file: *\(.*\)/ { - s//\1/ - s/\\/\\\\/g - p -}' | $cygpath_u | sort -u | sed -n ' -s/ /\\ /g -s/\(.*\)/'"$tab"'\1 \\/p -s/.\(.*\) \\/\1:/ -H -$ { - s/.*/'"$tab"'/ - G - p -}' >> "$depfile" - echo >> "$depfile" # make sure the fragment doesn't end with a backslash - rm -f "$tmpdepfile" - ;; - -msvc7msys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout, regardless of -o. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for ':' - # in the target name. This is to cope with DOS-style filenames: - # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. - "$@" $dashmflag | - sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this sed invocation - # correctly. Breaking it into two sed invocations is a workaround. - tr ' ' "$nl" < "$tmpdepfile" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - "$@" || exit $? - # Remove any Libtool call - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - # X makedepend - shift - cleared=no eat=no - for arg - do - case $cleared in - no) - set ""; shift - cleared=yes ;; - esac - if test $eat = yes; then - eat=no - continue - fi - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift ;; - # Strip any option that makedepend may not understand. Remove - # the object too, otherwise makedepend will parse it as a source file. - -arch) - eat=yes ;; - -*|$object) - ;; - *) - set fnord "$@" "$arg"; shift ;; - esac - done - obj_suffix=`echo "$object" | sed 's/^.*\././'` - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" - rm -f "$depfile" - # makedepend may prepend the VPATH from the source file name to the object. - # No need to regex-escape $object, excess matching of '.' is harmless. - sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process the last invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed '1,2d' "$tmpdepfile" \ - | tr ' ' "$nl" \ - | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - # Remove '-o $object'. - IFS=" " - for arg - do - case $arg in - -o) - shift - ;; - $object) - shift - ;; - *) - set fnord "$@" "$arg" - shift # fnord - shift # $arg - ;; - esac - done - - "$@" -E \ - | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - | sed '$ s: \\$::' > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the preprocessed file to stdout. - "$@" || exit $? - - # Remove the call to Libtool. - if test "$libtool" = yes; then - while test "X$1" != 'X--mode=compile'; do - shift - done - shift - fi - - IFS=" " - for arg - do - case "$arg" in - -o) - shift - ;; - $object) - shift - ;; - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E 2>/dev/null | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" - rm -f "$depfile" - echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" - echo "$tab" >> "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvcmsys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/Sources/Vendor/asio/doc/asio.png b/Sources/Vendor/asio/doc/asio.png deleted file mode 100644 index c05fd3a..0000000 Binary files a/Sources/Vendor/asio/doc/asio.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/asio/examples.html b/Sources/Vendor/asio/doc/asio/examples.html deleted file mode 100644 index 4d977f8..0000000 --- a/Sources/Vendor/asio/doc/asio/examples.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -Examples - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
    -
  • - C++03 Examples: Illustrates - the use of Asio using only C++03 language and library features. Where necessary, - the examples make use of selected Boost C++ libraries. -
  • -
  • - C++11 Examples: Contains - a limited set of the C++03 Asio examples, updated to use only C++11 library - and language facilities. These examples do not make direct use of Boost - C++ libraries. To show the changes between C++03 and C++11, these examples - include a diff between the C++03 and C++11 versions. -
  • -
  • - C++17 Examples: Selected - examples illustrating C++17 usage in conjunction with Technical Specifications. -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/examples/cpp03_examples.html b/Sources/Vendor/asio/doc/asio/examples/cpp03_examples.html deleted file mode 100644 index a116772..0000000 --- a/Sources/Vendor/asio/doc/asio/examples/cpp03_examples.html +++ /dev/null @@ -1,635 +0,0 @@ - - - -C++03 Examples - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - Allocation -
-

- This example shows how to customise the allocation of memory associated with - asynchronous operations. -

- -
- - Buffers -
-

- This example demonstrates how to create reference counted buffers that can - be used with socket read and write operations. -

- -
- - Chat -
-

- This example implements a chat server and client. The programs use a custom - protocol with a fixed length message header and variable length message body. -

- -

- The following POSIX-specific chat client demonstrates how to use the posix::stream_descriptor - class to perform console input and output. -

- -
- - Echo -
-

- A collection of simple clients and servers, showing the use of both synchronous - and asynchronous operations. -

- -
- - Fork -
-

- These POSIX-specific examples show how to use Asio in conjunction with the - fork() system call. The first example illustrates the steps - required to start a daemon process: -

- -

- The second example demonstrates how it is possible to fork a process from - within a completion handler. -

- -
- - HTTP - Client -
-

- Example programs implementing simple HTTP 1.0 clients. These examples show - how to use the read_until - and async_read_until - functions. -

- -
- - HTTP - Server -
-

- This example illustrates the use of asio in a simple single-threaded server - implementation of HTTP 1.0. It demonstrates how to perform a clean shutdown - by cancelling all outstanding asynchronous operations. -

- -
- - HTTP - Server 2 -
-

- An HTTP server using an io_context-per-CPU design. -

- -
- - HTTP - Server 3 -
-

- An HTTP server using a single io_context and a thread pool calling io_context::run(). -

- -
- - HTTP - Server 4 -
-

- A single-threaded HTTP server implemented using stackless coroutines. -

- -
- - ICMP -
-

- This example shows how to use raw sockets with ICMP to ping a remote host. -

- -
- - Invocation -
-

- This example shows how to customise handler invocation. Completion handlers - are added to a priority queue rather than executed immediately. -

- -
- - Iostreams -
-

- Two examples showing how to use ip::tcp::iostream. -

- -
- - Multicast -
-

- An example showing the use of multicast to transmit packets to a group of - subscribers. -

- -
- - Serialization -
-

- This example shows how Boost.Serialization can be used with asio to encode - and decode structures for transmission over a socket. -

- -
- - Services -
-

- This example demonstrates how to integrate custom functionality (in this - case, for logging) into asio's io_context, - and how to use a custom service with basic_stream_socket<>. -

- -
- - SOCKS - 4 -
-

- Example client program implementing the SOCKS 4 protocol for communication - via a proxy. -

- -
- - SSL -
-

- Example client and server programs showing the use of the ssl::stream<> - template with asynchronous operations. -

- -
- - Timeouts -
-

- A collection of examples showing how to cancel long running asynchronous - operations after a period of time. -

- -
- - Timers -
-

- Example showing how to customise basic_waitable_timer using a different clock - type. -

- -
- - Porthopper -
-

- Example illustrating mixed synchronous and asynchronous operations, and how - to use Boost.Lambda with Asio. -

- -
- - Nonblocking -
-

- Example demonstrating reactor-style operations for integrating a third-party - library that wants to perform the I/O operations itself. -

- -
- - Spawn -
-

- Example of using the asio::spawn() function, a wrapper around the Boost.Coroutine - library, to implement a chain of asynchronous operations using stackful coroutines. -

- -
- - UNIX - Domain Sockets -
-

- Examples showing how to use UNIX domain (local) sockets. -

- -
- - Windows -
-

- An example showing how to use the Windows-specific function TransmitFile - with Asio. -

- -
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/examples/cpp11_examples.html b/Sources/Vendor/asio/doc/asio/examples/cpp11_examples.html deleted file mode 100644 index e04eb46..0000000 --- a/Sources/Vendor/asio/doc/asio/examples/cpp11_examples.html +++ /dev/null @@ -1,434 +0,0 @@ - - - -C++11 Examples - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - Allocation -
-

- This example shows how to customise the allocation of memory associated with - asynchronous operations. -

- -
- - Buffers -
-

- This example demonstrates how to create reference counted buffers that can - be used with socket read and write operations. -

- -
- - Chat -
-

- This example implements a chat server and client. The programs use a custom - protocol with a fixed length message header and variable length message body. -

- -
- - Echo -
-

- A collection of simple clients and servers, showing the use of both synchronous - and asynchronous operations. -

- -
- - Fork -
-

- These POSIX-specific examples show how to use Asio in conjunction with the - fork() system call. The first example illustrates the steps - required to start a daemon process: -

- -

- The second example demonstrates how it is possible to fork a process from - within a completion handler. -

- -
- - Futures -
-

- This example demonstrates how to use std::future in conjunction with Asio's - asynchronous operations. -

- -
- - Handler - Tracking -
-

- This example shows how to implement custom handler tracking. -

- -
- - HTTP - Server -
-

- This example illustrates the use of asio in a simple single-threaded server - implementation of HTTP 1.0. It demonstrates how to perform a clean shutdown - by cancelling all outstanding asynchronous operations. -

- -
- - Multicast -
-

- An example showing the use of multicast to transmit packets to a group of - subscribers. -

- -
- - Nonblocking -
-

- Example demonstrating reactor-style operations for integrating a third-party - library that wants to perform the I/O operations itself. -

- -
- - Operations -
-

- Examples showing how to implement composed asynchronous operations as reusable - library functions. -

- -
- - SOCKS - 4 -
-

- Example client program implementing the SOCKS 4 protocol for communication - via a proxy. -

- -
- - Spawn -
-

- Example of using the asio::spawn() function, a wrapper around the Boost.Coroutine - library, to implement a chain of asynchronous operations using stackful coroutines. -

- -
- - SSL -
-

- Example client and server programs showing the use of the ssl::stream<> - template with asynchronous operations. -

- -
- - Timeouts -
-

- A collection of examples showing how to cancel long running asynchronous - operations after a period of time. -

- -
- - Timers -
-

- Example showing how to customise basic_waitable_timer using a different clock - type. -

- -
- - UNIX - Domain Sockets -
-

- Examples showing how to use UNIX domain (local) sockets. -

- -
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/examples/cpp17_examples.html b/Sources/Vendor/asio/doc/asio/examples/cpp17_examples.html deleted file mode 100644 index 262da2a..0000000 --- a/Sources/Vendor/asio/doc/asio/examples/cpp17_examples.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -C++17 Examples - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/history.html b/Sources/Vendor/asio/doc/asio/history.html deleted file mode 100644 index c8b5d33..0000000 --- a/Sources/Vendor/asio/doc/asio/history.html +++ /dev/null @@ -1,2058 +0,0 @@ - - - -Revision History - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - Asio - 1.12.2 -

-
    -
  • - Fixed a problem with the detection of std::future availability - with libstdc++. -
  • -
  • - Fixed compile error in regex overload of read_until. -
  • -
  • - Fixed a timer heap corruption issue that can occur when moving a cancelled - timer. -
  • -
  • - Fixed detection of std::experimental::string_view and std::string_view - with newer clang/libc++. -
  • -
  • - Fixed MSVC version detection for availability of std::invoke_result. -
  • -
  • - Fixed the buffer sequence traits to test the new requirements, if decltype - is available. -
  • -
  • - Fixed an MSVC issue when building with exceptions disabled. -
  • -
  • - Added SSL context options for TLS v1.3. -
  • -
  • - Added a compile-time test for TLS v1 support. -
  • -
  • - Fixed the macro used to test for TLS v1.2 support. -
  • -
  • - Prevented global objects from being created once per thread on Windows. -
  • -
  • - Fixed a crash when using size(), max_size() or - empty() on default-constructed resolver results. -
  • -
  • - Changed to move the return value in basic_resolver_results::begin() to - avoid copying. -
  • -
  • - Enabled move support for the Intel Compiler. -
  • -
  • - Fixed std::string_view detection issue when using clang-cl. -
  • -
  • - Fixed the handler tracking operation name for io_context::executor_type::dispatch. -
  • -
  • - Fixed a buffer overflow that could occur when parsing an address string - with a 64-bit scope id. -
  • -
  • - Added examples showing how to write composed operations. -
  • -
  • - Added C++11 versions of the Timeouts, Timers, SOCKS4 and SSL examples. -
  • -
  • - Fixed minor issues in documentation and examples. -
  • -
-

- - Asio - 1.12.1 -

-
    -
  • - Added missing const qualifier to basic_socket_acceptor::get_option. -
  • -
  • - Worked around a parsing error that occurs with some versions of gcc. -
  • -
  • - Fixed broken code samples in tutorial. -
  • -
  • - Added new experimental features. (Note that "experimental" features - may be changed without notice in subsequent releases.) -
      -
    • - Added experimental::detached completion token. -
    • -
    • - Added experimental::redirect_error completion token. -
    • -
    • - Added experimental::co_spawn facility for integration - with the coroutines technical specification. -
    • -
    -
  • -
  • - Updated timeout examples to use latest features. -
      -
    • - Used asio::steady_timer rather than asio::deadline_timer. -
    • -
    • - Used asio::dynamic_buffer rather than asio::streambuf. -
    • -
    • - Used timed asio::io_context::run_for() function for - blocking clients. -
    • -
    • - Added example showing a custom completion token for blocking with - timeouts. -
    • -
    -
  • -
  • - Fixed unit tests to compile when (BOOST_)ASIO_NO_DEPRECATED - is defined. -
  • -
  • - Changed socket iostreams to use chrono by default, to fix compatibility - with the Networking TS. Define (BOOST_)ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM - to enable the old Boost.Date_Time interface in basic_socket_streambuf - and basic_socket_iostream. -
  • -
  • - Updated examples to use chrono rather than Boost.Date_Time. -
  • -
  • - Fixed an incorrect member function detector in the is_dynamic_buffer - trait. -
  • -
  • - Fixed an async_result incompatibility with deprecated handler_type. -
  • -
  • - Added a missing move optimisation in the SSL stream implementation. -
  • -
  • - Fixed incorrect basic_resolver_results::value_type typedef. -
  • -
  • - Fixed a compile error with some OpenSSL versions when SSL_OP_NO_COMPRESSION - is defined. -
  • -
  • - Changed add_certificate_authority to process multiple certificates - in a bundle. -
  • -
  • - Eliminated deprecation warning with MSVC by using std::invoke_result - rather than std::result_of. -
  • -
  • - Changed to use std::string_view for C++17 or later, and std::experimental::string_view - for C++14. Define the preprocessor macro (BOOST_)ASIO_DISABLE_STD_STRING_VIEW - to force the use of std::experimental::string_view (assuming it is available) - when compiling in C++17 mode. -
  • -
  • - Ensured DynamicBuffer template arguments are decayed before - using in enable_if tests. -
  • -
  • - Changed documentation to distinguish legacy completion handlers (which - are still required to be CopyConstructible) from new MoveConstructible - handlers. -
  • -
  • - Suppressed a discarded return value warning in the buffer debugging support. -
  • -
  • - Fixed basic_yield_context to work with completion signatures - containing reference parameters. -
  • -
  • - Ensured that stackful coroutines launched using spawn() correctly - store decayed copies of their function and handler arguments. -
  • -
  • - Fixed some compatibility issues with Android. -
  • -
  • - Fixed some minor portability issues in examples. -
  • -
-

- - Asio - 1.12.0 -

-
    -
  • - Completed the interface changes to reflect the Networking TS (N4656). -
      -
    • - See the list of new interfaces - and, where applicable, the corresponding old interfaces that have - been superseded. -
    • -
    • - The service template parameters, and the corresponding classes, are - disabled by default. For example, instead of basic_socket<Protocol, - SocketService> we now have simply basic_socket<Protocol>. - The old interface can be enabled by defining the (BOOST_)ASIO_ENABLE_OLD_SERVICES - macro. -
    • -
    -
  • -
  • - Added support for customised handler tracking. -
  • -
  • - Added reactor-related (i.e. descriptor readiness) events to handler tracking. -
  • -
  • - Added special concurrency - hint values that may be used to disable locking on a per io_context - basis. -
  • -
  • - Enabled perfect forwarding for the first ssl::stream<> - constructor argument. -
  • -
  • - Added ability to release ownership of the underlying native socket. (Requires - Windows 8.1 or later when using the I/O completion port backend.) -
  • -
-

- - Asio - 1.11.0 -

-
    -
  • - Implemented changes to substantially reflect the Networking Library Proposal - (N4370). -
      -
    • - New Executor type requirements and classes to support - an executor framework, including the execution_context - base class, the executor_work class for tracking outstanding - work, and the executor polymorphic wrapper. Free functions - dispatch(), post() and defer() - have been added and are used to submit function objects to executors. -
    • -
    • - Completion handlers now have an associated executor and associated - allocator. The free function wrap() is used to associate - an executor with a handler or other object. The handler hooks for - allocation, invocation and continuation have been deprecated. -
    • -
    • - A system_executor class has been added as a default - executor. -
    • -
    • - The io_service class is now derived from execution_context - and implements the executor type requirements in its nested executor_type - class. The member functions dispatch(), post(), - defer() and wrap() have been deprecated. - The io_service::work class has been deprecated. -
    • -
    • - The io_service member function reset() - has been renamed to restart(). The old name is retained - for backward compatibility but has been deprecated. -
    • -
    • - The make_service<>() function is now used to add - a new service to an execution context such as an io_service. - The add_service() function has been deprecated. -
    • -
    • - A new strand<> template has been added to allow - strand functionality to be used with generic executor types. -
    • -
    • - I/O objects (such as sockets and timers) now provide access to their - associated io_service via a context() member - function. The get_io_service() member function is deprecated. -
    • -
    • - All asynchronous operations and executor operations now support move-only - handlers. However, the deprecated io_service::post(), - io_service::dispatch(), io_service::strand::post() - and io_service::strand::dispatch() functions still require - copyable handlers. -
    • -
    • - Waitable timer objects are now movable. -
    • -
    • - Waitable timers, socket iostreams and socket streambufs now provide - an expiry() member function for obtaining the expiry - time. The accessors expires_at() and expires_after() - have been deprecated, though those names are retained for the mutating - members. -
    • -
    • - The std::packaged_task class template is now supported - as a completion handler. The initiating operation automatically returns - the future associated with the task. The package() function - has been added as a convenient factory for packaged tasks. -
    • -
    • - Sockets, socket acceptors and descriptors now provide wait() - and async_wait() operations that may be used to wait - for readiness. The null_buffers type has been deprecated. -
    • -
    • - The proposed error code enum classes are simulated using namespaces. - Existing asio error codes now have a correspondence with the standard - error conditions. -
    • -
    • - Conversion between IP address types, and conversion from string to - address, is now supported via the address_cast<>(), - make_address(), make_address_v4() and - make_address_v6() free functions. The from_string(), - to_v4(), to_v6() and v4_mapped() - member functions have been deprecated. -
    • -
    • - A default-constructed ip::address now represents an - invalid address value that is neither IPv4 nor IPv6. -
    • -
    • - New buffer() overloads that generate mutable buffers - for non-const string objects. -
    • -
    • - Support for dynamic buffer sequences that automatically grow and - shrink to accomodate data as it is read or written. This is a generic - facility similar to the existing asio::streambuf class. - This support includes: -
        -
      • - New dynamic_string_buffer and dynamic_vector_buffer - adapter classes that meet the DynamicBufferSequence - type requirements. -
      • -
      • - New dynamic_buffer() factory functions for creating - a dynamic buffer adapter for a vector or string. -
      • -
      • - New overloads for the read(), async_read(), - write() and async_write(), read_until() - and async_read_until() free functions that directly - support dynamic buffer sequences. -
      • -
      -
    • -
    • - Support for networks and address ranges. Thanks go to Oliver Kowalke - for contributing to the design and providing the implementation on - which this facility is based. The following new classes have been - added: -
        -
      • - address_iterator_v4 for iterating across IPv4 - addresses -
      • -
      • - address_iterator_v6 for iterating across IPv6 - addresses -
      • -
      • - address_range_v4 to represent a range of IPv4 - addresses -
      • -
      • - address_range_v6 to represent a range of IPv6 - addresses -
      • -
      • - network_v4 for manipulating IPv4 CIDR addresses, - e.g. 1.2.3.0/24 -
      • -
      • - network_v6 for manipulating IPv6 CIDR addresses, - e.g. ffe0:/120 -
      • -
      -
    • -
    • - New convenience headers in <asio/ts/*.hpp> - that correspond to the headers in the proposal. -
    • -
    -
  • -
  • - Added a new, executor-aware thread_pool class. -
  • -
  • - Changed spawn() to be executor-aware. -
  • -
  • - Added a new spawn() overload that takes only a function object. -
  • -
  • - Changed spawn() and yield_context to permit nested - calls to the completion handler. -
  • -
  • - Removed previously deprecated functions. -
  • -
  • - Added options for disabling TLS v1.1 and v1.2. -
  • -
  • - Changed the SSL wrapper to call the password callback when loading an in-memory - key. -
  • -
  • - Changed the tutorial to use std::endl to ensure output is - flushed. -
  • -
  • - Fixed false SSL error reports by ensuring that the SSL error queue is cleared - prior to each operation. -
  • -
  • - Fixed an ssl::stream<> bug that may result in spurious - 'short read' errors. -
  • -
  • - Enabled perfect forwarding for the first ssl::stream<> - constructor argument. -
  • -
  • - Added standalone Asio support for Clang when used with libstdc++ and C++11. -
  • -
  • - Fixed an unsigned integer overflow reported by Clang's integer sanitizer. -
  • -
  • - Added support for move-only return types when using a yield_context - object with asynchronous operations. -
  • -
  • - Ensured errors generated by Windows' ConnectEx function are - mapped to their portable equivalents. -
  • -
  • - Changed multicast test to treat certain join_group failures - as non-fatal. -
  • -
-

- - Asio - 1.10.5 -

-
    -
  • - Fixed the kqueue reactor so that it works on FreeBSD. -
  • -
  • - Fixed an issue in the kqueue reactor which resulted - in spinning when using serial ports on Mac OS. -
  • -
  • - Fixed kqueue reactor support for read-only file descriptors. -
  • -
  • - Fixed a compile error when using the /dev/poll reactor. -
  • -
  • - Changed the Windows backend to use WSASocketW, as WSASocketA - has been deprecated. -
  • -
  • - Fixed some warnings reported by Visual C++ 2013. -
  • -
  • - Fixed integer type used in the WinRT version of the byte-order conversion - functions. -
  • -
  • - Changed documentation to indicate that use_future and spawn() - are not made available when including the asio.hpp convenience - header. -
  • -
  • - Explicitly marked asio::strand as deprecated. Use asio::io_service::strand - instead. -
  • -
-

- - Asio - 1.10.4 -

-
    -
  • - Stopped using certain Winsock functions that are marked as deprecated in - the latest Visual C++ and Windows SDK. -
  • -
  • - Fixed a shadow variable warning on Windows. -
  • -
  • - Fixed a regression in the kqueue backend that was introduced - in Asio 1.10.2. -
  • -
  • - Added a workaround for building the unit tests with gcc - on AIX. -
  • -
-

- - Asio - 1.10.3 -

-
    -
  • - Worked around a gcc problem to do with anonymous enums. -
  • -
  • - Reverted the Windows HANDLE backend change to ignore ERROR_MORE_DATA. - Instead, the error will be propagated as with any other (i.e. in an error_code - or thrown as a system_error), and the number of bytes transferred - will be returned. For code that needs to handle partial messages, the - error_code overload should be used. -
  • -
  • - Fixed an off-by-one error in the signal_set implementation's - signal number check. -
  • -
  • - Changed the Windows IOCP backend to not assume that SO_UPDATE_CONNECT_CONTEXT - is defined. -
  • -
  • - Fixed a Windows-specific issue, introduced in Asio 1.10.2, by using VerifyVersionInfo - rather than GetVersionEx, as GetVersionEx has - been deprecated. -
  • -
  • - Changed to use SSE2 intrinsics rather than inline assembly, to allow the - Cray compiler to work. -
  • -
-

- - Asio - 1.10.2 -

-
    -
  • - Fixed asio::spawn() to work correctly with new Boost.Coroutine - interface. -
  • -
  • - Ensured that incomplete asio::spawn() coroutines are correctly - unwound when cleaned up by the io_service destructor. -
  • -
  • - Fixed delegation of continuation hook for handlers produced by io_service::wrap() - and strand::wrap(). -
  • -
  • - Changed the Windows I/O completion port backend to use ConnectEx, - if available, for connection-oriented IP sockets. -
  • -
  • - Changed the io_service backend for non-Windows (and non-IOCP - Windows) platforms to use a single condition variable per io_service - instance. This addresses a potential race condition when run_one() - is used from multiple threads. -
  • -
  • - Prevented integer overflow when computing timeouts based on some boost::chrono - and std::chrono clocks. -
  • -
  • - Made further changes to EV_CLEAR handling in the kqueue backend, - to address other cases where the close() system call may hang - on Mac OS X. -
  • -
  • - Fixed infinite recursion in implementation of resolver_query_base::flags::operator~. -
  • -
  • - Made the select reactor more efficient on Windows for large - numbers of sockets. -
  • -
  • - Fixed a Windows-specific type-aliasing issue reported by gcc. -
  • -
  • - Prevented execution of compile-time-only buffer test to avoid triggering - an address sanitiser warning. -
  • -
  • - Disabled the GetQueuedCompletionStatus timeout workaround - on recent versions of Windows. -
  • -
  • - Changed implementation for Windows Runtime to use FormatMessageW - rather than FormatMessageA, as the Windows store does not - permit the latter. -
  • -
  • - Added support for string-based scope IDs when using link-local multicast - addresses. -
  • -
  • - Changed IPv6 multicast group join to use the address's scope ID as the - interface, if an interface is not explicitly specified. -
  • -
  • - Fixed multicast test failure on Mac OS X and the BSDs by using a link-local - multicast address. -
  • -
  • - Various minor documentation improvements. -
  • -
-

- - Asio - 1.10.1 -

-
    -
  • - Implemented a limited port to Windows Runtime. This support requires that - the language extensions be enabled. Due to the restricted facilities exposed - by the Windows Runtime API, the port also comes with the following caveats: -
      -
    • - The core facilities such as the io_service, strand, - buffers, composed operations, timers, etc., should all work as normal. -
    • -
    • - For sockets, only client-side TCP is supported. -
    • -
    • - Explicit binding of a client-side TCP socket is not supported. -
    • -
    • - The cancel() function is not supported for sockets. - Asynchronous operations may only be cancelled by closing the socket. -
    • -
    • - Operations that use null_buffers are not supported. -
    • -
    • - Only tcp::no_delay and socket_base::keep_alive - options are supported. -
    • -
    • - Resolvers do not support service names, only numbers. I.e. you must - use "80" rather than "http". -
    • -
    • - Most resolver query flags have no effect. -
    • -
    -
  • -
  • - Extended the ability to use Asio without Boost to include Microsoft Visual - Studio 2012. When using a C++11 compiler, most of Asio may now be used - without a dependency on Boost header files or libraries. To use Asio in - this way, define ASIO_STANDALONE on your compiler command - line or as part of the project options. This standalone configuration has - been tested for the following platforms and compilers: -
      -
    • - Microsoft Visual Studio 2012 -
    • -
    • - Linux with g++ 4.7 or 4.8 (requires -std=c++11) -
    • -
    • - Mac OS X with clang++ / Xcode 4.6 (requires -std=c++11 -stdlib=libc++) -
    • -
    -
  • -
  • - Fixed a regression (introduced in 1.10.0) where, on some platforms, errors - from async_connect were not correctly propagated through to - the completion handler. -
  • -
  • - Fixed a Windows-specific regression (introduced in 1.10.0) that occurs - when multiple threads are running an io_service. When the - bug occurs, the result of an asynchronous operation (error and bytes tranferred) - is incorrectly discarded and zero values used instead. For TCP sockets - this results in spurious end-of-file notifications. -
  • -
  • - Fixed a bug in handler tracking, where it was not correctly printing out - some handler IDs. -
  • -
  • - Fixed the comparison used to test for successful synchronous accept operations - so that it works correctly with unsigned socket descriptors. -
  • -
  • - Ensured the signal number is correctly passed to the completion handler - when starting an async_wait on a signal that is already raised. -
  • -
  • - Suppressed a g++ 4.8+ warning about unused typedefs. -
  • -
  • - Enabled the move optimisation for handlers that use the default invocation - hook. -
  • -
  • - Clarified that programs must not issue overlapping async_write_at - operations. -
  • -
  • - Changed the Windows HANDLE backend to treat ERROR_MORE_DATA - as a non-fatal error when returned by GetOverlappedResult - for a synchronous read. -
  • -
  • - Visual C++ language extensions use generic as a keyword. Added - a workaround that renames the namespace to cpp_generic when - those language extensions are in effect. -
  • -
  • - Fixed some asynchronous operations that missed out on getting async_result - support in 1.10.0. In particular, the buffered stream templates have been - updated so that they adhere to current handler patterns. -
  • -
  • - Enabled move support for Microsoft Visual Studio 2012. -
  • -
  • - Added use_future support for Microsoft Visual Studio 2012. -
  • -
  • - Removed a use of std::min in the Windows IOCP backend to avoid - a dependency on the <algorithm> header. -
  • -
  • - Eliminated some unnecessary handler copies. -
  • -
  • - Fixed support for older versions of OpenSSL that do not provide the SSL_CTX_clear_options - function. -
  • -
  • - Fixed various minor and cosmetic issues in code and documentation. -
  • -
-

- - Asio - 1.10.0 -

-
    -
  • - Added new traits classes, handler_type and async_result, - that allow the customisation of the return type of an initiating function. -
  • -
  • - Added the asio::spawn() function, a high-level wrapper for - running stackful coroutines, based on the Boost.Coroutine library. The - spawn() function enables programs to implement asynchronous - logic in a synchronous manner. For example: size_t n = my_socket.async_read_some(my_buffer, - yield);. For further information, see Stackful - Coroutines. -
  • -
  • - Added the asio::use_future special value, which provides first-class - support for returning a C++11 std::future from an asynchronous - operation's initiating function. For example: future<size_t> - = my_socket.async_read_some(my_buffer, asio::use_future);. For further - information, see C++ 2011 - Support - Futures. -
  • -
  • - Promoted the stackless coroutine class and macros to be part of Asio's - documented interface, rather than part of the HTTP server 4 example. For - further information, see Stackless - Coroutines. -
  • -
  • - Added a new handler hook called asio_handler_is_continuation. - Asynchronous operations may represent a continuation of the asynchronous - control flow associated with the current executing handler. The asio_handler_is_continuation - hook can be customised to return true if this is the case, - and Asio's implementation can use this knowledge to optimise scheduling - of the new handler. To cover common cases, Asio customises the hook for - strands, spawn() and composed asynchronous operations. -
  • -
  • - Added four new generic protocol classes, generic::datagram_protocol, - generic::raw_protocol, generic::seq_packet_protocol - and generic::stream_protocol, which implement the Protocol - type requirements, but allow the user to specify the address family (e.g. - AF_INET) and protocol type (e.g. IPPROTO_TCP) - at runtime. For further information, see Support - for Other Protocols. -
  • -
  • - Added C++11 move constructors that allow the conversion of a socket (or - acceptor) into a more generic type. For example, an ip::tcp::socket - can be converted into a generic::stream_protocol::socket via - move construction. For further information, see Support - for Other Protocols. -
  • -
  • - Extended the basic_socket_acceptor<>'s accept() - and async_accept() functions to allow a new connection to - be accepted directly into a socket of a more generic type. For example, - an ip::tcp::acceptor can be used to accept into a generic::stream_protocol::socket - object. For further information, see Support - for Other Protocols. -
  • -
  • - Moved existing examples into a C++03-specific directory, and added a new - directory for C++11-specific examples. A limited subset of the C++03 examples - have been converted to their C++11 equivalents. -
  • -
  • - Add the ability to use Asio without Boost, for a limited set of platforms. - When using a C++11 compiler, most of Asio may now be used without a dependency - on Boost header files or libraries. To use Asio in this way, define ASIO_STANDALONE - on your compiler command line or as part of the project options. This standalone - configuration has currently been tested for the following platforms and - compilers: -
      -
    • - Linux with g++ 4.7 (requires -std=c++11) -
    • -
    • - Mac OS X with clang++ / Xcode 4.6 (requires -std=c++11 -stdlib=libc++) -
    • -
    -
  • -
  • - Various SSL enhancements. Thanks go to Nick Jones, on whose work these - changes are based. -
      -
    • - Added support for SSL handshakes with re-use of data already read - from the wire. New overloads of the ssl::stream<> - class's handshake() and async_handshake() - functions have been added. These accept a ConstBufferSequence - to be used as initial input to the ssl engine for the handshake procedure. -
    • -
    • - Added support for creation of TLSv1.1 and TLSv1.2 ssl::context - objects. -
    • -
    • - Added a set_verify_depth() function to the ssl::context - and ssl::stream<> classes. -
    • -
    • - Added the ability to load SSL certificate and key data from memory - buffers. New functions, add_certificate_authority(), - use_certificate(), use_certificate_chain(), - use_private_key(), use_rsa_private_key() - and use_tmp_dh(), have been added to the ssl::context - class. -
    • -
    • - Changed ssl::context to automatically disable SSL compression - by default. To enable, use the new ssl::context::clear_options() - function, as in my_context.clear_options(ssl::context::no_compression). -
    • -
    -
  • -
  • - Fixed a potential deadlock in signal_set implementation. -
  • -
  • - Fixed an error in acceptor example in documentation. -
  • -
  • - Fixed copy-paste errors in waitable timer documentation. -
  • -
  • - Added assertions to satisfy some code analysis tools. -
  • -
  • - Fixed a malformed #warning directive. -
  • -
  • - Fixed a potential data race in the Linux epoll implementation. -
  • -
  • - Fixed a Windows-specific bug, where certain operations might generate an - error_code with an invalid (i.e. NULL) error_category. -
  • -
  • - Fixed basic_waitable_timer's underlying implementation so - that it can handle any time_point value without overflowing - the intermediate duration objects. -
  • -
  • - Fixed a problem with lost thread wakeups that can occur when making concurrent - calls to run() and poll() on the same io_service - object. -
  • -
  • - Fixed implementation of asynchronous connect operation so that it can cope - with spurious readiness notifications from the reactor. -
  • -
  • - Fixed a memory leak in the ssl::rfc2818_verification class. -
  • -
  • - Added a mechanism for disabling automatic Winsock initialisation. See the - header file asio/detail/winsock_init.hpp for details. -
  • -
-

- - Asio - 1.8.3 -

-
    -
  • - Fixed some 64-to-32-bit conversion warnings. -
  • -
  • - Fixed various small errors in documentation and comments. -
  • -
  • - Fixed an error in the example embedded in basic_socket::get_option's - documentation. -
  • -
  • - Changed to use long rather than int for SSL_CTX - options, to match OpenSSL. -
  • -
  • - Changed to use _snwprintf to address a compile error due to - the changed swprintf signature in recent versions of MinGW. -
  • -
  • - Fixed a deadlock that can occur on Windows when shutting down a pool of - io_service threads due to running out of work. -
  • -
  • - Changed UNIX domain socket example to treat errors from accept - as non-fatal. -
  • -
  • - Added a small block recycling optimisation to improve default memory allocation - behaviour. -
  • -
-

- - Asio - 1.8.2 -

-
    -
  • - Fixed an incompatibility between ip::tcp::iostream and C++11. -
  • -
  • - Decorated GCC attribute names with underscores to prevent interaction with - user-defined macros. -
  • -
  • - Added missing #include <cctype>, needed for some versions - of MinGW. -
  • -
  • - Changed to use gcc's atomic builtins on ARM CPUs, when - available. -
  • -
  • - Changed strand destruction to be a no-op, to allow strand objects to be - destroyed after their associated io_service has been destroyed. -
  • -
  • - Added support for some newer versions of glibc which provide the epoll_create1() - function but always fail with ENOSYS. -
  • -
  • - Changed the SSL implementation to throw an exception if SSL engine initialisation - fails. -
  • -
  • - Fixed another regression in buffered_write_stream. -
  • -
  • - Implemented various minor performance improvements, primarily targeted - at Linux x86 and x86-64 platforms. -
  • -
-

- - Asio - 1.8.1 -

-
    -
  • - Changed the epoll_reactor backend to do lazy registration - for EPOLLOUT events. -
  • -
  • - Fixed the epoll_reactor handling of out-of-band data, which - was broken by an incomplete fix in the last release. -
  • -
  • - Changed Asio's SSL wrapper to respect OpenSSL's OPENSSL_NO_ENGINE - feature test #define. -
  • -
  • - Fixed windows::object_handle so that it works with Windows - compilers that support C++11 move semantics (such as g++). -
  • -
  • - Improved the performance of strand rescheduling. -
  • -
  • - Added support for g++ 4.7 when compiling in C++11 mode. -
  • -
  • - Fixed a problem where signal_set handlers were not being delivered - when the io_service was constructed with a concurrency_hint - of 1. -
  • -
-

- - Asio - 1.8.0 -

-
    -
  • - Added a new class template basic_waitable_timer based around - the C++11 clock type requirements. It may be used with the clocks from - the C++11 <chrono> library facility or, if those are - not available, Boost.Chrono. The typedefs high_resolution_timer, - steady_timer and system_timer may be used to - create timer objects for the standard clock types. -
  • -
  • - Added a new windows::object_handle class for performing waits - on Windows kernel objects. Thanks go to Boris Schaeling for contributing - substantially to the development of this feature. -
  • -
  • - On Linux, connect() can return EAGAIN in certain circumstances. - Remapped this to another error so that it doesn't look like a non-blocking - operation. -
  • -
  • - Fixed a compile error on NetBSD. -
  • -
  • - Fixed deadlock on Mac OS X. -
  • -
  • - Fixed a regression in buffered_write_stream. -
  • -
  • - Fixed a non-paged pool "leak" on Windows when an io_service - is repeatedly run without anything to do. -
  • -
  • - Reverted earlier change to allow some speculative operations to be performed - without holding the lock, as it introduced a race condition in some multithreaded - scenarios. -
  • -
  • - Fixed a bug where the second buffer in an array of two buffers may be ignored - if the first buffer is empty. -
  • -
-

- - Asio - 1.6.1 -

-
    -
  • - Implemented various performance improvements, including: -
      -
    • - Using thread-local operation queues in single-threaded use cases - (i.e. when concurrency_hint is 1) to eliminate a lock/unlock - pair. -
    • -
    • - Allowing some epoll_reactor speculative operations to - be performed without holding the lock. -
    • -
    • - Improving locality of reference by performing an epoll_reactor's - I/O operation immediately before the corresponding handler is called. - This also improves scalability across CPUs when multiple threads - are running the io_service. -
    • -
    • - Specialising asynchronous read and write operations for buffer sequences - that are arrays (boost::array or std::array) - of exactly two buffers. -
    • -
    -
  • -
  • - Fixed a compile error in the regex overload of async_read_until. -
  • -
  • - Fixed a Windows-specific compile error by explicitly specifying the signal() - function from the global namespace. -
  • -
  • - Changed the deadline_timer implementation so that it does - not read the clock unless the timer heap is non-empty. -
  • -
  • - Changed the SSL stream's buffers' sizes so that they are large enough to - hold a complete TLS record. -
  • -
  • - Fixed the behaviour of the synchronous null_buffers operations - so that they obey the user's non-blocking setting. -
  • -
  • - Changed to set the size of the select fd_set at runtime when - using Windows. -
  • -
  • - Disabled an MSVC warning due to const qualifier being applied to function - type. -
  • -
  • - Fixed a crash that occurs when using the Intel C++ compiler. -
  • -
  • - Changed the initialisation of the OpenSSL library so that it supports all - available algorithms. -
  • -
  • - Fixed the SSL error mapping used when the session is gracefully shut down. -
  • -
  • - Added some latency test programs. -
  • -
  • - Clarified that a read operation ends when the buffer is full. -
  • -
  • - Fixed an exception safety issue in epoll_reactor initialisation. -
  • -
  • - Made the number of strand implementations configurable by defining (BOOST_)ASIO_STRAND_IMPLEMENTATIONS - to the desired number. -
  • -
  • - Added support for a new (BOOST_)ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION - flag which switches the allocation of strand implementations to use a round-robin - approach rather than hashing. -
  • -
  • - Fixed potential strand starvation issue that can occur when strand.post() - is used. -
  • -
-

- - Asio - 1.6.0 -

-
    -
  • - Improved support for C++0x move construction to further reduce copying - of handler objects. In certain designs it is possible to eliminate virtually - all copies. Move support is now enabled when compiling in -std=c++0x - mode on g++ 4.5 or higher. -
  • -
  • - Added build support for platforms that don't provide either of signal() - or sigaction(). -
  • -
  • - Changed to use C++0x variadic templates when they are available, rather - than generating function overloads using the Boost.Preprocessor library. -
  • -
  • - Ensured the value of errno is preserved across the implementation's - signal handler. -
  • -
  • - On Windows, ensured the count of outstanding work is decremented for abandoned - operations (i.e. operations that are being cleaned up within the io_service - destructor). -
  • -
  • - Fixed behaviour of zero-length reads and writes in the new SSL implementation. -
  • -
  • - Added support for building with OpenSSL 1.0 when OPENSSL_NO_SSL2 - is defined. -
  • -
  • - Changed most examples to treat a failure by an accept operation as non-fatal. -
  • -
  • - Fixed an error in the tick_count_timer example by making - the duration type signed. Previously, a wait on an already-passed deadline - would not return for a very long time. -
  • -
-

- - Asio - 1.5.3 -

-
    -
  • - Added a new, completely rewritten SSL implementation. The new implementation - compiles faster, shows substantially improved performance, and supports - custom memory allocation and handler invocation. It includes new API features - such as certificate verification callbacks and has improved error reporting. - The new implementation is source-compatible with the old for most uses. - However, if necessary, the old implementation may still be used by defining - (BOOST_)ASIO_ENABLE_OLD_SSL. -
  • -
  • - Added new asio::buffer() overloads for std::array, - when available. The support is automatically enabled when compiling in - -std=c++0x mode on g++ 4.3 or higher, or when using - MSVC 10. The support may be explicitly enabled by defining (BOOST_)ASIO_HAS_STD_ARRAY, - or disabled by defining (BOOST_)ASIO_DISABLE_STD_ARRAY. -
  • -
  • - Changed to use the C++0x standard library templates array, - shared_ptr, weak_ptr and atomic - when they are available, rather than the Boost equivalents. -
  • -
  • - Support for std::error_code and std::system_error - is no longer enabled by default for g++ 4.5, as that compiler's standard - library does not implement std::system_error::what() correctly. -
  • -
-

- - Asio - 1.5.2 -

-
    -
  • - Added support for C++0x move construction and assignment to sockets, serial - ports, POSIX descriptors and Windows handles. -
  • -
  • - Added support for the fork() system call. Programs that use - fork() must call io_service.notify_fork() at - the appropriate times. Two new examples have been added showing how to - use this feature. -
  • -
  • - Cleaned up the handling of errors reported by the close() - system call. In particular, assume that most operating systems won't have - close() fail with EWOULDBLOCK, but if it does - then set the blocking mode and restart the call. If any other error occurs, - assume the descriptor is closed. -
  • -
  • - The kqueue flag EV_ONESHOT seems to cause problems on some - versions of Mac OS X, with the io_service destructor getting - stuck inside the close() system call. Changed the kqueue backend - to use EV_CLEAR instead. -
  • -
  • - Changed exception reporting to include the function name in exception - what() messages. -
  • -
  • - Fixed an insufficient initialisers warning with MinGW. -
  • -
  • - Changed the shutdown_service() member functions to be private. -
  • -
  • - Added archetypes for testing socket option functions. -
  • -
  • - Added a missing lock in signal_set_service::cancel(). -
  • -
  • - Fixed a copy/paste error in SignalHandler example. -
  • -
  • - Added the inclusion of the signal header to signal_set_service.hpp - so that constants like NSIG may be used. -
  • -
  • - Changed the signal_set_service implementation so that it doesn't - assume that SIGRTMAX is a compile-time constant. -
  • -
  • - Changed the Boost.Asio examples so that they don't use Boost.Thread's convenience - header. Use the header file that is specifically for the boost::thread - class instead. -
  • -
-

- - Asio - 1.5.1 -

-
    -
  • - Added support for signal handling, using a new class called signal_set. - Programs may add one or more signals to the set, and then perform an async_wait() - operation. The specified handler will be called when one of the signals - occurs. The same signal number may registered with multiple signal_set - objects, however the signal number must be used only with Asio. -
  • -
  • - Added handler tracking, a new debugging aid. When enabled by defining - (BOOST_)ASIO_ENABLE_HANDLER_TRACKING, Asio writes debugging - output to the standard error stream. The output records asynchronous operations - and the relationships between their handlers. It may be post-processed - using the included handlerviz.pl tool to create a visual - representation of the handlers (requires GraphViz). -
  • -
  • - Fixed a bug in asio::streambuf where the consume() - function did not always update the internal buffer pointers correctly. - The problem may occur when the asio::streambuf is filled with - data using the standard C++ member functions such as sputn(). - (Note: the problem does not manifest when the streambuf is populated by - the Asio free functions read(), async_read(), - read_until() or async_read_until().) -
  • -
  • - Fixed a bug on kqueue-based platforms, where reactor read operations that - return false from their perform() function are not correctly - re-registered with kqueue. -
  • -
  • - Support for std::error_code and std::system_error - is no longer enabled by default for MSVC10, as that compiler's standard - library does not implement std::system_error::what() correctly. -
  • -
  • - Modified the buffers_iterator<> and ip::basic_resolver_iterator - classes so that the value_type typedefs are non-const byte types. -
  • -
-

- - Asio - 1.5.0 -

-
    -
  • - Added support for timeouts on socket iostreams, such as ip::tcp::iostream. - A timeout is set by calling expires_at() or expires_from_now() - to establish a deadline. Any socket operations which occur past the deadline - will put the iostream into a bad state. -
  • -
  • - Added a new error() member function to socket iostreams, for - retrieving the error code from the most recent system call. -
  • -
  • - Added a new basic_deadline_timer::cancel_one() function. This - function lets you cancel a single waiting handler on a timer. Handlers - are cancelled in FIFO order. -
  • -
  • - Added a new transfer_exactly() completion condition. This - can be used to send or receive a specified number of bytes even if the - total size of the buffer (or buffer sequence) is larger. -
  • -
  • - Added new free functions connect() and async_connect(). - These operations try each endpoint in a list until the socket is successfully - connected. -
  • -
  • - Extended the buffer_size() function so that it works for buffer - sequences in addition to individual buffers. -
  • -
  • - Added a new buffer_copy() function that can be used to copy - the raw bytes between individual buffers and buffer sequences. -
  • -
  • - Added new non-throwing overloads of read(), read_at(), - write() and write_at() that do not require a - completion condition. -
  • -
  • - Added friendlier compiler errors for when a completion handler does not - meet the necessary type requirements. When C++0x is available (currently - supported for g++ 4.5 or later, and MSVC 10), static_assert - is also used to generate an informative error message. This checking may - be disabled by defining (BOOST_)ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS. -
  • -
  • - Added support for using std::error_code and std::system_error, - when available. The support is automatically enabled when compiling in - -std=c++0x mode on g++ 4.5 or higher, or when using - MSVC 10. The support may be explicitly enabled by defining ASIO_HAS_STD_SYSTEM_ERROR, - or disabled by defining ASIO_DISABLE_STD_SYSTEM_ERROR. (Available - in non-Boost version of Asio only.) -
  • -
  • - Made the is_loopback(), is_unspecified() and - is_multicast() functions consistently available across the - ip::address, ip::address_v4 and ip::address_v6 - classes. -
  • -
  • - Added new non_blocking() functions for managing the non-blocking - behaviour of a socket or descriptor. The io_control() commands - named non_blocking_io are now deprecated in favour of these - new functions. -
  • -
  • - Added new native_non_blocking() functions for managing the - non-blocking mode of the underlying socket or descriptor. These functions - are intended to allow the encapsulation of arbitrary non-blocking system - calls as asynchronous operations, in a way that is transparent to the user - of the socket object. The functions have no effect on the behaviour of - the synchronous operations of the socket or descriptor. -
  • -
  • - Added the io_control() member function for socket acceptors. -
  • -
  • - For consistency with the C++0x standard library, deprecated the native_type - typedefs in favour of native_handle_type, and the native() - member functions in favour of native_handle(). -
  • -
  • - Added a release() member function to posix descriptors. This - function releases ownership of the underlying native descriptor to the - caller. -
  • -
  • - Added support for sequenced packet sockets (SOCK_SEQPACKET). -
  • -
  • - Added a new io_service::stopped() function that can be used - to determine whether the io_service has stopped (i.e. a reset() - call is needed prior to any further calls to run(), run_one(), - poll() or poll_one()). -
  • -
  • - Reduced the copying of handler function objects. -
  • -
  • - Added support for C++0x move construction to further reduce copying of - handler objects. Move support is enabled when compiling in -std=c++0x - mode on g++ 4.5 or higher, or when using MSVC10. -
  • -
  • - Removed the dependency on OS-provided macros for the well-known IPv4 and - IPv6 addresses. This should eliminate the annoying "missing braces - around initializer" warnings. -
  • -
  • - Reduced the size of ip::basic_endpoint<> objects (such - as ip::tcp::endpoint and ip::udp::endpoint). -
  • -
  • - Changed the reactor backends to assume that any descriptors or sockets - added using assign() may have been dup()-ed, - and so require explicit deregistration from the reactor. -
  • -
  • - Changed the SSL error category to return error strings from the OpenSSL - library. -
  • -
  • - Changed the separate compilation support such that, to use Asio's SSL capabilities, - you should also include 'asio/ssl/impl/src.hpp` in one source file in your - program. -
  • -
  • - Removed the deprecated member functions named io_service(). - The get_io_service() member functions should be used instead. -
  • -
  • - Removed the deprecated typedefs resolver_query and resolver_iterator - from the ip::tcp, ip::udp and ip::icmp - classes. -
  • -
  • - Fixed a compile error on some versions of g++ due to anonymous enums. -
  • -
  • - Added an explicit cast to the FIONBIO constant to int to suppress - a compiler warning on some platforms. -
  • -
  • - Fixed warnings reported by g++'s -Wshadow compiler option. -
  • -
-

- - Asio - 1.4.8 -

-
    -
  • - Fixed an integer overflow problem that occurs when ip::address_v4::broadcast() - is used on 64-bit platforms. -
  • -
  • - Fixed a problem on older Linux kernels (where epoll is used without timerfd - support) that prevents timely delivery of deadline_timer handlers, - after the program has been running for some time. -
  • -
-

- - Asio - 1.4.7 -

-
    -
  • - Fixed a problem on kqueue-based platforms where a deadline_timer - may never fire if the io_service is running in a background - thread. -
  • -
  • - Fixed a const-correctness issue that prevented valid uses of has_service<> - from compiling. -
  • -
  • - Fixed MinGW cross-compilation. -
  • -
  • - Removed dependency on deprecated Boost.System functions (Boost.Asio only). -
  • -
  • - Ensured close()/closesocket() failures are correctly - propagated. -
  • -
  • - Added a check for errors returned by InitializeCriticalSectionAndSpinCount. -
  • -
  • - Added support for hardware flow control on QNX. -
  • -
  • - Always use pselect() on HP-UX, if it is available. -
  • -
  • - Ensured handler arguments are passed as lvalues. -
  • -
  • - Fixed Windows build when thread support is disabled. -
  • -
  • - Fixed a Windows-specific problem where deadline_timer objects - with expiry times set more than 5 minutes in the future may never expire. -
  • -
  • - Fixed the resolver backend on BSD platforms so that an empty service name - resolves to port number 0, as per the documentation. -
  • -
  • - Fixed read operations so that they do not accept buffer sequences of type - const_buffers_1. -
  • -
  • - Redefined Protocol and id to avoid clashing with - Objective-C++ keywords. -
  • -
  • - Fixed a vector reallocation performance issue that can occur - when there are many active deadline_timer objects. -
  • -
  • - Fixed the kqueue backend so that it compiles on NetBSD. -
  • -
  • - Fixed the socket io_control() implementation on 64-bit Mac - OS X and BSD platforms. -
  • -
  • - Fixed a Windows-specific problem where failures from accept() - are incorrectly treated as successes. -
  • -
  • - Deprecated the separate compilation header asio/impl/src.cpp - in favour of asio/impl/src.hpp. -
  • -
-

- - Asio - 1.4.6 -

-
    -
  • - Reduced compile times. (Note that some programs may need to add additional - #includes, e.g. if the program uses boost::array but does - not explicitly include <boost/array.hpp>.) -
  • -
  • - Reduced the size of generated code. -
  • -
  • - Refactored deadline_timer implementation to improve performance. -
  • -
  • - Improved multiprocessor scalability on Windows by using a dedicated hidden - thread to wait for timers. -
  • -
  • - Improved performance of asio::streambuf with async_read() - and async_read_until(). These read operations now use the - existing capacity of the streambuf when reading, rather than - limiting the read to 512 bytes. -
  • -
  • - Added optional separate compilation. To enable, include asio/impl/src.cpp - in one source file in a program, then build the program with (BOOST_)ASIO_SEPARATE_COMPILATION - defined in the project/compiler settings. Alternatively, (BOOST_)ASIO_DYN_LINK - may be defined to build a separately-compiled Asio as part of a shared - library. -
  • -
  • - Added new macro (BOOST_)ASIO_DISABLE_FENCED_BLOCK to permit - the disabling of memory fences around completion handlers, even if thread - support is enabled. -
  • -
  • - Reworked timeout examples to better illustrate typical use cases. -
  • -
  • - Ensured that handler arguments are passed as const types. -
  • -
  • - Fixed incorrect parameter order in null_buffers variant of - async_send_to. -
  • -
  • - Ensured unsigned char is used with isdigit in getaddrinfo - emulation. -
  • -
  • - Fixed handling of very small but non-zero timeouts. -
  • -
  • - Fixed crash that occurred when an empty buffer sequence was passed to a - composed read or write operation. -
  • -
  • - Added missing operator+ overload in buffers_iterator. -
  • -
  • - Implemented cancellation of null_buffers operations on Windows. -
  • -
-

- - Asio - 1.4.5 -

-
    -
  • - Improved performance. -
  • -
  • - Reduced compile times. -
  • -
  • - Reduced the size of generated code. -
  • -
  • - Extended the guarantee that background threads don't call user code to - all asynchronous operations. -
  • -
  • - Changed to use edge-triggered epoll on Linux. -
  • -
  • - Changed to use timerfd for dispatching timers on Linux, when - available. -
  • -
  • - Changed to use one-shot notifications with kqueue on Mac OS X and BSD platforms. -
  • -
  • - Added a bitmask type ip::resolver_query_base::flags as per - the TR2 proposal. This type prevents implicit conversion from int - to flags, allowing the compiler to catch cases where users - incorrectly pass a numeric port number as the service name. -
  • -
  • - Added #define NOMINMAX for all Windows compilers. Users can - define (BOOST_)ASIO_NO_NOMINMAX to suppress this definition. -
  • -
  • - Fixed a bug where 0-byte asynchronous reads were incorrectly passing an - error::eof result to the completion handler. -
  • -
  • - Changed the io_control() member functions to always call - ioctl on the underlying descriptor when modifying blocking - mode. -
  • -
  • - Changed the resolver implementation so that it no longer requires the typedefs - InternetProtocol::resolver_query and InternetProtocol::resolver_iterator, - as neither typedef is part of the documented InternetProtocol - requirements. The corresponding typedefs in the ip::tcp, - ip::udp and ip::icmp classes have been deprecated. -
  • -
  • - Fixed out-of-band handling for reactors not based on select(). -
  • -
  • - Added new (BOOST_)ASIO_DISABLE_THREADS macro that allows Asio's - threading support to be independently disabled. -
  • -
  • - Minor documentation improvements. -
  • -
-

- - Asio - 1.4.4 -

-
    -
  • - Added a new HTTP Server 4 example illustrating the use of stackless coroutines - with Asio. -
  • -
  • - Changed handler allocation and invocation to use boost::addressof - to get the address of handler objects, rather than applying operator& - directly. -
  • -
  • - Restricted MSVC buffer debugging workaround to 2008, as it causes a crash - with 2010 beta 2. -
  • -
  • - Fixed a problem with the lifetime of handler memory, where Windows needs - the OVERLAPPED structure to be valid until both the initiating - function call has returned and the completion packet has been delivered. -
  • -
  • - Don't block signals while performing system calls, but instead restart - the calls if they are interrupted. -
  • -
  • - Documented the guarantee made by strand objects with respect to order of - handler invocation. -
  • -
  • - Changed strands to use a pool of implementations, to make copying of strands - cheaper. -
  • -
  • - Ensured that kqueue support is enabled for BSD platforms. -
  • -
  • - Added a boost_ prefix to the extern "C" - thread entry point function. -
  • -
  • - In getaddrinfo emulation, only check the socket type (SOCK_STREAM - or SOCK_DGRAM) if a service name has been specified. This - should allow the emulation to work with raw sockets. -
  • -
  • - Added a workaround for some broken Windows firewalls that make a socket - appear bound to 0.0.0.0 when it is in fact bound to 127.0.0.1. -
  • -
  • - Applied a fix for reported excessive CPU usage under Solaris. -
  • -
  • - Added some support for platforms that use older compilers such as g++ 2.95. -
  • -
-

- - Asio - 1.4.3 -

-
    -
  • - Added a new ping example to illustrate the use of ICMP sockets. -
  • -
  • - Changed the buffered*_stream<> templates to treat 0-byte - reads and writes as no-ops, to comply with the documented type requirements - for SyncReadStream, AsyncReadStream, SyncWriteStream - and AsyncWriteStream. -
  • -
  • - Changed some instances of the throw keyword to boost::throw_exception() - to allow Asio to be used when exception support is disabled. Note that - the SSL wrappers still require exception support. -
  • -
  • - Made Asio compatible with the OpenSSL 1.0 beta. -
  • -
  • - Eliminated a redundant system call in the Solaris /dev/poll backend. -
  • -
  • - Fixed a bug in resizing of the bucket array in the internal hash maps. -
  • -
  • - Ensured correct propagation of the error code when a synchronous accept - fails. -
  • -
  • - Ensured correct propagation of the error code when a synchronous read or - write on a Windows HANDLE fails. -
  • -
  • - Fixed failures reported when _GLIBCXX_DEBUG is defined. -
  • -
  • - Fixed custom memory allocation support for timers. -
  • -
  • - Tidied up various warnings reported by g++. -
  • -
  • - Various documentation improvements, including more obvious hyperlinks to - function overloads, header file information, examples for the handler type - requirements, and adding enum values to the index. -
  • -
-

- - Asio - 1.4.2 -

-
    -
  • - Implement automatic resizing of the bucket array in the internal hash maps. - This is to improve performance for very large numbers of asynchronous operations - and also to reduce memory usage for very small numbers. A new macro (BOOST_)ASIO_HASH_MAP_BUCKETS - may be used to tweak the sizes used for the bucket arrays. (N.B. this feature - introduced a bug which was fixed in Asio 1.4.3 / Boost 1.40.) -
  • -
  • - Add performance optimisation for the Windows IOCP backend for when no timers - are used. -
  • -
  • - Prevent locale settings from affecting formatting of TCP and UDP endpoints. -
  • -
  • - Fix a memory leak that occurred when an asynchronous SSL operation's completion - handler threw an exception. -
  • -
  • - Fix the implementation of io_control() so that it adheres - to the documented type requirements for IoControlCommand. -
  • -
  • - Fix incompatibility between Asio and ncurses.h. -
  • -
  • - On Windows, specifically handle the case when an overlapped ReadFile - call fails with ERROR_MORE_DATA. This enables a hack where - a windows::stream_handle can be used with a message-oriented - named pipe. -
  • -
  • - Fix system call wrappers to always clear the error on success, as POSIX - allows successful system calls to modify errno. -
  • -
  • - Don't include termios.h if (BOOST_)ASIO_DISABLE_SERIAL_PORT - is defined. -
  • -
  • - Cleaned up some more MSVC level 4 warnings. -
  • -
  • - Various documentation fixes. -
  • -
-

- - Asio - 1.4.1 -

-
    -
  • - Improved compatibility with some Windows firewall software. -
  • -
  • - Ensured arguments to windows::overlapped_ptr::complete() are - correctly passed to the completion handler. -
  • -
  • - Fixed a link problem and multicast failure on QNX. -
  • -
  • - Fixed a compile error in SSL support on MinGW / g++ 3.4.5. -
  • -
  • - Drop back to using a pipe for notification if eventfd is not available - at runtime on Linux. -
  • -
  • - Various minor bug and documentation fixes. -
  • -
-

- - Asio - 1.4.0 -

-
    -
  • - Enhanced CompletionCondition concept with the signature size_t CompletionCondition(error_code - ec, size_t total), where the return value indicates the maximum - number of bytes to be transferred on the next read or write operation. - (The old CompletionCondition signature is still supported for backwards - compatibility). -
  • -
  • - New windows::overlapped_ptr class to allow arbitrary overlapped - I/O functions (such as TransmitFile) to be used with Asio. -
  • -
  • - On recent versions of Linux, an eventfd descriptor is now - used (rather than a pipe) to interrupt a blocked select/epoll reactor. -
  • -
  • - Added const overloads of lowest_layer(). -
  • -
  • - Synchronous read, write, accept and connect operations are now thread safe - (meaning that it is now permitted to perform concurrent synchronous operations - on an individual socket, if supported by the OS). -
  • -
  • - Reactor-based io_service implementations now use lazy initialisation - to reduce the memory usage of an io_service object used only - as a message queue. -
  • -
-

- - Asio - 1.2.0 -

-
    -
  • - Added support for serial ports. -
  • -
  • - Added support for UNIX domain sockets. -
  • -
  • - Added support for raw sockets and ICMP. -
  • -
  • - Added wrappers for POSIX stream-oriented file descriptors (excluding regular - files). -
  • -
  • - Added wrappers for Windows stream-oriented HANDLEs such as - named pipes (requires HANDLEs that work with I/O completion - ports). -
  • -
  • - Added wrappers for Windows random-access HANDLEs such as files - (requires HANDLEs that work with I/O completion ports). -
  • -
  • - Added support for reactor-style operations (i.e. they report readiness - but perform no I/O) using a new null_buffers type. -
  • -
  • - Added an iterator type for bytewise traversal of buffer sequences. -
  • -
  • - Added new read_until() and async_read_until() - overloads that take a user-defined function object for locating message - boundaries. -
  • -
  • - Added an experimental two-lock queue (enabled by defining (BOOST_)ASIO_ENABLE_TWO_LOCK_QUEUE) - that may provide better io_service scalability across many - processors. -
  • -
  • - Various fixes, performance improvements, and more complete coverage of - the custom memory allocation support. -
  • -
-

- - Asio - 1.0.0 -

-

- First stable release of Asio. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/index.html b/Sources/Vendor/asio/doc/asio/index.html deleted file mode 100644 index 0107366..0000000 --- a/Sources/Vendor/asio/doc/asio/index.html +++ /dev/null @@ -1,4988 +0,0 @@ - - - - - - - - - - - -
asio C++ library
-
-
-PrevUpHome -
-
-
-
-

-Index

-
-
-

Symbols

-
-
~awaitable
-
experimental::awaitable, experimental::awaitable::~awaitable -
-
~bad_address_cast
-
ip::bad_address_cast, ip::bad_address_cast::~bad_address_cast -
-
~basic_datagram_socket
-
basic_datagram_socket, basic_datagram_socket::~basic_datagram_socket -
-
~basic_deadline_timer
-
basic_deadline_timer, basic_deadline_timer::~basic_deadline_timer -
-
~basic_io_object
-
basic_io_object, basic_io_object::~basic_io_object -
-
~basic_raw_socket
-
basic_raw_socket, basic_raw_socket::~basic_raw_socket -
-
~basic_resolver
-
ip::basic_resolver, ip::basic_resolver::~basic_resolver -
-
~basic_seq_packet_socket
-
basic_seq_packet_socket, basic_seq_packet_socket::~basic_seq_packet_socket -
-
~basic_socket
-
basic_socket, basic_socket::~basic_socket -
-
~basic_socket_acceptor
-
basic_socket_acceptor, basic_socket_acceptor::~basic_socket_acceptor -
-
~basic_socket_streambuf
-
basic_socket_streambuf, basic_socket_streambuf::~basic_socket_streambuf -
-
~basic_stream_socket
-
basic_stream_socket, basic_stream_socket::~basic_stream_socket -
-
~basic_waitable_timer
-
basic_waitable_timer, basic_waitable_timer::~basic_waitable_timer -
-
~context
-
ssl::context, ssl::context::~context -
-
~context_base
-
ssl::context_base, ssl::context_base::~context_base -
-
~descriptor
-
posix::descriptor, posix::descriptor::~descriptor -
-
~descriptor_base
-
posix::descriptor_base, posix::descriptor_base::~descriptor_base -
-
~error_category
-
error_category, error_category::~error_category -
-
~execution_context
-
execution_context, execution_context::~execution_context -
-
~executor
-
executor, executor::~executor -
-
~executor_binder
-
executor_binder, executor_binder::~executor_binder -
-
~executor_work_guard
-
executor_work_guard, executor_work_guard::~executor_work_guard -
-
~io_context
-
io_context, io_context::~io_context -
-
~overlapped_handle
-
windows::overlapped_handle, windows::overlapped_handle::~overlapped_handle -
-
~overlapped_ptr
-
windows::overlapped_ptr, windows::overlapped_ptr::~overlapped_ptr -
-
~resolver_base
-
ip::resolver_base, ip::resolver_base::~resolver_base -
-
~resolver_query_base
-
ip::resolver_query_base, ip::resolver_query_base::~resolver_query_base -
-
~serial_port
-
serial_port, serial_port::~serial_port -
-
~serial_port_base
-
serial_port_base, serial_port_base::~serial_port_base -
-
~service
-
-
execution_context::service, execution_context::service::~service -
-
io_context::service, io_context::service::~service -
-
-
~signal_set
-
signal_set, signal_set::~signal_set -
-
~socket_base
-
socket_base, socket_base::~socket_base -
-
~strand
-
-
io_context::strand, io_context::strand::~strand -
-
strand, strand::~strand -
-
-
~stream
-
ssl::stream, ssl::stream::~stream -
-
~stream_base
-
ssl::stream_base, ssl::stream_base::~stream_base -
-
~system_context
-
system_context, system_context::~system_context -
-
~system_error
-
system_error, system_error::~system_error -
-
~thread
-
thread, thread::~thread -
-
~thread_pool
-
thread_pool, thread_pool::~thread_pool -
-
~work
-
io_context::work, io_context::work::~work -
-
-
-
-

A

-
-
accept
-
basic_socket_acceptor, basic_socket_acceptor::accept -
-
acceptor
-
-
ip::tcp, ip::tcp::acceptor -
-
local::stream_protocol, local::stream_protocol::acceptor -
-
-
access_denied
-
error::basic_errors, error::basic_errors -
-
add
-
-
signal_set, signal_set::add -
-
time_traits< boost::posix_time::ptime - >, time_traits< - boost::posix_time::ptime >::add -
-
-
address
-
-
ip::address, ip::address::address -
-
ip::basic_endpoint, ip::basic_endpoint::address -
-
ip::network_v4, ip::network_v4::address -
-
ip::network_v6, ip::network_v6::address -
-
-
address_configured
-
-
ip::basic_resolver, ip::basic_resolver::address_configured -
-
ip::basic_resolver_query, ip::basic_resolver_query::address_configured -
-
ip::resolver_base, ip::resolver_base::address_configured -
-
ip::resolver_query_base, ip::resolver_query_base::address_configured -
-
-
address_family_not_supported
-
error::basic_errors, error::basic_errors -
-
address_in_use
-
error::basic_errors, error::basic_errors -
-
address_v4
-
ip::address_v4, ip::address_v4::address_v4 -
-
address_v6
-
ip::address_v6, ip::address_v6::address_v6 -
-
add_certificate_authority
-
ssl::context, ssl::context::add_certificate_authority -
-
add_service, add_service -
-
-
execution_context, execution_context::add_service -
-
io_context, io_context::add_service -
-
system_context, system_context::add_service -
-
thread_pool, thread_pool::add_service -
-
-
add_verify_path
-
ssl::context, ssl::context::add_verify_path -
-
allocator_type
-
use_future_t, use_future_t::allocator_type -
-
all_matching
-
-
ip::basic_resolver, ip::basic_resolver::all_matching -
-
ip::basic_resolver_query, ip::basic_resolver_query::all_matching -
-
ip::resolver_base, ip::resolver_base::all_matching -
-
ip::resolver_query_base, ip::resolver_query_base::all_matching -
-
-
already_connected
-
error::basic_errors, error::basic_errors -
-
already_open
-
error::misc_errors, error::misc_errors -
-
already_started
-
error::basic_errors, error::basic_errors -
-
any
-
-
ip::address_v4, ip::address_v4::any -
-
ip::address_v6, ip::address_v6::any -
-
-
argument_type
-
executor_binder, executor_binder::argument_type -
-
asio_handler_allocate, asio_handler_allocate -
-
asio_handler_deallocate, asio_handler_deallocate -
-
asio_handler_invoke, asio_handler_invoke -
-
asio_handler_is_continuation, asio_handler_is_continuation -
-
asn1
-
-
ssl::context, ssl::context::file_format -
-
ssl::context_base, ssl::context_base::file_format -
-
-
assign
-
-
basic_datagram_socket, basic_datagram_socket::assign -
-
basic_raw_socket, basic_raw_socket::assign -
-
basic_seq_packet_socket, basic_seq_packet_socket::assign -
-
basic_socket, basic_socket::assign -
-
basic_socket_acceptor, basic_socket_acceptor::assign -
-
basic_stream_socket, basic_stream_socket::assign -
-
error_code, error_code::assign -
-
posix::descriptor, posix::descriptor::assign -
-
posix::stream_descriptor, posix::stream_descriptor::assign -
-
serial_port, serial_port::assign -
-
windows::object_handle, windows::object_handle::assign -
-
windows::overlapped_handle, windows::overlapped_handle::assign -
-
windows::random_access_handle, windows::random_access_handle::assign -
-
windows::stream_handle, windows::stream_handle::assign -
-
-
async_accept
-
basic_socket_acceptor, basic_socket_acceptor::async_accept -
-
async_completion
-
async_completion, async_completion::async_completion -
-
async_connect, async_connect -
-
-
basic_datagram_socket, basic_datagram_socket::async_connect -
-
basic_raw_socket, basic_raw_socket::async_connect -
-
basic_seq_packet_socket, basic_seq_packet_socket::async_connect -
-
basic_socket, basic_socket::async_connect -
-
basic_stream_socket, basic_stream_socket::async_connect -
-
-
async_fill
-
-
buffered_read_stream, buffered_read_stream::async_fill -
-
buffered_stream, buffered_stream::async_fill -
-
-
async_flush
-
-
buffered_stream, buffered_stream::async_flush -
-
buffered_write_stream, buffered_write_stream::async_flush -
-
-
async_handshake
-
ssl::stream, ssl::stream::async_handshake -
-
async_read, async_read -
-
async_read_at, async_read_at -
-
async_read_some
-
-
basic_stream_socket, basic_stream_socket::async_read_some -
-
buffered_read_stream, buffered_read_stream::async_read_some -
-
buffered_stream, buffered_stream::async_read_some -
-
buffered_write_stream, buffered_write_stream::async_read_some -
-
posix::stream_descriptor, posix::stream_descriptor::async_read_some -
-
serial_port, serial_port::async_read_some -
-
ssl::stream, ssl::stream::async_read_some -
-
windows::stream_handle, windows::stream_handle::async_read_some -
-
-
async_read_some_at
-
windows::random_access_handle, windows::random_access_handle::async_read_some_at -
-
async_read_until, async_read_until -
-
async_receive
-
-
basic_datagram_socket, basic_datagram_socket::async_receive -
-
basic_raw_socket, basic_raw_socket::async_receive -
-
basic_seq_packet_socket, basic_seq_packet_socket::async_receive -
-
basic_stream_socket, basic_stream_socket::async_receive -
-
-
async_receive_from
-
-
basic_datagram_socket, basic_datagram_socket::async_receive_from -
-
basic_raw_socket, basic_raw_socket::async_receive_from -
-
-
async_resolve
-
ip::basic_resolver, ip::basic_resolver::async_resolve -
-
async_result
-
-
async_result, async_result::async_result -
-
async_result< - Handler >, async_result< - Handler >::async_result -
-
async_result< - std::packaged_task< Result(Args...)>, Signature >, async_result< - std::packaged_task< Result(Args...)>, Signature >::async_result -
-
-
async_send
-
-
basic_datagram_socket, basic_datagram_socket::async_send -
-
basic_raw_socket, basic_raw_socket::async_send -
-
basic_seq_packet_socket, basic_seq_packet_socket::async_send -
-
basic_stream_socket, basic_stream_socket::async_send -
-
-
async_send_to
-
-
basic_datagram_socket, basic_datagram_socket::async_send_to -
-
basic_raw_socket, basic_raw_socket::async_send_to -
-
-
async_shutdown
-
ssl::stream, ssl::stream::async_shutdown -
-
async_wait
-
-
basic_datagram_socket, basic_datagram_socket::async_wait -
-
basic_deadline_timer, basic_deadline_timer::async_wait -
-
basic_raw_socket, basic_raw_socket::async_wait -
-
basic_seq_packet_socket, basic_seq_packet_socket::async_wait -
-
basic_socket, basic_socket::async_wait -
-
basic_socket_acceptor, basic_socket_acceptor::async_wait -
-
basic_stream_socket, basic_stream_socket::async_wait -
-
basic_waitable_timer, basic_waitable_timer::async_wait -
-
posix::descriptor, posix::descriptor::async_wait -
-
posix::stream_descriptor, posix::stream_descriptor::async_wait -
-
signal_set, signal_set::async_wait -
-
windows::object_handle, windows::object_handle::async_wait -
-
-
async_write, async_write -
-
async_write_at, async_write_at -
-
async_write_some
-
-
basic_stream_socket, basic_stream_socket::async_write_some -
-
buffered_read_stream, buffered_read_stream::async_write_some -
-
buffered_stream, buffered_stream::async_write_some -
-
buffered_write_stream, buffered_write_stream::async_write_some -
-
posix::stream_descriptor, posix::stream_descriptor::async_write_some -
-
serial_port, serial_port::async_write_some -
-
ssl::stream, ssl::stream::async_write_some -
-
windows::stream_handle, windows::stream_handle::async_write_some -
-
-
async_write_some_at
-
windows::random_access_handle, windows::random_access_handle::async_write_some_at -
-
at_mark
-
-
basic_datagram_socket, basic_datagram_socket::at_mark -
-
basic_raw_socket, basic_raw_socket::at_mark -
-
basic_seq_packet_socket, basic_seq_packet_socket::at_mark -
-
basic_socket, basic_socket::at_mark -
-
basic_stream_socket, basic_stream_socket::at_mark -
-
-
available
-
-
basic_datagram_socket, basic_datagram_socket::available -
-
basic_raw_socket, basic_raw_socket::available -
-
basic_seq_packet_socket, basic_seq_packet_socket::available -
-
basic_socket, basic_socket::available -
-
basic_stream_socket, basic_stream_socket::available -
-
-
awaitable
-
experimental::awaitable, experimental::awaitable::awaitable -
-
await_token
-
experimental::await_token, experimental::await_token::await_token -
-
-
-
-

B

-
-
bad_address_cast
-
ip::bad_address_cast, ip::bad_address_cast::bad_address_cast -
-
bad_descriptor
-
error::basic_errors, error::basic_errors -
-
bad_executor
-
bad_executor, bad_executor::bad_executor -
-
basic_address_iterator
-
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::basic_address_iterator -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::basic_address_iterator -
-
-
basic_address_range
-
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::basic_address_range -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::basic_address_range -
-
-
basic_datagram_socket
-
basic_datagram_socket, basic_datagram_socket::basic_datagram_socket -
-
basic_deadline_timer
-
basic_deadline_timer, basic_deadline_timer::basic_deadline_timer -
-
basic_endpoint
-
-
generic::basic_endpoint, generic::basic_endpoint::basic_endpoint -
-
ip::basic_endpoint, ip::basic_endpoint::basic_endpoint -
-
local::basic_endpoint, local::basic_endpoint::basic_endpoint -
-
-
basic_io_object
-
basic_io_object, basic_io_object::basic_io_object -
-
basic_raw_socket
-
basic_raw_socket, basic_raw_socket::basic_raw_socket -
-
basic_resolver
-
ip::basic_resolver, ip::basic_resolver::basic_resolver -
-
basic_resolver_entry
-
ip::basic_resolver_entry, ip::basic_resolver_entry::basic_resolver_entry -
-
basic_resolver_iterator
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::basic_resolver_iterator -
-
basic_resolver_query
-
ip::basic_resolver_query, ip::basic_resolver_query::basic_resolver_query -
-
basic_resolver_results
-
ip::basic_resolver_results, ip::basic_resolver_results::basic_resolver_results -
-
basic_seq_packet_socket
-
basic_seq_packet_socket, basic_seq_packet_socket::basic_seq_packet_socket -
-
basic_socket
-
basic_socket, basic_socket::basic_socket -
-
basic_socket_acceptor
-
basic_socket_acceptor, basic_socket_acceptor::basic_socket_acceptor -
-
basic_socket_iostream
-
basic_socket_iostream, basic_socket_iostream::basic_socket_iostream -
-
basic_socket_streambuf
-
basic_socket_streambuf, basic_socket_streambuf::basic_socket_streambuf -
-
basic_streambuf
-
basic_streambuf, basic_streambuf::basic_streambuf -
-
basic_streambuf_ref
-
basic_streambuf_ref, basic_streambuf_ref::basic_streambuf_ref -
-
basic_stream_socket
-
basic_stream_socket, basic_stream_socket::basic_stream_socket -
-
basic_waitable_timer
-
basic_waitable_timer, basic_waitable_timer::basic_waitable_timer -
-
basic_yield_context
-
basic_yield_context, basic_yield_context::basic_yield_context -
-
baud_rate
-
serial_port_base::baud_rate, serial_port_base::baud_rate::baud_rate -
-
begin
-
-
buffers_iterator, buffers_iterator::begin -
-
const_buffers_1, const_buffers_1::begin -
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::begin -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::begin -
-
ip::basic_resolver_results, ip::basic_resolver_results::begin -
-
mutable_buffers_1, mutable_buffers_1::begin -
-
null_buffers, null_buffers::begin -
-
-
bind
-
-
basic_datagram_socket, basic_datagram_socket::bind -
-
basic_raw_socket, basic_raw_socket::bind -
-
basic_seq_packet_socket, basic_seq_packet_socket::bind -
-
basic_socket, basic_socket::bind -
-
basic_socket_acceptor, basic_socket_acceptor::bind -
-
basic_stream_socket, basic_stream_socket::bind -
-
-
bind_executor, bind_executor -
-
broadcast
-
-
basic_datagram_socket, basic_datagram_socket::broadcast -
-
basic_raw_socket, basic_raw_socket::broadcast -
-
basic_seq_packet_socket, basic_seq_packet_socket::broadcast -
-
basic_socket, basic_socket::broadcast -
-
basic_socket_acceptor, basic_socket_acceptor::broadcast -
-
basic_stream_socket, basic_stream_socket::broadcast -
-
ip::address_v4, ip::address_v4::broadcast -
-
ip::network_v4, ip::network_v4::broadcast -
-
socket_base, socket_base::broadcast -
-
-
broken_pipe
-
error::basic_errors, error::basic_errors -
-
buffer, buffer -
-
buffered_read_stream
-
buffered_read_stream, buffered_read_stream::buffered_read_stream -
-
buffered_stream
-
buffered_stream, buffered_stream::buffered_stream -
-
buffered_write_stream
-
buffered_write_stream, buffered_write_stream::buffered_write_stream -
-
buffers_begin, buffers_begin -
-
buffers_end, buffers_end -
-
buffers_iterator
-
buffers_iterator, buffers_iterator::buffers_iterator -
-
buffer_cast, buffer_cast -
-
buffer_copy, buffer_copy -
-
buffer_sequence_begin, buffer_sequence_begin -
-
buffer_sequence_end, buffer_sequence_end -
-
buffer_size, buffer_size -
-
bytes_readable
-
-
basic_datagram_socket, basic_datagram_socket::bytes_readable -
-
basic_raw_socket, basic_raw_socket::bytes_readable -
-
basic_seq_packet_socket, basic_seq_packet_socket::bytes_readable -
-
basic_socket, basic_socket::bytes_readable -
-
basic_socket_acceptor, basic_socket_acceptor::bytes_readable -
-
basic_stream_socket, basic_stream_socket::bytes_readable -
-
posix::descriptor, posix::descriptor::bytes_readable -
-
posix::descriptor_base, posix::descriptor_base::bytes_readable -
-
posix::stream_descriptor, posix::stream_descriptor::bytes_readable -
-
socket_base, socket_base::bytes_readable -
-
-
bytes_type
-
-
ip::address_v4, ip::address_v4::bytes_type -
-
ip::address_v6, ip::address_v6::bytes_type -
-
-
-
-
-

C

-
-
callee_type
-
basic_yield_context, basic_yield_context::callee_type -
-
caller_type
-
basic_yield_context, basic_yield_context::caller_type -
-
cancel
-
-
basic_datagram_socket, basic_datagram_socket::cancel -
-
basic_deadline_timer, basic_deadline_timer::cancel -
-
basic_raw_socket, basic_raw_socket::cancel -
-
basic_seq_packet_socket, basic_seq_packet_socket::cancel -
-
basic_socket, basic_socket::cancel -
-
basic_socket_acceptor, basic_socket_acceptor::cancel -
-
basic_stream_socket, basic_stream_socket::cancel -
-
basic_waitable_timer, basic_waitable_timer::cancel -
-
ip::basic_resolver, ip::basic_resolver::cancel -
-
posix::descriptor, posix::descriptor::cancel -
-
posix::stream_descriptor, posix::stream_descriptor::cancel -
-
serial_port, serial_port::cancel -
-
signal_set, signal_set::cancel -
-
windows::object_handle, windows::object_handle::cancel -
-
windows::overlapped_handle, windows::overlapped_handle::cancel -
-
windows::random_access_handle, windows::random_access_handle::cancel -
-
windows::stream_handle, windows::stream_handle::cancel -
-
-
cancel_one
-
-
basic_deadline_timer, basic_deadline_timer::cancel_one -
-
basic_waitable_timer, basic_waitable_timer::cancel_one -
-
-
canonical
-
-
ip::network_v4, ip::network_v4::canonical -
-
ip::network_v6, ip::network_v6::canonical -
-
-
canonical_name
-
-
ip::basic_resolver, ip::basic_resolver::canonical_name -
-
ip::basic_resolver_query, ip::basic_resolver_query::canonical_name -
-
ip::resolver_base, ip::resolver_base::canonical_name -
-
ip::resolver_query_base, ip::resolver_query_base::canonical_name -
-
-
capacity
-
-
basic_streambuf, basic_streambuf::capacity -
-
basic_streambuf_ref, basic_streambuf_ref::capacity -
-
dynamic_string_buffer, dynamic_string_buffer::capacity -
-
dynamic_vector_buffer, dynamic_vector_buffer::capacity -
-
generic::basic_endpoint, generic::basic_endpoint::capacity -
-
ip::basic_endpoint, ip::basic_endpoint::capacity -
-
local::basic_endpoint, local::basic_endpoint::capacity -
-
-
category
-
error_code, error_code::category -
-
cbegin
-
ip::basic_resolver_results, ip::basic_resolver_results::cbegin -
-
cend
-
ip::basic_resolver_results, ip::basic_resolver_results::cend -
-
character_size
-
serial_port_base::character_size, serial_port_base::character_size::character_size -
-
clear
-
-
error_code, error_code::clear -
-
signal_set, signal_set::clear -
-
-
clear_options
-
ssl::context, ssl::context::clear_options -
-
client
-
-
ssl::stream, ssl::stream::handshake_type -
-
ssl::stream_base, ssl::stream_base::handshake_type -
-
-
clock_type
-
-
basic_socket_iostream, basic_socket_iostream::clock_type -
-
basic_socket_streambuf, basic_socket_streambuf::clock_type -
-
basic_waitable_timer, basic_waitable_timer::clock_type -
-
-
close
-
-
basic_datagram_socket, basic_datagram_socket::close -
-
basic_raw_socket, basic_raw_socket::close -
-
basic_seq_packet_socket, basic_seq_packet_socket::close -
-
basic_socket, basic_socket::close -
-
basic_socket_acceptor, basic_socket_acceptor::close -
-
basic_socket_iostream, basic_socket_iostream::close -
-
basic_socket_streambuf, basic_socket_streambuf::close -
-
basic_stream_socket, basic_stream_socket::close -
-
buffered_read_stream, buffered_read_stream::close -
-
buffered_stream, buffered_stream::close -
-
buffered_write_stream, buffered_write_stream::close -
-
posix::descriptor, posix::descriptor::close -
-
posix::stream_descriptor, posix::stream_descriptor::close -
-
serial_port, serial_port::close -
-
windows::object_handle, windows::object_handle::close -
-
windows::overlapped_handle, windows::overlapped_handle::close -
-
windows::random_access_handle, windows::random_access_handle::close -
-
windows::stream_handle, windows::stream_handle::close -
-
-
code
-
system_error, system_error::code -
-
commit
-
-
basic_streambuf, basic_streambuf::commit -
-
basic_streambuf_ref, basic_streambuf_ref::commit -
-
dynamic_string_buffer, dynamic_string_buffer::commit -
-
dynamic_vector_buffer, dynamic_vector_buffer::commit -
-
-
complete
-
windows::overlapped_ptr, windows::overlapped_ptr::complete -
-
completion_handler
-
async_completion, async_completion::completion_handler -
-
completion_handler_type
-
-
async_completion, async_completion::completion_handler_type -
-
async_result, async_result::completion_handler_type -
-
async_result< - std::packaged_task< Result(Args...)>, Signature >, async_result< - std::packaged_task< Result(Args...)>, Signature >::completion_handler_type -
-
-
connect, connect -
-
-
basic_datagram_socket, basic_datagram_socket::connect -
-
basic_raw_socket, basic_raw_socket::connect -
-
basic_seq_packet_socket, basic_seq_packet_socket::connect -
-
basic_socket, basic_socket::connect -
-
basic_socket_iostream, basic_socket_iostream::connect -
-
basic_socket_streambuf, basic_socket_streambuf::connect -
-
basic_stream_socket, basic_stream_socket::connect -
-
-
connection_aborted
-
error::basic_errors, error::basic_errors -
-
connection_refused
-
error::basic_errors, error::basic_errors -
-
connection_reset
-
error::basic_errors, error::basic_errors -
-
const_buffer
-
const_buffer, const_buffer::const_buffer -
-
const_buffers_1
-
const_buffers_1, const_buffers_1::const_buffers_1 -
-
const_buffers_type
-
-
basic_streambuf, basic_streambuf::const_buffers_type -
-
basic_streambuf_ref, basic_streambuf_ref::const_buffers_type -
-
dynamic_string_buffer, dynamic_string_buffer::const_buffers_type -
-
dynamic_vector_buffer, dynamic_vector_buffer::const_buffers_type -
-
-
const_iterator
-
-
const_buffers_1, const_buffers_1::const_iterator -
-
ip::basic_resolver_results, ip::basic_resolver_results::const_iterator -
-
mutable_buffers_1, mutable_buffers_1::const_iterator -
-
null_buffers, null_buffers::const_iterator -
-
-
const_reference
-
ip::basic_resolver_results, ip::basic_resolver_results::const_reference -
-
consume
-
-
basic_streambuf, basic_streambuf::consume -
-
basic_streambuf_ref, basic_streambuf_ref::consume -
-
dynamic_string_buffer, dynamic_string_buffer::consume -
-
dynamic_vector_buffer, dynamic_vector_buffer::consume -
-
-
context
-
-
execution_context::service, execution_context::service::context -
-
executor, executor::context -
-
io_context::executor_type, io_context::executor_type::context -
-
io_context::strand, io_context::strand::context -
-
ssl::context, ssl::context::context -
-
strand, strand::context -
-
system_executor, system_executor::context -
-
thread_pool::executor_type, thread_pool::executor_type::context -
-
-
coroutine
-
coroutine, coroutine::coroutine -
-
count_type
-
io_context, io_context::count_type -
-
-
-
-

D

-
-
data
-
-
basic_streambuf, basic_streambuf::data -
-
basic_streambuf_ref, basic_streambuf_ref::data -
-
const_buffer, const_buffer::data -
-
const_buffers_1, const_buffers_1::data -
-
dynamic_string_buffer, dynamic_string_buffer::data -
-
dynamic_vector_buffer, dynamic_vector_buffer::data -
-
generic::basic_endpoint, generic::basic_endpoint::data -
-
ip::basic_endpoint, ip::basic_endpoint::data -
-
local::basic_endpoint, local::basic_endpoint::data -
-
mutable_buffer, mutable_buffer::data -
-
mutable_buffers_1, mutable_buffers_1::data -
-
-
datagram_protocol
-
generic::datagram_protocol, generic::datagram_protocol::datagram_protocol -
-
data_type
-
-
generic::basic_endpoint, generic::basic_endpoint::data_type -
-
ip::basic_endpoint, ip::basic_endpoint::data_type -
-
local::basic_endpoint, local::basic_endpoint::data_type -
-
-
deadline_timer, deadline_timer -
-
debug
-
-
basic_datagram_socket, basic_datagram_socket::debug -
-
basic_raw_socket, basic_raw_socket::debug -
-
basic_seq_packet_socket, basic_seq_packet_socket::debug -
-
basic_socket, basic_socket::debug -
-
basic_socket_acceptor, basic_socket_acceptor::debug -
-
basic_stream_socket, basic_stream_socket::debug -
-
socket_base, socket_base::debug -
-
-
default_buffer_size
-
-
buffered_read_stream, buffered_read_stream::default_buffer_size -
-
buffered_write_stream, buffered_write_stream::default_buffer_size -
-
-
default_workarounds
-
-
ssl::context, ssl::context::default_workarounds -
-
ssl::context_base, ssl::context_base::default_workarounds -
-
-
defer, defer -
-
-
executor, executor::defer -
-
io_context::executor_type, io_context::executor_type::defer -
-
io_context::strand, io_context::strand::defer -
-
strand, strand::defer -
-
system_executor, system_executor::defer -
-
thread_pool::executor_type, thread_pool::executor_type::defer -
-
-
dereference
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::dereference -
-
ip::basic_resolver_results, ip::basic_resolver_results::dereference -
-
-
descriptor
-
posix::descriptor, posix::descriptor::descriptor -
-
destroy
-
-
execution_context, execution_context::destroy -
-
io_context, io_context::destroy -
-
system_context, system_context::destroy -
-
thread_pool, thread_pool::destroy -
-
-
detached_t
-
experimental::detached_t, experimental::detached_t::detached_t -
-
difference_type
-
-
buffers_iterator, buffers_iterator::difference_type -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::difference_type -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::difference_type -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::difference_type -
-
ip::basic_resolver_results, ip::basic_resolver_results::difference_type -
-
-
dispatch, dispatch -
-
-
executor, executor::dispatch -
-
io_context, io_context::dispatch -
-
io_context::executor_type, io_context::executor_type::dispatch -
-
io_context::strand, io_context::strand::dispatch -
-
strand, strand::dispatch -
-
system_executor, system_executor::dispatch -
-
thread_pool::executor_type, thread_pool::executor_type::dispatch -
-
-
do_not_route
-
-
basic_datagram_socket, basic_datagram_socket::do_not_route -
-
basic_raw_socket, basic_raw_socket::do_not_route -
-
basic_seq_packet_socket, basic_seq_packet_socket::do_not_route -
-
basic_socket, basic_socket::do_not_route -
-
basic_socket_acceptor, basic_socket_acceptor::do_not_route -
-
basic_stream_socket, basic_stream_socket::do_not_route -
-
socket_base, socket_base::do_not_route -
-
-
duration
-
-
basic_socket_iostream, basic_socket_iostream::duration -
-
basic_socket_streambuf, basic_socket_streambuf::duration -
-
basic_waitable_timer, basic_waitable_timer::duration -
-
-
duration_type
-
-
basic_deadline_timer, basic_deadline_timer::duration_type -
-
basic_socket_iostream, basic_socket_iostream::duration_type -
-
basic_socket_streambuf, basic_socket_streambuf::duration_type -
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::duration_type -
-
-
dynamic_buffer, dynamic_buffer -
-
dynamic_string_buffer
-
dynamic_string_buffer, dynamic_string_buffer::dynamic_string_buffer -
-
dynamic_vector_buffer
-
dynamic_vector_buffer, dynamic_vector_buffer::dynamic_vector_buffer -
-
-
-
-

E

-
-
ec_
-
experimental::redirect_error_t, experimental::redirect_error_t::ec_ -
-
empty
-
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::empty -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::empty -
-
ip::basic_resolver_results, ip::basic_resolver_results::empty -
-
-
enable_connection_aborted
-
-
basic_datagram_socket, basic_datagram_socket::enable_connection_aborted -
-
basic_raw_socket, basic_raw_socket::enable_connection_aborted -
-
basic_seq_packet_socket, basic_seq_packet_socket::enable_connection_aborted -
-
basic_socket, basic_socket::enable_connection_aborted -
-
basic_socket_acceptor, basic_socket_acceptor::enable_connection_aborted -
-
basic_stream_socket, basic_stream_socket::enable_connection_aborted -
-
socket_base, socket_base::enable_connection_aborted -
-
-
end
-
-
buffers_iterator, buffers_iterator::end -
-
const_buffers_1, const_buffers_1::end -
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::end -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::end -
-
ip::basic_resolver_results, ip::basic_resolver_results::end -
-
mutable_buffers_1, mutable_buffers_1::end -
-
null_buffers, null_buffers::end -
-
-
endpoint
-
-
generic::datagram_protocol, generic::datagram_protocol::endpoint -
-
generic::raw_protocol, generic::raw_protocol::endpoint -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::endpoint -
-
generic::stream_protocol, generic::stream_protocol::endpoint -
-
ip::basic_resolver_entry, ip::basic_resolver_entry::endpoint -
-
ip::icmp, ip::icmp::endpoint -
-
ip::tcp, ip::tcp::endpoint -
-
ip::udp, ip::udp::endpoint -
-
local::datagram_protocol, local::datagram_protocol::endpoint -
-
local::stream_protocol, local::stream_protocol::endpoint -
-
-
endpoint_type
-
-
basic_datagram_socket, basic_datagram_socket::endpoint_type -
-
basic_raw_socket, basic_raw_socket::endpoint_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::endpoint_type -
-
basic_socket, basic_socket::endpoint_type -
-
basic_socket_acceptor, basic_socket_acceptor::endpoint_type -
-
basic_socket_iostream, basic_socket_iostream::endpoint_type -
-
basic_socket_streambuf, basic_socket_streambuf::endpoint_type -
-
basic_stream_socket, basic_stream_socket::endpoint_type -
-
ip::basic_resolver, ip::basic_resolver::endpoint_type -
-
ip::basic_resolver_entry, ip::basic_resolver_entry::endpoint_type -
-
ip::basic_resolver_results, ip::basic_resolver_results::endpoint_type -
-
-
eof
-
error::misc_errors, error::misc_errors -
-
equal
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::equal -
-
ip::basic_resolver_results, ip::basic_resolver_results::equal -
-
-
error
-
-
basic_socket_iostream, basic_socket_iostream::error -
-
basic_socket_streambuf, basic_socket_streambuf::error -
-
-
error::addrinfo_category, error::addrinfo_category -
-
error::addrinfo_errors, error::addrinfo_errors -
-
error::basic_errors, error::basic_errors -
-
error::get_addrinfo_category, error::get_addrinfo_category -
-
error::get_misc_category, error::get_misc_category -
-
error::get_netdb_category, error::get_netdb_category -
-
error::get_ssl_category, error::get_ssl_category -
-
error::get_system_category, error::get_system_category -
-
error::make_error_code, error::make_error_code -
-
error::misc_category, error::misc_category -
-
error::misc_errors, error::misc_errors -
-
error::netdb_category, error::netdb_category -
-
error::netdb_errors, error::netdb_errors -
-
error::ssl_category, error::ssl_category -
-
error::ssl_errors, error::ssl_errors -
-
error::system_category, error::system_category -
-
error_code
-
error_code, error_code::error_code -
-
even
-
serial_port_base::parity, serial_port_base::parity::type -
-
execution_context
-
execution_context, execution_context::execution_context -
-
executor
-
executor, executor::executor -
-
executor_arg, executor_arg -
-
executor_arg_t
-
executor_arg_t, executor_arg_t::executor_arg_t -
-
executor_binder
-
executor_binder, executor_binder::executor_binder -
-
executor_type
-
-
basic_datagram_socket, basic_datagram_socket::executor_type -
-
basic_deadline_timer, basic_deadline_timer::executor_type -
-
basic_io_object, basic_io_object::executor_type -
-
basic_raw_socket, basic_raw_socket::executor_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::executor_type -
-
basic_socket, basic_socket::executor_type -
-
basic_socket_acceptor, basic_socket_acceptor::executor_type -
-
basic_stream_socket, basic_stream_socket::executor_type -
-
basic_waitable_timer, basic_waitable_timer::executor_type -
-
buffered_read_stream, buffered_read_stream::executor_type -
-
buffered_stream, buffered_stream::executor_type -
-
buffered_write_stream, buffered_write_stream::executor_type -
-
executor_binder, executor_binder::executor_type -
-
executor_work_guard, executor_work_guard::executor_type -
-
experimental::awaitable, experimental::awaitable::executor_type -
-
experimental::await_token, experimental::await_token::executor_type -
-
ip::basic_resolver, ip::basic_resolver::executor_type -
-
posix::descriptor, posix::descriptor::executor_type -
-
posix::stream_descriptor, posix::stream_descriptor::executor_type -
-
serial_port, serial_port::executor_type -
-
signal_set, signal_set::executor_type -
-
ssl::stream, ssl::stream::executor_type -
-
system_context, system_context::executor_type -
-
windows::object_handle, windows::object_handle::executor_type -
-
windows::overlapped_handle, windows::overlapped_handle::executor_type -
-
windows::random_access_handle, windows::random_access_handle::executor_type -
-
windows::stream_handle, windows::stream_handle::executor_type -
-
-
executor_work_guard
-
executor_work_guard, executor_work_guard::executor_work_guard -
-
experimental::co_spawn, experimental::co_spawn -
-
experimental::detached, experimental::detached -
-
experimental::redirect_error, experimental::redirect_error -
-
experimental::this_coro::executor, experimental::this_coro::executor -
-
experimental::this_coro::token, experimental::this_coro::token -
-
expires_after
-
-
basic_socket_iostream, basic_socket_iostream::expires_after -
-
basic_socket_streambuf, basic_socket_streambuf::expires_after -
-
basic_waitable_timer, basic_waitable_timer::expires_after -
-
-
expires_at
-
-
basic_deadline_timer, basic_deadline_timer::expires_at -
-
basic_socket_iostream, basic_socket_iostream::expires_at -
-
basic_socket_streambuf, basic_socket_streambuf::expires_at -
-
basic_waitable_timer, basic_waitable_timer::expires_at -
-
-
expires_from_now
-
-
basic_deadline_timer, basic_deadline_timer::expires_from_now -
-
basic_socket_iostream, basic_socket_iostream::expires_from_now -
-
basic_socket_streambuf, basic_socket_streambuf::expires_from_now -
-
basic_waitable_timer, basic_waitable_timer::expires_from_now -
-
-
expiry
-
-
basic_socket_iostream, basic_socket_iostream::expiry -
-
basic_socket_streambuf, basic_socket_streambuf::expiry -
-
basic_waitable_timer, basic_waitable_timer::expiry -
-
-
-
-
-

F

-
-
family
-
-
generic::datagram_protocol, generic::datagram_protocol::family -
-
generic::raw_protocol, generic::raw_protocol::family -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::family -
-
generic::stream_protocol, generic::stream_protocol::family -
-
ip::icmp, ip::icmp::family -
-
ip::tcp, ip::tcp::family -
-
ip::udp, ip::udp::family -
-
local::datagram_protocol, local::datagram_protocol::family -
-
local::stream_protocol, local::stream_protocol::family -
-
-
fault
-
error::basic_errors, error::basic_errors -
-
fd_set_failure
-
error::misc_errors, error::misc_errors -
-
file_format
-
-
ssl::context, ssl::context::file_format -
-
ssl::context_base, ssl::context_base::file_format -
-
-
fill
-
-
buffered_read_stream, buffered_read_stream::fill -
-
buffered_stream, buffered_stream::fill -
-
-
find
-
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::find -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::find -
-
-
first_argument_type
-
executor_binder, executor_binder::first_argument_type -
-
flags
-
-
ip::basic_resolver, ip::basic_resolver::flags -
-
ip::basic_resolver_query, ip::basic_resolver_query::flags -
-
ip::resolver_base, ip::resolver_base::flags -
-
ip::resolver_query_base, ip::resolver_query_base::flags -
-
-
flow_control
-
serial_port_base::flow_control, serial_port_base::flow_control::flow_control -
-
flush
-
-
buffered_stream, buffered_stream::flush -
-
buffered_write_stream, buffered_write_stream::flush -
-
-
fork_child
-
-
execution_context, execution_context::fork_event -
-
io_context, io_context::fork_event -
-
system_context, system_context::fork_event -
-
thread_pool, thread_pool::fork_event -
-
-
fork_event
-
-
execution_context, execution_context::fork_event -
-
io_context, io_context::fork_event -
-
system_context, system_context::fork_event -
-
thread_pool, thread_pool::fork_event -
-
-
fork_parent
-
-
execution_context, execution_context::fork_event -
-
io_context, io_context::fork_event -
-
system_context, system_context::fork_event -
-
thread_pool, thread_pool::fork_event -
-
-
fork_prepare
-
-
execution_context, execution_context::fork_event -
-
io_context, io_context::fork_event -
-
system_context, system_context::fork_event -
-
thread_pool, thread_pool::fork_event -
-
-
for_reading
-
-
ssl::context, ssl::context::password_purpose -
-
ssl::context_base, ssl::context_base::password_purpose -
-
-
for_writing
-
-
ssl::context, ssl::context::password_purpose -
-
ssl::context_base, ssl::context_base::password_purpose -
-
-
from_string
-
-
ip::address, ip::address::from_string -
-
ip::address_v4, ip::address_v4::from_string -
-
ip::address_v6, ip::address_v6::from_string -
-
-
-
-
-

G

-
-
get
-
-
associated_allocator, associated_allocator::get -
-
associated_executor, associated_executor::get -
-
async_result, async_result::get -
-
async_result< Handler - >, async_result< - Handler >::get -
-
async_result< - std::packaged_task< Result(Args...)>, Signature >, async_result< - std::packaged_task< Result(Args...)>, Signature >::get -
-
executor_binder, executor_binder::get -
-
windows::overlapped_ptr, windows::overlapped_ptr::get -
-
-
get_allocator
-
use_future_t, use_future_t::get_allocator -
-
get_associated_allocator, get_associated_allocator -
-
get_associated_executor, get_associated_executor -
-
get_executor
-
-
basic_datagram_socket, basic_datagram_socket::get_executor -
-
basic_deadline_timer, basic_deadline_timer::get_executor -
-
basic_io_object, basic_io_object::get_executor -
-
basic_raw_socket, basic_raw_socket::get_executor -
-
basic_seq_packet_socket, basic_seq_packet_socket::get_executor -
-
basic_socket, basic_socket::get_executor -
-
basic_socket_acceptor, basic_socket_acceptor::get_executor -
-
basic_stream_socket, basic_stream_socket::get_executor -
-
basic_waitable_timer, basic_waitable_timer::get_executor -
-
buffered_read_stream, buffered_read_stream::get_executor -
-
buffered_stream, buffered_stream::get_executor -
-
buffered_write_stream, buffered_write_stream::get_executor -
-
executor_binder, executor_binder::get_executor -
-
executor_work_guard, executor_work_guard::get_executor -
-
experimental::await_token, experimental::await_token::get_executor -
-
io_context, io_context::get_executor -
-
ip::basic_resolver, ip::basic_resolver::get_executor -
-
posix::descriptor, posix::descriptor::get_executor -
-
posix::stream_descriptor, posix::stream_descriptor::get_executor -
-
serial_port, serial_port::get_executor -
-
signal_set, signal_set::get_executor -
-
ssl::stream, ssl::stream::get_executor -
-
system_context, system_context::get_executor -
-
thread_pool, thread_pool::get_executor -
-
windows::object_handle, windows::object_handle::get_executor -
-
windows::overlapped_handle, windows::overlapped_handle::get_executor -
-
windows::random_access_handle, windows::random_access_handle::get_executor -
-
windows::stream_handle, windows::stream_handle::get_executor -
-
-
get_implementation
-
basic_io_object, basic_io_object::get_implementation -
-
get_inner_executor
-
strand, strand::get_inner_executor -
-
get_io_context
-
-
basic_datagram_socket, basic_datagram_socket::get_io_context -
-
basic_deadline_timer, basic_deadline_timer::get_io_context -
-
basic_io_object, basic_io_object::get_io_context -
-
basic_raw_socket, basic_raw_socket::get_io_context -
-
basic_seq_packet_socket, basic_seq_packet_socket::get_io_context -
-
basic_socket, basic_socket::get_io_context -
-
basic_socket_acceptor, basic_socket_acceptor::get_io_context -
-
basic_stream_socket, basic_stream_socket::get_io_context -
-
basic_waitable_timer, basic_waitable_timer::get_io_context -
-
buffered_read_stream, buffered_read_stream::get_io_context -
-
buffered_stream, buffered_stream::get_io_context -
-
buffered_write_stream, buffered_write_stream::get_io_context -
-
io_context::service, io_context::service::get_io_context -
-
io_context::strand, io_context::strand::get_io_context -
-
io_context::work, io_context::work::get_io_context -
-
ip::basic_resolver, ip::basic_resolver::get_io_context -
-
posix::descriptor, posix::descriptor::get_io_context -
-
posix::stream_descriptor, posix::stream_descriptor::get_io_context -
-
serial_port, serial_port::get_io_context -
-
signal_set, signal_set::get_io_context -
-
ssl::stream, ssl::stream::get_io_context -
-
windows::object_handle, windows::object_handle::get_io_context -
-
windows::overlapped_handle, windows::overlapped_handle::get_io_context -
-
windows::random_access_handle, windows::random_access_handle::get_io_context -
-
windows::stream_handle, windows::stream_handle::get_io_context -
-
-
get_io_service
-
-
basic_datagram_socket, basic_datagram_socket::get_io_service -
-
basic_deadline_timer, basic_deadline_timer::get_io_service -
-
basic_io_object, basic_io_object::get_io_service -
-
basic_raw_socket, basic_raw_socket::get_io_service -
-
basic_seq_packet_socket, basic_seq_packet_socket::get_io_service -
-
basic_socket, basic_socket::get_io_service -
-
basic_socket_acceptor, basic_socket_acceptor::get_io_service -
-
basic_stream_socket, basic_stream_socket::get_io_service -
-
basic_waitable_timer, basic_waitable_timer::get_io_service -
-
buffered_read_stream, buffered_read_stream::get_io_service -
-
buffered_stream, buffered_stream::get_io_service -
-
buffered_write_stream, buffered_write_stream::get_io_service -
-
io_context::service, io_context::service::get_io_service -
-
io_context::strand, io_context::strand::get_io_service -
-
io_context::work, io_context::work::get_io_service -
-
ip::basic_resolver, ip::basic_resolver::get_io_service -
-
posix::descriptor, posix::descriptor::get_io_service -
-
posix::stream_descriptor, posix::stream_descriptor::get_io_service -
-
serial_port, serial_port::get_io_service -
-
signal_set, signal_set::get_io_service -
-
ssl::stream, ssl::stream::get_io_service -
-
windows::object_handle, windows::object_handle::get_io_service -
-
windows::overlapped_handle, windows::overlapped_handle::get_io_service -
-
windows::random_access_handle, windows::random_access_handle::get_io_service -
-
windows::stream_handle, windows::stream_handle::get_io_service -
-
-
get_option
-
-
basic_datagram_socket, basic_datagram_socket::get_option -
-
basic_raw_socket, basic_raw_socket::get_option -
-
basic_seq_packet_socket, basic_seq_packet_socket::get_option -
-
basic_socket, basic_socket::get_option -
-
basic_socket_acceptor, basic_socket_acceptor::get_option -
-
basic_stream_socket, basic_stream_socket::get_option -
-
serial_port, serial_port::get_option -
-
-
get_service
-
basic_io_object, basic_io_object::get_service -
-
-
-
-

H

-
-
handshake
-
ssl::stream, ssl::stream::handshake -
-
handshake_type
-
-
ssl::stream, ssl::stream::handshake_type -
-
ssl::stream_base, ssl::stream_base::handshake_type -
-
-
hardware
-
serial_port_base::flow_control, serial_port_base::flow_control::type -
-
has_service, has_service -
-
-
execution_context, execution_context::has_service -
-
io_context, io_context::has_service -
-
system_context, system_context::has_service -
-
thread_pool, thread_pool::has_service -
-
-
high_resolution_timer, high_resolution_timer -
-
hints
-
ip::basic_resolver_query, ip::basic_resolver_query::hints -
-
hosts
-
-
ip::network_v4, ip::network_v4::hosts -
-
ip::network_v6, ip::network_v6::hosts -
-
-
host_name
-
-
ip::basic_resolver_entry, ip::basic_resolver_entry::host_name -
-
ip::basic_resolver_query, ip::basic_resolver_query::host_name -
-
-
host_not_found
-
error::netdb_errors, error::netdb_errors -
-
host_not_found_try_again
-
error::netdb_errors, error::netdb_errors -
-
host_unreachable
-
error::basic_errors, error::basic_errors -
-
-
-
-

I

-
-
id
-
execution_context::id, execution_context::id::id -
-
implementation_type
-
basic_io_object, basic_io_object::implementation_type -
-
increment
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::increment -
-
ip::basic_resolver_results, ip::basic_resolver_results::increment -
-
-
index_
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::index_ -
-
ip::basic_resolver_results, ip::basic_resolver_results::index_ -
-
-
inner_executor_type
-
strand, strand::inner_executor_type -
-
interrupted
-
error::basic_errors, error::basic_errors -
-
invalid_argument
-
error::basic_errors, error::basic_errors -
-
invalid_service_owner
-
invalid_service_owner, invalid_service_owner::invalid_service_owner -
-
in_avail
-
-
buffered_read_stream, buffered_read_stream::in_avail -
-
buffered_stream, buffered_stream::in_avail -
-
buffered_write_stream, buffered_write_stream::in_avail -
-
-
in_progress
-
error::basic_errors, error::basic_errors -
-
iostream
-
-
generic::stream_protocol, generic::stream_protocol::iostream -
-
ip::tcp, ip::tcp::iostream -
-
local::stream_protocol, local::stream_protocol::iostream -
-
-
io_context
-
io_context, io_context::io_context -
-
io_control
-
-
basic_datagram_socket, basic_datagram_socket::io_control -
-
basic_raw_socket, basic_raw_socket::io_control -
-
basic_seq_packet_socket, basic_seq_packet_socket::io_control -
-
basic_socket, basic_socket::io_control -
-
basic_socket_acceptor, basic_socket_acceptor::io_control -
-
basic_stream_socket, basic_stream_socket::io_control -
-
posix::descriptor, posix::descriptor::io_control -
-
posix::stream_descriptor, posix::stream_descriptor::io_control -
-
-
io_service, io_service -
-
ip::address_v4_iterator, ip::address_v4_iterator -
-
ip::address_v4_range, ip::address_v4_range -
-
ip::address_v6_iterator, ip::address_v6_iterator -
-
ip::address_v6_range, ip::address_v6_range -
-
ip::host_name, ip::host_name -
-
ip::multicast::enable_loopback, ip::multicast::enable_loopback -
-
ip::multicast::hops, ip::multicast::hops -
-
ip::multicast::join_group, ip::multicast::join_group -
-
ip::multicast::leave_group, ip::multicast::leave_group -
-
ip::multicast::outbound_interface, ip::multicast::outbound_interface -
-
ip::unicast::hops, ip::unicast::hops -
-
ip::v4_mapped_t, ip::v4_mapped_t -
-
ip::v6_only, ip::v6_only -
-
is_child
-
coroutine, coroutine::is_child -
-
is_class_a
-
ip::address_v4, ip::address_v4::is_class_a -
-
is_class_b
-
ip::address_v4, ip::address_v4::is_class_b -
-
is_class_c
-
ip::address_v4, ip::address_v4::is_class_c -
-
is_complete
-
coroutine, coroutine::is_complete -
-
is_host
-
-
ip::network_v4, ip::network_v4::is_host -
-
ip::network_v6, ip::network_v6::is_host -
-
-
is_link_local
-
ip::address_v6, ip::address_v6::is_link_local -
-
is_loopback
-
-
ip::address, ip::address::is_loopback -
-
ip::address_v4, ip::address_v4::is_loopback -
-
ip::address_v6, ip::address_v6::is_loopback -
-
-
is_multicast
-
-
ip::address, ip::address::is_multicast -
-
ip::address_v4, ip::address_v4::is_multicast -
-
ip::address_v6, ip::address_v6::is_multicast -
-
-
is_multicast_global
-
ip::address_v6, ip::address_v6::is_multicast_global -
-
is_multicast_link_local
-
ip::address_v6, ip::address_v6::is_multicast_link_local -
-
is_multicast_node_local
-
ip::address_v6, ip::address_v6::is_multicast_node_local -
-
is_multicast_org_local
-
ip::address_v6, ip::address_v6::is_multicast_org_local -
-
is_multicast_site_local
-
ip::address_v6, ip::address_v6::is_multicast_site_local -
-
is_open
-
-
basic_datagram_socket, basic_datagram_socket::is_open -
-
basic_raw_socket, basic_raw_socket::is_open -
-
basic_seq_packet_socket, basic_seq_packet_socket::is_open -
-
basic_socket, basic_socket::is_open -
-
basic_socket_acceptor, basic_socket_acceptor::is_open -
-
basic_stream_socket, basic_stream_socket::is_open -
-
posix::descriptor, posix::descriptor::is_open -
-
posix::stream_descriptor, posix::stream_descriptor::is_open -
-
serial_port, serial_port::is_open -
-
windows::object_handle, windows::object_handle::is_open -
-
windows::overlapped_handle, windows::overlapped_handle::is_open -
-
windows::random_access_handle, windows::random_access_handle::is_open -
-
windows::stream_handle, windows::stream_handle::is_open -
-
-
is_parent
-
coroutine, coroutine::is_parent -
-
is_site_local
-
ip::address_v6, ip::address_v6::is_site_local -
-
is_subnet_of
-
-
ip::network_v4, ip::network_v4::is_subnet_of -
-
ip::network_v6, ip::network_v6::is_subnet_of -
-
-
is_unspecified
-
-
ip::address, ip::address::is_unspecified -
-
ip::address_v4, ip::address_v4::is_unspecified -
-
ip::address_v6, ip::address_v6::is_unspecified -
-
-
is_v4
-
ip::address, ip::address::is_v4 -
-
is_v4_compatible
-
ip::address_v6, ip::address_v6::is_v4_compatible -
-
is_v4_mapped
-
ip::address_v6, ip::address_v6::is_v4_mapped -
-
is_v6
-
ip::address, ip::address::is_v6 -
-
iterator
-
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::iterator -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::iterator -
-
ip::basic_resolver, ip::basic_resolver::iterator -
-
ip::basic_resolver_results, ip::basic_resolver_results::iterator -
-
-
iterator_category
-
-
buffers_iterator, buffers_iterator::iterator_category -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::iterator_category -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::iterator_category -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::iterator_category -
-
ip::basic_resolver_results, ip::basic_resolver_results::iterator_category -
-
-
-
-
-

J

-
-
join
-
-
system_context, system_context::join -
-
thread, thread::join -
-
thread_pool, thread_pool::join -
-
-
-
-
-

K

-
-
keep_alive
-
-
basic_datagram_socket, basic_datagram_socket::keep_alive -
-
basic_raw_socket, basic_raw_socket::keep_alive -
-
basic_seq_packet_socket, basic_seq_packet_socket::keep_alive -
-
basic_socket, basic_socket::keep_alive -
-
basic_socket_acceptor, basic_socket_acceptor::keep_alive -
-
basic_stream_socket, basic_stream_socket::keep_alive -
-
socket_base, socket_base::keep_alive -
-
-
-
-
-

L

-
-
less_than
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::less_than -
-
linger
-
-
basic_datagram_socket, basic_datagram_socket::linger -
-
basic_raw_socket, basic_raw_socket::linger -
-
basic_seq_packet_socket, basic_seq_packet_socket::linger -
-
basic_socket, basic_socket::linger -
-
basic_socket_acceptor, basic_socket_acceptor::linger -
-
basic_stream_socket, basic_stream_socket::linger -
-
socket_base, socket_base::linger -
-
-
listen
-
basic_socket_acceptor, basic_socket_acceptor::listen -
-
load
-
-
serial_port_base::baud_rate, serial_port_base::baud_rate::load -
-
serial_port_base::character_size, serial_port_base::character_size::load -
-
serial_port_base::flow_control, serial_port_base::flow_control::load -
-
serial_port_base::parity, serial_port_base::parity::load -
-
serial_port_base::stop_bits, serial_port_base::stop_bits::load -
-
-
load_verify_file
-
ssl::context, ssl::context::load_verify_file -
-
local::connect_pair, local::connect_pair -
-
local_endpoint
-
-
basic_datagram_socket, basic_datagram_socket::local_endpoint -
-
basic_raw_socket, basic_raw_socket::local_endpoint -
-
basic_seq_packet_socket, basic_seq_packet_socket::local_endpoint -
-
basic_socket, basic_socket::local_endpoint -
-
basic_socket_acceptor, basic_socket_acceptor::local_endpoint -
-
basic_stream_socket, basic_stream_socket::local_endpoint -
-
-
loopback
-
-
ip::address_v4, ip::address_v4::loopback -
-
ip::address_v6, ip::address_v6::loopback -
-
-
lowest_layer
-
-
basic_datagram_socket, basic_datagram_socket::lowest_layer -
-
basic_raw_socket, basic_raw_socket::lowest_layer -
-
basic_seq_packet_socket, basic_seq_packet_socket::lowest_layer -
-
basic_socket, basic_socket::lowest_layer -
-
basic_stream_socket, basic_stream_socket::lowest_layer -
-
buffered_read_stream, buffered_read_stream::lowest_layer -
-
buffered_stream, buffered_stream::lowest_layer -
-
buffered_write_stream, buffered_write_stream::lowest_layer -
-
posix::descriptor, posix::descriptor::lowest_layer -
-
posix::stream_descriptor, posix::stream_descriptor::lowest_layer -
-
serial_port, serial_port::lowest_layer -
-
ssl::stream, ssl::stream::lowest_layer -
-
windows::object_handle, windows::object_handle::lowest_layer -
-
windows::overlapped_handle, windows::overlapped_handle::lowest_layer -
-
windows::random_access_handle, windows::random_access_handle::lowest_layer -
-
windows::stream_handle, windows::stream_handle::lowest_layer -
-
-
lowest_layer_type
-
-
basic_datagram_socket, basic_datagram_socket::lowest_layer_type -
-
basic_raw_socket, basic_raw_socket::lowest_layer_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::lowest_layer_type -
-
basic_socket, basic_socket::lowest_layer_type -
-
basic_stream_socket, basic_stream_socket::lowest_layer_type -
-
buffered_read_stream, buffered_read_stream::lowest_layer_type -
-
buffered_stream, buffered_stream::lowest_layer_type -
-
buffered_write_stream, buffered_write_stream::lowest_layer_type -
-
posix::descriptor, posix::descriptor::lowest_layer_type -
-
posix::stream_descriptor, posix::stream_descriptor::lowest_layer_type -
-
serial_port, serial_port::lowest_layer_type -
-
ssl::stream, ssl::stream::lowest_layer_type -
-
windows::object_handle, windows::object_handle::lowest_layer_type -
-
windows::overlapped_handle, windows::overlapped_handle::lowest_layer_type -
-
windows::random_access_handle, windows::random_access_handle::lowest_layer_type -
-
windows::stream_handle, windows::stream_handle::lowest_layer_type -
-
-
-
-
-

M

-
-
make_address
-
ip::address, ip::address::make_address -
-
make_address_v4
-
ip::address_v4, ip::address_v4::make_address_v4 -
-
make_address_v6
-
ip::address_v6, ip::address_v6::make_address_v6 -
-
make_network_v4
-
-
ip::address_v4, ip::address_v4::make_network_v4 -
-
ip::network_v4, ip::network_v4::make_network_v4 -
-
-
make_network_v6
-
-
ip::address_v6, ip::address_v6::make_network_v6 -
-
ip::network_v6, ip::network_v6::make_network_v6 -
-
-
make_service
-
-
execution_context, execution_context::make_service -
-
io_context, io_context::make_service -
-
system_context, system_context::make_service -
-
thread_pool, thread_pool::make_service -
-
-
make_work_guard, make_work_guard -
-
max_connections
-
-
basic_datagram_socket, basic_datagram_socket::max_connections -
-
basic_raw_socket, basic_raw_socket::max_connections -
-
basic_seq_packet_socket, basic_seq_packet_socket::max_connections -
-
basic_socket, basic_socket::max_connections -
-
basic_socket_acceptor, basic_socket_acceptor::max_connections -
-
basic_stream_socket, basic_stream_socket::max_connections -
-
socket_base, socket_base::max_connections -
-
-
max_listen_connections
-
-
basic_datagram_socket, basic_datagram_socket::max_listen_connections -
-
basic_raw_socket, basic_raw_socket::max_listen_connections -
-
basic_seq_packet_socket, basic_seq_packet_socket::max_listen_connections -
-
basic_socket, basic_socket::max_listen_connections -
-
basic_socket_acceptor, basic_socket_acceptor::max_listen_connections -
-
basic_stream_socket, basic_stream_socket::max_listen_connections -
-
socket_base, socket_base::max_listen_connections -
-
-
max_size
-
-
basic_streambuf, basic_streambuf::max_size -
-
basic_streambuf_ref, basic_streambuf_ref::max_size -
-
dynamic_string_buffer, dynamic_string_buffer::max_size -
-
dynamic_vector_buffer, dynamic_vector_buffer::max_size -
-
ip::basic_resolver_results, ip::basic_resolver_results::max_size -
-
-
message
-
-
error_category, error_category::message -
-
error_code, error_code::message -
-
-
message_do_not_route
-
-
basic_datagram_socket, basic_datagram_socket::message_do_not_route -
-
basic_raw_socket, basic_raw_socket::message_do_not_route -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_do_not_route -
-
basic_socket, basic_socket::message_do_not_route -
-
basic_socket_acceptor, basic_socket_acceptor::message_do_not_route -
-
basic_stream_socket, basic_stream_socket::message_do_not_route -
-
socket_base, socket_base::message_do_not_route -
-
-
message_end_of_record
-
-
basic_datagram_socket, basic_datagram_socket::message_end_of_record -
-
basic_raw_socket, basic_raw_socket::message_end_of_record -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_end_of_record -
-
basic_socket, basic_socket::message_end_of_record -
-
basic_socket_acceptor, basic_socket_acceptor::message_end_of_record -
-
basic_stream_socket, basic_stream_socket::message_end_of_record -
-
socket_base, socket_base::message_end_of_record -
-
-
message_flags
-
-
basic_datagram_socket, basic_datagram_socket::message_flags -
-
basic_raw_socket, basic_raw_socket::message_flags -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_flags -
-
basic_socket, basic_socket::message_flags -
-
basic_socket_acceptor, basic_socket_acceptor::message_flags -
-
basic_stream_socket, basic_stream_socket::message_flags -
-
socket_base, socket_base::message_flags -
-
-
message_out_of_band
-
-
basic_datagram_socket, basic_datagram_socket::message_out_of_band -
-
basic_raw_socket, basic_raw_socket::message_out_of_band -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_out_of_band -
-
basic_socket, basic_socket::message_out_of_band -
-
basic_socket_acceptor, basic_socket_acceptor::message_out_of_band -
-
basic_stream_socket, basic_stream_socket::message_out_of_band -
-
socket_base, socket_base::message_out_of_band -
-
-
message_peek
-
-
basic_datagram_socket, basic_datagram_socket::message_peek -
-
basic_raw_socket, basic_raw_socket::message_peek -
-
basic_seq_packet_socket, basic_seq_packet_socket::message_peek -
-
basic_socket, basic_socket::message_peek -
-
basic_socket_acceptor, basic_socket_acceptor::message_peek -
-
basic_stream_socket, basic_stream_socket::message_peek -
-
socket_base, socket_base::message_peek -
-
-
message_size
-
error::basic_errors, error::basic_errors -
-
method
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
mutable_buffer
-
mutable_buffer, mutable_buffer::mutable_buffer -
-
mutable_buffers_1
-
mutable_buffers_1, mutable_buffers_1::mutable_buffers_1 -
-
mutable_buffers_type
-
-
basic_streambuf, basic_streambuf::mutable_buffers_type -
-
basic_streambuf_ref, basic_streambuf_ref::mutable_buffers_type -
-
dynamic_string_buffer, dynamic_string_buffer::mutable_buffers_type -
-
dynamic_vector_buffer, dynamic_vector_buffer::mutable_buffers_type -
-
-
-
-
-

N

-
-
name
-
error_category, error_category::name -
-
name_too_long
-
error::basic_errors, error::basic_errors -
-
native_handle
-
-
basic_datagram_socket, basic_datagram_socket::native_handle -
-
basic_raw_socket, basic_raw_socket::native_handle -
-
basic_seq_packet_socket, basic_seq_packet_socket::native_handle -
-
basic_socket, basic_socket::native_handle -
-
basic_socket_acceptor, basic_socket_acceptor::native_handle -
-
basic_stream_socket, basic_stream_socket::native_handle -
-
posix::descriptor, posix::descriptor::native_handle -
-
posix::stream_descriptor, posix::stream_descriptor::native_handle -
-
serial_port, serial_port::native_handle -
-
ssl::context, ssl::context::native_handle -
-
ssl::stream, ssl::stream::native_handle -
-
ssl::verify_context, ssl::verify_context::native_handle -
-
windows::object_handle, windows::object_handle::native_handle -
-
windows::overlapped_handle, windows::overlapped_handle::native_handle -
-
windows::random_access_handle, windows::random_access_handle::native_handle -
-
windows::stream_handle, windows::stream_handle::native_handle -
-
-
native_handle_type
-
-
basic_datagram_socket, basic_datagram_socket::native_handle_type -
-
basic_raw_socket, basic_raw_socket::native_handle_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::native_handle_type -
-
basic_socket, basic_socket::native_handle_type -
-
basic_socket_acceptor, basic_socket_acceptor::native_handle_type -
-
basic_stream_socket, basic_stream_socket::native_handle_type -
-
posix::descriptor, posix::descriptor::native_handle_type -
-
posix::stream_descriptor, posix::stream_descriptor::native_handle_type -
-
serial_port, serial_port::native_handle_type -
-
ssl::context, ssl::context::native_handle_type -
-
ssl::stream, ssl::stream::native_handle_type -
-
ssl::verify_context, ssl::verify_context::native_handle_type -
-
windows::object_handle, windows::object_handle::native_handle_type -
-
windows::overlapped_handle, windows::overlapped_handle::native_handle_type -
-
windows::random_access_handle, windows::random_access_handle::native_handle_type -
-
windows::stream_handle, windows::stream_handle::native_handle_type -
-
-
native_non_blocking
-
-
basic_datagram_socket, basic_datagram_socket::native_non_blocking -
-
basic_raw_socket, basic_raw_socket::native_non_blocking -
-
basic_seq_packet_socket, basic_seq_packet_socket::native_non_blocking -
-
basic_socket, basic_socket::native_non_blocking -
-
basic_socket_acceptor, basic_socket_acceptor::native_non_blocking -
-
basic_stream_socket, basic_stream_socket::native_non_blocking -
-
posix::descriptor, posix::descriptor::native_non_blocking -
-
posix::stream_descriptor, posix::stream_descriptor::native_non_blocking -
-
-
netmask
-
-
ip::address_v4, ip::address_v4::netmask -
-
ip::network_v4, ip::network_v4::netmask -
-
-
network
-
-
ip::network_v4, ip::network_v4::network -
-
ip::network_v6, ip::network_v6::network -
-
-
network_down
-
error::basic_errors, error::basic_errors -
-
network_reset
-
error::basic_errors, error::basic_errors -
-
network_unreachable
-
error::basic_errors, error::basic_errors -
-
network_v4
-
ip::network_v4, ip::network_v4::network_v4 -
-
network_v6
-
ip::network_v6, ip::network_v6::network_v6 -
-
next_layer
-
-
buffered_read_stream, buffered_read_stream::next_layer -
-
buffered_stream, buffered_stream::next_layer -
-
buffered_write_stream, buffered_write_stream::next_layer -
-
ssl::stream, ssl::stream::next_layer -
-
-
next_layer_type
-
-
buffered_read_stream, buffered_read_stream::next_layer_type -
-
buffered_stream, buffered_stream::next_layer_type -
-
buffered_write_stream, buffered_write_stream::next_layer_type -
-
ssl::stream, ssl::stream::next_layer_type -
-
-
none
-
-
serial_port_base::flow_control, serial_port_base::flow_control::type -
-
serial_port_base::parity, serial_port_base::parity::type -
-
-
non_blocking
-
-
basic_datagram_socket, basic_datagram_socket::non_blocking -
-
basic_raw_socket, basic_raw_socket::non_blocking -
-
basic_seq_packet_socket, basic_seq_packet_socket::non_blocking -
-
basic_socket, basic_socket::non_blocking -
-
basic_socket_acceptor, basic_socket_acceptor::non_blocking -
-
basic_stream_socket, basic_stream_socket::non_blocking -
-
posix::descriptor, posix::descriptor::non_blocking -
-
posix::stream_descriptor, posix::stream_descriptor::non_blocking -
-
-
notify_fork
-
-
execution_context, execution_context::notify_fork -
-
execution_context::service, execution_context::service::notify_fork -
-
io_context, io_context::notify_fork -
-
system_context, system_context::notify_fork -
-
thread_pool, thread_pool::notify_fork -
-
-
not_connected
-
error::basic_errors, error::basic_errors -
-
not_found
-
error::misc_errors, error::misc_errors -
-
not_socket
-
error::basic_errors, error::basic_errors -
-
now
-
time_traits< boost::posix_time::ptime - >, time_traits< - boost::posix_time::ptime >::now -
-
no_buffer_space
-
error::basic_errors, error::basic_errors -
-
no_compression
-
-
ssl::context, ssl::context::no_compression -
-
ssl::context_base, ssl::context_base::no_compression -
-
-
no_data
-
error::netdb_errors, error::netdb_errors -
-
no_delay
-
ip::tcp, ip::tcp::no_delay -
-
no_descriptors
-
error::basic_errors, error::basic_errors -
-
no_memory
-
error::basic_errors, error::basic_errors -
-
no_permission
-
error::basic_errors, error::basic_errors -
-
no_protocol_option
-
error::basic_errors, error::basic_errors -
-
no_recovery
-
error::netdb_errors, error::netdb_errors -
-
no_sslv2
-
-
ssl::context, ssl::context::no_sslv2 -
-
ssl::context_base, ssl::context_base::no_sslv2 -
-
-
no_sslv3
-
-
ssl::context, ssl::context::no_sslv3 -
-
ssl::context_base, ssl::context_base::no_sslv3 -
-
-
no_such_device
-
error::basic_errors, error::basic_errors -
-
no_tlsv1
-
-
ssl::context, ssl::context::no_tlsv1 -
-
ssl::context_base, ssl::context_base::no_tlsv1 -
-
-
no_tlsv1_1
-
-
ssl::context, ssl::context::no_tlsv1_1 -
-
ssl::context_base, ssl::context_base::no_tlsv1_1 -
-
-
no_tlsv1_2
-
-
ssl::context, ssl::context::no_tlsv1_2 -
-
ssl::context_base, ssl::context_base::no_tlsv1_2 -
-
-
no_tlsv1_3
-
-
ssl::context, ssl::context::no_tlsv1_3 -
-
ssl::context_base, ssl::context_base::no_tlsv1_3 -
-
-
numeric_host
-
-
ip::basic_resolver, ip::basic_resolver::numeric_host -
-
ip::basic_resolver_query, ip::basic_resolver_query::numeric_host -
-
ip::resolver_base, ip::resolver_base::numeric_host -
-
ip::resolver_query_base, ip::resolver_query_base::numeric_host -
-
-
numeric_service
-
-
ip::basic_resolver, ip::basic_resolver::numeric_service -
-
ip::basic_resolver_query, ip::basic_resolver_query::numeric_service -
-
ip::resolver_base, ip::resolver_base::numeric_service -
-
ip::resolver_query_base, ip::resolver_query_base::numeric_service -
-
-
-
-
-

O

-
-
object_handle
-
windows::object_handle, windows::object_handle::object_handle -
-
odd
-
serial_port_base::parity, serial_port_base::parity::type -
-
one
-
serial_port_base::stop_bits, serial_port_base::stop_bits::type -
-
onepointfive
-
serial_port_base::stop_bits, serial_port_base::stop_bits::type -
-
on_work_finished
-
-
executor, executor::on_work_finished -
-
io_context::executor_type, io_context::executor_type::on_work_finished -
-
io_context::strand, io_context::strand::on_work_finished -
-
strand, strand::on_work_finished -
-
system_executor, system_executor::on_work_finished -
-
thread_pool::executor_type, thread_pool::executor_type::on_work_finished -
-
-
on_work_started
-
-
executor, executor::on_work_started -
-
io_context::executor_type, io_context::executor_type::on_work_started -
-
io_context::strand, io_context::strand::on_work_started -
-
strand, strand::on_work_started -
-
system_executor, system_executor::on_work_started -
-
thread_pool::executor_type, thread_pool::executor_type::on_work_started -
-
-
open
-
-
basic_datagram_socket, basic_datagram_socket::open -
-
basic_raw_socket, basic_raw_socket::open -
-
basic_seq_packet_socket, basic_seq_packet_socket::open -
-
basic_socket, basic_socket::open -
-
basic_socket_acceptor, basic_socket_acceptor::open -
-
basic_stream_socket, basic_stream_socket::open -
-
serial_port, serial_port::open -
-
-
operation_aborted
-
error::basic_errors, error::basic_errors -
-
operation_not_supported
-
error::basic_errors, error::basic_errors -
-
operator *
-
-
buffers_iterator, buffers_iterator::operator - * -
-
ip::basic_address_iterator< address_v4 >, ip::basic_address_iterator< - address_v4 >::operator * -
-
ip::basic_address_iterator< address_v6 >, ip::basic_address_iterator< - address_v6 >::operator * -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator - * -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator - * -
-
-
operator - endpoint_type
-
ip::basic_resolver_entry, ip::basic_resolver_entry::operator - endpoint_type -
-
operator unspecified_bool_type
-
-
error_code, error_code::operator - unspecified_bool_type -
-
executor, executor::operator - unspecified_bool_type -
-
-
operator!
-
error_code, error_code::operator! -
-
operator!=
-
-
buffers_iterator, buffers_iterator::operator!= -
-
error_category, error_category::operator!= -
-
error_code, error_code::operator!= -
-
executor, executor::operator!= -
-
generic::basic_endpoint, generic::basic_endpoint::operator!= -
-
generic::datagram_protocol, generic::datagram_protocol::operator!= -
-
generic::raw_protocol, generic::raw_protocol::operator!= -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::operator!= -
-
generic::stream_protocol, generic::stream_protocol::operator!= -
-
io_context::executor_type, io_context::executor_type::operator!= -
-
io_context::strand, io_context::strand::operator!= -
-
ip::address, ip::address::operator!= -
-
ip::address_v4, ip::address_v4::operator!= -
-
ip::address_v6, ip::address_v6::operator!= -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator!= -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator!= -
-
ip::basic_endpoint, ip::basic_endpoint::operator!= -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator!= -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator!= -
-
ip::icmp, ip::icmp::operator!= -
-
ip::network_v4, ip::network_v4::operator!= -
-
ip::network_v6, ip::network_v6::operator!= -
-
ip::tcp, ip::tcp::operator!= -
-
ip::udp, ip::udp::operator!= -
-
local::basic_endpoint, local::basic_endpoint::operator!= -
-
strand, strand::operator!= -
-
system_executor, system_executor::operator!= -
-
thread_pool::executor_type, thread_pool::executor_type::operator!= -
-
-
operator()
-
-
executor_binder, executor_binder::operator() -
-
ssl::rfc2818_verification, ssl::rfc2818_verification::operator() -
-
use_future_t, use_future_t::operator() -
-
-
operator+
-
-
buffers_iterator, buffers_iterator::operator+ -
-
const_buffer, const_buffer::operator+ -
-
const_buffers_1, const_buffers_1::operator+ -
-
mutable_buffer, mutable_buffer::operator+ -
-
mutable_buffers_1, mutable_buffers_1::operator+ -
-
-
operator++
-
-
buffers_iterator, buffers_iterator::operator++ -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator++ -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator++ -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator++ -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator++ -
-
-
operator+=
-
-
buffers_iterator, buffers_iterator::operator+= -
-
const_buffer, const_buffer::operator+= -
-
const_buffers_1, const_buffers_1::operator+= -
-
mutable_buffer, mutable_buffer::operator+= -
-
mutable_buffers_1, mutable_buffers_1::operator+= -
-
-
operator-
-
buffers_iterator, buffers_iterator::operator- -
-
operator--
-
-
buffers_iterator, buffers_iterator::operator-- -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator-- -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator-- -
-
-
operator-=
-
buffers_iterator, buffers_iterator::operator-= -
-
operator->
-
-
buffers_iterator, buffers_iterator::operator-> -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator-> -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator-> -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator-> -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator-> -
-
-
operator<
-
-
buffers_iterator, buffers_iterator::operator< -
-
generic::basic_endpoint, generic::basic_endpoint::operator< -
-
ip::address, ip::address::operator< -
-
ip::address_v4, ip::address_v4::operator< -
-
ip::address_v6, ip::address_v6::operator< -
-
ip::basic_endpoint, ip::basic_endpoint::operator< -
-
local::basic_endpoint, local::basic_endpoint::operator< -
-
-
operator<<, operator<< -
-
-
ip::address, ip::address::operator<< -
-
ip::address_v4, ip::address_v4::operator<< -
-
ip::address_v6, ip::address_v6::operator<< -
-
ip::basic_endpoint, ip::basic_endpoint::operator<< -
-
local::basic_endpoint, local::basic_endpoint::operator<< -
-
-
operator<=
-
-
buffers_iterator, buffers_iterator::operator<= -
-
generic::basic_endpoint, generic::basic_endpoint::operator<= -
-
ip::address, ip::address::operator<= -
-
ip::address_v4, ip::address_v4::operator<= -
-
ip::address_v6, ip::address_v6::operator<= -
-
ip::basic_endpoint, ip::basic_endpoint::operator<= -
-
local::basic_endpoint, local::basic_endpoint::operator<= -
-
-
operator=
-
-
basic_datagram_socket, basic_datagram_socket::operator= -
-
basic_deadline_timer, basic_deadline_timer::operator= -
-
basic_io_object, basic_io_object::operator= -
-
basic_raw_socket, basic_raw_socket::operator= -
-
basic_seq_packet_socket, basic_seq_packet_socket::operator= -
-
basic_socket, basic_socket::operator= -
-
basic_socket_acceptor, basic_socket_acceptor::operator= -
-
basic_socket_iostream, basic_socket_iostream::operator= -
-
basic_socket_streambuf, basic_socket_streambuf::operator= -
-
basic_stream_socket, basic_stream_socket::operator= -
-
basic_waitable_timer, basic_waitable_timer::operator= -
-
executor, executor::operator= -
-
generic::basic_endpoint, generic::basic_endpoint::operator= -
-
ip::address, ip::address::operator= -
-
ip::address_v4, ip::address_v4::operator= -
-
ip::address_v6, ip::address_v6::operator= -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator= -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator= -
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::operator= -
-
ip::basic_address_range< - address_v6 >, ip::basic_address_range< - address_v6 >::operator= -
-
ip::basic_endpoint, ip::basic_endpoint::operator= -
-
ip::basic_resolver, ip::basic_resolver::operator= -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator= -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator= -
-
ip::network_v4, ip::network_v4::operator= -
-
ip::network_v6, ip::network_v6::operator= -
-
local::basic_endpoint, local::basic_endpoint::operator= -
-
posix::descriptor, posix::descriptor::operator= -
-
posix::stream_descriptor, posix::stream_descriptor::operator= -
-
serial_port, serial_port::operator= -
-
ssl::context, ssl::context::operator= -
-
strand, strand::operator= -
-
system_error, system_error::operator= -
-
windows::object_handle, windows::object_handle::operator= -
-
windows::overlapped_handle, windows::overlapped_handle::operator= -
-
windows::random_access_handle, windows::random_access_handle::operator= -
-
windows::stream_handle, windows::stream_handle::operator= -
-
-
operator==
-
-
buffers_iterator, buffers_iterator::operator== -
-
error_category, error_category::operator== -
-
error_code, error_code::operator== -
-
executor, executor::operator== -
-
generic::basic_endpoint, generic::basic_endpoint::operator== -
-
generic::datagram_protocol, generic::datagram_protocol::operator== -
-
generic::raw_protocol, generic::raw_protocol::operator== -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::operator== -
-
generic::stream_protocol, generic::stream_protocol::operator== -
-
io_context::executor_type, io_context::executor_type::operator== -
-
io_context::strand, io_context::strand::operator== -
-
ip::address, ip::address::operator== -
-
ip::address_v4, ip::address_v4::operator== -
-
ip::address_v6, ip::address_v6::operator== -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::operator== -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::operator== -
-
ip::basic_endpoint, ip::basic_endpoint::operator== -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::operator== -
-
ip::basic_resolver_results, ip::basic_resolver_results::operator== -
-
ip::icmp, ip::icmp::operator== -
-
ip::network_v4, ip::network_v4::operator== -
-
ip::network_v6, ip::network_v6::operator== -
-
ip::tcp, ip::tcp::operator== -
-
ip::udp, ip::udp::operator== -
-
local::basic_endpoint, local::basic_endpoint::operator== -
-
strand, strand::operator== -
-
system_executor, system_executor::operator== -
-
thread_pool::executor_type, thread_pool::executor_type::operator== -
-
-
operator>
-
-
buffers_iterator, buffers_iterator::operator> -
-
generic::basic_endpoint, generic::basic_endpoint::operator> -
-
ip::address, ip::address::operator> -
-
ip::address_v4, ip::address_v4::operator> -
-
ip::address_v6, ip::address_v6::operator> -
-
ip::basic_endpoint, ip::basic_endpoint::operator> -
-
local::basic_endpoint, local::basic_endpoint::operator> -
-
-
operator>=
-
-
buffers_iterator, buffers_iterator::operator>= -
-
generic::basic_endpoint, generic::basic_endpoint::operator>= -
-
ip::address, ip::address::operator>= -
-
ip::address_v4, ip::address_v4::operator>= -
-
ip::address_v6, ip::address_v6::operator>= -
-
ip::basic_endpoint, ip::basic_endpoint::operator>= -
-
local::basic_endpoint, local::basic_endpoint::operator>= -
-
-
operator[]
-
-
basic_yield_context, basic_yield_context::operator[] -
-
buffers_iterator, buffers_iterator::operator[] -
-
use_future_t, use_future_t::operator[] -
-
-
options
-
-
ssl::context, ssl::context::options -
-
ssl::context_base, ssl::context_base::options -
-
-
out_of_band_inline
-
-
basic_datagram_socket, basic_datagram_socket::out_of_band_inline -
-
basic_raw_socket, basic_raw_socket::out_of_band_inline -
-
basic_seq_packet_socket, basic_seq_packet_socket::out_of_band_inline -
-
basic_socket, basic_socket::out_of_band_inline -
-
basic_socket_acceptor, basic_socket_acceptor::out_of_band_inline -
-
basic_stream_socket, basic_stream_socket::out_of_band_inline -
-
socket_base, socket_base::out_of_band_inline -
-
-
overflow
-
-
basic_socket_streambuf, basic_socket_streambuf::overflow -
-
basic_streambuf, basic_streambuf::overflow -
-
-
overlapped_handle
-
windows::overlapped_handle, windows::overlapped_handle::overlapped_handle -
-
overlapped_ptr
-
windows::overlapped_ptr, windows::overlapped_ptr::overlapped_ptr -
-
owns_work
-
executor_work_guard, executor_work_guard::owns_work -
-
-
-
-

P

-
-
parity
-
serial_port_base::parity, serial_port_base::parity::parity -
-
passive
-
-
ip::basic_resolver, ip::basic_resolver::passive -
-
ip::basic_resolver_query, ip::basic_resolver_query::passive -
-
ip::resolver_base, ip::resolver_base::passive -
-
ip::resolver_query_base, ip::resolver_query_base::passive -
-
-
password_purpose
-
-
ssl::context, ssl::context::password_purpose -
-
ssl::context_base, ssl::context_base::password_purpose -
-
-
path
-
local::basic_endpoint, local::basic_endpoint::path -
-
peek
-
-
buffered_read_stream, buffered_read_stream::peek -
-
buffered_stream, buffered_stream::peek -
-
buffered_write_stream, buffered_write_stream::peek -
-
-
pem
-
-
ssl::context, ssl::context::file_format -
-
ssl::context_base, ssl::context_base::file_format -
-
-
placeholders::bytes_transferred, placeholders::bytes_transferred -
-
placeholders::endpoint, placeholders::endpoint -
-
placeholders::error, placeholders::error -
-
placeholders::iterator, placeholders::iterator -
-
placeholders::results, placeholders::results -
-
placeholders::signal_number, placeholders::signal_number -
-
pointer
-
-
buffers_iterator, buffers_iterator::pointer -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::pointer -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::pointer -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::pointer -
-
ip::basic_resolver_results, ip::basic_resolver_results::pointer -
-
-
poll
-
io_context, io_context::poll -
-
poll_one
-
io_context, io_context::poll_one -
-
port
-
ip::basic_endpoint, ip::basic_endpoint::port -
-
post, post -
-
-
executor, executor::post -
-
io_context, io_context::post -
-
io_context::executor_type, io_context::executor_type::post -
-
io_context::strand, io_context::strand::post -
-
strand, strand::post -
-
system_executor, system_executor::post -
-
thread_pool::executor_type, thread_pool::executor_type::post -
-
-
prefix_length
-
-
ip::network_v4, ip::network_v4::prefix_length -
-
ip::network_v6, ip::network_v6::prefix_length -
-
-
prepare
-
-
basic_streambuf, basic_streambuf::prepare -
-
basic_streambuf_ref, basic_streambuf_ref::prepare -
-
dynamic_string_buffer, dynamic_string_buffer::prepare -
-
dynamic_vector_buffer, dynamic_vector_buffer::prepare -
-
-
protocol
-
-
generic::basic_endpoint, generic::basic_endpoint::protocol -
-
generic::datagram_protocol, generic::datagram_protocol::protocol -
-
generic::raw_protocol, generic::raw_protocol::protocol -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::protocol -
-
generic::stream_protocol, generic::stream_protocol::protocol -
-
ip::basic_endpoint, ip::basic_endpoint::protocol -
-
ip::icmp, ip::icmp::protocol -
-
ip::tcp, ip::tcp::protocol -
-
ip::udp, ip::udp::protocol -
-
local::basic_endpoint, local::basic_endpoint::protocol -
-
local::datagram_protocol, local::datagram_protocol::protocol -
-
local::stream_protocol, local::stream_protocol::protocol -
-
-
protocol_type
-
-
basic_datagram_socket, basic_datagram_socket::protocol_type -
-
basic_raw_socket, basic_raw_socket::protocol_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::protocol_type -
-
basic_socket, basic_socket::protocol_type -
-
basic_socket_acceptor, basic_socket_acceptor::protocol_type -
-
basic_socket_iostream, basic_socket_iostream::protocol_type -
-
basic_socket_streambuf, basic_socket_streambuf::protocol_type -
-
basic_stream_socket, basic_stream_socket::protocol_type -
-
generic::basic_endpoint, generic::basic_endpoint::protocol_type -
-
ip::basic_endpoint, ip::basic_endpoint::protocol_type -
-
ip::basic_resolver, ip::basic_resolver::protocol_type -
-
ip::basic_resolver_entry, ip::basic_resolver_entry::protocol_type -
-
ip::basic_resolver_query, ip::basic_resolver_query::protocol_type -
-
ip::basic_resolver_results, ip::basic_resolver_results::protocol_type -
-
local::basic_endpoint, local::basic_endpoint::protocol_type -
-
-
puberror
-
basic_socket_streambuf, basic_socket_streambuf::puberror -
-
-
-
-

Q

-
-
query
-
ip::basic_resolver, ip::basic_resolver::query -
-
-
-
-

R

-
-
random_access_handle
-
windows::random_access_handle, windows::random_access_handle::random_access_handle -
-
raw_protocol
-
generic::raw_protocol, generic::raw_protocol::raw_protocol -
-
rdbuf
-
basic_socket_iostream, basic_socket_iostream::rdbuf -
-
read, read -
-
read_at, read_at -
-
read_some
-
-
basic_stream_socket, basic_stream_socket::read_some -
-
buffered_read_stream, buffered_read_stream::read_some -
-
buffered_stream, buffered_stream::read_some -
-
buffered_write_stream, buffered_write_stream::read_some -
-
posix::stream_descriptor, posix::stream_descriptor::read_some -
-
serial_port, serial_port::read_some -
-
ssl::stream, ssl::stream::read_some -
-
windows::stream_handle, windows::stream_handle::read_some -
-
-
read_some_at
-
windows::random_access_handle, windows::random_access_handle::read_some_at -
-
read_until, read_until -
-
rebind
-
use_future_t, use_future_t::rebind -
-
receive
-
-
basic_datagram_socket, basic_datagram_socket::receive -
-
basic_raw_socket, basic_raw_socket::receive -
-
basic_seq_packet_socket, basic_seq_packet_socket::receive -
-
basic_stream_socket, basic_stream_socket::receive -
-
-
receive_buffer_size
-
-
basic_datagram_socket, basic_datagram_socket::receive_buffer_size -
-
basic_raw_socket, basic_raw_socket::receive_buffer_size -
-
basic_seq_packet_socket, basic_seq_packet_socket::receive_buffer_size -
-
basic_socket, basic_socket::receive_buffer_size -
-
basic_socket_acceptor, basic_socket_acceptor::receive_buffer_size -
-
basic_stream_socket, basic_stream_socket::receive_buffer_size -
-
socket_base, socket_base::receive_buffer_size -
-
-
receive_from
-
-
basic_datagram_socket, basic_datagram_socket::receive_from -
-
basic_raw_socket, basic_raw_socket::receive_from -
-
-
receive_low_watermark
-
-
basic_datagram_socket, basic_datagram_socket::receive_low_watermark -
-
basic_raw_socket, basic_raw_socket::receive_low_watermark -
-
basic_seq_packet_socket, basic_seq_packet_socket::receive_low_watermark -
-
basic_socket, basic_socket::receive_low_watermark -
-
basic_socket_acceptor, basic_socket_acceptor::receive_low_watermark -
-
basic_stream_socket, basic_stream_socket::receive_low_watermark -
-
socket_base, socket_base::receive_low_watermark -
-
-
redirect_error_t
-
experimental::redirect_error_t, experimental::redirect_error_t::redirect_error_t -
-
reference
-
-
buffers_iterator, buffers_iterator::reference -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::reference -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::reference -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::reference -
-
ip::basic_resolver_results, ip::basic_resolver_results::reference -
-
-
release
-
-
basic_datagram_socket, basic_datagram_socket::release -
-
basic_raw_socket, basic_raw_socket::release -
-
basic_seq_packet_socket, basic_seq_packet_socket::release -
-
basic_socket, basic_socket::release -
-
basic_socket_acceptor, basic_socket_acceptor::release -
-
basic_stream_socket, basic_stream_socket::release -
-
posix::descriptor, posix::descriptor::release -
-
posix::stream_descriptor, posix::stream_descriptor::release -
-
windows::overlapped_ptr, windows::overlapped_ptr::release -
-
-
remote_endpoint
-
-
basic_datagram_socket, basic_datagram_socket::remote_endpoint -
-
basic_raw_socket, basic_raw_socket::remote_endpoint -
-
basic_seq_packet_socket, basic_seq_packet_socket::remote_endpoint -
-
basic_socket, basic_socket::remote_endpoint -
-
basic_stream_socket, basic_stream_socket::remote_endpoint -
-
-
remove
-
signal_set, signal_set::remove -
-
reserve
-
basic_streambuf, basic_streambuf::reserve -
-
reset
-
-
executor_work_guard, executor_work_guard::reset -
-
io_context, io_context::reset -
-
windows::overlapped_ptr, windows::overlapped_ptr::reset -
-
-
resize
-
-
generic::basic_endpoint, generic::basic_endpoint::resize -
-
ip::basic_endpoint, ip::basic_endpoint::resize -
-
local::basic_endpoint, local::basic_endpoint::resize -
-
-
resolve
-
ip::basic_resolver, ip::basic_resolver::resolve -
-
resolver
-
-
ip::icmp, ip::icmp::resolver -
-
ip::tcp, ip::tcp::resolver -
-
ip::udp, ip::udp::resolver -
-
-
resolver_errc::try_again, resolver_errc::try_again -
-
restart
-
io_context, io_context::restart -
-
result
-
async_completion, async_completion::result -
-
results_type
-
ip::basic_resolver, ip::basic_resolver::results_type -
-
result_type
-
-
executor_binder, executor_binder::result_type -
-
ssl::rfc2818_verification, ssl::rfc2818_verification::result_type -
-
-
return_type
-
-
async_result, async_result::return_type -
-
async_result< - std::packaged_task< Result(Args...)>, Signature >, async_result< - std::packaged_task< Result(Args...)>, Signature >::return_type -
-
-
reuse_address
-
-
basic_datagram_socket, basic_datagram_socket::reuse_address -
-
basic_raw_socket, basic_raw_socket::reuse_address -
-
basic_seq_packet_socket, basic_seq_packet_socket::reuse_address -
-
basic_socket, basic_socket::reuse_address -
-
basic_socket_acceptor, basic_socket_acceptor::reuse_address -
-
basic_stream_socket, basic_stream_socket::reuse_address -
-
socket_base, socket_base::reuse_address -
-
-
rfc2818_verification
-
ssl::rfc2818_verification, ssl::rfc2818_verification::rfc2818_verification -
-
run
-
io_context, io_context::run -
-
running_in_this_thread
-
-
io_context::executor_type, io_context::executor_type::running_in_this_thread -
-
io_context::strand, io_context::strand::running_in_this_thread -
-
strand, strand::running_in_this_thread -
-
thread_pool::executor_type, thread_pool::executor_type::running_in_this_thread -
-
-
run_for
-
io_context, io_context::run_for -
-
run_one
-
io_context, io_context::run_one -
-
run_one_for
-
io_context, io_context::run_one_for -
-
run_one_until
-
io_context, io_context::run_one_until -
-
run_until
-
io_context, io_context::run_until -
-
-
-
-

S

-
-
scope_id
-
ip::address_v6, ip::address_v6::scope_id -
-
second_argument_type
-
executor_binder, executor_binder::second_argument_type -
-
send
-
-
basic_datagram_socket, basic_datagram_socket::send -
-
basic_raw_socket, basic_raw_socket::send -
-
basic_seq_packet_socket, basic_seq_packet_socket::send -
-
basic_stream_socket, basic_stream_socket::send -
-
-
send_break
-
serial_port, serial_port::send_break -
-
send_buffer_size
-
-
basic_datagram_socket, basic_datagram_socket::send_buffer_size -
-
basic_raw_socket, basic_raw_socket::send_buffer_size -
-
basic_seq_packet_socket, basic_seq_packet_socket::send_buffer_size -
-
basic_socket, basic_socket::send_buffer_size -
-
basic_socket_acceptor, basic_socket_acceptor::send_buffer_size -
-
basic_stream_socket, basic_stream_socket::send_buffer_size -
-
socket_base, socket_base::send_buffer_size -
-
-
send_low_watermark
-
-
basic_datagram_socket, basic_datagram_socket::send_low_watermark -
-
basic_raw_socket, basic_raw_socket::send_low_watermark -
-
basic_seq_packet_socket, basic_seq_packet_socket::send_low_watermark -
-
basic_socket, basic_socket::send_low_watermark -
-
basic_socket_acceptor, basic_socket_acceptor::send_low_watermark -
-
basic_stream_socket, basic_stream_socket::send_low_watermark -
-
socket_base, socket_base::send_low_watermark -
-
-
send_to
-
-
basic_datagram_socket, basic_datagram_socket::send_to -
-
basic_raw_socket, basic_raw_socket::send_to -
-
-
seq_packet_protocol
-
generic::seq_packet_protocol, generic::seq_packet_protocol::seq_packet_protocol -
-
serial_port
-
serial_port, serial_port::serial_port -
-
server
-
-
ssl::stream, ssl::stream::handshake_type -
-
ssl::stream_base, ssl::stream_base::handshake_type -
-
-
service
-
-
execution_context::service, execution_context::service::service -
-
io_context::service, io_context::service::service -
-
-
service_already_exists
-
service_already_exists, service_already_exists::service_already_exists -
-
service_name
-
-
ip::basic_resolver_entry, ip::basic_resolver_entry::service_name -
-
ip::basic_resolver_query, ip::basic_resolver_query::service_name -
-
-
service_not_found
-
error::addrinfo_errors, error::addrinfo_errors -
-
service_type
-
basic_io_object, basic_io_object::service_type -
-
setbuf
-
basic_socket_streambuf, basic_socket_streambuf::setbuf -
-
set_default_verify_paths
-
ssl::context, ssl::context::set_default_verify_paths -
-
set_option
-
-
basic_datagram_socket, basic_datagram_socket::set_option -
-
basic_raw_socket, basic_raw_socket::set_option -
-
basic_seq_packet_socket, basic_seq_packet_socket::set_option -
-
basic_socket, basic_socket::set_option -
-
basic_socket_acceptor, basic_socket_acceptor::set_option -
-
basic_stream_socket, basic_stream_socket::set_option -
-
serial_port, serial_port::set_option -
-
-
set_options
-
ssl::context, ssl::context::set_options -
-
set_password_callback
-
ssl::context, ssl::context::set_password_callback -
-
set_verify_callback
-
-
ssl::context, ssl::context::set_verify_callback -
-
ssl::stream, ssl::stream::set_verify_callback -
-
-
set_verify_depth
-
-
ssl::context, ssl::context::set_verify_depth -
-
ssl::stream, ssl::stream::set_verify_depth -
-
-
set_verify_mode
-
-
ssl::context, ssl::context::set_verify_mode -
-
ssl::stream, ssl::stream::set_verify_mode -
-
-
shutdown
-
-
basic_datagram_socket, basic_datagram_socket::shutdown -
-
basic_raw_socket, basic_raw_socket::shutdown -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown -
-
basic_socket, basic_socket::shutdown -
-
basic_stream_socket, basic_stream_socket::shutdown -
-
execution_context, execution_context::shutdown -
-
execution_context::service, execution_context::service::shutdown -
-
io_context, io_context::shutdown -
-
ssl::stream, ssl::stream::shutdown -
-
system_context, system_context::shutdown -
-
thread_pool, thread_pool::shutdown -
-
-
shutdown_both
-
-
basic_datagram_socket, basic_datagram_socket::shutdown_type -
-
basic_raw_socket, basic_raw_socket::shutdown_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown_type -
-
basic_socket, basic_socket::shutdown_type -
-
basic_socket_acceptor, basic_socket_acceptor::shutdown_type -
-
basic_stream_socket, basic_stream_socket::shutdown_type -
-
socket_base, socket_base::shutdown_type -
-
-
shutdown_receive
-
-
basic_datagram_socket, basic_datagram_socket::shutdown_type -
-
basic_raw_socket, basic_raw_socket::shutdown_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown_type -
-
basic_socket, basic_socket::shutdown_type -
-
basic_socket_acceptor, basic_socket_acceptor::shutdown_type -
-
basic_stream_socket, basic_stream_socket::shutdown_type -
-
socket_base, socket_base::shutdown_type -
-
-
shutdown_send
-
-
basic_datagram_socket, basic_datagram_socket::shutdown_type -
-
basic_raw_socket, basic_raw_socket::shutdown_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown_type -
-
basic_socket, basic_socket::shutdown_type -
-
basic_socket_acceptor, basic_socket_acceptor::shutdown_type -
-
basic_stream_socket, basic_stream_socket::shutdown_type -
-
socket_base, socket_base::shutdown_type -
-
-
shutdown_type
-
-
basic_datagram_socket, basic_datagram_socket::shutdown_type -
-
basic_raw_socket, basic_raw_socket::shutdown_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::shutdown_type -
-
basic_socket, basic_socket::shutdown_type -
-
basic_socket_acceptor, basic_socket_acceptor::shutdown_type -
-
basic_stream_socket, basic_stream_socket::shutdown_type -
-
socket_base, socket_base::shutdown_type -
-
-
shut_down
-
error::basic_errors, error::basic_errors -
-
signal_set
-
signal_set, signal_set::signal_set -
-
single_dh_use
-
-
ssl::context, ssl::context::single_dh_use -
-
ssl::context_base, ssl::context_base::single_dh_use -
-
-
size
-
-
basic_streambuf, basic_streambuf::size -
-
basic_streambuf_ref, basic_streambuf_ref::size -
-
const_buffer, const_buffer::size -
-
const_buffers_1, const_buffers_1::size -
-
dynamic_string_buffer, dynamic_string_buffer::size -
-
dynamic_vector_buffer, dynamic_vector_buffer::size -
-
generic::basic_endpoint, generic::basic_endpoint::size -
-
ip::basic_address_range< - address_v4 >, ip::basic_address_range< - address_v4 >::size -
-
ip::basic_endpoint, ip::basic_endpoint::size -
-
ip::basic_resolver_results, ip::basic_resolver_results::size -
-
local::basic_endpoint, local::basic_endpoint::size -
-
mutable_buffer, mutable_buffer::size -
-
mutable_buffers_1, mutable_buffers_1::size -
-
-
size_type
-
ip::basic_resolver_results, ip::basic_resolver_results::size_type -
-
socket
-
-
basic_socket_iostream, basic_socket_iostream::socket -
-
basic_socket_streambuf, basic_socket_streambuf::socket -
-
generic::datagram_protocol, generic::datagram_protocol::socket -
-
generic::raw_protocol, generic::raw_protocol::socket -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::socket -
-
generic::stream_protocol, generic::stream_protocol::socket -
-
ip::icmp, ip::icmp::socket -
-
ip::tcp, ip::tcp::socket -
-
ip::udp, ip::udp::socket -
-
local::datagram_protocol, local::datagram_protocol::socket -
-
local::stream_protocol, local::stream_protocol::socket -
-
-
socket_type_not_supported
-
error::addrinfo_errors, error::addrinfo_errors -
-
software
-
serial_port_base::flow_control, serial_port_base::flow_control::type -
-
spawn, spawn -
-
ssl
-
ssl::stream::impl_struct, ssl::stream::impl_struct::ssl -
-
ssl::error::get_stream_category, ssl::error::get_stream_category -
-
ssl::error::make_error_code, ssl::error::make_error_code -
-
ssl::error::stream_category, ssl::error::stream_category -
-
ssl::error::stream_errors, ssl::error::stream_errors -
-
ssl::verify_client_once, ssl::verify_client_once -
-
ssl::verify_fail_if_no_peer_cert, ssl::verify_fail_if_no_peer_cert -
-
ssl::verify_mode, ssl::verify_mode -
-
ssl::verify_none, ssl::verify_none -
-
ssl::verify_peer, ssl::verify_peer -
-
sslv2
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv23
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv23_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv23_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv2_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv2_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv3
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv3_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
sslv3_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
steady_timer, steady_timer -
-
stop
-
-
io_context, io_context::stop -
-
system_context, system_context::stop -
-
thread_pool, thread_pool::stop -
-
-
stopped
-
-
io_context, io_context::stopped -
-
system_context, system_context::stopped -
-
-
stop_bits
-
serial_port_base::stop_bits, serial_port_base::stop_bits::stop_bits -
-
store
-
-
serial_port_base::baud_rate, serial_port_base::baud_rate::store -
-
serial_port_base::character_size, serial_port_base::character_size::store -
-
serial_port_base::flow_control, serial_port_base::flow_control::store -
-
serial_port_base::parity, serial_port_base::parity::store -
-
serial_port_base::stop_bits, serial_port_base::stop_bits::store -
-
-
strand
-
-
io_context::strand, io_context::strand::strand -
-
strand, strand::strand -
-
-
stream
-
ssl::stream, ssl::stream::stream -
-
streambuf, streambuf -
-
stream_descriptor
-
posix::stream_descriptor, posix::stream_descriptor::stream_descriptor -
-
stream_handle
-
windows::stream_handle, windows::stream_handle::stream_handle -
-
stream_protocol
-
generic::stream_protocol, generic::stream_protocol::stream_protocol -
-
stream_truncated
-
ssl::error::stream_errors, ssl::error::stream_errors -
-
subtract
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::subtract -
-
swap
-
ip::basic_resolver_results, ip::basic_resolver_results::swap -
-
sync
-
basic_socket_streambuf, basic_socket_streambuf::sync -
-
system_category, system_category -
-
system_error
-
system_error, system_error::system_error -
-
system_timer, system_timer -
-
-
-
-

T

-
-
target
-
executor, executor::target -
-
target_type
-
-
executor, executor::target_type -
-
executor_binder, executor_binder::target_type -
-
-
thread
-
thread, thread::thread -
-
thread_pool
-
thread_pool, thread_pool::thread_pool -
-
timed_out
-
error::basic_errors, error::basic_errors -
-
time_point
-
-
basic_socket_iostream, basic_socket_iostream::time_point -
-
basic_socket_streambuf, basic_socket_streambuf::time_point -
-
basic_waitable_timer, basic_waitable_timer::time_point -
-
-
time_type
-
-
basic_deadline_timer, basic_deadline_timer::time_type -
-
basic_socket_iostream, basic_socket_iostream::time_type -
-
basic_socket_streambuf, basic_socket_streambuf::time_type -
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::time_type -
-
-
tls
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv1
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv11
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv11_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv11_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv12
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv12_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv12_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv13
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv13_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv13_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv1_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tlsv1_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tls_client
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
tls_server
-
-
ssl::context, ssl::context::method -
-
ssl::context_base, ssl::context_base::method -
-
-
token_
-
experimental::redirect_error_t, experimental::redirect_error_t::token_ -
-
to_bytes
-
-
ip::address_v4, ip::address_v4::to_bytes -
-
ip::address_v6, ip::address_v6::to_bytes -
-
-
to_posix_duration
-
time_traits< - boost::posix_time::ptime >, time_traits< - boost::posix_time::ptime >::to_posix_duration -
-
to_string
-
-
ip::address, ip::address::to_string -
-
ip::address_v4, ip::address_v4::to_string -
-
ip::address_v6, ip::address_v6::to_string -
-
ip::network_v4, ip::network_v4::to_string -
-
ip::network_v6, ip::network_v6::to_string -
-
-
to_uint
-
ip::address_v4, ip::address_v4::to_uint -
-
to_ulong
-
ip::address_v4, ip::address_v4::to_ulong -
-
to_v4
-
-
ip::address, ip::address::to_v4 -
-
ip::address_v6, ip::address_v6::to_v4 -
-
-
to_v6
-
ip::address, ip::address::to_v6 -
-
to_wait_duration
-
wait_traits, wait_traits::to_wait_duration -
-
traits_type
-
-
basic_deadline_timer, basic_deadline_timer::traits_type -
-
basic_waitable_timer, basic_waitable_timer::traits_type -
-
-
transfer_all, transfer_all -
-
transfer_at_least, transfer_at_least -
-
transfer_exactly, transfer_exactly -
-
try_again
-
error::basic_errors, error::basic_errors -
-
two
-
serial_port_base::stop_bits, serial_port_base::stop_bits::type -
-
type
-
-
associated_allocator, associated_allocator::type -
-
associated_executor, associated_executor::type -
-
async_result< Handler - >, async_result< - Handler >::type -
-
generic::datagram_protocol, generic::datagram_protocol::type -
-
generic::raw_protocol, generic::raw_protocol::type -
-
generic::seq_packet_protocol, generic::seq_packet_protocol::type -
-
generic::stream_protocol, generic::stream_protocol::type -
-
handler_type, handler_type::type -
-
ip::icmp, ip::icmp::type -
-
ip::tcp, ip::tcp::type -
-
ip::udp, ip::udp::type -
-
local::datagram_protocol, local::datagram_protocol::type -
-
local::stream_protocol, local::stream_protocol::type -
-
serial_port_base::flow_control, serial_port_base::flow_control::type -
-
serial_port_base::parity, serial_port_base::parity::type -
-
serial_port_base::stop_bits, serial_port_base::stop_bits::type -
-
-
-
-
-

U

-
-
uint_type
-
ip::address_v4, ip::address_v4::uint_type -
-
underflow
-
-
basic_socket_streambuf, basic_socket_streambuf::underflow -
-
basic_streambuf, basic_streambuf::underflow -
-
-
unspecified_bool_true
-
-
error_code, error_code::unspecified_bool_true -
-
executor, executor::unspecified_bool_true -
-
-
unspecified_bool_type
-
-
error_code, error_code::unspecified_bool_type -
-
executor, executor::unspecified_bool_type -
-
-
use_certificate
-
ssl::context, ssl::context::use_certificate -
-
use_certificate_chain
-
ssl::context, ssl::context::use_certificate_chain -
-
use_certificate_chain_file
-
ssl::context, ssl::context::use_certificate_chain_file -
-
use_certificate_file
-
ssl::context, ssl::context::use_certificate_file -
-
use_future, use_future -
-
use_future_t
-
use_future_t, use_future_t::use_future_t -
-
use_private_key
-
ssl::context, ssl::context::use_private_key -
-
use_private_key_file
-
ssl::context, ssl::context::use_private_key_file -
-
use_rsa_private_key
-
ssl::context, ssl::context::use_rsa_private_key -
-
use_rsa_private_key_file
-
ssl::context, ssl::context::use_rsa_private_key_file -
-
use_service, use_service -
-
-
execution_context, execution_context::use_service -
-
io_context, io_context::use_service -
-
system_context, system_context::use_service -
-
thread_pool, thread_pool::use_service -
-
-
use_tmp_dh
-
ssl::context, ssl::context::use_tmp_dh -
-
use_tmp_dh_file
-
ssl::context, ssl::context::use_tmp_dh_file -
-
-
-
-

V

-
-
v4
-
-
ip::icmp, ip::icmp::v4 -
-
ip::tcp, ip::tcp::v4 -
-
ip::udp, ip::udp::v4 -
-
-
v4_compatible
-
ip::address_v6, ip::address_v6::v4_compatible -
-
v4_mapped
-
-
ip::address_v6, ip::address_v6::v4_mapped -
-
ip::basic_resolver, ip::basic_resolver::v4_mapped -
-
ip::basic_resolver_query, ip::basic_resolver_query::v4_mapped -
-
ip::resolver_base, ip::resolver_base::v4_mapped -
-
ip::resolver_query_base, ip::resolver_query_base::v4_mapped -
-
ip::v4_mapped_t, ip::v4_mapped_t -
-
-
v6
-
-
ip::icmp, ip::icmp::v6 -
-
ip::tcp, ip::tcp::v6 -
-
ip::udp, ip::udp::v6 -
-
-
value
-
-
error_code, error_code::value -
-
is_endpoint_sequence, is_endpoint_sequence::value -
-
is_match_condition, is_match_condition::value -
-
is_read_buffered, is_read_buffered::value -
-
is_write_buffered, is_write_buffered::value -
-
serial_port_base::baud_rate, serial_port_base::baud_rate::value -
-
serial_port_base::character_size, serial_port_base::character_size::value -
-
serial_port_base::flow_control, serial_port_base::flow_control::value -
-
serial_port_base::parity, serial_port_base::parity::value -
-
serial_port_base::stop_bits, serial_port_base::stop_bits::value -
-
-
values_
-
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::values_ -
-
ip::basic_resolver_results, ip::basic_resolver_results::values_ -
-
-
value_type
-
-
buffers_iterator, buffers_iterator::value_type -
-
const_buffers_1, const_buffers_1::value_type -
-
experimental::awaitable, experimental::awaitable::value_type -
-
ip::basic_address_iterator< - address_v4 >, ip::basic_address_iterator< - address_v4 >::value_type -
-
ip::basic_address_iterator< - address_v6 >, ip::basic_address_iterator< - address_v6 >::value_type -
-
ip::basic_resolver_iterator, ip::basic_resolver_iterator::value_type -
-
ip::basic_resolver_results, ip::basic_resolver_results::value_type -
-
mutable_buffers_1, mutable_buffers_1::value_type -
-
null_buffers, null_buffers::value_type -
-
-
verify_context
-
ssl::verify_context, ssl::verify_context::verify_context -
-
-
-
-

W

-
-
wait
-
-
basic_datagram_socket, basic_datagram_socket::wait -
-
basic_deadline_timer, basic_deadline_timer::wait -
-
basic_raw_socket, basic_raw_socket::wait -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait -
-
basic_socket, basic_socket::wait -
-
basic_socket_acceptor, basic_socket_acceptor::wait -
-
basic_stream_socket, basic_stream_socket::wait -
-
basic_waitable_timer, basic_waitable_timer::wait -
-
posix::descriptor, posix::descriptor::wait -
-
posix::stream_descriptor, posix::stream_descriptor::wait -
-
windows::object_handle, windows::object_handle::wait -
-
-
wait_error
-
-
basic_datagram_socket, basic_datagram_socket::wait_type -
-
basic_raw_socket, basic_raw_socket::wait_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait_type -
-
basic_socket, basic_socket::wait_type -
-
basic_socket_acceptor, basic_socket_acceptor::wait_type -
-
basic_stream_socket, basic_stream_socket::wait_type -
-
posix::descriptor, posix::descriptor::wait_type -
-
posix::descriptor_base, posix::descriptor_base::wait_type -
-
posix::stream_descriptor, posix::stream_descriptor::wait_type -
-
socket_base, socket_base::wait_type -
-
-
wait_read
-
-
basic_datagram_socket, basic_datagram_socket::wait_type -
-
basic_raw_socket, basic_raw_socket::wait_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait_type -
-
basic_socket, basic_socket::wait_type -
-
basic_socket_acceptor, basic_socket_acceptor::wait_type -
-
basic_stream_socket, basic_stream_socket::wait_type -
-
posix::descriptor, posix::descriptor::wait_type -
-
posix::descriptor_base, posix::descriptor_base::wait_type -
-
posix::stream_descriptor, posix::stream_descriptor::wait_type -
-
socket_base, socket_base::wait_type -
-
-
wait_type
-
-
basic_datagram_socket, basic_datagram_socket::wait_type -
-
basic_raw_socket, basic_raw_socket::wait_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait_type -
-
basic_socket, basic_socket::wait_type -
-
basic_socket_acceptor, basic_socket_acceptor::wait_type -
-
basic_stream_socket, basic_stream_socket::wait_type -
-
posix::descriptor, posix::descriptor::wait_type -
-
posix::descriptor_base, posix::descriptor_base::wait_type -
-
posix::stream_descriptor, posix::stream_descriptor::wait_type -
-
socket_base, socket_base::wait_type -
-
-
wait_write
-
-
basic_datagram_socket, basic_datagram_socket::wait_type -
-
basic_raw_socket, basic_raw_socket::wait_type -
-
basic_seq_packet_socket, basic_seq_packet_socket::wait_type -
-
basic_socket, basic_socket::wait_type -
-
basic_socket_acceptor, basic_socket_acceptor::wait_type -
-
basic_stream_socket, basic_stream_socket::wait_type -
-
posix::descriptor, posix::descriptor::wait_type -
-
posix::descriptor_base, posix::descriptor_base::wait_type -
-
posix::stream_descriptor, posix::stream_descriptor::wait_type -
-
socket_base, socket_base::wait_type -
-
-
what
-
-
bad_executor, bad_executor::what -
-
ip::bad_address_cast, ip::bad_address_cast::what -
-
system_error, system_error::what -
-
-
work
-
io_context::work, io_context::work::work -
-
would_block
-
error::basic_errors, error::basic_errors -
-
wrap
-
-
io_context, io_context::wrap -
-
io_context::strand, io_context::strand::wrap -
-
-
write, write -
-
write_at, write_at -
-
write_some
-
-
basic_stream_socket, basic_stream_socket::write_some -
-
buffered_read_stream, buffered_read_stream::write_some -
-
buffered_stream, buffered_stream::write_some -
-
buffered_write_stream, buffered_write_stream::write_some -
-
posix::stream_descriptor, posix::stream_descriptor::write_some -
-
serial_port, serial_port::write_some -
-
ssl::stream, ssl::stream::write_some -
-
windows::stream_handle, windows::stream_handle::write_some -
-
-
write_some_at
-
windows::random_access_handle, windows::random_access_handle::write_some_at -
-
-
-
-

Y

-
yield_context, yield_context -
-
-
-
-
- - - -
-
-
-PrevUpHome -
- - diff --git a/Sources/Vendor/asio/doc/asio/net_ts.html b/Sources/Vendor/asio/doc/asio/net_ts.html deleted file mode 100644 index e1f85e0..0000000 --- a/Sources/Vendor/asio/doc/asio/net_ts.html +++ /dev/null @@ -1,1240 +0,0 @@ - - - -Networking TS compatibility - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio now provides the interfaces and functionality specified by the "C++ - Extensions for Networking" Technical Specification. In addition to access - via the usual Asio header files, this functionality may be accessed through - special headers that correspond to the header files defined in the TS. These - are listed in the table below: -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Networking TS header -

-
-

- Asio header -

-
-

- #include <buffer> -

-
-

- #include <asio/ts/buffer.hpp> -

-
-

- #include <executor> -

-
-

- #include <asio/ts/executor.hpp> -

-
-

- #include <internet> -

-
-

- #include <asio/ts/internet.hpp> -

-
-

- #include <io_context> -

-
-

- #include <asio/ts/io_context.hpp> -

-
-

- #include <net> -

-
-

- #include <asio/ts/net.hpp> -

-
-

- #include <netfwd> -

-
-

- #include <asio/ts/netfwd.hpp> -

-
-

- #include <socket> -

-
-

- #include <asio/ts/socket.hpp> -

-
-

- #include <timer> -

-
-

- #include <asio/ts/timer.hpp> -

-
-

- In some cases the new Networking TS compatible interfaces supersede older Asio - facilities. In these cases the older interfaces have been deprecated. The table - below shows the new Networking TS interfaces and the facilities they replace: -

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- New interface -

-
-

- Old interface -

-
-

- Notes -

-
-

- io_context -

-
-

- io_service -

-
-

- The name io_service is retained as a typedef. -

-
-

- dispatch -

-
-

- io_service::dispatch -

-
-

- The dispatch free function can be used to submit functions - to any Executor or - ExecutionContext. -

-
-

- post -

-
-

- io_service::post -

-
-

- The dispatch free function can be used to submit functions - to any Executor or - ExecutionContext. -

-
-

- defer -

-
-

- io_service::post - when the asio_handler_is_continuation - hook returns true -

-
-

- The defer free function can be used to submit functions - to any Executor or - ExecutionContext. -

-
-

- io_context::poll -

-
-

- io_service::poll - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- io_context::poll_one -

-
-

- io_service::poll_one - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- io_context::run -

-
-

- io_service::run - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- io_context::run_one -

-
-

- io_service::run_one - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- io_context::run_for, - io_context::run_until, - io_context::run_one_for, - and io_context::run_one_until -

-
- -

- These functions add the ability to run an io_context - for a limited time. -

-
-

- io_context::restart -

-
-

- io_service::reset -

-
-
-

- io_context - constructor concurrency_hint parameter is type int -

-
-

- io_context - constructor concurrency_hint parameter is type std::size_t -

-
-

- The old constructor has not been retained as a deprecated overload. -

-
-

- execution_context, - execution_context::service, - and execution_context::id -

-
-

- io_service, - io_service::service, - and io_service::id -

-
-

- The service-related functionality has been moved to the execution_context - base class. This may also be used as a base for creating custom execution - contexts. -

-
-

- make_service -

-
-

- add_service -

-
-
-

- strand -

-
-

- io_service::strand -

-
-

- This template works with any valid executor, and is itself a valid - executor. -

-
-

- executor_work_guard - and make_work_guard -

-
-

- io_service::work -

-
-

- Work tracking is now covered by the Executor - requirements. These templates work with any valid executor. -

-
-

- executor_binder - and bind_executor -

-
-

- io_service::wrap - and io_service::strand::wrap -

-
-

- These templates work with any valid executor. -

-
-

- async_result - with CompletionToken and Signature template - parameters -

-
-

- handler_type - and single parameter async_result -

-
-

- The async_result trait is now the single point of customisation - for asynchronous operation completion handlers and return type. -

-
-

- associated_executor - and get_associated_executor -

-
-

- asio_handler_invoke -

-
-

- The handler invocation hook has been replaced by the new Executor - requirements and the associated executor traits. -

-
-

- associated_allocator - and get_associated_allocator -

-
-

- asio_handler_allocate - and asio_handler_deallocate -

-
-

- The handler allocation hooks have been replaced by the standard Allocator - requirements and the associated allocator traits. -

-
-

- const_buffer::data - and mutable_buffer::data -

-
-

- buffer_cast -

-
-
-

- const_buffer::size - and mutable_buffer::size -

-
-

- buffer_size - for single buffers -

-
-

- buffer_size is not deprecated for single buffers as - const_buffer and mutable_buffer now satisfy - the buffer sequence requirements -

-
-

- const_buffer -

-
-

- const_buffers_1 -

-
-

- The ConstBufferSequence - requirements have been modified such that const_buffer - now satisfies them. -

-
-

- mutable_buffer -

-
-

- mutable_buffers_1 -

-
-

- The MutableBufferSequence - requirements have been modified such that mutable_buffer - now satisfies them. -

-
-

- basic_socket::get_executor - (and corresponding member for I/O objects such as timers, serial - ports, etc.) -

-
-

- basic_io_object::get_io_service -

-
-

- Use get_executor().context() to obtain the associated - io_context. -

-
-

- socket_base::max_listen_connections -

-
-

- socket_base::max_connections -

-
-
-

- socket_base::wait_type, - basic_socket::wait, - basic_socket::async_wait, - basic_socket_acceptor::wait, - and basic_socket_acceptor::async_wait -

-
-

- null_buffers -

-
-

- Operations for reactive I/O. -

-
-

- basic_socket_acceptor::accept - returns a socket -

-
-

- basic_socket_acceptor::accept - takes a socket by reference -

-
-

- Uses move support so requires C++11 or later. To accept a connection - into a socket object on a different io_context, pass - the destination context to accept. -

-
-

- basic_socket_acceptor::async_accept - passes socket to handler -

-
-

- basic_socket_acceptor::async_accept - takes a socket by reference -

-
-

- Uses move support so requires C++11 or later. To accept a connection - into a socket object on a different io_context, pass - the destination context to async_accept. -

-
-

- connect - overloads that take a range -

-
-

- connect - overloads that take a single iterator -

-
-

- The ip::basic_resolver::resolve - function now returns a range. When the resolve function's - result is passed directly to connect, the range overload - will be selected. -

-
-

- async_connect - overloads that take a range -

-
-

- async_connect - overloads that take a single iterator -

-
-

- The ip::basic_resolver::resolve - function now returns a range. When the resolve function's - result is passed directly to async_connect, the range - overload will be selected. -

-
-

- basic_socket_streambuf::duration -

-
-

- basic_socket_streambuf::duration_type -

-
-
-

- basic_socket_streambuf::time_point -

-
-

- basic_socket_streambuf::time_type -

-
-
-

- basic_socket_streambuf::expiry -

-
-

- basic_socket_streambuf::expires_at - and basic_socket_streambuf::expires_from_now - getters -

-
-
-

- basic_socket_streambuf::expires_after -

-
-

- basic_socket_streambuf::expires_from_now - setter -

-
-
-

- basic_socket_streambuf::error -

-
-

- basic_socket_streambuf::puberror -

-
-
-

- basic_socket_iostream::duration -

-
-

- basic_socket_iostream::duration_type -

-
-
-

- basic_socket_iostream::time_point -

-
-

- basic_socket_iostream::time_type -

-
-
-

- basic_socket_iostream::expiry -

-
-

- basic_socket_iostream::expires_at - and basic_socket_iostream::expires_from_now - getters -

-
-
-

- basic_socket_iostream::expires_after -

-
-

- basic_socket_iostream::expires_from_now - setter -

-
-
-

- basic_waitable_timer::cancel -

-
-

- basic_waitable_timer::cancel - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- basic_waitable_timer::cancel_one -

-
-

- basic_waitable_timer::cancel_one - overload that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- basic_waitable_timer::expires_at - setter -

-
-

- basic_waitable_timer::expires_at - setter that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- basic_waitable_timer::expiry -

-
-

- basic_waitable_timer::expires_at - and basic_waitable_timer::expires_from_now - getters -

-
-
-

- basic_waitable_timer::expires_after -

-
-

- basic_waitable_timer::expires_from_now - setter -

-
-
-

- ip::make_address -

-
-

- ip::address::from_string -

-
-
-

- ip::make_address_v4 -

-
-

- ip::address_v4::from_string - and ip::address_v6::to_v4 -

-
-
-

- ip::make_address_v6 -

-
-

- ip::address_v6::from_string - and ip::address_v6::v4_mapped -

-
-
-

- ip::address::to_string -

-
-

- ip::address::to_string - that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- ip::address_v4::to_string -

-
-

- ip::address_v4::to_string - that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- ip::address_v6::to_string -

-
-

- ip::address_v6::to_string - that takes error_code& -

-
-

- The error_code overload is not required. -

-
-

- No replacement -

-
-

- ip::address_v6::is_v4_compatible - and ip::address_v6::v4_compatible -

-
-
-

- ip::network_v4 -

-
-

- ip::address_v4::broadcast, - ip::address_v4::is_class_a, - ip::address_v4::is_class_b, - ip::address_v4::is_class_c, - and ip::address_v4::netmask -

-
-

- The network_v4 class adds the ability to manipulate - IPv4 network addresses using CIDR notation. -

-
-

- ip::network_v6 -

-
- -

- The network_v6 class adds the ability to manipulate - IPv6 network addresses using CIDR notation. -

-
-

- ip::address_v4_iterator - and ip::address_v4_range -

-
- -

- The ip::address_v4_iterator and address_v4_range - classes add the ability to iterate over all, or a subset of, IPv4 - addresses. -

-
-

- ip::address_v6_iterator - and ip::address_v6_range -

-
- -

- The ip::address_v6_iterator and address_v6_range - classes add the ability to iterate over all, or a subset of, IPv6 - addresses. -

-
-

- ip::basic_resolver::results_type -

-
-

- ip::basic_resolver::iterator -

-
-

- Resolvers now produce ranges rather than single iterators. -

-
-

- ip::basic_resolver::resolve - overloads taking hostname and service as arguments -

-
-

- ip::basic_resolver::resolve - overloads taking a ip::basic_resolver::query -

-
-
-

- ip::basic_resolver::resolve - returns a range -

-
-

- ip::basic_resolver::resolve - returns a single iterator -

-
-
-

- ip::basic_resolver::async_resolve - overloads taking hostname and service as arguments -

-
-

- ip::basic_resolver::async_resolve - overloads taking a ip::basic_resolver::query -

-
-
-

- ip::basic_resolver::async_resolve - calls the handler with a range -

-
-

- ip::basic_resolver::async_resolve - calls the handler with a single iterator -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview.html b/Sources/Vendor/asio/doc/asio/overview.html deleted file mode 100644 index e4c62de..0000000 --- a/Sources/Vendor/asio/doc/asio/overview.html +++ /dev/null @@ -1,155 +0,0 @@ - - - -Overview - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core.html b/Sources/Vendor/asio/doc/asio/overview/core.html deleted file mode 100644 index 0585152..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -Core Concepts and Functionality - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/allocation.html b/Sources/Vendor/asio/doc/asio/overview/core/allocation.html deleted file mode 100644 index 6b29c8a..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/allocation.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -Custom Memory Allocation - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Many asynchronous operations need to allocate an object to store state - associated with the operation. For example, a Win32 implementation needs - OVERLAPPED-derived objects - to pass to Win32 API functions. -

-

- Furthermore, programs typically contain easily identifiable chains of asynchronous - operations. A half duplex protocol implementation (e.g. an HTTP server) - would have a single chain of operations per client (receives followed by - sends). A full duplex protocol implementation would have two chains executing - in parallel. Programs should be able to leverage this knowledge to reuse - memory for all asynchronous operations in a chain. -

-

- Given a copy of a user-defined Handler - object h, if the implementation - needs to allocate memory associated with that handler it will obtain an - allocator using the get_associated_allocator - function. For example: -

-
asio::associated_allocator_t<Handler> a = asio::get_associated_allocator(h);
-
-

- The associated allocator must satisfy the standard Allocator requirements. -

-

- By default, handlers use the standard allocator (which is implemented in - terms of ::operator - new() - and ::operator - delete()). - The allocator may be customised for a particular handler type by specifying - a nested type allocator_type - and member function get_allocator(): -

-
class my_handler
-{
-public:
-  // Custom implementation of Allocator type requirements.
-  typedef my_allocator allocator_type;
-
-  // Return a custom allocator implementation.
-  allocator_type get_allocator() const noexcept
-  {
-    return my_allocator();
-  }
-
-  void operator()() { ... }
-};
-
-

- In more complex cases, the associated_allocator - template may be partially specialised directly: -

-
namespace asio {
-
-  template <typename Allocator>
-  struct associated_allocator<my_handler, Allocator>
-  {
-    // Custom implementation of Allocator type requirements.
-    typedef my_allocator type;
-
-    // Return a custom allocator implementation.
-    static type get(const my_handler&,
-        const Allocator& a = Allocator()) noexcept
-    {
-      return my_allocator();
-    }
-  };
-
-} // namespace asio
-
-

- The implementation guarantees that the deallocation will occur before the - associated handler is invoked, which means the memory is ready to be reused - for any new asynchronous operations started by the handler. -

-

- The custom memory allocation functions may be called from any user-created - thread that is calling a library function. The implementation guarantees - that, for the asynchronous operations included the library, the implementation - will not make concurrent calls to the memory allocation functions for that - handler. The implementation will insert appropriate memory barriers to - ensure correct memory visibility should allocation functions need to be - called from different threads. -

-
- - See - Also -
-

- associated_allocator, - get_associated_allocator, - custom memory allocation - example (C++03), custom - memory allocation example (C++11). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/async.html b/Sources/Vendor/asio/doc/asio/overview/core/async.html deleted file mode 100644 index c0b7b9a..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/async.html +++ /dev/null @@ -1,279 +0,0 @@ - - - -The Proactor Design Pattern: Concurrency Without Threads - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The Asio library offers side-by-side support for synchronous and asynchronous - operations. The asynchronous support is based on the Proactor design pattern - [POSA2]. The - advantages and disadvantages of this approach, when compared to a synchronous-only - or Reactor approach, are outlined below. -

-
- - Proactor - and Asio -
-

- Let us examine how the Proactor design pattern is implemented in Asio, - without reference to platform-specific details. -

-

- proactor -

-

- Proactor design pattern (adapted from [POSA2]) -

-

- — Asynchronous Operation -

-

- Defines an operation that is executed asynchronously, such as an asynchronous - read or write on a socket. -

-

- — Asynchronous Operation Processor -

-

- Executes asynchronous operations and queues events on a completion event - queue when operations complete. From a high-level point of view, internal - services like reactive_socket_service - are asynchronous operation processors. -

-

- — Completion Event Queue -

-

- Buffers completion events until they are dequeued by an asynchronous - event demultiplexer. -

-

- — Completion Handler -

-

- Processes the result of an asynchronous operation. These are function - objects, often created using boost::bind. -

-

- — Asynchronous Event Demultiplexer -

-

- Blocks waiting for events to occur on the completion event queue, and - returns a completed event to its caller. -

-

- — Proactor -

-

- Calls the asynchronous event demultiplexer to dequeue events, and dispatches - the completion handler (i.e. invokes the function object) associated - with the event. This abstraction is represented by the io_context class. -

-

- — Initiator -

-

- Application-specific code that starts asynchronous operations. The initiator - interacts with an asynchronous operation processor via a high-level interface - such as basic_stream_socket, - which in turn delegates to a service like reactive_socket_service. -

-
- - Implementation - Using Reactor -
-

- On many platforms, Asio implements the Proactor design pattern in terms - of a Reactor, such as select, - epoll or kqueue. This implementation approach - corresponds to the Proactor design pattern as follows: -

-

- — Asynchronous Operation Processor -

-

- A reactor implemented using select, - epoll or kqueue. When the reactor indicates - that the resource is ready to perform the operation, the processor executes - the asynchronous operation and enqueues the associated completion handler - on the completion event queue. -

-

- — Completion Event Queue -

-

- A linked list of completion handlers (i.e. function objects). -

-

- — Asynchronous Event Demultiplexer -

-

- This is implemented by waiting on an event or condition variable until - a completion handler is available in the completion event queue. -

-
- - Implementation - Using Windows Overlapped I/O -
-

- On Windows NT, 2000 and XP, Asio takes advantage of overlapped I/O to provide - an efficient implementation of the Proactor design pattern. This implementation - approach corresponds to the Proactor design pattern as follows: -

-

- — Asynchronous Operation Processor -

-

- This is implemented by the operating system. Operations are initiated - by calling an overlapped function such as AcceptEx. -

-

- — Completion Event Queue -

-

- This is implemented by the operating system, and is associated with an - I/O completion port. There is one I/O completion port for each io_context instance. -

-

- — Asynchronous Event Demultiplexer -

-

- Called by Asio to dequeue events and their associated completion handlers. -

-
- - Advantages -
-

- — Portability. -

-

- Many operating systems offer a native asynchronous I/O API (such as overlapped - I/O on Windows) as the preferred option for developing - high performance network applications. The library may be implemented - in terms of native asynchronous I/O. However, if native support is not - available, the library may also be implemented using synchronous event - demultiplexors that typify the Reactor pattern, such as POSIX - select(). -

-

- — Decoupling threading from concurrency. -

-

- Long-duration operations are performed asynchronously by the implementation - on behalf of the application. Consequently applications do not need to - spawn many threads in order to increase concurrency. -

-

- — Performance and scalability. -

-

- Implementation strategies such as thread-per-connection (which a synchronous-only - approach would require) can degrade system performance, due to increased - context switching, synchronisation and data movement among CPUs. With - asynchronous operations it is possible to avoid the cost of context switching - by minimising the number of operating system threads — typically a limited - resource — and only activating the logical threads of control that have - events to process. -

-

- — Simplified application synchronisation. -

-

- Asynchronous operation completion handlers can be written as though they - exist in a single-threaded environment, and so application logic can - be developed with little or no concern for synchronisation issues. -

-

- — Function composition. -

-

- Function composition refers to the implementation of functions to provide - a higher-level operation, such as sending a message in a particular format. - Each function is implemented in terms of multiple calls to lower-level - read or write operations. -

-

- For example, consider a protocol where each message consists of a fixed-length - header followed by a variable length body, where the length of the body - is specified in the header. A hypothetical read_message operation could - be implemented using two lower-level reads, the first to receive the - header and, once the length is known, the second to receive the body. -

-

- To compose functions in an asynchronous model, asynchronous operations - can be chained together. That is, a completion handler for one operation - can initiate the next. Starting the first call in the chain can be encapsulated - so that the caller need not be aware that the higher-level operation - is implemented as a chain of asynchronous operations. -

-

- The ability to compose new operations in this way simplifies the development - of higher levels of abstraction above a networking library, such as functions - to support a specific protocol. -

-
- - Disadvantages -
-

- — Program complexity. -

-

- It is more difficult to develop applications using asynchronous mechanisms - due to the separation in time and space between operation initiation - and completion. Applications may also be harder to debug due to the inverted - flow of control. -

-

- — Memory usage. -

-

- Buffer space must be committed for the duration of a read or write operation, - which may continue indefinitely, and a separate buffer is required for - each concurrent operation. The Reactor pattern, on the other hand, does - not require buffer space until a socket is ready for reading or writing. -

-
- - References -
-

- [POSA2] D. Schmidt et al, Pattern Oriented Software Architecture, - Volume 2. Wiley, 2000. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/basics.html b/Sources/Vendor/asio/doc/asio/overview/core/basics.html deleted file mode 100644 index eef3931..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/basics.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -Basic Asio Anatomy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio may be used to perform both synchronous and asynchronous operations - on I/O objects such as sockets. Before using Asio it may be useful to get - a conceptual picture of the various parts of Asio, your program, and how - they work together. -

-

- As an introductory example, let's consider what happens when you perform - a connect operation on a socket. We shall start by examining synchronous - operations. -

-

- sync_op -

-

- Your program will have at least one io_context object. The io_context - represents your program's link to the - operating system's I/O services. -

-
asio::io_context io_context;
-
-

- To perform I/O operations your program - will need an I/O object such as a TCP - socket: -

-
asio::ip::tcp::socket socket(io_context);
-
-

- When a synchronous connect operation is performed, the following sequence - of events occurs: -

-

- 1. Your program initiates the connect - operation by calling the I/O object: -

-
socket.connect(server_endpoint);
-
-

- 2. The I/O object forwards the request - to the io_context. -

-

- 3. The io_context calls on the operating system to perform the connect operation. -

-

- 4. The operating system returns the result - of the operation to the io_context. -

-

- 5. The io_context translates any error - resulting from the operation into an object of type asio::error_code. - An error_code may be compared - with specific values, or tested as a boolean (where a false - result means that no error occurred). The result is then forwarded back - up to the I/O object. -

-

- 6. The I/O object throws an exception - of type asio::system_error if the operation failed. - If the code to initiate the operation had instead been written as: -

-
asio::error_code ec;
-socket.connect(server_endpoint, ec);
-
-

- then the error_code variable - ec would be set to the - result of the operation, and no exception would be thrown. -

-

- When an asynchronous operation is used, a different sequence of events - occurs. -

-

- async_op1 -

-

- 1. Your program initiates the connect - operation by calling the I/O object: -

-
socket.async_connect(server_endpoint, your_completion_handler);
-
-

- where your_completion_handler - is a function or function object with the signature: -

-
void your_completion_handler(const asio::error_code& ec);
-
-

- The exact signature required depends on the asynchronous operation being - performed. The reference documentation indicates the appropriate form for - each operation. -

-

- 2. The I/O object forwards the request - to the io_context. -

-

- 3. The io_context signals to the operating system that it should start an asynchronous - connect. -

-

- Time passes. (In the synchronous case this wait would have been contained - entirely within the duration of the connect operation.) -

-

- async_op2 -

-

- 4. The operating system indicates that - the connect operation has completed by placing the result on a queue, ready - to be picked up by the io_context. -

-

- 5. Your program must make a call to io_context::run() - (or to one of the similar io_context member - functions) in order for the result to be retrieved. A call to io_context::run() - blocks while there are unfinished asynchronous operations, so you would - typically call it as soon as you have started your first asynchronous operation. -

-

- 6. While inside the call to io_context::run(), the io_context - dequeues the result of the operation, translates it into an error_code, and then passes it to your completion handler. -

-

- This is a simplified picture of how Asio operates. You will want to delve - further into the documentation if your needs are more advanced, such as - extending Asio to perform other types of asynchronous operations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/buffers.html b/Sources/Vendor/asio/doc/asio/overview/core/buffers.html deleted file mode 100644 index dde3533..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/buffers.html +++ /dev/null @@ -1,234 +0,0 @@ - - - -Buffers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fundamentally, I/O involves the transfer of data to and from contiguous - regions of memory, called buffers. These buffers can be simply expressed - as a tuple consisting of a pointer and a size in bytes. However, to allow - the development of efficient network applications, Asio includes support - for scatter-gather operations. These operations involve one or more buffers: -

-
    -
  • - A scatter-read receives data into multiple buffers. -
  • -
  • - A gather-write transmits multiple buffers. -
  • -
-

- Therefore we require an abstraction to represent a collection of buffers. - The approach used in Asio is to define a type (actually two types) to represent - a single buffer. These can be stored in a container, which may be passed - to the scatter-gather operations. -

-

- In addition to specifying buffers as a pointer and size in bytes, Asio - makes a distinction between modifiable memory (called mutable) and non-modifiable - memory (where the latter is created from the storage for a const-qualified - variable). These two types could therefore be defined as follows: -

-
typedef std::pair<void*, std::size_t> mutable_buffer;
-typedef std::pair<const void*, std::size_t> const_buffer;
-
-

- Here, a mutable_buffer would be convertible to a const_buffer, but conversion - in the opposite direction is not valid. -

-

- However, Asio does not use the above definitions as-is, but instead defines - two classes: mutable_buffer - and const_buffer. The goal - of these is to provide an opaque representation of contiguous memory, where: -

-
    -
  • - Types behave as std::pair would in conversions. That is, a mutable_buffer is convertible to - a const_buffer, but - the opposite conversion is disallowed. -
  • -
  • - There is protection against buffer overruns. Given a buffer instance, - a user can only create another buffer representing the same range of - memory or a sub-range of it. To provide further safety, the library - also includes mechanisms for automatically determining the size of - a buffer from an array, boost::array - or std::vector of POD elements, or from a - std::string. -
  • -
  • - The underlying memory is explicitly accessed using the data() - member function. In general an application should never need to do - this, but it is required by the library implementation to pass the - raw memory to the underlying operating system functions. -
  • -
-

- Finally, multiple buffers can be passed to scatter-gather operations (such - as read() or write()) - by putting the buffer objects into a container. The MutableBufferSequence - and ConstBufferSequence - concepts have been defined so that containers such as std::vector, - std::list, std::vector - or boost::array can be used. -

-
- - Streambuf - for Integration with Iostreams -
-

- The class asio::basic_streambuf is derived from std::basic_streambuf to associate the input - sequence and output sequence with one or more objects of some character - array type, whose elements store arbitrary values. These character array - objects are internal to the streambuf object, but direct access to the - array elements is provided to permit them to be used with I/O operations, - such as the send or receive operations of a socket: -

-
    -
  • - The input sequence of the streambuf is accessible via the data() - member function. The return type of this function meets the ConstBufferSequence requirements. -
  • -
  • - The output sequence of the streambuf is accessible via the prepare() - member function. The return type of this function meets the MutableBufferSequence requirements. -
  • -
  • - Data is transferred from the front of the output sequence to the back - of the input sequence by calling the commit() - member function. -
  • -
  • - Data is removed from the front of the input sequence by calling the - consume() - member function. -
  • -
-

- The streambuf constructor accepts a size_t - argument specifying the maximum of the sum of the sizes of the input sequence - and output sequence. Any operation that would, if successful, grow the - internal data beyond this limit will throw a std::length_error - exception. -

-
- - Bytewise - Traversal of Buffer Sequences -
-

- The buffers_iterator<> - class template allows buffer sequences (i.e. types meeting MutableBufferSequence or ConstBufferSequence requirements) to - be traversed as though they were a contiguous sequence of bytes. Helper - functions called buffers_begin() and buffers_end() are also provided, where - the buffers_iterator<> template parameter is automatically deduced. -

-

- As an example, to read a single line from a socket and into a std::string, you may write: -

-
asio::streambuf sb;
-...
-std::size_t n = asio::read_until(sock, sb, '\n');
-asio::streambuf::const_buffers_type bufs = sb.data();
-std::string line(
-    asio::buffers_begin(bufs),
-    asio::buffers_begin(bufs) + n);
-
-
- - Buffer - Debugging -
-

- Some standard library implementations, such as the one that ships with - Microsoft Visual C++ 8.0 and later, provide a feature called iterator debugging. - What this means is that the validity of iterators is checked at runtime. - If a program tries to use an iterator that has been invalidated, an assertion - will be triggered. For example: -

-
std::vector<int> v(1)
-std::vector<int>::iterator i = v.begin();
-v.clear(); // invalidates iterators
-*i = 0; // assertion!
-
-

- Asio takes advantage of this feature to add buffer debugging. Consider - the following code: -

-
void dont_do_this()
-{
- std::string msg = "Hello, world!";
- asio::async_write(sock, asio::buffer(msg), my_handler);
-}
-
-

- When you call an asynchronous read or write you need to ensure that the - buffers for the operation are valid until the completion handler is called. - In the above example, the buffer is the std::string - variable msg. This variable - is on the stack, and so it goes out of scope before the asynchronous operation - completes. If you're lucky then the application will crash, but random - failures are more likely. -

-

- When buffer debugging is enabled, Asio stores an iterator into the string - until the asynchronous operation completes, and then dereferences it to - check its validity. In the above example you would observe an assertion - failure just before Asio tries to call the completion handler. -

-

- This feature is automatically made available for Microsoft Visual Studio - 8.0 or later and for GCC when _GLIBCXX_DEBUG - is defined. There is a performance cost to this checking, so buffer debugging - is only enabled in debug builds. For other compilers it may be enabled - by defining ASIO_ENABLE_BUFFER_DEBUGGING. - It can also be explicitly disabled by defining ASIO_DISABLE_BUFFER_DEBUGGING. -

-
- - See - Also -
-

- buffer, buffers_begin, - buffers_end, buffers_iterator, - const_buffer, const_buffers_1, mutable_buffer, mutable_buffers_1, - streambuf, ConstBufferSequence, - MutableBufferSequence, - buffers example (C++03), - buffers example (c++11). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/concurrency_hint.html b/Sources/Vendor/asio/doc/asio/overview/core/concurrency_hint.html deleted file mode 100644 index 7205a29..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/concurrency_hint.html +++ /dev/null @@ -1,167 +0,0 @@ - - - -Concurrency Hints - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The io_context constructor allows - programs to specify a concurrency hint. This is a suggestion to the io_context implementation as to the number - of active threads that should be used for running completion handlers. -

-

- When the Windows I/O completion port backend is in use, this value is passed - to CreateIoCompletionPort. -

-

- When a reactor-based backend is used, the implementation recognises the - following special concurrency hint values: -

-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Value -

-
-

- Description -

-
-

- 1 -

-
-

- The implementation assumes that the io_context - will be run from a single thread, and applies several optimisations - based on this assumption. -

-

- For example, when a handler is posted from within another handler, - the new handler is added to a fast thread-local queue (with the - consequence that the new handler is held back until the currently - executing handler finishes). -

-
-

- ASIO_CONCURRENCY_HINT_UNSAFE -

-
-

- This special concurrency hint disables locking in both the scheduler - and reactor I/O. This hint has the following restrictions: -

-

- — Care must be taken to ensure that all operations on the io_context and any of its associated - I/O objects (such as sockets and timers) occur in only one thread - at a time. -

-

- — Asynchronous resolve operations fail with operation_not_supported. -

-

- — If a signal_set - is used with the io_context, - signal_set objects - cannot be used with any other io_context in the program. -

-
-

- ASIO_CONCURRENCY_HINT_UNSAFE_IO -

-
-

- This special concurrency hint disables locking in the reactor - I/O. This hint has the following restrictions: -

-

- — Care must be taken to ensure that run functions on the io_context, and all operations - on the context's associated I/O objects (such as sockets and - timers), occur in only one thread at a time. -

-
-

- ASIO_CONCURRENCY_HINT_SAFE -

-
-

- The default. The io_context - provides full thread safety, and distinct I/O objects may be - used from any thread. -

-
-

- The concurrency hint used by default-constructed io_context - objects can be overridden at compile time by defining the ASIO_CONCURRENCY_HINT_DEFAULT - macro. For example, specifying -

-
-DASIO_CONCURRENCY_HINT_DEFAULT=1
-
-

- on the compiler command line means that a concurrency hint of 1 - is used for all default-constructed io_context objects in - the program. Similarly, the concurrency hint used by io_context - objects constructed with 1 can be overridden by defining - ASIO_CONCURRENCY_HINT_1. For example, passing -

-
-DASIO_CONCURRENCY_HINT_1=ASIO_CONCURRENCY_HINT_UNSAFE
-
-

- to the compiler will disable thread safety for all of these objects. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/coroutine.html b/Sources/Vendor/asio/doc/asio/overview/core/coroutine.html deleted file mode 100644 index a6789a3..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/coroutine.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -Stackless Coroutines - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The coroutine - class provides support for stackless coroutines. Stackless coroutines enable - programs to implement asynchronous logic in a synchronous manner, with - minimal overhead, as shown in the following example: -

-
struct session : asio::coroutine
-{
-  boost::shared_ptr<tcp::socket> socket_;
-  boost::shared_ptr<std::vector<char> > buffer_;
-
-  session(boost::shared_ptr<tcp::socket> socket)
-    : socket_(socket),
-      buffer_(new std::vector<char>(1024))
-  {
-  }
-
-  void operator()(asio::error_code ec = asio::error_code(), std::size_t n = 0)
-  {
-    if (!ec) reenter (this)
-    {
-      for (;;)
-      {
-        yield socket_->async_read_some(asio::buffer(*buffer_), *this);
-        yield asio::async_write(*socket_, asio::buffer(*buffer_, n), *this);
-      }
-    }
-  }
-};
-
-

- The coroutine class is used in conjunction with the pseudo-keywords - reenter, yield and fork. These are - preprocessor macros, and are implemented in terms of a switch - statement using a technique similar to Duff's Device. The coroutine - class's documentation provides a complete description of these pseudo-keywords. -

-
- - See - Also -
-

- coroutine, HTTP - Server 4 example, Stackful - Coroutines. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/coroutines_ts.html b/Sources/Vendor/asio/doc/asio/overview/core/coroutines_ts.html deleted file mode 100644 index 609e8db..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/coroutines_ts.html +++ /dev/null @@ -1,147 +0,0 @@ - - - -Coroutines TS Support (experimental) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Note: "Experimental" means that this interface is provided to - gather feedback and may change in subsequent Asio releases.) -

-

- Experimental support for the Coroutines TS is provided via the experimental::co_spawn() - function. This co_spawn() function enables programs to implement - asynchronous logic in a synchronous manner, in conjunction with the co_await - keyword, as shown in the following example: -

-
asio::experimental::co_spawn(executor,
-    [socket = std::move(socket)]() mutable
-    {
-      return echo(std::move(socket));
-    },
-    asio::experimental::detached);
-
-// ...
-
-asio::experimental::awaitable<void> echo(tcp::socket socket)
-{
-  auto token = co_await asio::experimental::this_coro::token();
-
-  try
-  {
-    char data[1024];
-    for (;;)
-    {
-      std::size_t n = co_await socket.async_read_some(asio::buffer(data), token);
-      co_await async_write(socket, asio::buffer(data, n), token);
-    }
-  }
-  catch (std::exception& e)
-  {
-    std::printf("echo Exception: %s\n", e.what());
-  }
-}
-
-

- The first argument to co_spawn() is an executor - that determines the context in which the coroutine is permitted to execute. - For example, a server's per-client object may consist of multiple coroutines; - they should all run on the same strand so that no explicit - synchronisation is required. -

-

- The second argument is a nullary function object that returns a asio::awaitable<R>, - where R is the type of return value produced by the coroutine. - In the above example, the coroutine returns void. -

-

- The third argument is a completion token, and this is used by co_spawn() - to produce a completion handler with signature void(std::exception_ptr, - R). This completion handler is invoked with the result of the coroutine - once it has finished. In the above example we pass a completion token type, - asio::experimental::detached, - which is used to explicitly ignore the result of an asynchronous operation. -

-

- In this example the body of the coroutine is implemented in the echo - function. This function first obtains a completion token that represents - the current coroutine: -

-
auto token = co_await asio::experimental::this_coro::token();
-
-

- When this completion token is passed to an asynchronous operation, the - operation's initiating function returns an awaitable that - may be used with the co_await keyword: -

-
std::size_t n = co_await socket.async_read_some(asio::buffer(data), token);
-
-

- Where an asynchronous operation's handler signature has the form: -

-
void handler(asio::error_code ec, result_type result);
-
-

- the resulting type of the co_await expression is result_type. - In the async_read_some example above, this is size_t. - If the asynchronous operation fails, the error_code is converted - into a system_error exception and thrown. -

-

- Where a handler signature has the form: -

-
void handler(asio::error_code ec);
-
-

- the co_await expression produces a void result. - As above, an error is passed back to the coroutine as a system_error - exception. -

-
- - See - Also -
-

- experimental::co_spawn, - experimental::detached, - experimental::redirect_error, - experimental::awaitable, - experimental::await_token, - experimental::this_coro::executor, - experimental::this_coro::token, - Coroutines - TS examples, Stackful Coroutines, - Stackless Coroutines. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/handler_tracking.html b/Sources/Vendor/asio/doc/asio/overview/core/handler_tracking.html deleted file mode 100644 index 088ad75..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/handler_tracking.html +++ /dev/null @@ -1,414 +0,0 @@ - - - -Handler Tracking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- To aid in debugging asynchronous programs, Asio provides support for handler - tracking. When enabled by defining ASIO_ENABLE_HANDLER_TRACKING, - Asio writes debugging output to the standard error stream. The output records - asynchronous operations and the relationships between their handlers. -

-

- This feature is useful when debugging and you need to know how your asynchronous - operations are chained together, or what the pending asynchronous operations - are. As an illustration, here is the output when you run the HTTP Server - example, handle a single request, then shut down via Ctrl+C: -

-
@asio|1512254357.979980|0*1|signal_set@0x7ffeaaaa20d8.async_wait
-@asio|1512254357.980127|0*2|socket@0x7ffeaaaa20f8.async_accept
-@asio|1512254357.980150|.2|non_blocking_accept,ec=asio.system:11
-@asio|1512254357.980162|0|resolver@0x7ffeaaaa1fd8.cancel
-@asio|1512254368.457147|.2|non_blocking_accept,ec=system:0
-@asio|1512254368.457193|>2|ec=system:0
-@asio|1512254368.457219|2*3|socket@0x55cf39f0a238.async_receive
-@asio|1512254368.457244|.3|non_blocking_recv,ec=system:0,bytes_transferred=141
-@asio|1512254368.457275|2*4|socket@0x7ffeaaaa20f8.async_accept
-@asio|1512254368.457293|.4|non_blocking_accept,ec=asio.system:11
-@asio|1512254368.457301|<2|
-@asio|1512254368.457310|>3|ec=system:0,bytes_transferred=141
-@asio|1512254368.457441|3*5|socket@0x55cf39f0a238.async_send
-@asio|1512254368.457502|.5|non_blocking_send,ec=system:0,bytes_transferred=156
-@asio|1512254368.457511|<3|
-@asio|1512254368.457519|>5|ec=system:0,bytes_transferred=156
-@asio|1512254368.457544|5|socket@0x55cf39f0a238.close
-@asio|1512254368.457559|<5|
-@asio|1512254371.385106|>1|ec=system:0,signal_number=2
-@asio|1512254371.385130|1|socket@0x7ffeaaaa20f8.close
-@asio|1512254371.385163|<1|
-@asio|1512254371.385175|>4|ec=asio.system:125
-@asio|1512254371.385182|<4|
-@asio|1512254371.385202|0|signal_set@0x7ffeaaaa20d8.cancel
-
-

- Each line is of the form: -

-
<tag>|<timestamp>|<action>|<description>
-
-

- The <tag> is always @asio, and is used - to identify and extract the handler tracking messages from the program - output. -

-

- The <timestamp> is seconds and microseconds from 1 Jan - 1970 UTC. -

-

- The <action> takes one of the following forms: -

-
-

-
-
>n
-

- The program entered the handler number n. The <description> - shows the arguments to the handler. -

-
<n
-

- The program left handler number n. -

-
!n
-

- The program left handler number n due to an exception. -

-
~n
-

- The handler number n was destroyed without having been - invoked. This is usually the case for any unfinished asynchronous - operations when the io_context is destroyed. -

-
n*m
-

- The handler number n created a new asynchronous operation - with completion handler number m. The <description> - shows what asynchronous operation was started. -

-
n
-

- The handler number n performed some other operation. - The <description> shows what function was called. - Currently only close() and cancel() operations - are logged, as these may affect the state of pending asynchronous - operations. -

-
.n
-

- The implementation performed a system call as part of the asynchronous - operation for which handler number n is the completion - handler. The <description> shows what function - was called and its results. These tracking events are only emitted - when using a reactor-based implementation. -

-
-
-

- Where the <description> shows a synchronous or asynchronous - operation, the format is <object-type>@<pointer>.<operation>. - For handler entry, it shows a comma-separated list of arguments and their - values. -

-

- As shown above, Each handler is assigned a numeric identifier. Where the - handler tracking output shows a handler number of 0, it means that the - action was performed outside of any handler. -

-
- - Visual - Representations -
-

- The handler tracking output may be post-processed using the included handlerviz.pl - tool to create a visual representation of the handlers (requires the GraphViz - tool dot). -

-
- - Custom Tracking -
-

- Handling tracking may be customised by defining the ASIO_CUSTOM_HANDLER_TRACKING - macro to the name of a header file (enclosed in "" - or <>). This header - file must implement the following preprocessor macros: -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Macro -

-
-

- Description -

-
-

- ASIO_INHERIT_TRACKED_HANDLER -

-
-

- Specifies a base class for classes that implement asynchronous - operations. When used, the macro immediately follows the class - name, so it must have the form : - public my_class. -

-
-

- ASIO_ALSO_INHERIT_TRACKED_HANDLER -

-
-

- Specifies a base class for classes that implement asynchronous - operations. When used, the macro follows other base classes, - so it must have the form , - public my_class. -

-
-

- ASIO_HANDLER_TRACKING_INIT(args) -

-
-

- An expression that is used to initialise the tracking mechanism. -

-
-

- ASIO_HANDLER_CREATION(args) -

-
-

- An expression that is called on creation of an asynchronous operation. - args is a parenthesised - function argument list containing the owning execution context, - the tracked handler, the name of the object type, a pointer to - the object, the object's native handle, and the operation name. -

-
-

- ASIO_HANDLER_COMPLETION(args) -

-
-

- An expression that is called on completion of an asynchronous - operation. args - is a parenthesised function argument list containing the tracked - handler. -

-
-

- ASIO_HANDLER_INVOCATION_BEGIN(args) -

-
-

- An expression that is called immediately before a completion - handler is invoked. args - is a parenthesised function argument list containing the arguments - to the completion handler. -

-
-

- ASIO_HANDLER_INVOCATION_END -

-
-

- An expression that is called immediately after a completion handler - is invoked. -

-
-

- ASIO_HANDLER_OPERATION(args) -

-
-

- An expression that is called when some synchronous object operation - is called (such as close() or cancel()). args - is a parenthesised function argument list containing the owning - execution context, the name of the object type, a pointer to - the object, the object's native handle, and the operation name. -

-
-

- ASIO_HANDLER_REACTOR_REGISTRATION(args) -

-
-

- An expression that is called when an object is registered with - the reactor. args - is a parenthesised function argument list containing the owning - execution context, the object's native handle, and a unique registration - key. -

-
-

- ASIO_HANDLER_REACTOR_DEREGISTRATION(args) -

-
-

- An expression that is called when an object is deregistered from - the reactor. args - is a parenthesised function argument list containing the owning - execution context, the object's native handle, and a unique registration - key. -

-
-

- ASIO_HANDLER_REACTOR_READ_EVENT -

-
-

- A bitmask constant used to identify reactor read readiness events. -

-
-

- ASIO_HANDLER_REACTOR_WRITE_EVENT -

-
-

- A bitmask constant used to identify reactor write readiness events. -

-
-

- ASIO_HANDLER_REACTOR_ERROR_EVENT -

-
-

- A bitmask constant used to identify reactor error readiness events. -

-
-

- ASIO_HANDLER_REACTOR_EVENTS(args) -

-
-

- An expression that is called when an object registered with the - reactor becomes ready. args - is a parenthesised function argument list containing the owning - execution context, the unique registration key, and a bitmask - of the ready events. -

-
-

- ASIO_HANDLER_REACTOR_OPERATION(args) -

-
-

- An expression that is called when the implementation performs - a system call as part of a reactor-based asynchronous operation. - args is a parenthesised - function argument list containing the tracked handler, the operation - name, the error code produced by the operation, and (optionally) - the number of bytes transferred. -

-
-
- - See - Also -
-

- Custom handler - tracking example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/line_based.html b/Sources/Vendor/asio/doc/asio/overview/core/line_based.html deleted file mode 100644 index 2640240..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/line_based.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -Line-Based Operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Many commonly-used internet protocols are line-based, which means that - they have protocol elements that are delimited by the character sequence - "\r\n". Examples - include HTTP, SMTP and FTP. To more easily permit the implementation of - line-based protocols, as well as other protocols that use delimiters, Asio - includes the functions read_until() and async_read_until(). -

-

- The following example illustrates the use of async_read_until() in an HTTP server, to receive the first - line of an HTTP request from a client: -

-
class http_connection
-{
-  ...
-
-  void start()
-  {
-    asio::async_read_until(socket_, data_, "\r\n",
-        boost::bind(&http_connection::handle_request_line, this, _1));
-  }
-
-  void handle_request_line(asio::error_code ec)
-  {
-    if (!ec)
-    {
-      std::string method, uri, version;
-      char sp1, sp2, cr, lf;
-      std::istream is(&data_);
-      is.unsetf(std::ios_base::skipws);
-      is >> method >> sp1 >> uri >> sp2 >> version >> cr >> lf;
-      ...
-    }
-  }
-
-  ...
-
-  asio::ip::tcp::socket socket_;
-  asio::streambuf data_;
-};
-
-

- The streambuf data member - serves as a place to store the data that has been read from the socket - before it is searched for the delimiter. It is important to remember that - there may be additional data after the delimiter. - This surplus data should be left in the streambuf - so that it may be inspected by a subsequent call to read_until() or async_read_until(). -

-

- The delimiters may be specified as a single char, - a std::string or a boost::regex. - The read_until() - and async_read_until() - functions also include overloads that accept a user-defined function object - called a match condition. For example, to read data into a streambuf until - whitespace is encountered: -

-
typedef asio::buffers_iterator<
-    asio::streambuf::const_buffers_type> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-asio::streambuf b;
-asio::read_until(s, b, match_whitespace);
-
-

- To read data into a streambuf until a matching character is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-asio::streambuf b;
-asio::read_until(s, b, match_char('a'));
-
-

- The is_match_condition<> type trait automatically evaluates - to true for functions, and for function objects with a nested result_type typedef. For other types - the trait must be explicitly specialised, as shown above. -

-
- - See - Also -
-

- async_read_until(), - is_match_condition, - read_until(), streambuf, - HTTP client example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/reactor.html b/Sources/Vendor/asio/doc/asio/overview/core/reactor.html deleted file mode 100644 index 70f39f6..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/reactor.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Reactor-Style Operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sometimes a program must be integrated with a third-party library that - wants to perform the I/O operations itself. To facilitate this, Asio includes - synchronous and asynchronous operations that may be used to wait for a - socket to become ready to read, ready to write, or to have a pending error - condition. -

-

- As an example, to perform a non-blocking read something like the following - may be used: -

-
ip::tcp::socket socket(my_io_context);
-...
-socket.non_blocking(true);
-...
-socket.async_wait(ip::tcp::socket::wait_read, read_handler);
-...
-void read_handler(asio::error_code ec)
-{
-  if (!ec)
-  {
-    std::vector<char> buf(socket.available());
-    socket.read_some(buffer(buf));
-  }
-}
-
-

- These operations are supported for sockets on all platforms, and for the - POSIX stream-oriented descriptor classes. -

-
- - See - Also -
-

- basic_socket::wait(), - basic_socket::async_wait(), - basic_socket::non_blocking(), - basic_socket::native_non_blocking(), - nonblocking example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/spawn.html b/Sources/Vendor/asio/doc/asio/overview/core/spawn.html deleted file mode 100644 index 7fef898..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/spawn.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -Stackful Coroutines - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The spawn() function - is a high-level wrapper for running stackful coroutines. It is based on - the Boost.Coroutine library. The spawn() function enables - programs to implement asynchronous logic in a synchronous manner, as shown - in the following example: -

-
asio::spawn(my_strand, do_echo);
-
-// ...
-
-void do_echo(asio::yield_context yield)
-{
-  try
-  {
-    char data[128];
-    for (;;)
-    {
-      std::size_t length =
-        my_socket.async_read_some(
-          asio::buffer(data), yield);
-
-      asio::async_write(my_socket,
-          asio::buffer(data, length), yield);
-    }
-  }
-  catch (std::exception& e)
-  {
-    // ...
-  }
-}
-
-

- The first argument to spawn() may be a strand, - io_context, - or completion handler. - This argument determines the context in which the coroutine is permitted - to execute. For example, a server's per-client object may consist of multiple - coroutines; they should all run on the same strand so that - no explicit synchronisation is required. -

-

- The second argument is a function object with signature: -

-
void coroutine(asio::yield_context yield);
-
-

- that specifies the code to be run as part of the coroutine. The parameter - yield may be passed to an asynchronous operation in place - of the completion handler, as in: -

-
std::size_t length =
-  my_socket.async_read_some(
-    asio::buffer(data), yield);
-
-

- This starts the asynchronous operation and suspends the coroutine. The - coroutine will be resumed automatically when the asynchronous operation - completes. -

-

- Where an asynchronous operation's handler signature has the form: -

-
void handler(asio::error_code ec, result_type result);
-
-

- the initiating function returns the result_type. In the async_read_some - example above, this is size_t. If the asynchronous operation - fails, the error_code is converted into a system_error - exception and thrown. -

-

- Where a handler signature has the form: -

-
void handler(asio::error_code ec);
-
-

- the initiating function returns void. As above, an error is - passed back to the coroutine as a system_error exception. -

-

- To collect the error_code from an operation, rather than have - it throw an exception, associate the output variable with the yield_context - as follows: -

-
asio::error_code ec;
-std::size_t length =
-  my_socket.async_read_some(
-    asio::buffer(data), yield[ec]);
-
-

- Note: if spawn() is used - with a custom completion handler of type Handler, the function - object signature is actually: -

-
void coroutine(asio::basic_yield_context<Handler> yield);
-
-
- - See - Also -
-

- spawn, yield_context, - basic_yield_context, - Spawn example (C++03), - Spawn example (C++11), - Stackless Coroutines. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/strands.html b/Sources/Vendor/asio/doc/asio/overview/core/strands.html deleted file mode 100644 index b861e5b..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/strands.html +++ /dev/null @@ -1,160 +0,0 @@ - - - -Strands: Use Threads Without Explicit Locking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A strand is defined as a strictly sequential invocation of event handlers - (i.e. no concurrent invocation). Use of strands allows execution of code - in a multithreaded program without the need for explicit locking (e.g. - using mutexes). -

-

- Strands may be either implicit or explicit, as illustrated by the following - alternative approaches: -

-
    -
  • - Calling io_context::run() from only one thread means all event handlers - execute in an implicit strand, due to the io_context's guarantee that - handlers are only invoked from inside run(). -
  • -
  • - Where there is a single chain of asynchronous operations associated - with a connection (e.g. in a half duplex protocol implementation like - HTTP) there is no possibility of concurrent execution of the handlers. - This is an implicit strand. -
  • -
  • - An explicit strand is an instance of strand<> or io_context::strand. - All event handler function objects need to be bound to the strand using - asio::bind_executor() - or otherwise posted/dispatched through the strand object. -
  • -
-

- In the case of composed asynchronous operations, such as async_read() - or async_read_until(), - if a completion handler goes through a strand, then all intermediate handlers - should also go through the same strand. This is needed to ensure thread - safe access for any objects that are shared between the caller and the - composed operation (in the case of async_read() it's the socket, which the caller can - close() - to cancel the operation). -

-

- To achieve this, all asynchronous operations obtain the handler's associated - executor by using the get_associated_executor - function. For example: -

-
asio::associated_executor_t<Handler> a = asio::get_associated_executor(h);
-
-

- The associated executor must satisfy the Executor requirements. It will - be used by the asynchronous operation to submit both intermediate and final - handlers for execution. -

-

- The executor may be customised for a particular handler type by specifying - a nested type executor_type - and member function get_executor(): -

-
class my_handler
-{
-public:
-  // Custom implementation of Executor type requirements.
-  typedef my_executor executor_type;
-
-  // Return a custom executor implementation.
-  executor_type get_executor() const noexcept
-  {
-    return my_executor();
-  }
-
-  void operator()() { ... }
-};
-
-

- In more complex cases, the associated_executor - template may be partially specialised directly: -

-
struct my_handler
-{
-  void operator()() { ... }
-};
-
-namespace asio {
-
-  template <class Executor>
-  struct associated_executor<my_handler, Executor>
-  {
-    // Custom implementation of Executor type requirements.
-    typedef my_executor type;
-
-    // Return a custom executor implementation.
-    static type get(const my_handler&,
-        const Executor& = Executor()) noexcept
-    {
-      return my_executor();
-    }
-  };
-
-} // namespace asio
-
-

- The asio::bind_executor() - function is a helper to bind a specific executor object, such as a strand, - to a completion handler. This binding automatically associates an executor - as shown above. For example, to bind a strand to a completion handler we - would simply write: -

-
my_socket.async_read_some(my_buffer,
-    asio::bind_executor(my_strand,
-      [](error_code ec, size_t length)
-      {
-        // ...
-      }));
-
-
- - See - Also -
-

- associated_executor, - get_associated_executor, - bind_executor, strand, io_context::strand, - tutorial Timer.5, HTTP server 3 example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/streams.html b/Sources/Vendor/asio/doc/asio/overview/core/streams.html deleted file mode 100644 index 932f674..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/streams.html +++ /dev/null @@ -1,120 +0,0 @@ - - - -Streams, Short Reads and Short Writes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Many I/O objects in Asio are stream-oriented. This means that: -

-
    -
  • - There are no message boundaries. The data being transferred is a continuous - sequence of bytes. -
  • -
  • - Read or write operations may transfer fewer bytes than requested. This - is referred to as a short read or short write. -
  • -
-

- Objects that provide stream-oriented I/O model one or more of the following - type requirements: -

-
    -
  • - SyncReadStream, where - synchronous read operations are performed using a member function called - read_some(). -
  • -
  • - AsyncReadStream, where - asynchronous read operations are performed using a member function - called async_read_some(). -
  • -
  • - SyncWriteStream, where - synchronous write operations are performed using a member function - called write_some(). -
  • -
  • - AsyncWriteStream, where - asynchronous write operations are performed using a member function - called async_write_some(). -
  • -
-

- Examples of stream-oriented I/O objects include ip::tcp::socket, - ssl::stream<>, - posix::stream_descriptor, windows::stream_handle, - etc. -

-

- Programs typically want to transfer an exact number of bytes. When a short - read or short write occurs the program must restart the operation, and - continue to do so until the required number of bytes has been transferred. - Asio provides generic functions that do this automatically: read(), - async_read(), - write() - and async_write(). -

-
- - Why - EOF is an Error -
-
    -
  • - The end of a stream can cause read, - async_read, read_until or async_read_until - functions to violate their contract. E.g. a read of N bytes may finish - early due to EOF. -
  • -
  • - An EOF error may be used to distinguish the end of a stream from a - successful read of size 0. -
  • -
-
- - See - Also -
-

- async_read(), async_write(), - read(), write(), - AsyncReadStream, - AsyncWriteStream, - SyncReadStream, SyncWriteStream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/core/threads.html b/Sources/Vendor/asio/doc/asio/overview/core/threads.html deleted file mode 100644 index 6f5542f..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/core/threads.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -Threads and Asio - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - Thread - Safety -
-

- In general, it is safe to make concurrent use of distinct objects, but - unsafe to make concurrent use of a single object. However, types such as - io_context provide a stronger - guarantee that it is safe to use a single object concurrently. -

-
- - Thread - Pools -
-

- Multiple threads may call io_context::run() to set up a pool of threads from which - completion handlers may be invoked. This approach may also be used with - post() - as a means to perform arbitrary computational tasks across a thread pool. -

-

- Note that all threads that have joined an io_context's - pool are considered equivalent, and the io_context - may distribute work across them in an arbitrary fashion. -

-
- - Internal - Threads -
-

- The implementation of this library for a particular platform may make use - of one or more internal threads to emulate asynchronicity. As far as possible, - these threads must be invisible to the library user. In particular, the - threads: -

-
    -
  • - must not call the user's code directly; and -
  • -
  • - must block all signals. -
  • -
-

- This approach is complemented by the following guarantee: -

-
  • - Asynchronous completion handlers will only be called from threads that - are currently calling io_context::run(). -
-

- Consequently, it is the library user's responsibility to create and manage - all threads to which the notifications will be delivered. -

-

- The reasons for this approach include: -

-
    -
  • - By only calling io_context::run() from a single thread, the user's - code can avoid the development complexity associated with synchronisation. - For example, a library user can implement scalable servers that are - single-threaded (from the user's point of view). -
  • -
  • - A library user may need to perform initialisation in a thread shortly - after the thread starts and before any other application code is executed. - For example, users of Microsoft's COM must call CoInitializeEx - before any other COM operations can be called from that thread. -
  • -
  • - The library interface is decoupled from interfaces for thread creation - and management, and permits implementations on platforms where threads - are not available. -
  • -
-
- - See - Also -
-

- io_context, post. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011.html deleted file mode 100644 index d7dce4d..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -C++ 2011 Support - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/array.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/array.html deleted file mode 100644 index bf2ac8c..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/array.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -Array Container - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Where the standard library provides std::array<>, Asio: -

-
-

- Support for std::array<> is automatically enabled for - g++ 4.3 and later, when the -std=c++0x - or -std=gnu++0x compiler options are used, as well as - for Microsoft Visual C++ 10. It may be disabled by defining ASIO_DISABLE_STD_ARRAY, - or explicitly enabled for other compilers by defining ASIO_HAS_STD_ARRAY. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/atomic.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/atomic.html deleted file mode 100644 index cd9622e..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/atomic.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -Atomics - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio's implementation can use std::atomic<> in preference - to boost::detail::atomic_count. -

-

- Support for the standard atomic integer template is automatically enabled - for g++ 4.5 and later, when the -std=c++0x - or -std=gnu++0x compiler options are used. It may be - disabled by defining ASIO_DISABLE_STD_ATOMIC, or explicitly - enabled for other compilers by defining ASIO_HAS_STD_ATOMIC. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/chrono.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/chrono.html deleted file mode 100644 index 5354f36..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/chrono.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -Chrono - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-Chrono -

-

- Asio provides timers based on the std::chrono facilities via - the basic_waitable_timer - class template. The typedefs system_timer, - steady_timer and high_resolution_timer - utilise the standard clocks system_clock, steady_clock - and high_resolution_clock respectively. -

-

- Support for the std::chrono facilities is automatically enabled - for g++ 4.6 and later, when the -std=c++0x - or -std=gnu++0x compiler options are used. (Note that, - for g++, the draft-standard monotonic_clock - is used in place of steady_clock.) Support may be disabled - by defining ASIO_DISABLE_STD_CHRONO, or explicitly enabled - for other compilers by defining ASIO_HAS_STD_CHRONO. -

-

- When standard chrono is unavailable, Asio will otherwise use - the Boost.Chrono library. The basic_waitable_timer - class template may be used with either. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/futures.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/futures.html deleted file mode 100644 index 7b57fe1..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/futures.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -Futures - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The asio::use_future special value provides first-class support - for returning a C++11 std::future from an asynchronous operation's - initiating function. -

-

- To use asio::use_future, pass it to an asynchronous operation - instead of a normal completion handler. For example: -

-
std::future<std::size_t> length =
-  my_socket.async_read_some(my_buffer, asio::use_future);
-
-

- Where a handler signature has the form: -

-
void handler(asio::error_code ec, result_type result);
-
-

- the initiating function returns a std::future templated on - result_type. In the above example, this is std::size_t. - If the asynchronous operation fails, the error_code is converted - into a system_error exception and passed back to the caller - through the future. -

-

- Where a handler signature has the form: -

-
void handler(asio::error_code ec);
-
-

- the initiating function returns std::future<void>. As - above, an error is passed back in the future as a system_error - exception. -

-

- use_future, use_future_t, - Futures example (C++11). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_handlers.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_handlers.html deleted file mode 100644 index 8795063..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_handlers.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -Movable Handlers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- As an optimisation, user-defined completion handlers may provide move constructors, - and Asio's implementation will use a handler's move constructor in preference - to its copy constructor. In certain circumstances, Asio may be able to - eliminate all calls to a handler's copy constructor. However, handler types - are still required to be copy constructible. -

-

- When move support is enabled, asynchronous that are documented as follows: -

-
template <typename Handler>
-void async_XYZ(..., Handler handler);
-
-

- are actually declared as: -

-
template <typename Handler>
-void async_XYZ(..., Handler&& handler);
-
-

- The handler argument is perfectly forwarded and the move construction occurs - within the body of async_XYZ(). This ensures that all other - function arguments are evaluated prior to the move. This is critical when - the other arguments to async_XYZ() are members of the handler. - For example: -

-
struct my_operation
-{
-  shared_ptr<tcp::socket> socket;
-  shared_ptr<vector<char>> buffer;
-  ...
-  void operator(error_code ec, size_t length)
-  {
-    ...
-    socket->async_read_some(asio::buffer(*buffer), std::move(*this));
-    ...
-  }
-};
-
-

- Move support is automatically enabled for g++ 4.5 and - later, when the -std=c++0x or -std=gnu++0x - compiler options are used. It may be disabled by defining ASIO_DISABLE_MOVE, - or explicitly enabled for other compilers by defining ASIO_HAS_MOVE. - Note that these macros also affect the availability of movable - I/O objects. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_objects.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_objects.html deleted file mode 100644 index 6449701..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/move_objects.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -Movable I/O Objects - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- When move support is available (via rvalue references), Asio allows move - construction and assignment of sockets, serial ports, POSIX descriptors - and Windows handles. -

-

- Move support allows you to write code like: -

-
tcp::socket make_socket(io_context& i)
-{
-  tcp::socket s(i);
-  ...
-  std::move(s);
-}
-
-

- or: -

-
class connection : public enable_shared_from_this<connection>
-{
-private:
-  tcp::socket socket_;
-  ...
-public:
-  connection(tcp::socket&& s) : socket_(std::move(s)) {}
-  ...
-};
-
-...
-
-class server
-{
-private:
-  tcp::acceptor acceptor_;
-  ...
-  void handle_accept(error_code ec, tcp::socket socket)
-  {
-    if (!ec)
-      std::make_shared<connection>(std::move(socket))->go();
-    acceptor_.async_accept(...);
-  }
-  ...
-};
-
-

- as well as: -

-
std::vector<tcp::socket> sockets;
-sockets.push_back(tcp::socket(...));
-
-

- A word of warning: There is nothing stopping you from moving these objects - while there are pending asynchronous operations, but it is unlikely to - be a good idea to do so. In particular, composed operations like async_read() store a reference - to the stream object. Moving during the composed operation means that the - composed operation may attempt to access a moved-from object. -

-

- Move support is automatically enabled for g++ 4.5 and - later, when the -std=c++0x or -std=gnu++0x - compiler options are used. It may be disabled by defining ASIO_DISABLE_MOVE, - or explicitly enabled for other compilers by defining ASIO_HAS_MOVE. - Note that these macros also affect the availability of movable - handlers. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/shared_ptr.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/shared_ptr.html deleted file mode 100644 index e6c408f..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/shared_ptr.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -Shared Pointers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio's implementation can use std::shared_ptr<> and - std::weak_ptr<> in preference to the Boost equivalents. -

-

- Support for the standard smart pointers is automatically enabled for g++ - 4.3 and later, when the -std=c++0x or -std=gnu++0x - compiler options are used, as well as for Microsoft Visual C++ 10. It may - be disabled by defining ASIO_DISABLE_STD_SHARED_PTR, or explicitly - enabled for other compilers by defining ASIO_HAS_STD_SHARED_PTR. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/system_error.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/system_error.html deleted file mode 100644 index dc95d9d..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/system_error.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -System Errors and Error Codes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- When available, Asio can use the std::error_code and std::system_error - classes for reporting errors. In this case, the names asio::error_code - and asio::system_error will be typedefs for these standard - classes. -

-

- System error support is automatically enabled for g++ - 4.6 and later, when the -std=c++0x or -std=gnu++0x - compiler options are used. It may be disabled by defining ASIO_DISABLE_STD_SYSTEM_ERROR, - or explicitly enabled for other compilers by defining ASIO_HAS_STD_SYSTEM_ERROR. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/cpp2011/variadic.html b/Sources/Vendor/asio/doc/asio/overview/cpp2011/variadic.html deleted file mode 100644 index dce1575..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/cpp2011/variadic.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -Variadic Templates - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- When supported by a compiler, Asio can use variadic templates to implement - the basic_socket_streambuf::connect() - and basic_socket_iostream::connect() - functions. -

-

- Support for variadic templates is automatically enabled for g++ - 4.3 and later, when the -std=c++0x or -std=gnu++0x - compiler options are used. It may be disabled by defining ASIO_DISABLE_VARIADIC_TEMPLATES, - or explicitly enabled for other compilers by defining ASIO_HAS_VARIADIC_TEMPLATES. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/implementation.html b/Sources/Vendor/asio/doc/asio/overview/implementation.html deleted file mode 100644 index 13299d6..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/implementation.html +++ /dev/null @@ -1,490 +0,0 @@ - - - -Platform-Specific Implementation Notes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This section lists platform-specific implementation details, such as the - default demultiplexing mechanism, the number of threads created internally, - and when threads are created. -

-
- - Linux - Kernel 2.4 -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Linux - Kernel 2.6 -
-

- Demultiplexing mechanism: -

-
  • - Uses epoll for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using epoll is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Solaris -
-

- Demultiplexing mechanism: -

-
  • - Uses /dev/poll for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using /dev/poll is performed in one - of the threads that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - QNX - Neutrino -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Mac - OS X -
-

- Demultiplexing mechanism: -

-
  • - Uses kqueue for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using kqueue is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - FreeBSD -
-

- Demultiplexing mechanism: -

-
  • - Uses kqueue for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using kqueue is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - AIX -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - HP-UX -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Tru64 -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. This means that the number - of file descriptors in the process cannot be permitted to exceed FD_SETSIZE. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - At most min(64,IOV_MAX) buffers may be transferred in a - single operation. -
-
- - Windows - 95, 98 and Me -
-

- Demultiplexing mechanism: -

-
  • - Uses select for demultiplexing. -
-

- Threads: -

-
    -
  • - Demultiplexing using select is performed in one of the threads - that calls io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
  • - For sockets, at most 16 buffers may be transferred in a single operation. -
-
- - Windows - NT, 2000, XP, 2003, Vista, 7 and 8 -
-

- Demultiplexing mechanism: -

-
    -
  • - Uses overlapped I/O and I/O completion ports for all asynchronous socket - operations except for asynchronous connect. -
  • -
  • - Uses select for emulating asynchronous connect. -
  • -
-

- Threads: -

-
    -
  • - Demultiplexing using I/O completion ports is performed in all threads - that call io_context::run(), io_context::run_one(), - io_context::poll() or io_context::poll_one(). -
  • -
  • - An additional thread per io_context is used to trigger timers. - This thread is created on construction of the first basic_deadline_timer - or basic_waitable_timer objects. -
  • -
  • - An additional thread per io_context is used for the select - demultiplexing. This thread is created on the first call to async_connect(). -
  • -
  • - An additional thread per io_context is used to emulate asynchronous - host resolution. This thread is created on the first call to either - ip::tcp::resolver::async_resolve() or ip::udp::resolver::async_resolve(). -
  • -
-

- Scatter-Gather: -

-
    -
  • - For sockets, at most 64 buffers may be transferred in a single operation. -
  • -
  • - For stream-oriented handles, only one buffer may be transferred in a - single operation. -
  • -
-
- - Windows - Runtime -
-

- Asio provides limited support for the Windows Runtime. It requires that the - language extensions be enabled. Due to the restricted facilities exposed - by the Windows Runtime API, the support comes with the following caveats: -

-
    -
  • - The core facilities such as the io_context, strand, - buffers, composed operations, timers, etc., should all work as normal. -
  • -
  • - For sockets, only client-side TCP is supported. -
  • -
  • - Explicit binding of a client-side TCP socket is not supported. -
  • -
  • - The cancel() function is not supported for sockets. Asynchronous - operations may only be cancelled by closing the socket. -
  • -
  • - Operations that use null_buffers are not supported. -
  • -
  • - Only tcp::no_delay and socket_base::keep_alive - options are supported. -
  • -
  • - Resolvers do not support service names, only numbers. I.e. you must use - "80" rather than "http". -
  • -
  • - Most resolver query flags have no effect. -
  • -
-

- Demultiplexing mechanism: -

-
  • - Uses the Windows::Networking::Sockets::StreamSocket class - to implement asynchronous TCP socket operations. -
-

- Threads: -

-
    -
  • - Event completions are delivered to the Windows thread pool and posted - to the io_context for the handler to be executed. -
  • -
  • - An additional thread per io_context is used to trigger timers. - This thread is created on construction of the first timer objects. -
  • -
-

- Scatter-Gather: -

-
  • - For sockets, at most one buffer may be transferred in a single operation. -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking.html b/Sources/Vendor/asio/doc/asio/overview/networking.html deleted file mode 100644 index 84472a6..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -Networking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking/bsd_sockets.html b/Sources/Vendor/asio/doc/asio/overview/networking/bsd_sockets.html deleted file mode 100644 index 9d9c41f..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking/bsd_sockets.html +++ /dev/null @@ -1,545 +0,0 @@ - - - -The BSD Socket API and Asio - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The Asio library includes a low-level socket interface based on the BSD - socket API, which is widely implemented and supported by extensive literature. - It is also used as the basis for networking APIs in other languages, like - Java. This low-level interface is designed to support the development of - efficient and scalable applications. For example, it permits programmers - to exert finer control over the number of system calls, avoid redundant - data copying, minimise the use of resources like threads, and so on. -

-

- Unsafe and error prone aspects of the BSD socket API not included. For - example, the use of int to represent all sockets lacks type - safety. The socket representation in Asio uses a distinct type for each - protocol, e.g. for TCP one would use ip::tcp::socket, and - for UDP one uses ip::udp::socket. -

-

- The following table shows the mapping between the BSD socket API and Asio: -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- BSD Socket API Elements -

-
-

- Equivalents in Asio -

-
-

- socket descriptor - int (POSIX) or SOCKET - (Windows) -

-
-

- For TCP: ip::tcp::socket, - ip::tcp::acceptor -

-

- For UDP: ip::udp::socket -

-

- basic_socket, - basic_stream_socket, - basic_datagram_socket, - basic_raw_socket -

-
-

- in_addr, in6_addr -

-
-

- ip::address, - ip::address_v4, - ip::address_v6 -

-
-

- sockaddr_in, sockaddr_in6 -

-
-

- For TCP: ip::tcp::endpoint -

-

- For UDP: ip::udp::endpoint -

-

- ip::basic_endpoint -

-
-

- accept() -

-
-

- For TCP: ip::tcp::acceptor::accept() -

-

- basic_socket_acceptor::accept() -

-
-

- bind() -

-
-

- For TCP: ip::tcp::acceptor::bind(), - ip::tcp::socket::bind() -

-

- For UDP: ip::udp::socket::bind() -

-

- basic_socket::bind() -

-
-

- close() -

-
-

- For TCP: ip::tcp::acceptor::close(), - ip::tcp::socket::close() -

-

- For UDP: ip::udp::socket::close() -

-

- basic_socket::close() -

-
-

- connect() -

-
-

- For TCP: ip::tcp::socket::connect() -

-

- For UDP: ip::udp::socket::connect() -

-

- basic_socket::connect() -

-
-

- getaddrinfo(), gethostbyaddr(), gethostbyname(), - getnameinfo(), getservbyname(), getservbyport() -

-
-

- For TCP: ip::tcp::resolver::resolve(), - ip::tcp::resolver::async_resolve() -

-

- For UDP: ip::udp::resolver::resolve(), - ip::udp::resolver::async_resolve() -

-

- ip::basic_resolver::resolve(), - ip::basic_resolver::async_resolve() -

-
-

- gethostname() -

-
-

- ip::host_name() -

-
-

- getpeername() -

-
-

- For TCP: ip::tcp::socket::remote_endpoint() -

-

- For UDP: ip::udp::socket::remote_endpoint() -

-

- basic_socket::remote_endpoint() -

-
-

- getsockname() -

-
-

- For TCP: ip::tcp::acceptor::local_endpoint(), - ip::tcp::socket::local_endpoint() -

-

- For UDP: ip::udp::socket::local_endpoint() -

-

- basic_socket::local_endpoint() -

-
-

- getsockopt() -

-
-

- For TCP: ip::tcp::acceptor::get_option(), - ip::tcp::socket::get_option() -

-

- For UDP: ip::udp::socket::get_option() -

-

- basic_socket::get_option() -

-
-

- inet_addr(), inet_aton(), inet_pton() -

-
-

- ip::address::from_string(), - ip::address_v4::from_string(), - ip_address_v6::from_string() -

-
-

- inet_ntoa(), inet_ntop() -

-
-

- ip::address::to_string(), - ip::address_v4::to_string(), - ip_address_v6::to_string() -

-
-

- ioctl() -

-
-

- For TCP: ip::tcp::socket::io_control() -

-

- For UDP: ip::udp::socket::io_control() -

-

- basic_socket::io_control() -

-
-

- listen() -

-
-

- For TCP: ip::tcp::acceptor::listen() -

-

- basic_socket_acceptor::listen() -

-
-

- poll(), select(), pselect() -

-
-

- io_context::run(), - io_context::run_one(), - io_context::poll(), - io_context::poll_one() -

-

- Note: in conjunction with asynchronous operations. -

-
-

- readv(), recv(), read() -

-
-

- For TCP: ip::tcp::socket::read_some(), - ip::tcp::socket::async_read_some(), - ip::tcp::socket::receive(), - ip::tcp::socket::async_receive() -

-

- For UDP: ip::udp::socket::receive(), - ip::udp::socket::async_receive() -

-

- basic_stream_socket::read_some(), - basic_stream_socket::async_read_some(), - basic_stream_socket::receive(), - basic_stream_socket::async_receive(), - basic_datagram_socket::receive(), - basic_datagram_socket::async_receive() -

-
-

- recvfrom() -

-
-

- For UDP: ip::udp::socket::receive_from(), - ip::udp::socket::async_receive_from() -

-

- basic_datagram_socket::receive_from(), - basic_datagram_socket::async_receive_from() -

-
-

- send(), write(), writev() -

-
-

- For TCP: ip::tcp::socket::write_some(), - ip::tcp::socket::async_write_some(), - ip::tcp::socket::send(), - ip::tcp::socket::async_send() -

-

- For UDP: ip::udp::socket::send(), - ip::udp::socket::async_send() -

-

- basic_stream_socket::write_some(), - basic_stream_socket::async_write_some(), - basic_stream_socket::send(), - basic_stream_socket::async_send(), - basic_datagram_socket::send(), - basic_datagram_socket::async_send() -

-
-

- sendto() -

-
-

- For UDP: ip::udp::socket::send_to(), - ip::udp::socket::async_send_to() -

-

- basic_datagram_socket::send_to(), - basic_datagram_socket::async_send_to() -

-
-

- setsockopt() -

-
-

- For TCP: ip::tcp::acceptor::set_option(), - ip::tcp::socket::set_option() -

-

- For UDP: ip::udp::socket::set_option() -

-

- basic_socket::set_option() -

-
-

- shutdown() -

-
-

- For TCP: ip::tcp::socket::shutdown() -

-

- For UDP: ip::udp::socket::shutdown() -

-

- basic_socket::shutdown() -

-
-

- sockatmark() -

-
-

- For TCP: ip::tcp::socket::at_mark() -

-

- basic_socket::at_mark() -

-
-

- socket() -

-
-

- For TCP: ip::tcp::acceptor::open(), - ip::tcp::socket::open() -

-

- For UDP: ip::udp::socket::open() -

-

- basic_socket::open() -

-
-

- socketpair() -

-
-

- local::connect_pair() -

-

- Note: POSIX operating systems only. -

-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking/iostreams.html b/Sources/Vendor/asio/doc/asio/overview/networking/iostreams.html deleted file mode 100644 index a3cb508..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking/iostreams.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -Socket Iostreams - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio includes classes that implement iostreams on top of sockets. These - hide away the complexities associated with endpoint resolution, protocol - independence, etc. To create a connection one might simply write: -

-
ip::tcp::iostream stream("www.boost.org", "http");
-if (!stream)
-{
-  // Can't connect.
-}
-
-

- The iostream class can also be used in conjunction with an acceptor to - create simple servers. For example: -

-
io_context ioc;
-
-ip::tcp::endpoint endpoint(tcp::v4(), 80);
-ip::tcp::acceptor acceptor(ios, endpoint);
-
-for (;;)
-{
-  ip::tcp::iostream stream;
-  acceptor.accept(stream.socket());
-  ...
-}
-
-

- Timeouts may be set by calling expires_at() or expires_from_now() - to establish a deadline. Any socket operations that occur past the deadline - will put the iostream into a "bad" state. -

-

- For example, a simple client program like this: -

-
ip::tcp::iostream stream;
-stream.expires_from_now(boost::posix_time::seconds(60));
-stream.connect("www.boost.org", "http");
-stream << "GET /LICENSE_1_0.txt HTTP/1.0\r\n";
-stream << "Host: www.boost.org\r\n";
-stream << "Accept: */*\r\n";
-stream << "Connection: close\r\n\r\n";
-stream.flush();
-std::cout << stream.rdbuf();
-
-

- will fail if all the socket operations combined take longer than 60 seconds. -

-

- If an error does occur, the iostream's error() member function - may be used to retrieve the error code from the most recent system call: -

-
if (!stream)
-{
-  std::cout << "Error: " << stream.error().message() << "\n";
-}
-
-
- - See - Also -
-

- ip::tcp::iostream, - basic_socket_iostream, - iostreams examples. -

-
- - Notes -
-

- These iostream templates only support char, not wchar_t, - and do not perform any code conversion. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking/other_protocols.html b/Sources/Vendor/asio/doc/asio/overview/networking/other_protocols.html deleted file mode 100644 index b1ec7fe..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking/other_protocols.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -Support for Other Protocols - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Support for other socket protocols (such as Bluetooth or IRCOMM sockets) - can be added by implementing the protocol - type requirements. However, in many cases these protocols may also - be used with Asio's generic protocol support. For this, Asio provides the - following four classes: -

- -

- These classes implement the protocol - type requirements, but allow the user to specify the address family - (e.g. AF_INET) and protocol type (e.g. IPPROTO_TCP) - at runtime. For example: -

-
asio::generic::stream_protocol::socket my_socket(my_io_context);
-my_socket.open(asio::generic::stream_protocol(AF_INET, IPPROTO_TCP));
-...
-
-

- An endpoint class template, asio::generic::basic_endpoint, - is included to support these protocol classes. This endpoint can hold any - other endpoint type, provided its native representation fits into a sockaddr_storage - object. This class will also convert from other types that implement the - endpoint type requirements: -

-
asio::ip::tcp::endpoint my_endpoint1 = ...;
-asio::generic::stream_protocol::endpoint my_endpoint2(my_endpoint1);
-
-

- The conversion is implicit, so as to support the following use cases: -

-
asio::generic::stream_protocol::socket my_socket(my_io_context);
-asio::ip::tcp::endpoint my_endpoint = ...;
-my_socket.connect(my_endpoint);
-
-
- - C++11 - Move Construction -
-

- When using C++11, it is possible to perform move construction from a socket - (or acceptor) object to convert to the more generic protocol's socket (or - acceptor) type. If the protocol conversion is valid: -

-
Protocol1 p1 = ...;
-Protocol2 p2(p1);
-
-

- then the corresponding socket conversion is allowed: -

-
Protocol1::socket my_socket1(my_io_context);
-...
-Protocol2::socket my_socket2(std::move(my_socket1));
-
-

- For example, one possible conversion is from a TCP socket to a generic - stream-oriented socket: -

-
asio::ip::tcp::socket my_socket1(my_io_context);
-...
-asio::generic::stream_protocol::socket my_socket2(std::move(my_socket1));
-
-

- These conversions are also available for move-assignment. -

-

- These conversions are not limited to the above generic protocol classes. - User-defined protocols may take advantage of this feature by similarly - ensuring the conversion from Protocol1 to Protocol2 - is valid, as above. -

-
- - Accepting - Generic Sockets -
-

- As a convenience, a socket acceptor's accept() and async_accept() - functions can directly accept into a different protocol's socket type, - provided the corresponding protocol conversion is valid. For example, the - following is supported because the protocol asio::ip::tcp - is convertible to asio::generic::stream_protocol: -

-
asio::ip::tcp::acceptor my_acceptor(my_io_context);
-...
-asio::generic::stream_protocol::socket my_socket(my_io_context);
-my_acceptor.accept(my_socket);
-
-
- - See - Also -
-

- generic::datagram_protocol, - generic::raw_protocol, - generic::seq_packet_protocol, - generic::stream_protocol, - protocol type requirements. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/networking/protocols.html b/Sources/Vendor/asio/doc/asio/overview/networking/protocols.html deleted file mode 100644 index 7f9f06a..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/networking/protocols.html +++ /dev/null @@ -1,203 +0,0 @@ - - - -TCP, UDP and ICMP - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio provides off-the-shelf support for the internet protocols TCP, UDP - and ICMP. -

-
- - TCP - Clients -
-

- Hostname resolution is performed using a resolver, where host and service - names are looked up and converted into one or more endpoints: -

-
ip::tcp::resolver resolver(my_io_context);
-ip::tcp::resolver::query query("www.boost.org", "http");
-ip::tcp::resolver::iterator iter = resolver.resolve(query);
-ip::tcp::resolver::iterator end; // End marker.
-while (iter != end)
-{
-  ip::tcp::endpoint endpoint = *iter++;
-  std::cout << endpoint << std::endl;
-}
-
-

- The list of endpoints obtained above could contain both IPv4 and IPv6 endpoints, - so a program should try each of them until it finds one that works. This - keeps the client program independent of a specific IP version. -

-

- To simplify the development of protocol-independent programs, TCP clients - may establish connections using the free functions connect() - and async_connect(). - These operations try each endpoint in a list until the socket is successfully - connected. For example, a single call: -

-
ip::tcp::socket socket(my_io_context);
-asio::connect(socket, resolver.resolve(query));
-
-

- will synchronously try all endpoints until one is successfully connected. - Similarly, an asynchronous connect may be performed by writing: -

-
asio::async_connect(socket_, iter,
-    boost::bind(&client::handle_connect, this,
-      asio::placeholders::error));
-
-// ...
-
-void handle_connect(const error_code& error)
-{
-  if (!error)
-  {
-    // Start read or write operations.
-  }
-  else
-  {
-    // Handle error.
-  }
-}
-
-

- When a specific endpoint is available, a socket can be created and connected: -

-
ip::tcp::socket socket(my_io_context);
-socket.connect(endpoint);
-
-

- Data may be read from or written to a connected TCP socket using the receive(), - async_receive(), - send() or - async_send() - member functions. However, as these could result in short - writes or reads, an application will typically use the following - operations instead: read(), - async_read(), write() - and async_write(). -

-
- - TCP - Servers -
-

- A program uses an acceptor to accept incoming TCP connections: -

-
ip::tcp::acceptor acceptor(my_io_context, my_endpoint);
-...
-ip::tcp::socket socket(my_io_context);
-acceptor.accept(socket);
-
-

- After a socket has been successfully accepted, it may be read from or written - to as illustrated for TCP clients above. -

-
- - UDP -
-

- UDP hostname resolution is also performed using a resolver: -

-
ip::udp::resolver resolver(my_io_context);
-ip::udp::resolver::query query("localhost", "daytime");
-ip::udp::resolver::iterator iter = resolver.resolve(query);
-...
-
-

- A UDP socket is typically bound to a local endpoint. The following code - will create an IP version 4 UDP socket and bind it to the "any" - address on port 12345: -

-
ip::udp::endpoint endpoint(ip::udp::v4(), 12345);
-ip::udp::socket socket(my_io_context, endpoint);
-
-

- Data may be read from or written to an unconnected UDP socket using the - receive_from(), - async_receive_from(), - send_to() - or async_send_to() - member functions. For a connected UDP socket, use the receive(), - async_receive(), - send() - or async_send() - member functions. -

-
- - ICMP -
-

- As with TCP and UDP, ICMP hostname resolution is performed using a resolver: -

-
ip::icmp::resolver resolver(my_io_context);
-ip::icmp::resolver::query query("localhost", "");
-ip::icmp::resolver::iterator iter = resolver.resolve(query);
-...
-
-

- An ICMP socket may be bound to a local endpoint. The following code will - create an IP version 6 ICMP socket and bind it to the "any" address: -

-
ip::icmp::endpoint endpoint(ip::icmp::v6(), 0);
-ip::icmp::socket socket(my_io_context, endpoint);
-
-

- The port number is not used for ICMP. -

-

- Data may be read from or written to an unconnected ICMP socket using the - receive_from(), - async_receive_from(), - send_to() - or async_send_to() - member functions. -

-
- - See - Also -
-

- ip::tcp, ip::udp, - ip::icmp, daytime - protocol tutorials, ICMP - ping example. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/posix.html b/Sources/Vendor/asio/doc/asio/overview/posix.html deleted file mode 100644 index 361269b..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/posix.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -POSIX-Specific Functionality - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/posix/fork.html b/Sources/Vendor/asio/doc/asio/overview/posix/fork.html deleted file mode 100644 index 28f89ab..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/posix/fork.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-Fork -

-

- Asio supports programs that utilise the fork() system call. - Provided the program calls io_context.notify_fork() at the - appropriate times, Asio will recreate any internal file descriptors (such - as the "self-pipe trick" descriptor used for waking up a reactor). - The notification is usually performed as follows: -

-
io_context_.notify_fork(asio::io_context::fork_prepare);
-if (fork() == 0)
-{
-  io_context_.notify_fork(asio::io_context::fork_child);
-  ...
-}
-else
-{
-  io_context_.notify_fork(asio::io_context::fork_parent);
-  ...
-}
-
-

- User-defined services can also be made fork-aware by overriding the io_context::service::notify_fork() - virtual function. -

-

- Note that any file descriptors accessible via Asio's public API (e.g. the - descriptors underlying basic_socket<>, posix::stream_descriptor, - etc.) are not altered during a fork. It is the program's responsibility - to manage these as required. -

-
- - See - Also -
-

- io_context::notify_fork(), - io_context::fork_event, - io_context::service::notify_fork(), - Fork examples. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/posix/local.html b/Sources/Vendor/asio/doc/asio/overview/posix/local.html deleted file mode 100644 index b825e5d..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/posix/local.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -UNIX Domain Sockets - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio provides basic support UNIX domain sockets (also known as local sockets). - The simplest use involves creating a pair of connected sockets. The following - code: -

-
local::stream_protocol::socket socket1(my_io_context);
-local::stream_protocol::socket socket2(my_io_context);
-local::connect_pair(socket1, socket2);
-
-

- will create a pair of stream-oriented sockets. To do the same for datagram-oriented - sockets, use: -

-
local::datagram_protocol::socket socket1(my_io_context);
-local::datagram_protocol::socket socket2(my_io_context);
-local::connect_pair(socket1, socket2);
-
-

- A UNIX domain socket server may be created by binding an acceptor to an - endpoint, in much the same way as one does for a TCP server: -

-
::unlink("/tmp/foobar"); // Remove previous binding.
-local::stream_protocol::endpoint ep("/tmp/foobar");
-local::stream_protocol::acceptor acceptor(my_io_context, ep);
-local::stream_protocol::socket socket(my_io_context);
-acceptor.accept(socket);
-
-

- A client that connects to this server might look like: -

-
local::stream_protocol::endpoint ep("/tmp/foobar");
-local::stream_protocol::socket socket(my_io_context);
-socket.connect(ep);
-
-

- Transmission of file descriptors or credentials across UNIX domain sockets - is not directly supported within Asio, but may be achieved by accessing - the socket's underlying descriptor using the native_handle() - member function. -

-
- - See - Also -
-

- local::connect_pair, - local::datagram_protocol, - local::datagram_protocol::endpoint, - local::datagram_protocol::socket, - local::stream_protocol, - local::stream_protocol::acceptor, - local::stream_protocol::endpoint, - local::stream_protocol::iostream, - local::stream_protocol::socket, - UNIX domain - sockets examples. -

-
- - Notes -
-

- UNIX domain sockets are only available at compile time if supported by - the target operating system. A program may test for the macro ASIO_HAS_LOCAL_SOCKETS - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/posix/stream_descriptor.html b/Sources/Vendor/asio/doc/asio/overview/posix/stream_descriptor.html deleted file mode 100644 index cc89054..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/posix/stream_descriptor.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -Stream-Oriented File Descriptors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio includes classes added to permit synchronous and asynchronous read - and write operations to be performed on POSIX file descriptors, such as - pipes, standard input and output, and various devices. -

-

- These classes also provide limited support for regular files. This support - assumes that the underlying read and write operations provided by the operating - system never fail with EAGAIN or EWOULDBLOCK. - (This assumption normally holds for buffered file I/O.) Synchronous and - asynchronous read and write operations on file descriptors will succeed - but the I/O will always be performed immediately. Wait operations, and - operations involving asio::null_buffers, are not portably - supported. -

-

- For example, to perform read and write operations on standard input and - output, the following objects may be created: -

-
posix::stream_descriptor in(my_io_context, ::dup(STDIN_FILENO));
-posix::stream_descriptor out(my_io_context, ::dup(STDOUT_FILENO));
-
-

- These are then used as synchronous or asynchronous read and write streams. - This means the objects can be used with any of the read(), - async_read(), write(), - async_write(), read_until() or async_read_until() - free functions. -

-
- - See - Also -
-

- posix::stream_descriptor, - Chat example (C++03), - Chat example (C++11). -

-
- - Notes -
-

- POSIX stream descriptors are only available at compile time if supported - by the target operating system. A program may test for the macro ASIO_HAS_POSIX_STREAM_DESCRIPTOR - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/rationale.html b/Sources/Vendor/asio/doc/asio/overview/rationale.html deleted file mode 100644 index 23d7416..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/rationale.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -Rationale - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Most programs interact with the outside world in some way, whether it be - via a file, a network, a serial cable, or the console. Sometimes, as is the - case with networking, individual I/O operations can take a long time to complete. - This poses particular challenges to application development. -

-

- Asio provides the tools to manage these long running operations, without - requiring programs to use concurrency models based on threads and explicit - locking. -

-

- The Asio library is intended for programmers using C++ for systems programming, - where access to operating system functionality such as networking is often - required. In particular, Asio addresses the following goals: -

-
    -
  • - Portability. The library should support - a range of commonly used operating systems, and provide consistent behaviour - across these operating systems. -
  • -
  • - Scalability. The library should facilitate - the development of network applications that scale to thousands of concurrent - connections. The library implementation for each operating system should - use the mechanism that best enables this scalability. -
  • -
  • - Efficiency. The library should support - techniques such as scatter-gather I/O, and allow programs to minimise - data copying. -
  • -
  • - Model concepts from established APIs, such as BSD - sockets. The BSD socket API is widely implemented and understood, - and is covered in much literature. Other programming languages often - use a similar interface for networking APIs. As far as is reasonable, - Asio should leverage existing practice. -
  • -
  • - Ease of use. The library should provide - a lower entry barrier for new users by taking a toolkit, rather than - framework, approach. That is, it should try to minimise the up-front - investment in time to just learning a few basic rules and guidelines. - After that, a library user should only need to understand the specific - functions that are being used. -
  • -
  • - Basis for further abstraction. The library - should permit the development of other libraries that provide higher - levels of abstraction. For example, implementations of commonly used - protocols such as HTTP. -
  • -
-

- Although Asio started life focused primarily on networking, its concepts - of asynchronous I/O have been extended to include other operating system - resources such as serial ports, file descriptors, and so on. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/serial_ports.html b/Sources/Vendor/asio/doc/asio/overview/serial_ports.html deleted file mode 100644 index 4a864f9..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/serial_ports.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -Serial Ports - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio includes classes for creating and manipulating serial ports in a portable - manner. For example, a serial port may be opened using: -

-
serial_port port(my_io_context, name);
-
-

- where name is something like "COM1" on Windows, and - "/dev/ttyS0" on POSIX platforms. -

-

- Once opened, the serial port may be used as a stream. - This means the objects can be used with any of the read(), - async_read(), write(), - async_write(), read_until() - or async_read_until() - free functions. -

-

- The serial port implementation also includes option classes for configuring - the port's baud rate, flow control type, parity, stop bits and character - size. -

-
- - See - Also -
-

- serial_port, serial_port_base, - serial_port_base::baud_rate, - serial_port_base::flow_control, - serial_port_base::parity, - serial_port_base::stop_bits, - serial_port_base::character_size. -

-
- - Notes -
-

- Serial ports are available on all POSIX platforms. For Windows, serial ports - are only available at compile time when the I/O completion port backend is - used (which is the default). A program may test for the macro ASIO_HAS_SERIAL_PORT - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/signals.html b/Sources/Vendor/asio/doc/asio/overview/signals.html deleted file mode 100644 index a0d0161..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/signals.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -Signal Handling - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio supports signal handling using a class called signal_set. - Programs may add one or more signals to the set, and then perform an async_wait() - operation. The specified handler will be called when one of the signals occurs. - The same signal number may be registered with multiple signal_set - objects, however the signal number must be used only with Asio. -

-
void handler(
-    const asio::error_code& error,
-    int signal_number)
-{
-  if (!error)
-  {
-    // A signal occurred.
-  }
-}
-
-...
-
-// Construct a signal set registered for process termination.
-asio::signal_set signals(io_context, SIGINT, SIGTERM);
-
-// Start an asynchronous wait for one of the signals to occur.
-signals.async_wait(handler);
-
-

- Signal handling also works on Windows, as the Microsoft Visual C++ runtime - library maps console events like Ctrl+C to the equivalent signal. -

-
- - See - Also -
-

- signal_set, HTTP - server example (C++03), HTTP - server example (C++11). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/ssl.html b/Sources/Vendor/asio/doc/asio/overview/ssl.html deleted file mode 100644 index 1547375..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/ssl.html +++ /dev/null @@ -1,188 +0,0 @@ - - - -SSL - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-SSL -

-

- Asio contains classes and class templates for basic SSL support. These classes - allow encrypted communication to be layered on top of an existing stream, - such as a TCP socket. -

-

- Before creating an encrypted stream, an application must construct an SSL - context object. This object is used to set SSL options such as verification - mode, certificate files, and so on. As an illustration, client-side initialisation - may look something like: -

-
ssl::context ctx(ssl::context::sslv23);
-ctx.set_verify_mode(ssl::verify_peer);
-ctx.load_verify_file("ca.pem");
-
-

- To use SSL with a TCP socket, one may write: -

-
ssl::stream<ip::tcp::socket> ssl_sock(my_io_context, ctx);
-
-

- To perform socket-specific operations, such as establishing an outbound connection - or accepting an incoming one, the underlying socket must first be obtained - using the ssl::stream template's lowest_layer() - member function: -

-
ip::tcp::socket::lowest_layer_type& sock = ssl_sock.lowest_layer();
-sock.connect(my_endpoint);
-
-

- In some use cases the underlying stream object will need to have a longer - lifetime than the SSL stream, in which case the template parameter should - be a reference to the stream type: -

-
ip::tcp::socket sock(my_io_context);
-ssl::stream<ip::tcp::socket&> ssl_sock(sock, ctx);
-
-

- SSL handshaking must be performed prior to transmitting or receiving data - over an encrypted connection. This is accomplished using the ssl::stream - template's handshake() - or async_handshake() - member functions. -

-

- Once connected, SSL stream objects are used as synchronous or asynchronous - read and write streams. This means the objects can be used with any of the - read(), async_read(), - write(), async_write(), - read_until() or async_read_until() - free functions. -

-
- - Certificate - Verification -
-

- Asio provides various methods for configuring the way SSL certificates are - verified: -

- -

- To simplify use cases where certificates are verified according to the rules - in RFC 2818 (certificate verification for HTTPS), Asio provides a reusable - verification callback as a function object: -

- -

- The following example shows verification of a remote host's certificate according - to the rules used by HTTPS: -

-
using asio::ip::tcp;
-namespace ssl = asio::ssl;
-typedef ssl::stream<tcp::socket> ssl_socket;
-
-// Create a context that uses the default paths for
-// finding CA certificates.
-ssl::context ctx(ssl::context::sslv23);
-ctx.set_default_verify_paths();
-
-// Open a socket and connect it to the remote host.
-asio::io_context io_context;
-ssl_socket sock(io_context, ctx);
-tcp::resolver resolver(io_context);
-tcp::resolver::query query("host.name", "https");
-asio::connect(sock.lowest_layer(), resolver.resolve(query));
-sock.lowest_layer().set_option(tcp::no_delay(true));
-
-// Perform SSL handshake and verify the remote host's
-// certificate.
-sock.set_verify_mode(ssl::verify_peer);
-sock.set_verify_callback(ssl::rfc2818_verification("host.name"));
-sock.handshake(ssl_socket::client);
-
-// ... read and write as normal ...
-
-
- - SSL - and Threads -
-

- SSL stream objects perform no locking of their own. Therefore, it is essential - that all asynchronous SSL operations are performed in an implicit or explicit - strand. Note that this - means that no synchronisation is required (and so no locking overhead is - incurred) in single threaded programs. -

-
- - See - Also -
-

- ssl::context, ssl::rfc2818_verification, - ssl::stream, SSL - example (C++03), SSL - example (C++11). -

-
- - Notes -
-

- OpenSSL is required to make use - of Asio's SSL support. When an application needs to use OpenSSL functionality - that is not wrapped by Asio, the underlying OpenSSL types may be obtained - by calling ssl::context::native_handle() - or ssl::stream::native_handle(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/timers.html b/Sources/Vendor/asio/doc/asio/overview/timers.html deleted file mode 100644 index 01354cf..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/timers.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -Timers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-Timers -

-

- Long running I/O operations will often have a deadline by which they must - have completed. These deadlines may be expressed as absolute times, but are - often calculated relative to the current time. -

-

- As a simple example, to perform a synchronous wait operation on a timer using - a relative time one may write: -

-
io_context i;
-...
-deadline_timer t(i);
-t.expires_from_now(boost::posix_time::seconds(5));
-t.wait();
-
-

- More commonly, a program will perform an asynchronous wait operation on a - timer: -

-
void handler(asio::error_code ec) { ... }
-...
-io_context i;
-...
-deadline_timer t(i);
-t.expires_from_now(boost::posix_time::milliseconds(400));
-t.async_wait(handler);
-...
-i.run();
-
-

- The deadline associated with a timer may also be obtained as a relative time: -

-
boost::posix_time::time_duration time_until_expiry
-  = t.expires_from_now();
-
-

- or as an absolute time to allow composition of timers: -

-
deadline_timer t2(i);
-t2.expires_at(t.expires_at() + boost::posix_time::seconds(30));
-
-
- - See - Also -
-

- basic_deadline_timer, - deadline_timer, timer tutorials. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/windows.html b/Sources/Vendor/asio/doc/asio/overview/windows.html deleted file mode 100644 index 867d906..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/windows.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -Windows-Specific Functionality - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
- - - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/windows/object_handle.html b/Sources/Vendor/asio/doc/asio/overview/windows/object_handle.html deleted file mode 100644 index da8cffb..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/windows/object_handle.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -Object HANDLEs - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio provides Windows-specific classes that permit asynchronous wait operations - to be performed on HANDLEs to kernel objects of the following types: -

-
    -
  • - Change notification -
  • -
  • - Console input -
  • -
  • - Event -
  • -
  • - Memory resource notification -
  • -
  • - Process -
  • -
  • - Semaphore -
  • -
  • - Thread -
  • -
  • - Waitable timer -
  • -
-

- For example, to perform asynchronous operations on an event, the following - object may be created: -

-
HANDLE handle = ::CreateEvent(...);
-windows::object_handle file(my_io_context, handle);
-
-

- The wait() and async_wait() member functions - may then be used to wait until the kernel object is signalled. -

-
- - See - Also -
-

- windows::object_handle. -

-
- - Notes -
-

- Windows object HANDLEs are only available at compile time - when targeting Windows. Programs may test for the macro ASIO_HAS_WINDOWS_OBJECT_HANDLE - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/windows/random_access_handle.html b/Sources/Vendor/asio/doc/asio/overview/windows/random_access_handle.html deleted file mode 100644 index fb1d48c..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/windows/random_access_handle.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -Random-Access HANDLEs - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio provides Windows-specific classes that permit asynchronous read and - write operations to be performed on HANDLEs that refer to regular files. -

-

- For example, to perform asynchronous operations on a file the following - object may be created: -

-
HANDLE handle = ::CreateFile(...);
-windows::random_access_handle file(my_io_context, handle);
-
-

- Data may be read from or written to the handle using one of the read_some_at(), - async_read_some_at(), write_some_at() or async_write_some_at() - member functions. However, like the equivalent functions (read_some(), - etc.) on streams, these functions are only required to transfer one or - more bytes in a single operation. Therefore free functions called read_at(), async_read_at(), - write_at() and async_write_at() - have been created to repeatedly call the corresponding *_some_at() function until all data has - been transferred. -

-
- - See Also -
-

- windows::random_access_handle. -

-
- - Notes -
-

- Windows random-access HANDLEs are only available at compile - time when targeting Windows and only when the I/O completion port backend - is used (which is the default). A program may test for the macro ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/overview/windows/stream_handle.html b/Sources/Vendor/asio/doc/asio/overview/windows/stream_handle.html deleted file mode 100644 index dbfb523..0000000 --- a/Sources/Vendor/asio/doc/asio/overview/windows/stream_handle.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -Stream-Oriented HANDLEs - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asio contains classes to allow asynchronous read and write operations to - be performed on Windows HANDLEs, such as named pipes. -

-

- For example, to perform asynchronous operations on a named pipe, the following - object may be created: -

-
HANDLE handle = ::CreateFile(...);
-windows::stream_handle pipe(my_io_context, handle);
-
-

- These are then used as synchronous or asynchronous read and write streams. - This means the objects can be used with any of the read(), - async_read(), write(), - async_write(), read_until() or async_read_until() - free functions. -

-

- The kernel object referred to by the HANDLE must support use - with I/O completion ports (which means that named pipes are supported, - but anonymous pipes and console streams are not). -

-
- - See - Also -
-

- windows::stream_handle. -

-
- - Notes -
-

- Windows stream HANDLEs are only available at compile time - when targeting Windows and only when the I/O completion port backend is - used (which is the default). A program may test for the macro ASIO_HAS_WINDOWS_STREAM_HANDLE - to determine whether they are supported. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference.html b/Sources/Vendor/asio/doc/asio/reference.html deleted file mode 100644 index 6a2b909..0000000 --- a/Sources/Vendor/asio/doc/asio/reference.html +++ /dev/null @@ -1,591 +0,0 @@ - - - -Reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- ------ - - - - - - - -
-

-Core

-
-

-Classes

- - - - - - - - - - - - - - - - - - - - - -
coroutine
error_code
execution_context
execution_context::id
execution_context::service
executor
executor_arg_t
invalid_service_owner
io_context
io_context::executor_type
io_context::service
io_context::strand
-io_context::work (deprecated)
service_already_exists
system_error
system_executor
thread
thread_pool
thread_pool::executor_type
yield_context
-
-

-Free Functions

- - - - - - - - - - - - - - - - -
add_service
asio_handler_allocate
asio_handler_deallocate
asio_handler_invoke
asio_handler_is_continuation
bind_executor
dispatch
defer
get_associated_allocator
get_associated_executor
has_service
make_work_guard
post
spawn
use_service
-
-

-Class Templates

- - - - - - - - -
async_completion
basic_io_object
basic_yield_context
executor_binder
executor_work_guard
strand
use_future_t
-

-Special Values

- - - -
executor_arg
use_future
-

-Boost.Bind Placeholders

- - - - - - - -
placeholders::bytes_transferred
placeholders::endpoint
placeholders::error
placeholders::iterator
placeholders::results
placeholders::signal_number
-
-

-Error Codes

- - - - - -
error::basic_errors
error::netdb_errors
error::addrinfo_errors
error::misc_errors
-

-Type Traits

- - - - - - - -
associated_allocator
associated_executor
async_result
-handler_type (deprecated)
is_executor
uses_executor
-

-Type Requirements

- - - - - - - -
Asynchronous operations
CompletionHandler
ExecutionContext
Executor
Handler
Service
-
- ------ - - - - - - - -
-

-Buffers and Buffer-Oriented Operations

-
-

-Classes

- - - - - - - -
const_buffer
mutable_buffer
-const_buffers_1 (deprecated)
-mutable_buffers_1 (deprecated)
-null_buffers (deprecated)
streambuf
-

-Class Templates

- - - - - - - - -
basic_streambuf
buffered_read_stream
buffered_stream
buffered_write_stream
buffers_iterator
dynamic_string_buffer
dynamic_vector_buffer
-
-

-Free Functions

- - - - - - - - - - - - - - - - - - - - - -
async_read
async_read_at
async_read_until
async_write
async_write_at
buffer
-buffer_cast (deprecated)
buffer_copy
buffer_size
buffers_begin
buffers_end
dynamic_buffer
read
read_at
read_until
transfer_all
transfer_at_least
transfer_exactly
write
write_at
-
-

-Type Traits

- - - - - - -
is_const_buffer_sequence
is_match_condition
is_mutable_buffer_sequence
is_read_buffered
is_write_buffered
-
-

-Type Requirements

- - - - - - - - - - - - - - - - -
Read and write operations
AsyncRandomAccessReadDevice
AsyncRandomAccessWriteDevice
AsyncReadStream
AsyncWriteStream
CompletionCondition
ConstBufferSequence
DynamicBuffer
MutableBufferSequence
ReadHandler
SyncRandomAccessReadDevice
SyncRandomAccessWriteDevice
SyncReadStream
SyncWriteStream
WriteHandler
-
- ------ - - - - - - - -
-

-Networking

-
-

-Classes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
generic::datagram_protocol
generic::datagram_protocol::endpoint
generic::datagram_protocol::socket
generic::raw_protocol
generic::raw_protocol::endpoint
generic::raw_protocol::socket
generic::seq_packet_protocol
generic::seq_packet_protocol::endpoint
generic::seq_packet_protocol::socket
generic::stream_protocol
generic::stream_protocol::endpoint
generic::stream_protocol::iostream
generic::stream_protocol::socket
ip::address
ip::address_v4
ip::address_v4_iterator
ip::address_v4_range
ip::address_v6
ip::address_v6_iterator
ip::address_v6_range
ip::icmp
ip::icmp::endpoint
ip::icmp::resolver
ip::icmp::socket
ip::network_v4
ip::network_v6
ip::resolver_query_base
ip::tcp
ip::tcp::acceptor
ip::tcp::endpoint
ip::tcp::iostream
ip::tcp::resolver
ip::tcp::socket
ip::udp
ip::udp::endpoint
ip::udp::resolver
ip::udp::socket
socket_base
-
-

-Free Functions

- - - - - - - - - -
async_connect
connect
ip::host_name
ip::make_address
ip::make_address_v4
ip::make_address_v6
ip::make_network_v4
ip::make_network_v6
-

-Class Templates

- - - - - - - - - - - - - - - -
basic_datagram_socket
basic_raw_socket
basic_seq_packet_socket
basic_socket
basic_socket_acceptor
basic_socket_iostream
basic_socket_streambuf
basic_stream_socket
generic::basic_endpoint
ip::basic_endpoint
ip::basic_resolver
ip::basic_resolver_entry
ip::basic_resolver_iterator
ip::basic_resolver_query
-
-

-Socket Options

- - - - - - - - - - - - - - - - - - - - -
ip::multicast::enable_loopback
ip::multicast::hops
ip::multicast::join_group
ip::multicast::leave_group
ip::multicast::outbound_interface
ip::tcp::no_delay
ip::unicast::hops
ip::v6_only
socket_base::broadcast
socket_base::debug
socket_base::do_not_route
socket_base::enable_connection_aborted
socket_base::keep_alive
socket_base::linger
socket_base::receive_buffer_size
socket_base::receive_low_watermark
socket_base::reuse_address
socket_base::send_buffer_size
socket_base::send_low_watermark
-
-

-I/O Control Commands

-
socket_base::bytes_readable
-

-Type Requirements

- - - - - - - - - - - - - - - - - - -
Synchronous socket operations
Asynchronous socket operations
AcceptableProtocol
AcceptHandler
ConnectCondition
ConnectHandler
Endpoint
EndpointSequence
GettableSocketOption
InternetProtocol
IoControlCommand
IteratorConnectHandler
MoveAcceptHandler
Protocol
RangeConnectHandler
ResolveHandler
SettableSocketOption
-
- ------ - - - - - - - - - - - - -
-

-Timers

-
-

-SSL

-
-

-Serial Ports

-
-

-Signal Handling

-
-

-Classes

- - - - - -
deadline_timer
high_resolution_timer
steady_timer
system_timer
-

-Class Templates

- - - - - -
basic_deadline_timer
basic_waitable_timer
time_traits
wait_traits
-

-Type Requirements

- - - - -
TimeTraits
WaitHandler
WaitTraits
-
-

-Classes

- - - - - - -
ssl::context
ssl::context_base
ssl::rfc2818_verification
ssl::stream_base
ssl::verify_context
-

-Class Templates

-
ssl::stream
-

-Type Requirements

- - - - -
BufferedHandshakeHandler
HandshakeHandler
ShutdownHandler
-
-

-Classes

- - - -
serial_port
serial_port_base
-

-Serial Port Options

- - - - - - -
serial_port_base::baud_rate
serial_port_base::flow_control
serial_port_base::parity
serial_port_base::stop_bits
serial_port_base::character_size
-

-Type Requirements

- - - -
GettableSerialPortOption
SettableSerialPortOption
-
-

-Classes

-
signal_set
-

-Type Requirements

-
SignalHandler
-
- ------ - - - - - - - - - - - -
-

-POSIX-specific

-
-

-Windows-specific

-
-

-Experimental

-
-

-Classes

- - - - - - - - - - - - -
local::stream_protocol
local::stream_protocol::acceptor
local::stream_protocol::endpoint
local::stream_protocol::iostream
local::stream_protocol::socket
local::datagram_protocol
local::datagram_protocol::endpoint
local::datagram_protocol::socket
posix::descriptor
posix::descriptor_base
posix::stream_descriptor
-
-

-Free Functions

-
local::connect_pair
-

-Class Templates

-
local::basic_endpoint
-
-

-Classes

- - - - - - -
windows::object_handle
windows::overlapped_handle
windows::overlapped_ptr
windows::random_access_handle
windows::stream_handle
-
-

-Classes

- - - - -
experimental::detached_t
experimental::this_coro::executor_t
experimental::this_coro::token_t
-

-Class Templates

- - - - -
experimental::awaitable
experimental::await_token
experimental::redirect_error_t
-

-Free Functions

- - - - -
experimental::co_spawn
experimental::this_coro::executor
experimental::this_coro::token
-

-Special Values

-
experimental::detached
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AcceptHandler.html b/Sources/Vendor/asio/doc/asio/reference/AcceptHandler.html deleted file mode 100644 index a3f9208..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AcceptHandler.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -Accept handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An accept handler must meet the requirements for a handler. - A value h of an accept handler class should work correctly in - the expression h(ec), where ec is an lvalue of - type const error_code. -

-
- - Examples -
-

- A free function as an accept handler: -

-
void accept_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- An accept handler function object: -

-
struct accept_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as an accept handler: -

-
acceptor.async_accept(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to an accept handler using std::bind(): -

-
void my_class::accept_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-acceptor.async_accept(...,
-    std::bind(&my_class::accept_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to an accept handler using boost::bind(): -

-
void my_class::accept_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-acceptor.async_accept(...,
-    boost::bind(&my_class::accept_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AcceptableProtocol.html b/Sources/Vendor/asio/doc/asio/reference/AcceptableProtocol.html deleted file mode 100644 index 11e9e76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AcceptableProtocol.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -Acceptable protocol requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the AcceptableProtocol requirements - if it satisfies the requirements of Protocol - as well as the additional requirements listed below. -

-
-

Table 1. AcceptableProtocol requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::socket -

-
-

- A type that satisfies the requirements of Destructible - (C++Std [destructible]) and MoveConstructible (C++Std - [moveconstructible]), and that is publicly and unambiguously derived - from basic_socket<X>. -

-
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html b/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html deleted file mode 100644 index 407f0ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessReadDevice.html +++ /dev/null @@ -1,127 +0,0 @@ - - - -Buffer-oriented asynchronous random-access read device requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, a denotes an asynchronous random access - read device object, o denotes an offset of type boost::uint64_t, - mb denotes an object satisfying mutable - buffer sequence requirements, and h denotes an object - satisfying read handler - requirements. -

-
-

Table 2. Buffer-oriented asynchronous random-access read device requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.get_executor() -

-
-

- A type satisfying the Executor - requirements. -

-
-

- Returns the associated I/O executor. -

-
-

- a.async_read_some_at(o, mb, h); -

-
-

- void -

-
-

- Initiates an asynchronous operation to read one or more bytes of - data from the device a at the offset o. - The operation is performed via the io_service object - a.get_io_service() and behaves according to asynchronous operation - requirements.

The mutable buffer sequence mb - specifies memory where the data should be placed. The async_read_some_at - operation shall always fill a buffer in the sequence completely - before proceeding to the next.

The implementation - shall maintain one or more copies of mb until such - time as the read operation no longer requires access to the memory - specified by the buffers in the sequence. The program must ensure - the memory is valid until:

— the last copy of mb - is destroyed, or

— the handler for the asynchronous - read operation is invoked,

whichever comes first.
-
If the total size of all buffers in the sequence mb - is 0, the asynchronous read operation shall complete - immediately and pass 0 as the argument to the handler - that specifies the number of bytes read. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html b/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html deleted file mode 100644 index b72680f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AsyncRandomAccessWriteDevice.html +++ /dev/null @@ -1,128 +0,0 @@ - - - -Buffer-oriented asynchronous random-access write device requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, a denotes an asynchronous write stream object, - o denotes an offset of type boost::uint64_t, cb - denotes an object satisfying constant - buffer sequence requirements, and h denotes an object - satisfying write handler - requirements. -

-
-

Table 3. Buffer-oriented asynchronous random-access write device requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.get_executor() -

-
-

- A type satisfying the Executor - requirements. -

-
-

- Returns the associated I/O executor. -

-
-

- a.async_write_some_at(o, cb, h); -

-
-

- void -

-
-

- Initiates an asynchronous operation to write one or more bytes - of data to the device a at offset o. - The operation is performed via the io_service object - a.get_io_service() and behaves according to asynchronous operation - requirements.

The constant buffer sequence cb - specifies memory where the data to be written is located. The - async_write_some_at operation shall always write a - buffer in the sequence completely before proceeding to the next.
-
The implementation shall maintain one or more copies of - cb until such time as the write operation no longer - requires access to the memory specified by the buffers in the sequence. - The program must ensure the memory is valid until:

- — the last copy of cb is destroyed, or

- — the handler for the asynchronous write operation is invoked,
-
whichever comes first.

If the total size of - all buffers in the sequence cb is 0, - the asynchronous write operation shall complete immediately and - pass 0 as the argument to the handler that specifies - the number of bytes written. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AsyncReadStream.html b/Sources/Vendor/asio/doc/asio/reference/AsyncReadStream.html deleted file mode 100644 index a2868dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AsyncReadStream.html +++ /dev/null @@ -1,128 +0,0 @@ - - - -Buffer-oriented asynchronous read stream requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the AsyncReadStream requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a value of type X, - mb denotes a (possibly const) value satisfying the MutableBufferSequence - requirements, and t is a completion token. -

-
-

Table 4. AsyncReadStream requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.get_executor() -

-
-

- A type satisfying the Executor - requirements. -

-
-

- Returns the associated I/O executor. -

-
-

- a.async_read_some(mb,t) -

-
-

- The return type is determined according to the requirements for - an asynchronous - operation. -

-
-

- Meets the requirements for a read - operation and an asynchronous - operation with completion signature void(error_code - ec, size_t n).

If buffer_size(mb) > - 0, initiates an asynchronous operation to read one or more - bytes of data from the stream a into the buffer sequence - mb. If successful, ec is set such that - !ec is true, and n is the - number of bytes read. If an error occurred, ec is - set such that !!ec is true, and n - is 0. If all data has been read from the stream, and the stream - performed an orderly shutdown, ec is stream_errc::eof - and n is 0.

If buffer_size(mb) - == 0, the operation completes immediately. ec - is set such that !ec is true, and n - is 0. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/AsyncWriteStream.html b/Sources/Vendor/asio/doc/asio/reference/AsyncWriteStream.html deleted file mode 100644 index 3b8ffc2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/AsyncWriteStream.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -Buffer-oriented asynchronous write stream requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the AsyncWriteStream requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a value of type X, - cb denotes a (possibly const) value satisfying the ConstBufferSequence - requirements, and t is a completion token. -

-
-

Table 5. AsyncWriteStream requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.get_executor() -

-
-

- A type satisfying the Executor - requirements. -

-
-

- Returns the associated I/O executor. -

-
-

- a.async_write_some(cb,t) -

-
-

- The return type is determined according to the requirements for - an asynchronous - operation. -

-
-

- Meets the requirements for a write - operation and an asynchronous - operation with completion signature void(error_code - ec, size_t n).

If buffer_size(cb) > - 0, initiates an asynchronous operation to write one or more - bytes of data to the stream a from the buffer sequence - cb. If successful, ec is set such that - !ec is true, and n is the - number of bytes written. If an error occurred, ec - is set such that !!ec is true, and n - is 0.

If buffer_size(cb) == 0, the operation - completes immediately. ec is set such that !ec - is true, and n is 0. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/BufferedHandshakeHandler.html b/Sources/Vendor/asio/doc/asio/reference/BufferedHandshakeHandler.html deleted file mode 100644 index 94d7b7d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/BufferedHandshakeHandler.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -Buffered handshake handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A buffered handshake handler must meet the requirements for a handler. - A value h of a buffered handshake handler class should work - correctly in the expression h(ec, s), where ec - is an lvalue of type const error_code and s is - an lvalue of type const size_t. -

-
- - Examples -
-

- A free function as a buffered handshake handler: -

-
void handshake_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-
-

- A buffered handshake handler function object: -

-
struct handshake_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      std::size_t bytes_transferred)
-  {
-    ...
-  }
-  ...
-};
-
-

- A non-static class member function adapted to a buffered handshake handler - using boost::bind(): -

-
void my_class::handshake_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_handshake(...,
-    boost::bind(&my_class::handshake_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::bytes_transferred));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/CompletionCondition.html b/Sources/Vendor/asio/doc/asio/reference/CompletionCondition.html deleted file mode 100644 index d1a1ae7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/CompletionCondition.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -Completion condition requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A completion condition is a function object that is - used with the algorithms read, - async_read, - write, and async_write to determine - when the algorithm has completed transferring data. -

-

- A type X meets the CompletionCondition requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a value of type X, - ec denotes a (possibly const) value of type error_code, - and n denotes a (possibly const) value of type size_t. -

-
-

Table 6. CompletionCondition requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- x(ec, n) -

-
-

- size_t -

-
-

- Let n be the total number of bytes transferred by - the read or write algorithm so far.

Returns the maximum - number of bytes to be transferred on the next read_some, - async_read_some, write_some, or async_write_some - operation performed by the algorithm. Returns 0 to - indicate that the algorithm is complete. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/CompletionHandler.html b/Sources/Vendor/asio/doc/asio/reference/CompletionHandler.html deleted file mode 100644 index e3636cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/CompletionHandler.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -Completion handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A completion handler must meet the requirements for a handler. - A value h of a completion handler class should work correctly - in the expression h(). -

-
- - Examples -
-

- A free function as a completion handler: -

-
void completion_handler()
-{
-  ...
-}
-
-

- A completion handler function object: -

-
struct completion_handler
-{
-  ...
-  void operator()()
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a completion handler: -

-
my_io_service.post(
-    []()
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a completion handler using - std::bind(): -

-
void my_class::completion_handler()
-{
-  ...
-}
-...
-my_io_service.post(std::bind(&my_class::completion_handler, this));
-
-

- A non-static class member function adapted to a completion handler using - boost::bind(): -

-
void my_class::completion_handler()
-{
-  ...
-}
-...
-my_io_service.post(boost::bind(&my_class::completion_handler, this));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ConnectCondition.html b/Sources/Vendor/asio/doc/asio/reference/ConnectCondition.html deleted file mode 100644 index bbd9fe7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ConnectCondition.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -Connect condition requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the ConnectCondition requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a value of type X, - ec denotes a (possibly const) value of type error_code, - and ep denotes a (possibly const) value of some type satisfying - the endpoint requirements. -

-
-

Table 7. ConnectCondition requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- x(ec, ep) -

-
-

- bool -

-
-

- Returns true to indicate that the connect - or async_connect algorithm should attempt a connection - to the endpoint ep. Otherwise, returns false - to indicate that the algorithm should not attempt connection to - the endpoint ep, and should instead skip to the next - endpoint in the sequence. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ConnectHandler.html b/Sources/Vendor/asio/doc/asio/reference/ConnectHandler.html deleted file mode 100644 index 221a521..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ConnectHandler.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -Connect handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A connect handler must meet the requirements for a handler. - A value h of a connect handler class should work correctly in - the expression h(ec), where ec is an lvalue of - type const error_code. -

-
- - Examples -
-

- A free function as a connect handler: -

-
void connect_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- A connect handler function object: -

-
struct connect_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a connect handler: -

-
socket.async_connect(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a connect handler using std::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-socket.async_connect(...,
-    std::bind(&my_class::connect_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to a connect handler using boost::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-socket.async_connect(...,
-    boost::bind(&my_class::connect_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ConstBufferSequence.html b/Sources/Vendor/asio/doc/asio/reference/ConstBufferSequence.html deleted file mode 100644 index 7395387..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ConstBufferSequence.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -Constant buffer sequence requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A constant buffer sequence represents a set of memory - regions that may be used as input to an operation, such as the send - operation of a socket. -

-

- A type X meets the ConstBufferSequence requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a (possibly const) value of type - X, and u denotes an identifier. -

-
-

Table 8. ConstBufferSequence requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- asio::buffer_sequence_begin(x)
asio::buffer_sequence_end(x) -

-
-

- An iterator type meeting the requirements for bidirectional iterators - (C++Std [bidirectional.iterators]) whose value type is convertible - to const_buffer. -

-
-
-

-

-
X u(x);
-
-

-

-
- -

- post:
-

-
equal(
-  asio::buffer_sequence_begin(x),
-  asio::buffer_sequence_end(x),
-  asio::buffer_sequence_begin(u),
-  asio::buffer_sequence_end(u),
-  [](const const_buffer& b1,
-     const const_buffer& b2)
-   {
-     return b1.data() == b2.data()
-         && b1.size() == b2.size();
-   })
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/DynamicBuffer.html b/Sources/Vendor/asio/doc/asio/reference/DynamicBuffer.html deleted file mode 100644 index 648a8a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/DynamicBuffer.html +++ /dev/null @@ -1,256 +0,0 @@ - - - -Dynamic buffer requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A dynamic buffer encapsulates memory storage that may be automatically resized - as required, where the memory is divided into an input sequence followed - by an output sequence. These memory regions are internal to the dynamic buffer - sequence, but direct access to the elements is provided to permit them to - be efficiently used with I/O operations, such as the send or - receive operations of a socket. Data written to the output sequence - of a dynamic buffer sequence object is appended to the input sequence of - the same object. -

-

- A dynamic buffer type X shall satisfy the requirements of MoveConstructible - (C++ Std, [moveconstructible]) types in addition to those listed below. -

-

- In the table below, X denotes a dynamic buffer class, x - denotes a value of type X&, x1 denotes values - of type const X&, and n denotes a value of - type size_t, and u denotes an identifier. -

-
-

Table 9. DynamicBuffer requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::const_buffers_type -

-
-

- type meeting ConstBufferSequence - requirements. -

-
-

- This type represents the memory associated with the input sequence. -

-
-

- X::mutable_buffers_type -

-
-

- type meeting MutableBufferSequence - requirements. -

-
-

- This type represents the memory associated with the output sequence. -

-
-

- x1.size() -

-
-

- size_t -

-
-

- Returns the size, in bytes, of the input sequence. -

-
-

- x1.max_size() -

-
-

- size_t -

-
-

- Returns the permitted maximum of the sum of the sizes of the input - sequence and output sequence. -

-
-

- x1.capacity() -

-
-

- size_t -

-
-

- Returns the maximum sum of the sizes of the input sequence and - output sequence that the dynamic buffer can hold without requiring - reallocation. -

-
-

- x1.data() -

-
-

- X::const_buffers_type -

-
-

- Returns a constant buffer sequence u that represents - the memory associated with the input sequence, and where buffer_size(u) - == size(). -

-
-

- x.prepare(n) -

-
-

- X::mutable_buffers_type -

-
-

- Requires: size() + n <= max_size().

- Returns a mutable buffer sequence u representing the - output sequence, and where buffer_size(u) == n. The - dynamic buffer reallocates memory as required. All constant or - mutable buffer sequences previously obtained using data() - or prepare() are invalidated.

Throws: - length_error if size() + n > max_size(). -

-
-

- x.commit(n) -

-
- -

- Appends n bytes from the start of the output sequence - to the end of the input sequence. The remainder of the output sequence - is discarded. If n is greater than the size of the - output sequence, the entire output sequence is appended to the - input sequence. All constant or mutable buffer sequences previously - obtained using data() or prepare() are - invalidated. -

-
-

- x.consume(n) -

-
- -

- Removes n bytes from beginning of the input sequence. - If n is greater than the size of the input sequence, - the entire input sequence is removed. All constant or mutable buffer - sequences previously obtained using data() or prepare() - are invalidated. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Endpoint.html b/Sources/Vendor/asio/doc/asio/reference/Endpoint.html deleted file mode 100644 index c8ba39a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Endpoint.html +++ /dev/null @@ -1,251 +0,0 @@ - - - -Endpoint requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the Endpoint requirements if it - satisfies the requirements of Destructible (C++Std [destructible]), - DefaultConstructible (C++Std [defaultconstructible]), CopyConstructible - (C++Std [copyconstructible]), and CopyAssignable (C++Std [copyassignable]), - as well as the additional requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, and u denotes an identifier. -

-
-

Table 10. Endpoint requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::protocol_type -

-
-

- type meeting Protocol - requirements -

-
-
-

- a.protocol() -

-
-

- protocol_type -

-
-
-
-

- In the table below, a denotes a (possibly const) value of type - X, b denotes a value of type X, and - s denotes a (possibly const) value of a type that is convertible - to size_t and denotes a size in bytes. -

-
-

Table 11. Endpoint requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.data() -

-
-

- const void* -

-
-

- Returns a pointer suitable for passing as the address - argument to functions such as POSIX connect(), - or as the dest_addr argument to functions - such as POSIX sendto(). - The implementation shall perform a static_cast on - the pointer to convert it to const sockaddr*. -

-
-

- b.data() -

-
-

- void* -

-
-

- Returns a pointer suitable for passing as the address - argument to functions such as POSIX accept(), - getpeername(), - getsockname() - and recvfrom(). - The implementation shall perform a static_cast on - the pointer to convert it to sockaddr*. -

-
-

- a.size() -

-
-

- size_t -

-
-

- Returns a value suitable for passing as the address_len - argument to functions such as POSIX connect(), - or as the dest_len argument to functions such - as POSIX sendto(), - after appropriate integer conversion has been performed. -

-
-

- b.resize(s) -

-
- -

- pre: s >= 0
post: a.size() == s
- Passed the value contained in the address_len - argument to functions such as POSIX accept(), - getpeername(), - getsockname() - and recvfrom(), - after successful completion of the function. Permitted to throw - an exception if the protocol associated with the endpoint object - a does not support the specified size. -

-
-

- a.capacity() -

-
-

- size_t -

-
-

- Returns a value suitable for passing as the address_len - argument to functions such as POSIX accept(), - getpeername(), - getsockname() - and recvfrom(), - after appropriate integer conversion has been performed. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/EndpointSequence.html b/Sources/Vendor/asio/doc/asio/reference/EndpointSequence.html deleted file mode 100644 index 3e4fb80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/EndpointSequence.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Endpoint sequence requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the EndpointSequence requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a (possibly const) value of type - X. -

-
-

Table 12. EndpointSequence requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- x.begin()
x.end() -

-
-

- A type meeting the requirements for forward iterators (C++Std [forward.iterators]) - whose value type is convertible to a type satisfying the Endpoint - requirements. -

-
-

- [x.begin(),x.end()) is a valid range. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ExecutionContext.html b/Sources/Vendor/asio/doc/asio/reference/ExecutionContext.html deleted file mode 100644 index 3c4224b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ExecutionContext.html +++ /dev/null @@ -1,122 +0,0 @@ - - - -Execution context requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the ExecutionContext requirements - if it is publicly and unambiguously derived from execution_context, - and satisfies the additional requirements listed below. -

-

- In the table below, x denotes a value of type X. -

-
-

Table 13. ExecutionContext requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- X::executor_type -

-
-

- type meeting Executor - requirements -

-
-
-

- x.~X() -

-
- -

- Destroys all unexecuted function objects that were submitted via - an executor object that is associated with the execution context. -

-
-

- x.get_executor() -

-
-

- X::executor_type -

-
-

- Returns an executor object that is associated with the execution - context. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Executor1.html b/Sources/Vendor/asio/doc/asio/reference/Executor1.html deleted file mode 100644 index 2cae0ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Executor1.html +++ /dev/null @@ -1,289 +0,0 @@ - - - -Executor requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The library describes a standard set of requirements for executors. - A type meeting the Executor requirements embodies a set of rules - for determining how submitted function objects are to be executed. -

-

- A type X meets the Executor requirements if it - satisfies the requirements of CopyConstructible (C++Std [copyconstructible]) - and Destructible (C++Std [destructible]), as well as the additional - requirements listed below. -

-

- No constructor, comparison operator, copy operation, move operation, swap - operation, or member functions context, on_work_started, - and on_work_finished on these types shall exit via an exception. -

-

- The executor copy constructor, comparison operators, and other member functions - defined in these requirements shall not introduce data races as a result - of concurrent calls to those functions from different threads. -

-

- Let ctx be the execution context returned by the executor's - context() member function. An executor becomes invalid - when the first call to ctx.shutdown() returns. The effect of - calling on_work_started, on_work_finished, dispatch, - post, or defer on an invalid executor is undefined. - [Note: The copy constructor, comparison operators, and - context() member function continue to remain valid until ctx - is destroyed. —end note] -

-

- In the table below, x1 and x2 denote (possibly - const) values of type X, mx1 denotes an xvalue - of type X, f denotes a MoveConstructible - (C++Std [moveconstructible]) function object callable with zero arguments, - a denotes a (possibly const) value of type A meeting - the Allocator requirements (C++Std [allocator.requirements]), - and u denotes an identifier. -

-
-

Table 14. Executor requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X u(x1); -

-
- -

- Shall not exit via an exception.

post: u == - x1 and std::addressof(u.context()) == std::addressof(x1.context()). -

-
-

- X u(mx1); -

-
- -

- Shall not exit via an exception.

post: u - equals the prior value of mx1 and std::addressof(u.context()) - equals the prior value of std::addressof(mx1.context()). -

-
-

- x1 == x2 -

-
-

- bool -

-
-

- Returns true only if x1 and x2 - can be interchanged with identical effects in any of the expressions - defined in these type requirements. [Note: - Returning false does not necessarily imply that the - effects are not identical. —end note]
-
operator== shall be reflexive, symmetric, and - transitive, and shall not exit via an exception. -

-
-

- x1 != x2 -

-
-

- bool -

-
-

- Same as !(x1 == x2). -

-
-

- x1.context() -

-
-

- execution_context&, or E& where - E is a type that satifisfies the ExecutionContext - requirements. -

-
-

- Shall not exit via an exception.

The comparison operators - and member functions defined in these requirements shall not alter - the reference returned by this function. -

-
-

- x1.on_work_started() -

-
- -

- Shall not exit via an exception. -

-
-

- x1.on_work_finished() -

-
- -

- Shall not exit via an exception.

Precondition: A preceding - call x2.on_work_started() where x1 == x2. -

-
-

- x1.dispatch(std::move(f),a) -

-
- -

- Effects: Creates an object f1 initialized with DECAY_COPY(forward<Func>(f)) - (C++Std [thread.decaycopy]) in the current thread of execution - . Calls f1() at most once. The executor may block - forward progress of the caller until f1() finishes - execution.

Executor implementations should use the - supplied allocator to allocate any memory required to store the - function object. Prior to invoking the function object, the executor - shall deallocate any memory allocated. [Note: - Executors defined in this Technical Specification always use the - supplied allocator unless otherwise specified. —end note] -

Synchronization: The invocation of dispatch - synchronizes with (C++Std [intro.multithread]) the invocation of - f1. -

-
-

- x1.post(std::move(f),a)
x1.defer(std::move(f),a) -

-
- -

- Effects: Creates an object f1 initialized with DECAY_COPY(forward<Func>(f)) - in the current thread of execution. Calls f1() at - most once. The executor shall not block forward progress of the - caller pending completion of f1().

Executor - implementations should use the supplied allocator to allocate any - memory required to store the function object. Prior to invoking - the function object, the executor shall deallocate any memory allocated. - [Note: Executors defined in this Technical - Specification always use the supplied allocator unless otherwise - specified. —end note]

Synchronization: - The invocation of post or defer synchronizes - with (C++Std [intro.multithread]) the invocation of f1.
-
[Note: Although the requirements placed - on defer are identical to post, the use - of post conveys a preference that the caller does - not block the first step of f1's - progress, whereas defer conveys a preference that - the caller does block the first step of f1. - One use of defer is to convey the intention of the - caller that f1 is a continuation of the current - call context. The executor may use this information to optimize - or otherwise adjust the way in which f1 is invoked. - —end note] -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/GettableSerialPortOption.html b/Sources/Vendor/asio/doc/asio/reference/GettableSerialPortOption.html deleted file mode 100644 index 71398c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/GettableSerialPortOption.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -Gettable serial port option requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, X denotes a serial port option class, a - denotes a value of X, ec denotes a value of type - error_code, and s denotes a value of implementation-defined - type storage (where storage - is the type DCB on Windows and termios on POSIX - platforms), and u denotes an identifier. -

-
-

Table 15. GettableSerialPortOption requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- const storage& - u = s;
a.load(u, ec); -

-
-

- error_code -

-
-

- Retrieves the value of the serial port option from the storage.
-
If successful, sets ec such that !ec - is true. If an error occurred, sets ec such that - !!ec is true. Returns ec. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/GettableSocketOption.html b/Sources/Vendor/asio/doc/asio/reference/GettableSocketOption.html deleted file mode 100644 index 4fa1e3f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/GettableSocketOption.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -Gettable socket option requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the GettableSocketOption requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, b denotes a value of type X, p - denotes a (possibly const) value that meets the Protocol - requirements, and s denotes a (possibly const) value of a type - that is convertible to size_t and denotes a size in bytes. -

-
-

Table 16. GettableSocketOption requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.level(p) -

-
-

- int -

-
-

- Returns a value suitable for passing as the level - argument to POSIX getsockopt() - (or equivalent). -

-
-

- a.name(p) -

-
-

- int -

-
-

- Returns a value suitable for passing as the option_name - argument to POSIX getsockopt() - (or equivalent). -

-
-

- b.data(p) -

-
-

- void* -

-
-

- Returns a pointer suitable for passing as the option_value - argument to POSIX getsockopt() - (or equivalent). -

-
-

- a.size(p) -

-
-

- size_t -

-
-

- Returns a value suitable for passing as the option_len - argument to POSIX getsockopt() - (or equivalent), after appropriate integer conversion has been - performed. -

-
-

- b.resize(p,s) -

-
- -

- post: b.size(p) == s.
Passed the value contained - in the option_len argument to POSIX - getsockopt() - (or equivalent) after successful completion of the function. Permitted - to throw an exception if the socket option object b - does not support the specified size. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Handler.html b/Sources/Vendor/asio/doc/asio/reference/Handler.html deleted file mode 100644 index dd34105..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Handler.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -Handlers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A handler must meet the requirements of MoveConstructible types - (C++Std [moveconstructible]). -

-

- In the table below, X denotes a handler class, h - denotes a value of X, p denotes a pointer to a - block of allocated memory of type void*, s denotes - the size for a block of allocated memory, and f denotes a function - object taking no arguments. -

-
-

Table 17. Handler requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

-

-
using asio::asio_handler_allocate;
-asio_handler_allocate(s, &h);
-
-

-

-
-

- void* -

-
-

- Returns a pointer to a block of memory of size s. - The pointer must satisfy the same alignment requirements as a pointer - returned by ::operator new(). Throws bad_alloc - on failure.

The asio_handler_allocate() - function is located using argument-dependent lookup. The function - asio::asio_handler_allocate() serves as a default - if no user-supplied function is available. -

-
-

-

-
using asio::asio_handler_deallocate;
-asio_handler_deallocate(p, s, &h);
-
-

-

-
- -

- Frees a block of memory associated with a pointer p, - of at least size s, that was previously allocated - using asio_handler_allocate().

The asio_handler_deallocate() - function is located using argument-dependent lookup. The function - asio::asio_handler_deallocate() serves as a default - if no user-supplied function is available. -

-
-

-

-
using asio::asio_handler_invoke;
-asio_handler_invoke(f, &h);
-
-

-

-
- -

- Causes the function object f to be executed as if - by calling f().

The asio_handler_invoke() - function is located using argument-dependent lookup. The function - asio::asio_handler_invoke() serves as a default if - no user-supplied function is available. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/HandshakeHandler.html b/Sources/Vendor/asio/doc/asio/reference/HandshakeHandler.html deleted file mode 100644 index 1d162b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/HandshakeHandler.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -SSL handshake handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A handshake handler must meet the requirements for a handler. - A value h of a handshake handler class should work correctly - in the expression h(ec), where ec is an lvalue - of type const error_code. -

-
- - Examples -
-

- A free function as a handshake handler: -

-
void handshake_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- A handshake handler function object: -

-
struct handshake_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a handshake handler: -

-
ssl_stream.async_handshake(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a handshake handler using - std::bind(): -

-
void my_class::handshake_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-ssl_stream.async_handshake(...,
-    std::bind(&my_class::handshake_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to a handshake handler using - boost::bind(): -

-
void my_class::handshake_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-ssl_stream.async_handshake(...,
-    boost::bind(&my_class::handshake_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/InternetProtocol.html b/Sources/Vendor/asio/doc/asio/reference/InternetProtocol.html deleted file mode 100644 index cb7ff11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/InternetProtocol.html +++ /dev/null @@ -1,162 +0,0 @@ - - - -Internet protocol requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the InternetProtocol requirements - if it satisfies the requirements of AcceptableProtocol, - as well as the additional requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, and b denotes a (possibly const) value of type - X. -

-
-

Table 18. InternetProtocol requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::resolver -

-
-

- ip::basic_resolver<X> -

-
-

- The type of a resolver for the protocol. -

-
-

- X::v4() -

-
-

- X -

-
-

- Returns an object representing the IP version 4 protocol. -

-
-

- X::v6() -

-
-

- X -

-
-

- Returns an object representing the IP version 6 protocol. -

-
-

- a == b -

-
-

- convertible to bool -

-
-

- Returns true if a and b - represent the same IP protocol version, otherwise false. -

-
-

- a != b -

-
-

- convertible to bool -

-
-

- Returns !(a == b). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/IoControlCommand.html b/Sources/Vendor/asio/doc/asio/reference/IoControlCommand.html deleted file mode 100644 index ed8d257..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/IoControlCommand.html +++ /dev/null @@ -1,108 +0,0 @@ - - - -I/O control command requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the IoControlCommand requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, and b denotes a value of type X. -

-
-

Table 19. IoControlCommand requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.name() -

-
-

- int -

-
-

- Returns a value suitable for passing as the request - argument to POSIX ioctl() - (or equivalent). -

-
-

- b.data() -

-
-

- void* -

-
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/IoObjectService.html b/Sources/Vendor/asio/doc/asio/reference/IoObjectService.html deleted file mode 100644 index e39b74d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/IoObjectService.html +++ /dev/null @@ -1,169 +0,0 @@ - - - -I/O object service requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An I/O object service must meet the requirements for a service, - as well as the requirements listed below. -

-

- In the table below, X denotes an I/O object service class, - a and ao denote values of type X, - b and c denote values of type X::implementation_type, - and u denotes an identifier. -

-
-

Table 20. IoObjectService requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- X::implementation_type -

-
- -
-

- X::implementation_type u; -

-
- -

- note: X::implementation_type has a public default - constructor and destructor. -

-
-

-

-
a.construct(b);
-
-

-

-
- -
-

-

-
a.destroy(b);
-
-

-

-
- -

- note: destroy() will only be called on a value that - has previously been initialised with construct() or - move_construct(). -

-
-

-

-
a.move_construct(b, c);
-
-

-

-
- -

- note: only required for I/O objects that support movability. -

-
-

-

-
a.move_assign(b, ao, c);
-
-

-

-
- -

- note: only required for I/O objects that support movability. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/IteratorConnectHandler.html b/Sources/Vendor/asio/doc/asio/reference/IteratorConnectHandler.html deleted file mode 100644 index 2e86601..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/IteratorConnectHandler.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -Iterator connect handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An iterator connect handler must meet the requirements for a handler. - A value h of an iterator connect handler class should work correctly - in the expression h(ec, i), where ec is an lvalue - of type const error_code and i is an lvalue of - the type Iterator used in the corresponding connect() - or async_connect()` function. -

-
- - Examples -
-

- A free function as an iterator connect handler: -

-
void connect_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::iterator iterator)
-{
-  ...
-}
-
-

- An iterator connect handler function object: -

-
struct connect_handler
-{
-  ...
-  template <typename Iterator>
-  void operator()(
-      const asio::error_code& ec,
-      Iterator iterator)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as an iterator connect handler: -

-
asio::async_connect(...,
-    [](const asio::error_code& ec,
-      asio::ip::tcp::resolver::iterator iterator)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to an iterator connect handler - using std::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::iterator iterator)
-{
-  ...
-}
-...
-asio::async_connect(...,
-    std::bind(&my_class::connect_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to an iterator connect handler - using boost::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::iterator iterator)
-{
-  ...
-}
-...
-asio::async_connect(...,
-    boost::bind(&my_class::connect_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::iterator));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/LegacyCompletionHandler.html b/Sources/Vendor/asio/doc/asio/reference/LegacyCompletionHandler.html deleted file mode 100644 index bafc11d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/LegacyCompletionHandler.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -Legacy completion handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A legacy completion handler must meet the requirements for a handler. - A legacy completion handler must meet the requirements of CopyConstructible - types (C++Std [copyconstructible]). A value h of a completion - handler class should work correctly in the expression h(). -

-
- - Examples -
-

- A free function as a completion handler: -

-
void completion_handler()
-{
-  ...
-}
-
-

- A completion handler function object: -

-
struct completion_handler
-{
-  ...
-  void operator()()
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a completion handler: -

-
my_io_service.post(
-    []()
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a completion handler using - std::bind(): -

-
void my_class::completion_handler()
-{
-  ...
-}
-...
-my_io_service.post(std::bind(&my_class::completion_handler, this));
-
-

- A non-static class member function adapted to a completion handler using - boost::bind(): -

-
void my_class::completion_handler()
-{
-  ...
-}
-...
-my_io_service.post(boost::bind(&my_class::completion_handler, this));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/MoveAcceptHandler.html b/Sources/Vendor/asio/doc/asio/reference/MoveAcceptHandler.html deleted file mode 100644 index 78a62ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/MoveAcceptHandler.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -Move accept handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A move accept handler must meet the requirements for a handler. - A value h of a move accept handler class should work correctly - in the expression h(ec, s), where ec is an lvalue - of type const error_code and s is an lvalue of - the nested type Protocol::socket for the type Protocol - of the socket class template. -

-
- - Examples -
-

- A free function as a move accept handler: -

-
void accept_handler(
-    const asio::error_code& ec, asio::ip::tcp::socket s)
-{
-  ...
-}
-
-

- A move accept handler function object: -

-
struct accept_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec, asio::ip::tcp::socket s)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a move accept handler: -

-
acceptor.async_accept(...,
-    [](const asio::error_code& ec, asio::ip::tcp::socket s)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a move accept handler using - std::bind(): -

-
void my_class::accept_handler(
-    const asio::error_code& ec, asio::ip::tcp::socket socket)
-{
-  ...
-}
-...
-asio::async_accept(...,
-    std::bind(&my_class::accept_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/MutableBufferSequence.html b/Sources/Vendor/asio/doc/asio/reference/MutableBufferSequence.html deleted file mode 100644 index 8324dfe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/MutableBufferSequence.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -Mutable buffer sequence requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A mutable buffer sequence represents a set of memory - regions that may be used to receive the output of an operation, such as the - receive operation of a socket. -

-

- A type X meets the MutableBufferSequence requirements - if it satisfies the requirements of Destructible (C++Std [destructible]) - and CopyConstructible (C++Std [copyconstructible]), as well - as the additional requirements listed below. -

-

- In the table below, x denotes a (possibly const) value of type - X, and u denotes an identifier. -

-
-

Table 21. MutableBufferSequence requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- asio::buffer_sequence_begin(x)
asio::buffer_sequence_end(x) -

-
-

- An iterator type meeting the requirements for bidirectional iterators - (C++Std [bidirectional.iterators]) whose value type is convertible - to mutable_buffer. -

-
-
-

-

-
X u(x);
-
-

-

-
- -

- post:
-

-
equal(
-  asio::buffer_sequence_begin(x),
-  asio::buffer_sequence_end(x),
-  asio::buffer_sequence_begin(u),
-  asio::buffer_sequence_end(u),
-  [](const mutable_buffer& b1,
-     const mutable_buffer& b2)
-   {
-     return b1.data() == b2.data()
-         && b1.size() == b2.size();
-   })
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ProtoAllocator.html b/Sources/Vendor/asio/doc/asio/reference/ProtoAllocator.html deleted file mode 100644 index 93450b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ProtoAllocator.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -Proto-allocator requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type A meets the proto-allocator requirements if A - is CopyConstructible (C++Std [copyconstructible]), Destructible - (C++Std [destructible]), and allocator_traits<A>::rebind_alloc<U> - meets the allocator requirements (C++Std [allocator.requirements]), where - U is an object type. [Note: For example, - std::allocator<void> meets the proto-allocator requirements - but not the allocator requirements. —end note] No constructor, - comparison operator, copy operation, move operation, or swap operation on - these types shall exit via an exception. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Protocol.html b/Sources/Vendor/asio/doc/asio/reference/Protocol.html deleted file mode 100644 index 0933f87..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Protocol.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -Protocol requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the Protocol requirements if it - satisfies the requirements of Destructible (C++Std [destructible]), - CopyConstructible (C++Std [copyconstructible]), and CopyAssignable - (C++Std [copyassignable]), as well as the additional requirements listed - below. -

-
-

Table 22. Protocol requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

- X::endpoint -

-
-

- type meeting endpoint - requirements -

-
-
-
-

- In the table below, a denotes a (possibly const) value of type - X. -

-
-

Table 23. Protocol requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.family() -

-
-

- int -

-
-

- Returns a value suitable for passing as the domain - argument to POSIX socket() - (or equivalent). -

-
-

- a.type() -

-
-

- int -

-
-

- Returns a value suitable for passing as the type - argument to POSIX socket() - (or equivalent). -

-
-

- a.protocol() -

-
-

- int -

-
-

- Returns a value suitable for passing as the protocol - argument to POSIX socket() - (or equivalent). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/RangeConnectHandler.html b/Sources/Vendor/asio/doc/asio/reference/RangeConnectHandler.html deleted file mode 100644 index 2342ebb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/RangeConnectHandler.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -Range connect handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A range connect handler must meet the requirements for a handler. - A value h of a range connect handler class should work correctly - in the expression h(ec, ep), where ec is an lvalue - of type const error_code and ep is an lvalue of - the type Protocol::endpoint for the Protocol type - in the corresponding connect() or async_connect()` function. -

-
- - Examples -
-

- A free function as a range connect handler: -

-
void connect_handler(
-    const asio::error_code& ec,
-    const asio::ip::tcp::endpoint& endpoint)
-{
-  ...
-}
-
-

- A range connect handler function object: -

-
struct connect_handler
-{
-  ...
-  template <typename Range>
-  void operator()(
-      const asio::error_code& ec,
-      const asio::ip::tcp::endpoint& endpoint)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a range connect handler: -

-
asio::async_connect(...,
-    [](const asio::error_code& ec,
-      const asio::ip::tcp::endpoint& endpoint)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a range connect handler using - std::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec,
-    const asio::ip::tcp::endpoint& endpoint)
-{
-  ...
-}
-...
-asio::async_connect(...,
-    std::bind(&my_class::connect_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a range connect handler using - boost::bind(): -

-
void my_class::connect_handler(
-    const asio::error_code& ec,
-    const asio::ip::tcp::endpoint& endpoint)
-{
-  ...
-}
-...
-asio::async_connect(...,
-    boost::bind(&my_class::connect_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::endpoint));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ReadHandler.html b/Sources/Vendor/asio/doc/asio/reference/ReadHandler.html deleted file mode 100644 index 7ebf2f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ReadHandler.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Read handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A read handler must meet the requirements for a handler. - A value h of a read handler class should work correctly in the - expression h(ec, s), where ec is an lvalue of type - const error_code and s is an lvalue of type const - size_t. -

-
- - Examples -
-

- A free function as a read handler: -

-
void read_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-
-

- A read handler function object: -

-
struct read_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      std::size_t bytes_transferred)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a read handler: -

-
socket.async_read(...
-    [](const asio::error_code& ec,
-      std::size_t bytes_transferred)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a read handler using std::bind(): -

-
void my_class::read_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_read(...,
-    std::bind(&my_class::read_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a read handler using boost::bind(): -

-
void my_class::read_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_read(...,
-    boost::bind(&my_class::read_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::bytes_transferred));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ResolveHandler.html b/Sources/Vendor/asio/doc/asio/reference/ResolveHandler.html deleted file mode 100644 index c921f2e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ResolveHandler.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -Resolve handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A resolve handler must meet the requirements for a handler. - A value h of a resolve handler class should work correctly in - the expression h(ec, r), where ec is an lvalue - of type const error_code and r is an lvalue of - type const ip::basic_resolver_results<InternetProtocol>. - InternetProtocol is the template parameter of the ip::basic_resolver<> - which is used to initiate the asynchronous operation. -

-
- - Examples -
-

- A free function as a resolve handler: -

-
void resolve_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::results_type results)
-{
-  ...
-}
-
-

- A resolve handler function object: -

-
struct resolve_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      asio::ip::tcp::resolver::results_type results)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a resolve handler: -

-
resolver.async_resolve(...,
-    [](const asio::error_code& ec,
-      asio::ip::tcp::resolver::results_type results)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a resolve handler using std::bind(): -

-
void my_class::resolve_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::results_type results)
-{
-  ...
-}
-...
-resolver.async_resolve(...,
-    std::bind(&my_class::resolve_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a resolve handler using boost::bind(): -

-
void my_class::resolve_handler(
-    const asio::error_code& ec,
-    asio::ip::tcp::resolver::results_type results)
-{
-  ...
-}
-...
-resolver.async_resolve(...,
-    boost::bind(&my_class::resolve_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::results));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/Service.html b/Sources/Vendor/asio/doc/asio/reference/Service.html deleted file mode 100644 index 21431ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/Service.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -Service requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A class is a service if it is publicly and unambiguously - derived from execution_context::service, or if it is publicly - and unambiguously derived from another service. For a service S, - S::key_type shall be valid and denote a type (C++Std [temp.deduct]), - is_base_of_v<typename S::key_type, S> shall be true, - and S shall satisfy the Destructible requirements - (C++Std [destructible]). -

-

- The first parameter of all service constructors shall be an lvalue reference - to execution_context. This parameter denotes the execution_context - object that represents a set of services, of which the service object will - be a member. [Note: These constructors may be called - by the make_service function. —end note] -

-

- A service shall provide an explicit constructor with a single parameter of - lvalue reference to execution_context. [Note: - This constructor may be called by the use_service function. - —end note] -

-
class my_service : public execution_context::service
-{
-public:
-  typedef my_service key_type;
-  explicit my_service(execution_context& ctx);
-  my_service(execution_context& ctx, int some_value);
-private:
-  virtual void shutdown() noexcept override;
-  ...
-};
-
-

- A service's shutdown member function shall destroy all copies - of user-defined function objects that are held by the service. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SettableSerialPortOption.html b/Sources/Vendor/asio/doc/asio/reference/SettableSerialPortOption.html deleted file mode 100644 index 3ed7164..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SettableSerialPortOption.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Settable serial port option requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, X denotes a serial port option class, a - denotes a value of X, ec denotes a value of type - error_code, and s denotes a value of implementation-defined - type storage (where storage - is the type DCB on Windows and termios on POSIX - platforms), and u denotes an identifier. -

-
-

Table 24. SettableSerialPortOption requirements

-
----- - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- const X& u = a;
u.store(s, ec); -

-
-

- error_code -

-
-

- Saves the value of the serial port option to the storage.
-
If successful, sets ec such that !ec - is true. If an error occurred, sets ec such that - !!ec is true. Returns ec. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SettableSocketOption.html b/Sources/Vendor/asio/doc/asio/reference/SettableSocketOption.html deleted file mode 100644 index bd705c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SettableSocketOption.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -Settable socket option requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the SettableSocketOption requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a (possibly const) value of type - X, p denotes a (possibly const) value that meets - the Protocol - requirements, and u denotes an identifier. -

-
-

Table 25. SettableSocketOption requirements for extensible implementations

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- type -

-
-

- assertion/note
pre/post-conditions -

-
-

- a.level(p) -

-
-

- int -

-
-

- Returns a value suitable for passing as the level - argument to POSIX setsockopt() - (or equivalent). -

-
-

- a.name(p) -

-
-

- int -

-
-

- Returns a value suitable for passing as the option_name - argument to POSIX setsockopt() - (or equivalent). -

-
-

- a.data(p) -

-
-

- const void* -

-
-

- Returns a pointer suitable for passing as the option_value - argument to POSIX setsockopt() - (or equivalent). -

-
-

- a.size(p) -

-
-

- size_t -

-
-

- Returns a value suitable for passing as the option_len - argument to POSIX setsockopt() - (or equivalent), after appropriate integer conversion has been - performed. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ShutdownHandler.html b/Sources/Vendor/asio/doc/asio/reference/ShutdownHandler.html deleted file mode 100644 index 71b8e24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ShutdownHandler.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -SSL shutdown handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A shutdown handler must meet the requirements for a handler. - A value h of a shutdown handler class should work correctly - in the expression h(ec), where ec is an lvalue - of type const error_code. -

-
- - Examples -
-

- A free function as a shutdown handler: -

-
void shutdown_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- A shutdown handler function object: -

-
struct shutdown_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a shutdown handler: -

-
ssl_stream.async_shutdown(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a shutdown handler using std::bind(): -

-
void my_class::shutdown_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-ssl_stream.async_shutdown(
-    std::bind(&my_class::shutdown_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to a shutdown handler using boost::bind(): -

-
void my_class::shutdown_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-ssl_stream.async_shutdown(
-    boost::bind(&my_class::shutdown_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SignalHandler.html b/Sources/Vendor/asio/doc/asio/reference/SignalHandler.html deleted file mode 100644 index 678eb10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SignalHandler.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Signal handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A signal handler must meet the requirements for a handler. - A value h of a signal handler class should work correctly in - the expression h(ec, n), where ec is an lvalue - of type const error_code and n is an lvalue of - type const int. -

-
- - Examples -
-

- A free function as a signal handler: -

-
void signal_handler(
-    const asio::error_code& ec,
-    int signal_number)
-{
-  ...
-}
-
-

- A signal handler function object: -

-
struct signal_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      int signal_number)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a signal handler: -

-
my_signal_set.async_wait(
-    [](const asio::error_code& ec,
-      int signal_number)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a signal handler using std::bind(): -

-
void my_class::signal_handler(
-    const asio::error_code& ec,
-    int signal_number)
-{
-  ...
-}
-...
-my_signal_set.async_wait(
-    std::bind(&my_class::signal_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a signal handler using boost::bind(): -

-
void my_class::signal_handler(
-    const asio::error_code& ec,
-    int signal_number)
-{
-  ...
-}
-...
-my_signal_set.async_wait(
-    boost::bind(&my_class::signal_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::signal_number));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessReadDevice.html b/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessReadDevice.html deleted file mode 100644 index ec1c830..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessReadDevice.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -Buffer-oriented synchronous random-access read device requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, a denotes a synchronous random-access read - device object, o denotes an offset of type boost::uint64_t, - mb denotes an object satisfying mutable - buffer sequence requirements, and ec denotes an object - of type error_code. -

-
-

Table 26. Buffer-oriented synchronous random-access read device requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.read_some_at(o, mb); -

-
-

- size_t -

-
-

- Equivalent to: -

-
error_code ec;
-size_t s = a.read_some_at(o, mb, ec);
-if (ec) throw system_error(ec);
-return s;
-
-

-

-
-

- a.read_some_at(o, mb, ec); -

-
-

- size_t -

-
-

- Reads one or more bytes of data from the device a - at offset o.

The mutable buffer sequence - mb specifies memory where the data should be placed. - The read_some_at operation shall always fill a buffer - in the sequence completely before proceeding to the next.
-
If successful, returns the number of bytes read and sets - ec such that !ec is true. If an error - occurred, returns 0 and sets ec such - that !!ec is true.

If the total size - of all buffers in the sequence mb is 0, - the function shall return 0 immediately. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html b/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html deleted file mode 100644 index 82c07b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SyncRandomAccessWriteDevice.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -Buffer-oriented synchronous random-access write device requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, a denotes a synchronous random-access write - device object, o denotes an offset of type boost::uint64_t, - cb denotes an object satisfying constant - buffer sequence requirements, and ec denotes an object - of type error_code. -

-
-

Table 27. Buffer-oriented synchronous random-access write device requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.write_some_at(o, cb); -

-
-

- size_t -

-
-

- Equivalent to: -

-
error_code ec;
-size_t s = a.write_some(o, cb, ec);
-if (ec) throw system_error(ec);
-return s;
-
-

-

-
-

- a.write_some_at(o, cb, ec); -

-
-

- size_t -

-
-

- Writes one or more bytes of data to the device a at - offset o.

The constant buffer sequence - cb specifies memory where the data to be written is - located. The write_some_at operation shall always - write a buffer in the sequence completely before proceeding to - the next.

If successful, returns the number of bytes - written and sets ec such that !ec is - true. If an error occurred, returns 0 and sets ec - such that !!ec is true.

If the total - size of all buffers in the sequence cb is 0, - the function shall return 0 immediately. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SyncReadStream.html b/Sources/Vendor/asio/doc/asio/reference/SyncReadStream.html deleted file mode 100644 index b66e45e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SyncReadStream.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -Buffer-oriented synchronous read stream requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the SyncReadStream requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a value of type X, - mb denotes a (possibly const) value satisfying the MutableBufferSequence - requirements, and ec denotes an object of type error_code. -

-
-

Table 28. SyncReadStream requirements

-
----- - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.read_some(mb)
a.read_some(mb,ec) -

-
-

- size_t -

-
-

- Meets the requirements for a read - operation.

If buffer_size(mb) > 0, - reads one or more bytes of data from the stream a - into the buffer sequence mb. If successful, sets - ec such that !ec is true, - and returns the number of bytes read. If an error occurred, sets - ec such that !!ec is true, - and returns 0. If all data has been read from the stream, and the - stream performed an orderly shutdown, sets ec to - stream_errc::eof and returns 0.

If buffer_size(mb) - == 0, the operation shall not block. Sets ec - such that !ec is true, and returns 0. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/SyncWriteStream.html b/Sources/Vendor/asio/doc/asio/reference/SyncWriteStream.html deleted file mode 100644 index e8140d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/SyncWriteStream.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -Buffer-oriented synchronous write stream requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A type X meets the SyncWriteStream requirements - if it satisfies the requirements listed below. -

-

- In the table below, a denotes a value of type X, - cb denotes a (possibly const) value satisfying the ConstBufferSequence - requirements, and ec denotes an object of type error_code. -

-
-

Table 29. SyncWriteStream requirements

-
----- - - - - - - - - - - -
-

- operation -

-
-

- type -

-
-

- semantics, pre/post-conditions -

-
-

- a.write_some(cb)
a.write_some(cb,ec) -

-
-

- size_t -

-
-

- Meets the requirements for a write - operation.

If buffer_size(cb) > 0, - writes one or more bytes of data to the stream a from - the buffer sequence cb. If successful, sets ec - such that !ec is true, and returns the - number of bytes written. If an error occurred, sets ec - such that !!ec is true, and returns 0.
-
If buffer_size(cb) == 0, the operation shall - not block. Sets ec such that !ec is - true, and returns 0. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/TimeTraits.html b/Sources/Vendor/asio/doc/asio/reference/TimeTraits.html deleted file mode 100644 index 6d808f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/TimeTraits.html +++ /dev/null @@ -1,197 +0,0 @@ - - - -Time traits requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In the table below, X denotes a time traits class for time type - Time, t, t1, and t2 denote - values of type Time, and d denotes a value of type - X::duration_type. -

-
-

Table 30. TimeTraits requirements

-
----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- X::time_type -

-
-

- Time -

-
-

- Represents an absolute time. Must support default construction, - and meet the requirements for CopyConstructible and - Assignable. -

-
-

- X::duration_type -

-
- -

- Represents the difference between two absolute times. Must support - default construction, and meet the requirements for CopyConstructible - and Assignable. A duration can be positive, negative, - or zero. -

-
-

- X::now(); -

-
-

- time_type -

-
-

- Returns the current time. -

-
-

- X::add(t, d); -

-
-

- time_type -

-
-

- Returns a new absolute time resulting from adding the duration - d to the absolute time t. -

-
-

- X::subtract(t1, t2); -

-
-

- duration_type -

-
-

- Returns the duration resulting from subtracting t2 - from t1. -

-
-

- X::less_than(t1, t2); -

-
-

- bool -

-
-

- Returns whether t1 is to be treated as less than - t2. -

-
-

- X::to_posix_duration(d); -

-
-

- date_time::time_duration_type -

-
-

- Returns the date_time::time_duration_type value that - most closely represents the duration d. -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/WaitHandler.html b/Sources/Vendor/asio/doc/asio/reference/WaitHandler.html deleted file mode 100644 index 1122186..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/WaitHandler.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -Wait handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A wait handler must meet the requirements for a handler. - A value h of a wait handler class should work correctly in the - expression h(ec), where ec is an lvalue of type - const error_code. -

-
- - Examples -
-

- A free function as a wait handler: -

-
void wait_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-
-

- A wait handler function object: -

-
struct wait_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a wait handler: -

-
socket.async_wait(...,
-    [](const asio::error_code& ec)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a wait handler using std::bind(): -

-
void my_class::wait_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-socket.async_wait(...,
-    std::bind(&my_class::wait_handler,
-      this, std::placeholders::_1));
-
-

- A non-static class member function adapted to a wait handler using boost::bind(): -

-
void my_class::wait_handler(
-    const asio::error_code& ec)
-{
-  ...
-}
-...
-socket.async_wait(...,
-    boost::bind(&my_class::wait_handler,
-      this, asio::placeholders::error));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/WaitTraits.html b/Sources/Vendor/asio/doc/asio/reference/WaitTraits.html deleted file mode 100644 index 81a67cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/WaitTraits.html +++ /dev/null @@ -1,129 +0,0 @@ - - - -Wait traits requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The basic_waitable_timer template uses wait traits to allow - programs to customize wait and async_wait behavior. - [Note: Possible uses of wait traits include:
— To - enable timers based on non-realtime clocks.
— Determining how quickly - wallclock-based timers respond to system time changes.
— Correcting for - errors or rounding timeouts to boundaries.
— Preventing duration overflow. - That is, a program may set a timer's expiry e to be Clock::max() - (meaning never reached) or Clock::min() (meaning always in the - past). As a result, computing the duration until timer expiry as e - - Clock::now() may cause overflow. —end note] -

-

- For a type Clock meeting the Clock requirements - (C++Std [time.clock.req]), a type X meets the WaitTraits - requirements if it satisfies the requirements listed below. -

-

- In the table below, t denotes a (possibly const) value of type - Clock::time_point; and d denotes a (possibly const) - value of type Clock::duration. -

-
-

Table 31. WaitTraits requirements

-
----- - - - - - - - - - - - - - - - - - -
-

- expression -

-
-

- return type -

-
-

- assertion/note
pre/post-condition -

-
-

- X::to_wait_duration(d) -

-
-

- Clock::duration -

-
-

- Returns a Clock::duration value to be used in a wait - or async_wait operation. [Note: - The return value is typically representative of the duration d. - —end note] -

-
-

- X::to_wait_duration(t) -

-
-

- Clock::duration -

-
-

- Returns a Clock::duration value to be used in a wait - or async_wait operation. [Note: - The return value is typically representative of the duration from - Clock::now() until the time point t. - —end note] -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/WriteHandler.html b/Sources/Vendor/asio/doc/asio/reference/WriteHandler.html deleted file mode 100644 index b489bad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/WriteHandler.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -Write handler requirements - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A write handler must meet the requirements for a handler. - A value h of a write handler class should work correctly in - the expression h(ec, s), where ec is an lvalue - of type const error_code and s is an lvalue of - type const size_t. -

-
- - Examples -
-

- A free function as a write handler: -

-
void write_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-
-

- A write handler function object: -

-
struct write_handler
-{
-  ...
-  void operator()(
-      const asio::error_code& ec,
-      std::size_t bytes_transferred)
-  {
-    ...
-  }
-  ...
-};
-
-

- A lambda as a write handler: -

-
socket.async_write(...
-    [](const asio::error_code& ec,
-      std::size_t bytes_transferred)
-    {
-      ...
-    });
-
-

- A non-static class member function adapted to a write handler using std::bind(): -

-
void my_class::write_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_write(...,
-    std::bind(&my_class::write_handler,
-      this, std::placeholders::_1,
-      std::placeholders::_2));
-
-

- A non-static class member function adapted to a write handler using boost::bind(): -

-
void my_class::write_handler(
-    const asio::error_code& ec,
-    std::size_t bytes_transferred)
-{
-  ...
-}
-...
-socket.async_write(...,
-    boost::bind(&my_class::write_handler,
-      this, asio::placeholders::error,
-      asio::placeholders::bytes_transferred));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/add_service.html b/Sources/Vendor/asio/doc/asio/reference/add_service.html deleted file mode 100644 index eb3104d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/add_service.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
template<
-    typename Service>
-void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/impl/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_allocate.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_allocate.html deleted file mode 100644 index 739ae0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_allocate.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -asio_handler_allocate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default allocation - function for handlers. -

-
void * asio_handler_allocate(
-    std::size_t size,
-    ... );
-
-

- Asynchronous operations may need to allocate temporary objects. Since asynchronous - operations have a handler function object, these temporary objects can be - said to be associated with the handler. -

-

- Implement asio_handler_allocate and asio_handler_deallocate for your own - handlers to provide custom allocation for these temporary objects. -

-

- The default implementation of these allocation hooks uses operator - new and operator delete. -

-
- - Remarks -
-

- All temporary objects associated with a handler will be deallocated before - the upcall to the handler is performed. This allows the same memory to be - reused for a subsequent asynchronous operation initiated by the handler. -

-
- - Example -
-
class my_handler;
-
-void* asio_handler_allocate(std::size_t size, my_handler* context)
-{
-  return ::operator new(size);
-}
-
-void asio_handler_deallocate(void* pointer, std::size_t size,
-    my_handler* context)
-{
-  ::operator delete(pointer);
-}
-
-
- - Requirements -
-

- Header: asio/handler_alloc_hook.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_deallocate.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_deallocate.html deleted file mode 100644 index 5bc82ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_deallocate.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -asio_handler_deallocate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default deallocation - function for handlers. -

-
void asio_handler_deallocate(
-    void * pointer,
-    std::size_t size,
-    ... );
-
-

- Implement asio_handler_allocate and asio_handler_deallocate for your own - handlers to provide custom allocation for the associated temporary objects. -

-

- The default implementation of these allocation hooks uses operator - new and operator delete. -

-
- - Requirements -
-

- Header: asio/handler_alloc_hook.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke.html deleted file mode 100644 index 944435d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -asio_handler_invoke - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default invoke function - for handlers. -

-

- Default handler invocation hook used for non-const function objects. -

-
template<
-    typename Function>
-void asio_handler_invoke(
-    Function & function,
-    ... );
-  » more...
-
-

- Default handler invocation hook used for const function objects. -

-
template<
-    typename Function>
-void asio_handler_invoke(
-    const Function & function,
-    ... );
-  » more...
-
-

- Completion handlers for asynchronous operations are invoked by the io_context associated - with the corresponding object (e.g. a socket or deadline_timer). Certain - guarantees are made on when the handler may be invoked, in particular that - a handler can only be invoked from a thread that is currently calling run() - on the corresponding io_context - object. Handlers may subsequently be invoked through other objects (such - as io_context::strand - objects) that provide additional guarantees. -

-

- When asynchronous operations are composed from other asynchronous operations, - all intermediate handlers should be invoked using the same method as the - final handler. This is required to ensure that user-defined objects are not - accessed in a way that may violate the guarantees. This hooking function - ensures that the invoked method used for the final handler is accessible - at each intermediate step. -

-

- Implement asio_handler_invoke for your own handlers to specify a custom invocation - strategy. -

-

- This default implementation invokes the function object like so: -

-
function();
-
-

- If necessary, the default implementation makes a copy of the function object - so that the non-const operator() can be used. -

-
- - Example -
-
class my_handler;
-
-template <typename Function>
-void asio_handler_invoke(Function function, my_handler* context)
-{
-  context->strand_.dispatch(function);
-}
-
-
- - Requirements -
-

- Header: asio/handler_invoke_hook.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload1.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload1.html deleted file mode 100644 index e66547c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -asio_handler_invoke (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default handler invocation hook used for non-const function objects. -

-
template<
-    typename Function>
-void asio_handler_invoke(
-    Function & function,
-    ... );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload2.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload2.html deleted file mode 100644 index 98ce402..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_invoke/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -asio_handler_invoke (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default handler invocation hook used for const function objects. -

-
template<
-    typename Function>
-void asio_handler_invoke(
-    const Function & function,
-    ... );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asio_handler_is_continuation.html b/Sources/Vendor/asio/doc/asio/reference/asio_handler_is_continuation.html deleted file mode 100644 index 247a09d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asio_handler_is_continuation.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -asio_handler_is_continuation - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - continuation function for handlers. -

-
bool asio_handler_is_continuation(
-    ... );
-
-

- Asynchronous operations may represent a continuation of the asynchronous - control flow associated with the current handler. The implementation can - use this knowledge to optimise scheduling of the handler. -

-

- Implement asio_handler_is_continuation for your own handlers to indicate - when a handler represents a continuation. -

-

- The default implementation of the continuation hook returns false. -

-
- - Example -
-
class my_handler;
-
-bool asio_handler_is_continuation(my_handler* context)
-{
-  return true;
-}
-
-
- - Requirements -
-

- Header: asio/handler_continuation_hook.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_allocator.html b/Sources/Vendor/asio/doc/asio/reference/associated_allocator.html deleted file mode 100644 index 0f400e6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_allocator.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -associated_allocator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Traits type used to obtain the allocator associated with an object. -

-
template<
-    typename T,
-    typename Allocator = std::allocator<void>>
-struct associated_allocator
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-

- If T has a nested type allocator_type, T::allocator_type. Otherwise - Allocator. -

-
-
- - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get -

-
-

- If T has a nested type allocator_type, returns t.get_allocator(). - Otherwise returns a. -

-
-

- A program may specialise this traits type if the T template - parameter in the specialisation is a user-defined type. The template parameter - Allocator shall be a type meeting the Allocator requirements. -

-

- Specialisations shall meet the following requirements, where t - is a const reference to an object of type T, and a - is an object of type Allocator. -

-
    -
  • - Provide a nested typedef type that identifies a type meeting - the Allocator requirements. -
  • -
  • - Provide a noexcept static member function named get, callable - as get(t) and with return type type. -
  • -
  • - Provide a noexcept static member function named get, callable - as get(t,a) and with return type type. -
  • -
-
- - Requirements -
-

- Header: asio/associated_allocator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_allocator/get.html b/Sources/Vendor/asio/doc/asio/reference/associated_allocator/get.html deleted file mode 100644 index bcc1c4e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_allocator/get.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -associated_allocator::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If T - has a nested type allocator_type, returns t.get_allocator(). - Otherwise returns a. -

-
static type get(
-    const T & t,
-    const Allocator & a = Allocator());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_allocator/type.html b/Sources/Vendor/asio/doc/asio/reference/associated_allocator/type.html deleted file mode 100644 index 8e16408..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_allocator/type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -associated_allocator::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If T - has a nested type allocator_type, T::allocator_type. - Otherwise Allocator. -

-
typedef see_below type;
-
-
- - Requirements -
-

- Header: asio/associated_allocator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_executor.html b/Sources/Vendor/asio/doc/asio/reference/associated_executor.html deleted file mode 100644 index 9101416..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_executor.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -associated_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Traits type used to obtain the executor associated with an object. -

-
template<
-    typename T,
-    typename Executor = system_executor>
-struct associated_executor
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-

- If T has a nested type executor_type, T::executor_type. Otherwise - Executor. -

-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get -

-
-

- If T has a nested type executor_type, returns t.get_executor(). - Otherwise returns ex. -

-
-

- A program may specialise this traits type if the T template - parameter in the specialisation is a user-defined type. The template parameter - Executor shall be a type meeting the Executor requirements. -

-

- Specialisations shall meet the following requirements, where t - is a const reference to an object of type T, and e - is an object of type Executor. -

-
    -
  • - Provide a nested typedef type that identifies a type meeting - the Executor requirements. -
  • -
  • - Provide a noexcept static member function named get, callable - as get(t) and with return type type. -
  • -
  • - Provide a noexcept static member function named get, callable - as get(t,e) and with return type type. -
  • -
-
- - Requirements -
-

- Header: asio/associated_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_executor/get.html b/Sources/Vendor/asio/doc/asio/reference/associated_executor/get.html deleted file mode 100644 index 72cb510..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_executor/get.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -associated_executor::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If T - has a nested type executor_type, returns t.get_executor(). - Otherwise returns ex. -

-
static type get(
-    const T & t,
-    const Executor & ex = Executor());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/associated_executor/type.html b/Sources/Vendor/asio/doc/asio/reference/associated_executor/type.html deleted file mode 100644 index 31c01cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/associated_executor/type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -associated_executor::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If T - has a nested type executor_type, T::executor_type. - Otherwise Executor. -

-
typedef see_below type;
-
-
- - Requirements -
-

- Header: asio/associated_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion.html b/Sources/Vendor/asio/doc/asio/reference/async_completion.html deleted file mode 100644 index e4f8746..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -async_completion - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper template to deduce the handler type from a CompletionToken, capture - a local copy of the handler, and then create an async_result - for the handler. -

-
template<
-    typename CompletionToken,
-    typename Signature>
-struct async_completion
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler_type -

-
-

- The real handler type to be used for the asynchronous operation. -

-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_completion -

-
-

- Constructor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler -

-
-

- A copy of, or reference to, a real handler object. -

-
-

- result -

-
-

- The result of the asynchronous operation's initiating function. -

-
-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion/async_completion.html b/Sources/Vendor/asio/doc/asio/reference/async_completion/async_completion.html deleted file mode 100644 index 7bcea15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion/async_completion.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -async_completion::async_completion - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
async_completion(
-    CompletionToken & token);
-
-

- The constructor creates the concrete completion handler and makes the link - between the handler and the asynchronous result. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler.html b/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler.html deleted file mode 100644 index 6fe32da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -async_completion::completion_handler - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - copy of, or reference to, a real handler object. -

-
conditional< is_same< CompletionToken, completion_handler_type >::value, completion_handler_type &, completion_handler_type >::type completion_handler;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler_type.html b/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler_type.html deleted file mode 100644 index d94dcc7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion/completion_handler_type.html +++ /dev/null @@ -1,175 +0,0 @@ - - - -async_completion::completion_handler_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - real handler type to be used for the asynchronous operation. -

-
typedef asio::async_result< typename decay< CompletionToken >::type, Signature >::completion_handler_type completion_handler_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler_type -

-
-

- The concrete completion handler type for the specific signature. -

-
-

- return_type -

-
-

- The return type of the initiating function. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_result -

-
-

- Construct an async result from a given handler. -

-
-

- get -

-
-

- Obtain the value to be returned from the initiating function. -

-
-

- The async_result - traits class is used for determining: -

-
    -
  • - the concrete completion handler type to be called at the end of the - asynchronous operation; -
  • -
  • - the initiating function return type; and -
  • -
  • - how the return value of the initiating function is obtained. -
  • -
-

- The trait allows the handler and return types to be determined at the point - where the specific completion handler signature is known. -

-

- This template may be specialised for user-defined completion token types. - The primary template assumes that the CompletionToken is the completion - handler. -

-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_completion/result.html b/Sources/Vendor/asio/doc/asio/reference/async_completion/result.html deleted file mode 100644 index 7449aca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_completion/result.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -async_completion::result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The result - of the asynchronous operation's initiating function. -

-
async_result< typename decay< CompletionToken >::type, Signature > result;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/async_connect.html deleted file mode 100644 index 288f675..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_connect function - is a composed asynchronous operation that establishes a socket connection - by trying each endpoint in a sequence. -

-

- Asynchronously establishes a socket connection by trying each endpoint in - a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename RangeConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    RangeConnectHandler && handler,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-

- (Deprecated: Use range overload.) Asynchronously establishes a socket connection - by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    IteratorConnectHandler && handler,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-

- Asynchronously establishes a socket connection by trying each endpoint in - a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    IteratorConnectHandler && handler);
-  » more...
-
-template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition,
-    typename RangeConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    RangeConnectHandler && handler,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-

- (Deprecated: Use range overload.) Asynchronously establishes a socket connection - by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    IteratorConnectHandler && handler,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-

- Asynchronously establishes a socket connection by trying each endpoint in - a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition,
-    IteratorConnectHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/connect.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload1.html deleted file mode 100644 index 1dfe276..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload1.html +++ /dev/null @@ -1,133 +0,0 @@ - - - -async_connect (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously establishes a socket connection by trying each endpoint - in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename RangeConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    RangeConnectHandler && handler,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, the successfully connected endpoint.
-  // Otherwise, a default-constructed endpoint.
-  const typename Protocol::endpoint& endpoint
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-
-// ...
-
-r.async_resolve(q, resolve_handler);
-
-// ...
-
-void resolve_handler(
-    const asio::error_code& ec,
-    tcp::resolver::results_type results)
-{
-  if (!ec)
-  {
-    asio::async_connect(s, results, connect_handler);
-  }
-}
-
-// ...
-
-void connect_handler(
-    const asio::error_code& ec,
-    const tcp::endpoint& endpoint)
-{
-  // ...
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload2.html deleted file mode 100644 index 0321495..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload2.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -async_connect (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Asynchronously establishes a socket connection - by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    IteratorConnectHandler && handler,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload3.html deleted file mode 100644 index 38dcc87..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload3.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -async_connect (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously establishes a socket connection by trying each endpoint - in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    IteratorConnectHandler && handler);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
std::vector<tcp::endpoint> endpoints = ...;
-tcp::socket s(io_context);
-asio::async_connect(s,
-    endpoints.begin(), endpoints.end(),
-    connect_handler);
-
-// ...
-
-void connect_handler(
-    const asio::error_code& ec,
-    std::vector<tcp::endpoint>::iterator i)
-{
-  // ...
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload4.html deleted file mode 100644 index 0f6a4bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload4.html +++ /dev/null @@ -1,182 +0,0 @@ - - - -async_connect (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously establishes a socket connection by trying each endpoint - in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition,
-    typename RangeConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    RangeConnectHandler && handler,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-
-// ...
-
-r.async_resolve(q, resolve_handler);
-
-// ...
-
-void resolve_handler(
-    const asio::error_code& ec,
-    tcp::resolver::results_type results)
-{
-  if (!ec)
-  {
-    asio::async_connect(s, results,
-        my_connect_condition(),
-        connect_handler);
-  }
-}
-
-// ...
-
-void connect_handler(
-    const asio::error_code& ec,
-    const tcp::endpoint& endpoint)
-{
-  if (ec)
-  {
-    // An error occurred.
-  }
-  else
-  {
-    std::cout << "Connected to: " << endpoint << std::endl;
-  }
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload5.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload5.html deleted file mode 100644 index 3b120c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload5.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -async_connect (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Asynchronously establishes a socket connection - by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    IteratorConnectHandler && handler,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload6.html b/Sources/Vendor/asio/doc/asio/reference/async_connect/overload6.html deleted file mode 100644 index b0b24cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_connect/overload6.html +++ /dev/null @@ -1,187 +0,0 @@ - - - -async_connect (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously establishes a socket connection by trying each endpoint - in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition,
-    typename IteratorConnectHandler>
-DEDUCED async_connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition,
-    IteratorConnectHandler && handler);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's async_connect - member function, once for each endpoint in the sequence, until a connection - is successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
handler
-
-

- The handler to be called when the connect operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation. if the sequence is empty, set to
-  // asio::error::not_found. Otherwise, contains the
-  // error from the last connection attempt.
-  const asio::error_code& error,
-
-  // On success, an iterator denoting the successfully
-  // connected endpoint. Otherwise, the end iterator.
-  Iterator iterator
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-
-// ...
-
-r.async_resolve(q, resolve_handler);
-
-// ...
-
-void resolve_handler(
-    const asio::error_code& ec,
-    tcp::resolver::iterator i)
-{
-  if (!ec)
-  {
-    tcp::resolver::iterator end;
-    asio::async_connect(s, i, end,
-        my_connect_condition(),
-        connect_handler);
-  }
-}
-
-// ...
-
-void connect_handler(
-    const asio::error_code& ec,
-    tcp::resolver::iterator i)
-{
-  if (ec)
-  {
-    // An error occurred.
-  }
-  else
-  {
-    std::cout << "Connected to: " << i->endpoint() << std::endl;
-  }
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read.html b/Sources/Vendor/asio/doc/asio/reference/async_read.html deleted file mode 100644 index 0d25794..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -async_read - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_read function is - a composed asynchronous operation that reads a certain amount of data from - a stream before completion. -

-

- Start an asynchronous operation to read a certain amount of data from a stream. -

-
template<
-    typename AsyncReadStream,
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    ReadHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload1.html deleted file mode 100644 index 64d00c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload1.html +++ /dev/null @@ -1,147 +0,0 @@ - - - -async_read (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - The program must ensure that the stream performs no other read operations - (such as async_read, the stream's async_read_some function, or any other - composed operations that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. Although the buffers object may be copied as necessary, - ownership of the underlying memory blocks is retained by the caller, - which must guarantee that they remain valid until the handler is - called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::async_read(s, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read(
-    s, buffers,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload2.html deleted file mode 100644 index 5517fda..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload2.html +++ /dev/null @@ -1,153 +0,0 @@ - - - -async_read (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. Although the buffers object may be copied as necessary, - ownership of the underlying memory blocks is retained by the caller, - which must guarantee that they remain valid until the handler is - called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's async_read_some function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::async_read(s,
-    asio::buffer(data, size),
-    asio::transfer_at_least(32),
-    handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload3.html deleted file mode 100644 index bc2afc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload3.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -async_read (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    ReadHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - The program must ensure that the stream performs no other read operations - (such as async_read, the stream's async_read_some function, or any other - composed operations that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read(
-    s, buffers,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload4.html deleted file mode 100644 index c13a209..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload4.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -async_read (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - The program must ensure that the stream performs no other read operations - (such as async_read, the stream's async_read_some function, or any other - composed operations that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's async_read_some function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload5.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload5.html deleted file mode 100644 index 97ec804..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload5.html +++ /dev/null @@ -1,128 +0,0 @@ - - - -async_read (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - The program must ensure that the stream performs no other read operations - (such as async_read, the stream's async_read_some function, or any other - composed operations that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A basic_streambuf - object into which the data will be read. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read(
-    s, b,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read/overload6.html b/Sources/Vendor/asio/doc/asio/reference/async_read/overload6.html deleted file mode 100644 index 3c947b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read/overload6.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -async_read (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data from a - stream. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read(
-    AsyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - The program must ensure that the stream performs no other read operations - (such as async_read, the stream's async_read_some function, or any other - composed operations that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A basic_streambuf - object into which the data will be read. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's async_read_some function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes copied into the
-                                          // buffers. If an error occurred,
-                                          // this will be the  number of
-                                          // bytes successfully transferred
-                                          // prior to the error.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at.html deleted file mode 100644 index 383b7b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -async_read_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_read_at function - is a composed asynchronous operation that reads a certain amount of data - at the specified offset. -

-

- Start an asynchronous operation to read a certain amount of data at the specified - offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncRandomAccessReadDevice,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read_at.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload1.html deleted file mode 100644 index 98a8c20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload1.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -async_read_at (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a random access device at the specified offset. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - async_read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the AsyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. Although the buffers object may be copied as necessary, - ownership of the underlying memory blocks is retained by the caller, - which must guarantee that they remain valid until the handler is - called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes copied into the buffers. If an error
-  // occurred, this will be the number of bytes successfully
-  // transferred prior to the error.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::async_read_at(d, 42, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read_at(
-    d, 42, buffers,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload2.html deleted file mode 100644 index bb13f11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -async_read_at (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a random access device at the specified offset. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the AsyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. Although the buffers object may be copied as necessary, - ownership of the underlying memory blocks is retained by the caller, - which must guarantee that they remain valid until the handler is - called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's async_read_some_at function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes copied into the buffers. If an error
-  // occurred, this will be the number of bytes successfully
-  // transferred prior to the error.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::async_read_at(d, 42,
-    asio::buffer(data, size),
-    asio::transfer_at_least(32),
-    handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload3.html deleted file mode 100644 index 3a5505f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload3.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -async_read_at (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a random access device at the specified offset. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
  • - An error occurred. -
-

- This operation is implemented in terms of zero or more calls to the device's - async_read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the AsyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- A basic_streambuf - object into which the data will be read. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes copied into the buffers. If an error
-  // occurred, this will be the number of bytes successfully
-  // transferred prior to the error.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::async_read_at(
-    d, 42, b,
-    asio::transfer_all(),
-    handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload4.html deleted file mode 100644 index fa9386b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_at/overload4.html +++ /dev/null @@ -1,135 +0,0 @@ - - - -async_read_at (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition,
-    typename ReadHandler>
-DEDUCED async_read_at(
-    AsyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read a certain number of bytes - of data from a random access device at the specified offset. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
  • - The completion_condition function object returns 0. -
-

- This operation is implemented in terms of zero or more calls to the device's - async_read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the AsyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- A basic_streambuf - object into which the data will be read. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's async_read_some_at function. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes copied into the buffers. If an error
-  // occurred, this will be the number of bytes successfully
-  // transferred prior to the error.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until.html deleted file mode 100644 index 9b252f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until.html +++ /dev/null @@ -1,169 +0,0 @@ - - - -async_read_until - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_read_until - function is a composed asynchronous operation that reads data into a dynamic - buffer sequence, or into a streambuf, until it contains a delimiter, matches - a regular expression, or a function object indicates a match. -

-

- Start an asynchronous operation to read data into a dynamic buffer sequence - until it contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim,
-    ReadHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to read data into a dynamic buffer sequence - until some part of its data matches a regular expression. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr,
-    ReadHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to read data into a dynamic buffer sequence - until a function object indicates a match. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    ReadHandler && handler,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to read data into a streambuf until it contains - a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim,
-    ReadHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to read data into a streambuf until some - part of its data matches a regular expression. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr,
-    ReadHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to read data into a streambuf until a function - object indicates a match. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename MatchCondition,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    ReadHandler && handler,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read_until.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload1.html deleted file mode 100644 index 4310f76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload1.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -async_read_until (1 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a dynamic buffer sequence - until it contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified dynamic - buffer sequence until the dynamic buffer sequence's get area contains the - specified delimiter. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - If the dynamic buffer sequence's get area already contains the delimiter, - this asynchronous operation completes immediately. The program must ensure - that the stream performs no other read operations (such as async_read, - async_read_until, the stream's async_read_some function, or any other composed - operations that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
delim
-

- The delimiter character. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the dynamic buffer sequence's
-  // get area up to and including the delimiter.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the dynamic buffer sequence - may contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent async_read_until - operation to examine. -

-
- - Example -
-

- To asynchronously read data into a std::string until a newline - is encountered: -

-
std::string data;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::string line = data.substr(0, n);
-    data.erase(0, n);
-    ...
-  }
-}
-...
-asio::async_read_until(s, data, '\n', handler);
-
-

- After the async_read_until operation completes successfully, - the buffer data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\n' }
-
-

- After the call to erase, the remaining data is left in the - buffer data as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload2.html deleted file mode 100644 index 01073c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload2.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -async_read_until (2 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a dynamic buffer sequence - until it contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified dynamic - buffer sequence until the dynamic buffer sequence's get area contains the - specified delimiter. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - If the dynamic buffer sequence's get area already contains the delimiter, - this asynchronous operation completes immediately. The program must ensure - that the stream performs no other read operations (such as async_read, - async_read_until, the stream's async_read_some function, or any other composed - operations that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
delim
-

- The delimiter string. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the dynamic buffer sequence's
-  // get area up to and including the delimiter.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the dynamic buffer sequence - may contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent async_read_until - operation to examine. -

-
- - Example -
-

- To asynchronously read data into a std::string until a CR-LF - sequence is encountered: -

-
std::string data;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::string line = data.substr(0, n);
-    data.erase(0, n);
-    ...
-  }
-}
-...
-asio::async_read_until(s, data, "\r\n", handler);
-
-

- After the async_read_until operation completes successfully, - the string data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\r', '\n' }
-
-

- After the call to erase, the remaining data is left in the - string data as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload3.html deleted file mode 100644 index 8a24351..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload3.html +++ /dev/null @@ -1,183 +0,0 @@ - - - -async_read_until (3 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a dynamic buffer sequence - until some part of its data matches a regular expression. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified dynamic - buffer sequence until the dynamic buffer sequence's get area contains some - data that matches a regular expression. The function call always returns - immediately. The asynchronous operation will continue until one of the - following conditions is true: -

-
    -
  • - A substring of the dynamic buffer sequence's get area matches the regular - expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - If the dynamic buffer sequence's get area already contains data that matches - the regular expression, this asynchronous operation completes immediately. - The program must ensure that the stream performs no other read operations - (such as async_read, async_read_until, the stream's async_read_some function, - or any other composed operations that perform reads) until this operation - completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
expr
-

- The regular expression. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the dynamic buffer
-  // sequence's get area up to and including the
-  // substring that matches the regular expression.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the dynamic buffer sequence - may contain additional data beyond that which matched the regular expression. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent async_read_until operation to examine. -

-
- - Example -
-

- To asynchronously read data into a std::string until a CR-LF - sequence is encountered: -

-
std::string data;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::string line = data.substr(0, n);
-    data.erase(0, n);
-    ...
-  }
-}
-...
-asio::async_read_until(s, data,
-    boost::regex("\r\n"), handler);
-
-

- After the async_read_until operation completes successfully, - the string data contains the data which matched the regular - expression: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the match, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\r', '\n' }
-
-

- After the call to erase, the remaining data is left in the - string data as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload4.html deleted file mode 100644 index 5d633ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload4.html +++ /dev/null @@ -1,223 +0,0 @@ - - - -async_read_until (4 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a dynamic buffer sequence - until a function object indicates a match. -

-
template<
-    typename AsyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    ReadHandler && handler,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to asynchronously read data into the specified dynamic - buffer sequence until a user-defined match condition function object, when - applied to the data contained in the dynamic buffer sequence, indicates - a successful match. The function call always returns immediately. The asynchronous - operation will continue until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - If the match condition function object already indicates a match, this - asynchronous operation completes immediately. The program must ensure that - the stream performs no other read operations (such as async_read, async_read_until, - the stream's async_read_some function, or any other composed operations - that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<typename DynamicBuffer::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the dynamic buffer sequence's
-  // get area that have been fully consumed by the match
-  // function. O if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the dynamic buffer sequence - may contain additional data beyond that which matched the function object. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent async_read_until operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - Examples -
-

- To asynchronously read data into a std::string until whitespace - is encountered: -

-
typedef asio::buffers_iterator<
-    asio::const_buffers_1> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-void handler(const asio::error_code& e, std::size_t size);
-...
-std::string data;
-asio::async_read_until(s, data, match_whitespace, handler);
-
-

- To asynchronously read data into a std::string until a matching - character is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-void handler(const asio::error_code& e, std::size_t size);
-...
-std::string data;
-asio::async_read_until(s, data, match_char('a'), handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload5.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload5.html deleted file mode 100644 index 1952aa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload5.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -async_read_until (5 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a streambuf until it - contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified streambuf - until the streambuf's get area contains the specified delimiter. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - If the streambuf's get area already contains the delimiter, this asynchronous - operation completes immediately. The program must ensure that the stream - performs no other read operations (such as async_read, async_read_until, - the stream's async_read_some function, or any other composed operations - that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. Ownership of - the streambuf is retained by the caller, which must guarantee that - it remains valid until the handler is called. -

-
delim
-

- The delimiter character. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the streambuf's get
-  // area up to and including the delimiter.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the streambuf may contain - additional data beyond the delimiter. An application will typically leave - that data in the streambuf for a subsequent async_read_until operation - to examine. -

-
- - Example -
-

- To asynchronously read data into a streambuf until a newline is encountered: -

-
asio::streambuf b;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::istream is(&b);
-    std::string line;
-    std::getline(is, line);
-    ...
-  }
-}
-...
-asio::async_read_until(s, b, '\n', handler);
-
-

- After the async_read_until operation completes successfully, - the buffer b contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload6.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload6.html deleted file mode 100644 index caf9880..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload6.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -async_read_until (6 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a streambuf until it - contains a specified delimiter. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified streambuf - until the streambuf's get area contains the specified delimiter. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - If the streambuf's get area already contains the delimiter, this asynchronous - operation completes immediately. The program must ensure that the stream - performs no other read operations (such as async_read, async_read_until, - the stream's async_read_some function, or any other composed operations - that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. Ownership of - the streambuf is retained by the caller, which must guarantee that - it remains valid until the handler is called. -

-
delim
-

- The delimiter string. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the streambuf's get
-  // area up to and including the delimiter.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the streambuf may contain - additional data beyond the delimiter. An application will typically leave - that data in the streambuf for a subsequent async_read_until operation - to examine. -

-
- - Example -
-

- To asynchronously read data into a streambuf until a newline is encountered: -

-
asio::streambuf b;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::istream is(&b);
-    std::string line;
-    std::getline(is, line);
-    ...
-  }
-}
-...
-asio::async_read_until(s, b, "\r\n", handler);
-
-

- After the async_read_until operation completes successfully, - the buffer b contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c', '\r' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload7.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload7.html deleted file mode 100644 index 6322d8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload7.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -async_read_until (7 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a streambuf until some - part of its data matches a regular expression. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data into the specified streambuf - until the streambuf's get area contains some data that matches a regular - expression. The function call always returns immediately. The asynchronous - operation will continue until one of the following conditions is true: -

-
    -
  • - A substring of the streambuf's get area matches the regular expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - If the streambuf's get area already contains data that matches the regular - expression, this asynchronous operation completes immediately. The program - must ensure that the stream performs no other read operations (such as - async_read, async_read_until, the stream's async_read_some function, or - any other composed operations that perform reads) until this operation - completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. Ownership of - the streambuf is retained by the caller, which must guarantee that - it remains valid until the handler is called. -

-
expr
-

- The regular expression. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the streambuf's get
-  // area up to and including the substring
-  // that matches the regular. expression.
-  // 0 if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the streambuf may contain - additional data beyond that which matched the regular expression. An application - will typically leave that data in the streambuf for a subsequent async_read_until - operation to examine. -

-
- - Example -
-

- To asynchronously read data into a streambuf until a CR-LF sequence is - encountered: -

-
asio::streambuf b;
-...
-void handler(const asio::error_code& e, std::size_t size)
-{
-  if (!e)
-  {
-    std::istream is(&b);
-    std::string line;
-    std::getline(is, line);
-    ...
-  }
-}
-...
-asio::async_read_until(s, b, boost::regex("\r\n"), handler);
-
-

- After the async_read_until operation completes successfully, - the buffer b contains the data which matched the regular expression: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c', '\r' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - async_read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload8.html b/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload8.html deleted file mode 100644 index 777cebd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_read_until/overload8.html +++ /dev/null @@ -1,219 +0,0 @@ - - - -async_read_until (8 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to read data into a streambuf until a function - object indicates a match. -

-
template<
-    typename AsyncReadStream,
-    typename Allocator,
-    typename MatchCondition,
-    typename ReadHandler>
-DEDUCED async_read_until(
-    AsyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    ReadHandler && handler,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to asynchronously read data into the specified streambuf - until a user-defined match condition function object, when applied to the - data contained in the streambuf, indicates a successful match. The function - call always returns immediately. The asynchronous operation will continue - until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_read_some function, and is known as a composed operation. - If the match condition function object already indicates a match, this - asynchronous operation completes immediately. The program must ensure that - the stream performs no other read operations (such as async_read, async_read_until, - the stream's async_read_some function, or any other composed operations - that perform reads) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the AsyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // The number of bytes in the streambuf's get
-  // area that have been fully consumed by the
-  // match function. O if an error occurred.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- After a successful async_read_until operation, the streambuf may contain - additional data beyond that which matched the function object. An application - will typically leave that data in the streambuf for a subsequent async_read_until - operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - Examples -
-

- To asynchronously read data into a streambuf until whitespace is encountered: -

-
typedef asio::buffers_iterator<
-    asio::streambuf::const_buffers_type> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-void handler(const asio::error_code& e, std::size_t size);
-...
-asio::streambuf b;
-asio::async_read_until(s, b, match_whitespace, handler);
-
-

- To asynchronously read data into a streambuf until a matching character - is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-void handler(const asio::error_code& e, std::size_t size);
-...
-asio::streambuf b;
-asio::async_read_until(s, b, match_char('a'), handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result.html b/Sources/Vendor/asio/doc/asio/reference/async_result.html deleted file mode 100644 index 7cd928b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result.html +++ /dev/null @@ -1,175 +0,0 @@ - - - -async_result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An interface for customising the behaviour of an initiating function. -

-
template<
-    typename CompletionToken,
-    typename Signature>
-class async_result
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler_type -

-
-

- The concrete completion handler type for the specific signature. -

-
-

- return_type -

-
-

- The return type of the initiating function. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_result -

-
-

- Construct an async result from a given handler. -

-
-

- get -

-
-

- Obtain the value to be returned from the initiating function. -

-
-

- The async_result - traits class is used for determining: -

-
    -
  • - the concrete completion handler type to be called at the end of the asynchronous - operation; -
  • -
  • - the initiating function return type; and -
  • -
  • - how the return value of the initiating function is obtained. -
  • -
-

- The trait allows the handler and return types to be determined at the point - where the specific completion handler signature is known. -

-

- This template may be specialised for user-defined completion token types. - The primary template assumes that the CompletionToken is the completion handler. -

-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result/async_result.html b/Sources/Vendor/asio/doc/asio/reference/async_result/async_result.html deleted file mode 100644 index 34a2c7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result/async_result.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -async_result::async_result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an async result from a given handler. -

-
async_result(
-    completion_handler_type & h);
-
-

- When using a specalised async_result, - the constructor has an opportunity to initialise some state associated - with the completion handler, which is then returned from the initiating - function. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result/completion_handler_type.html b/Sources/Vendor/asio/doc/asio/reference/async_result/completion_handler_type.html deleted file mode 100644 index b52681f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result/completion_handler_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -async_result::completion_handler_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - concrete completion handler type for the specific signature. -

-
typedef CompletionToken completion_handler_type;
-
-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result/get.html b/Sources/Vendor/asio/doc/asio/reference/async_result/get.html deleted file mode 100644 index c4d23c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result/get.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -async_result::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the value to be returned - from the initiating function. -

-
return_type get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result/return_type.html b/Sources/Vendor/asio/doc/asio/reference/async_result/return_type.html deleted file mode 100644 index eed1312..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result/return_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -async_result::return_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The return - type of the initiating function. -

-
typedef void return_type;
-
-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_.html deleted file mode 100644 index 2f34b80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -async_result< Handler > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use two-parameter version of async_result.) - An interface for customising the behaviour of an initiating function. -

-
template<
-    typename Handler>
-class async_result< Handler >
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-

- The return type of the initiating function. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_result -

-
-

- Construct an async result from a given handler. -

-
-

- get -

-
-

- Obtain the value to be returned from the initiating function. -

-
-

- This template may be specialised for user-defined handler types. -

-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/async_result.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/async_result.html deleted file mode 100644 index 3444bee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/async_result.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -async_result< Handler >::async_result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an async result from a given handler. -

-
async_result(
-    Handler & );
-
-

- When using a specalised async_result, - the constructor has an opportunity to initialise some state associated - with the handler, which is then returned from the initiating function. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/get.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/get.html deleted file mode 100644 index 47045dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/get.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -async_result< Handler >::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the value to be returned from the initiating function. -

-
type get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/type.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/type.html deleted file mode 100644 index dd7f095..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__Handler__gt_/type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -async_result< Handler >::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The return type of the initiating function. -

-
typedef void type;
-
-
- - Requirements -
-

- Header: asio/async_result.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html deleted file mode 100644 index 911cc18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Partial specialisation of async_result for std::packaged_task. -

-
template<
-    typename Result,
-    typename... Args,
-    typename Signature>
-class async_result< std::packaged_task< Result(Args...)>, Signature >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- completion_handler_type -

-
-

- The packaged task is the concrete completion handler type. -

-
-

- return_type -

-
-

- The return type of the initiating function is the future obtained - from the packaged task. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_result -

-
-

- The constructor extracts the future from the packaged task. -

-
-

- get -

-
-

- Returns the packaged task's future. -

-
-
- - Requirements -
-

- Header: asio/packaged_task.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html deleted file mode 100644 index 105ab74..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature >::async_result - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The constructor - extracts the future from the packaged task. -

-
async_result(
-    completion_handler_type & h);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html deleted file mode 100644 index 3575f2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature >::completion_handler_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The packaged - task is the concrete completion handler type. -

-
typedef std::packaged_task< Result(Args...)> completion_handler_type;
-
-
- - Requirements -
-

- Header: asio/packaged_task.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html deleted file mode 100644 index 13204b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature >::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns the packaged - task's future. -

-
return_type get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html b/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html deleted file mode 100644 index d2dd907..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -async_result< std::packaged_task< Result(Args...)>, Signature >::return_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The return type - of the initiating function is the future obtained from the packaged task. -

-
typedef std::future< Result > return_type;
-
-
- - Requirements -
-

- Header: asio/packaged_task.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write.html b/Sources/Vendor/asio/doc/asio/reference/async_write.html deleted file mode 100644 index 6ede9c8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -async_write - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_write function - is a composed asynchronous operation that writes a certain amount of data - to a stream before completion. -

-

- Start an asynchronous operation to write all of the supplied data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to write all of the supplied data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename DynamicBuffer,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    DynamicBuffer && buffers,
-    WriteHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-

- Start an asynchronous operation to write all of the supplied data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename Allocator,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    WriteHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data to a stream. -

-
template<
-    typename AsyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/write.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload1.html deleted file mode 100644 index 75521c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload1.html +++ /dev/null @@ -1,132 +0,0 @@ - - - -async_write (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_write_some function, and is known as a composed operation. - The program must ensure that the stream performs no other write operations - (such as async_write, the stream's async_write_some function, or any other - composed operations that perform writes) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::async_write(s, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload2.html deleted file mode 100644 index e8dccfb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -async_write (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_write_some function, and is known as a composed operation. - The program must ensure that the stream performs no other write operations - (such as async_write, the stream's async_write_some function, or any other - composed operations that perform writes) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's async_write_some function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::async_write(s,
-    asio::buffer(data, size),
-    asio::transfer_at_least(32),
-    handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload3.html deleted file mode 100644 index 2aa1aeb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload3.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -async_write (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename DynamicBuffer,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    DynamicBuffer && buffers,
-    WriteHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_write_some function, and is known as a composed operation. - The program must ensure that the stream performs no other write operations - (such as async_write, the stream's async_write_some function, or any other - composed operations that perform writes) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. Successfully written - data is automatically consumed from the buffers. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload4.html deleted file mode 100644 index b12a51a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload4.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -async_write (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_write_some function, and is known as a composed operation. - The program must ensure that the stream performs no other write operations - (such as async_write, the stream's async_write_some function, or any other - composed operations that perform writes) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. Successfully written - data is automatically consumed from the buffers. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's async_write_some function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload5.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload5.html deleted file mode 100644 index b1af712..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload5.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -async_write (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename Allocator,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_write_some function, and is known as a composed operation. - The program must ensure that the stream performs no other write operations - (such as async_write, the stream's async_write_some function, or any other - composed operations that perform writes) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
b
-

- A basic_streambuf - object from which data will be written. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write/overload6.html b/Sources/Vendor/asio/doc/asio/reference/async_write/overload6.html deleted file mode 100644 index dee577e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write/overload6.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -async_write (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data to a - stream. -

-
template<
-    typename AsyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write(
-    AsyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a stream. The function call always returns immediately. The - asynchronous operation will continue until one of the following conditions - is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - async_write_some function, and is known as a composed operation. - The program must ensure that the stream performs no other write operations - (such as async_write, the stream's async_write_some function, or any other - composed operations that perform writes) until this operation completes. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the AsyncWriteStream concept. -

-
b
-

- A basic_streambuf - object from which data will be written. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's async_write_some function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-
-  std::size_t bytes_transferred           // Number of bytes written from the
-                                          // buffers. If an error occurred,
-                                          // this will be less than the sum
-                                          // of the buffer sizes.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at.html deleted file mode 100644 index 1c851a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -async_write_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The async_write_at - function is a composed asynchronous operation that writes a certain amount - of data at the specified offset before completion. -

-

- Start an asynchronous operation to write all of the supplied data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to write all of the supplied data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    WriteHandler && handler);
-  » more...
-
-

- Start an asynchronous operation to write a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-  » more...
-
-
- - Requirements -
-

- Header: asio/write_at.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload1.html deleted file mode 100644 index 5a7e2b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload1.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -async_write_at (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a random access device at a specified offset. The function call - always returns immediately. The asynchronous operation will continue until - one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - async_write_some_at function, and is known as a composed operation. - The program must ensure that the device performs no overlapping - write operations (such as async_write_at, the device's async_write_some_at - function, or any other composed operations that perform writes) until this - operation completes. Operations are overlapping if the regions defined - by their offsets, and the numbers of bytes to write, intersect. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the AsyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes written from the buffers. If an error
-  // occurred, this will be less than the sum of the buffer sizes.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::async_write_at(d, 42, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload2.html deleted file mode 100644 index 7849727..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload2.html +++ /dev/null @@ -1,163 +0,0 @@ - - - -async_write_at (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a random access device at a specified offset. The function call - always returns immediately. The asynchronous operation will continue until - one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - async_write_some_at function, and is known as a composed operation. - The program must ensure that the device performs no overlapping - write operations (such as async_write_at, the device's async_write_some_at - function, or any other composed operations that perform writes) until this - operation completes. Operations are overlapping if the regions defined - by their offsets, and the numbers of bytes to write, intersect. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the AsyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's async_write_some_at function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes written from the buffers. If an error
-  // occurred, this will be less than the sum of the buffer sizes.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::async_write_at(d, 42,
-    asio::buffer(data, size),
-    asio::transfer_at_least(32),
-    handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload3.html deleted file mode 100644 index 066707e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload3.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -async_write_at (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write all of the supplied data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a random access device at a specified offset. The function call - always returns immediately. The asynchronous operation will continue until - one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - async_write_some_at function, and is known as a composed operation. - The program must ensure that the device performs no overlapping - write operations (such as async_write_at, the device's async_write_some_at - function, or any other composed operations that perform writes) until this - operation completes. Operations are overlapping if the regions defined - by their offsets, and the numbers of bytes to write, intersect. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the AsyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- A basic_streambuf - object from which data will be written. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes written from the buffers. If an error
-  // occurred, this will be less than the sum of the buffer sizes.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload4.html b/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload4.html deleted file mode 100644 index 0e39c5f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/async_write_at/overload4.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -async_write_at (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous operation to write a certain amount of data at the - specified offset. -

-
template<
-    typename AsyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition,
-    typename WriteHandler>
-DEDUCED async_write_at(
-    AsyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write a certain number of bytes - of data to a random access device at a specified offset. The function call - always returns immediately. The asynchronous operation will continue until - one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - async_write_some_at function, and is known as a composed operation. - The program must ensure that the device performs no overlapping - write operations (such as async_write_at, the device's async_write_some_at - function, or any other composed operations that perform writes) until this - operation completes. Operations are overlapping if the regions defined - by their offsets, and the numbers of bytes to write, intersect. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the AsyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- A basic_streambuf - object from which data will be written. Ownership of the streambuf - is retained by the caller, which must guarantee that it remains valid - until the handler is called. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest async_write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's async_write_some_at function. -

-
-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  // Result of operation.
-  const asio::error_code& error,
-
-  // Number of bytes written from the buffers. If an error
-  // occurred, this will be less than the sum of the buffer sizes.
-  std::size_t bytes_transferred
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asynchronous_operations.html b/Sources/Vendor/asio/doc/asio/reference/asynchronous_operations.html deleted file mode 100644 index a09c6dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asynchronous_operations.html +++ /dev/null @@ -1,384 +0,0 @@ - - - -Requirements on asynchronous operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This section uses the names Alloc1, Alloc2, alloc1, - alloc2, Args, CompletionHandler, - completion_handler, Executor1, Executor2, - ex1, ex2, f, i, - N, Signature, token, - T[sub i], t[sub i], - work1, and work2 as placeholders for specifying - the requirements below. -

-
- - General - asynchronous operation concepts -
-

- An initiating function is a function which may be called - to start an asynchronous operation. A completion handler - is a function object that will be invoked, at most once, with the result - of the asynchronous operation. -

-

- The lifecycle of an asynchronous operation is comprised of the following - events and phases: -

-

- — Event 1: The asynchronous operation is started by a call to the initiating - function. -

-

- — Phase 1: The asynchronous operation is now outstanding. -

-

- — Event 2: The externally observable side effects of the asynchronous operation, - if any, are fully established. The completion handler is submitted to an - executor. -

-

- — Phase 2: The asynchronous operation is now completed. -

-

- — Event 3: The completion handler is called with the result of the asynchronous - operation. -

-

- In this library, all functions with the prefix async_ are initiating - functions. -

-
- - Completion - tokens and handlers -
-

- Initiating functions: -

-

- — are function templates with template parameter CompletionToken; -

-

- — accept, as the final parameter, a completion token object - token of type CompletionToken; -

-

- — specify a completion signature, which is a call signature - (C++Std [func.def]) Signature that determines the arguments - to the completion handler. -

-

- An initiating function determines the type CompletionHandler - of its completion handler function object by performing typename async_result<decay_t<CompletionToken>, - Signature>::completion_handler_type. The completion handler object - completion_handler is initialized with forward<CompletionToken>(token). - [Note: No other requirements are placed on the type - CompletionToken. —end note] -

-

- The type CompletionHandler must satisfy the requirements of - Destructible (C++Std [destructible]) and MoveConstructible - (C++Std [moveconstructible]), and be callable with the specified call signature. -

-

- In this library, all initiating functions specify a Completion - signature element that defines the call signature Signature. - The Completion signature elements in this Technical - Specification have named parameters, and the results of an asynchronous operation - are specified in terms of these names. -

-
- - Automatic - deduction of initiating function return type -
-

- The return type of an initiating function is typename async_result<decay_t<CompletionToken>, - Signature>::return_type. -

-

- For the sake of exposition, this library sometimes annotates functions with - a return type DEDUCED. For every - function declaration that returns DEDUCED, - the meaning is equivalent to specifying the return type as typename - async_result<decay_t<CompletionToken>, Signature>::return_type. -

-
- - Production - of initiating function return value -
-

- An initiating function produces its return type as follows: -

-

- — constructing an object result of type async_result<decay_t<CompletionToken>, - Signature>, initialized as result(completion_handler); - and -

-

- — using result.get() as the operand of the return statement. -

-

- [Example: Given an asynchronous operation with Completion - signature void(R1 r1, R2 r2), an initiating function - meeting these requirements may be implemented as follows: -

-
template<class CompletionToken>
-auto async_xyz(T1 t1, T2 t2, CompletionToken&& token)
-{
-  typename async_result<decay_t<CompletionToken>, void(R1, R2)>::completion_handler_type
-    completion_handler(forward<CompletionToken>(token));
-
-  async_result<decay_t<CompletionToken>, void(R1, R2)> result(completion_handler);
-
-  // initiate the operation and cause completion_handler to be invoked with
-  // the result
-
-  return result.get();
-}
-
-

- For convenience, initiating functions may be implemented using the async_completion - template: -

-
template<class CompletionToken>
-auto async_xyz(T1 t1, T2 t2, CompletionToken&& token)
-{
-  async_completion<CompletionToken, void(R1, R2)> init(token);
-
-  // initiate the operation and cause init.completion_handler to be invoked
-  // with the result
-
-  return init.result.get();
-}
-
-

- —end example] -

-
- - Lifetime - of initiating function arguments -
-

- Unless otherwise specified, the lifetime of arguments to initiating functions - shall be treated as follows: -

-

- — If the parameter has a pointer type or has a type of lvalue reference to - non-const, the implementation may assume the validity of the pointee or referent, - respectively, until the completion handler is invoked. [Note: - In other words, the program must guarantee the validity of the argument until - the completion handler is invoked. —end note] -

-

- — Otherwise, the implementation must not assume the validity of the argument - after the initiating function completes. [Note: In other - words, the program is not required to guarantee the validity of the argument - after the initiating function completes. —end note] The - implementation may make copies of the argument, and all copies shall be destroyed - no later than immediately after invocation of the completion handler. -

-
- - Non-blocking - requirements on initiating functions -
-

- An initiating function shall not block (C++Std [defns.block]) the calling - thread pending completion of the outstanding operation. -

-

- [std_note Initiating functions may still block the calling thread for other - reasons. For example, an initiating function may lock a mutex in order to - synchronize access to shared data.] -

-
- - Associated - executor -
-

- Certain objects that participate in asynchronous operations have an associated - executor. These are obtained as specified in the sections below. -

-
- - Associated - I/O executor -
-

- An asynchronous operation has an associated executor satisfying the Executor requirements. - If not otherwise specified by the asynchronous operation, this associated - executor is an object of type system_executor. -

-

- All asynchronous operations in this library have an associated executor object - that is determined as follows: -

-

- — If the initiating function is a member function, the associated executor - is that returned by the get_executor member function on the - same object. -

-

- — If the initiating function is not a member function, the associated executor - is that returned by the get_executor member function of the - first argument to the initiating function. -

-

- Let Executor1 be the type of the associated executor. Let ex1 - be a value of type Executor1, representing the associated executor - object obtained as described above. -

-
- - Associated - completion handler executor -
-

- A completion handler object of type CompletionHandler has an - associated executor of type Executor2 satisfying the Executor - requirements. The type Executor2 is associated_executor_t<CompletionHandler, - Executor1>. Let ex2 be a value of type Executor2 - obtained by performing get_associated_executor(completion_handler, - ex1). -

-
- - Outstanding - work -
-

- Until the asynchronous operation has completed, the asynchronous operation - shall maintain: -

-

- — an object work1 of type executor_work_guard<Executor1>, - initialized as work1(ex1), and where work1.owns_work() - == true; and -

-

- — an object work2 of type executor_work_guard<Executor2>, - initialized as work2(ex2), and where work2.owns_work() - == true. -

-
- - Allocation - of intermediate storage -
-

- Asynchronous operations may allocate memory. [Note: - Such as a data structure to store copies of the completion_handler - object and the initiating function's arguments. —end note] -

-

- Let Alloc1 be a type, satisfying the ProtoAllocator - requirements, that represents the asynchronous operation's default allocation - strategy. [Note: Typically std::allocator<void>. - —end note] Let alloc1 be a value of type - Alloc1. -

-

- A completion handler object of type CompletionHandler has an - associated allocator object alloc2 of type Alloc2 - satisfying the ProtoAllocator - requirements. The type Alloc2 is associated_allocator_t<CompletionHandler, - Alloc1>. Let alloc2 be a value of type Alloc2 - obtained by performing get_associated_allocator(completion_handler, - alloc1). -

-

- The asynchronous operations defined in this library: -

-

- — If required, allocate memory using only the completion handler's associated - allocator. -

-

- — Prior to completion handler execution, deallocate any memory allocated using - the completion handler's associated allocator. -

-

- [std_note The implementation may perform operating system or underlying API - calls that perform memory allocations not using the associated allocator. - Invocations of the allocator functions may not introduce data races (See - C++Std [res.on.data.races]).] -

-
- - Execution - of completion handler on completion of asynchronous operation -
-

- Let Args... be the argument types of the completion signature - Signature and let N - be sizeof...(Args). Let i - be in the range [0,N). - Let T[sub i] be the ith - type in Args... and let t[sub i] - be the ith completion handler argument - associated with T[sub i]. -

-

- Let f be a function object, callable as f(), that - invokes completion_handler as if by completion_handler(forward<T[sub - 0>(t[sub 0]), ..., - forward<T[sub N-1]>(t[sub N-1]))]. -

-

- If an asynchonous operation completes immediately (that is, within the thread - of execution calling the initiating function, and before the initiating function - returns), the completion handler shall be submitted for execution as if by - performing ex2.post(std::move(f), alloc2). Otherwise, the completion - handler shall be submitted for execution as if by performing ex2.dispatch(std::move(f), - alloc2). -

-
- - Completion - handlers and exceptions -
-

- Completion handlers are permitted to throw exceptions. The effect of any - exception propagated from the execution of a completion handler is determined - by the executor which is executing the completion handler. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/asynchronous_socket_operations.html b/Sources/Vendor/asio/doc/asio/reference/asynchronous_socket_operations.html deleted file mode 100644 index 3fc2e43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/asynchronous_socket_operations.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Requirements on asynchronous socket operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In this library, asynchronous socket operations are - those member functions having prefix async_. -

-

- For an object s, a program may initiate asynchronous socket - operations such that there are multiple simultaneously outstanding asynchronous - operations. -

-

- When there are multiple outstanding asynchronous read - operations on s: -

-

- — having no argument flags of type socket_base::message_flags, - or -

-

- — having an argument flags of type socket_base::message_flags - but where (flags & socket_base::message_out_of_band) == 0 -

-

- then the buffers are filled in the order in which these operations - were issued. The order of invocation of the completion handlers for these - operations is unspecified. -

-

- When there are multiple outstanding asynchronous read - operations on s having an argument flags - of type socket_base::message_flags where (flags & - socket_base::message_out_of_band) != 0 then the buffers - are filled in the order in which these operations were issued. -

-

- When there are multiple outstanding asynchronous write - operations on s, the buffers are transmitted - in the order in which these operations were issued. The order of invocation - of the completion handlers for these operations is unspecified. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bad_executor.html b/Sources/Vendor/asio/doc/asio/reference/bad_executor.html deleted file mode 100644 index f4c8e9a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bad_executor.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -bad_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Exception thrown when trying to access an empty polymorphic executor. -

-
class bad_executor :
-  public std::exception
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bad_executor -

-
-

- Constructor. -

-
-

- what -

-
-

- Obtain message associated with exception. -

-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bad_executor/bad_executor.html b/Sources/Vendor/asio/doc/asio/reference/bad_executor/bad_executor.html deleted file mode 100644 index 4fbd107..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bad_executor/bad_executor.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -bad_executor::bad_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
bad_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bad_executor/what.html b/Sources/Vendor/asio/doc/asio/reference/bad_executor/what.html deleted file mode 100644 index aeae548..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bad_executor/what.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -bad_executor::what - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain message associated - with exception. -

-
virtual const char * what() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket.html deleted file mode 100644 index 0bb0977..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket.html +++ /dev/null @@ -1,930 +0,0 @@ - - - -basic_datagram_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides datagram-oriented socket functionality. -

-
template<
-    typename Protocol>
-class basic_datagram_socket :
-  public basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_datagram_socket -

-
-

- Construct a basic_datagram_socket without opening it.

- Construct and open a basic_datagram_socket.

Construct - a basic_datagram_socket, opening it and binding it to the given - local endpoint.

Construct a basic_datagram_socket - on an existing native socket.

Move-construct a basic_datagram_socket - from another.

Move-construct a basic_datagram_socket - from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_datagram_socket from another.

- Move-assign a basic_datagram_socket from a socket of another protocol - type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive a datagram with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send a datagram to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-

- ~basic_datagram_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_datagram_socket - class template provides asynchronous and blocking datagram-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html deleted file mode 100644 index 5c619a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/_basic_datagram_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_datagram_socket::~basic_datagram_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the socket. -

-
~basic_datagram_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign.html deleted file mode 100644 index 1dd5346..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_datagram_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html deleted file mode 100644 index 59fa8bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_datagram_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html deleted file mode 100644 index 4eb7a29..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/assign/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_connect.html deleted file mode 100644 index bf11144..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_connect.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_datagram_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive.html deleted file mode 100644 index ca3e33c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_datagram_socket::async_receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html deleted file mode 100644 index a481539..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_datagram_socket::async_receive (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the datagram - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_receive operation can only be used with a connected socket. - Use the async_receive_from function to receive data on an unconnected - datagram socket. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html deleted file mode 100644 index 0c4f3e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive/overload2.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_datagram_socket::async_receive (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the datagram - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_receive operation can only be used with a connected socket. - Use the async_receive_from function to receive data on an unconnected - datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html deleted file mode 100644 index fded058..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_datagram_socket::async_receive_from - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html deleted file mode 100644 index 14068ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_datagram_socket::async_receive_from (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive a datagram. The function - call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. Ownership of the sender_endpoint object is retained - by the caller, which must guarantee that it is valid until the - handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive_from(
-    asio::buffer(data, size), sender_endpoint, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html deleted file mode 100644 index 7fe9d02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_receive_from/overload2.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -basic_datagram_socket::async_receive_from (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive a datagram. The function - call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. Ownership of the sender_endpoint object is retained - by the caller, which must guarantee that it is valid until the - handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send.html deleted file mode 100644 index c074d90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_datagram_socket::async_send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html deleted file mode 100644 index 94ba74c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload1.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -basic_datagram_socket::async_send (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the datagram socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_send operation can only be used with a connected socket. Use - the async_send_to function to send data on an unconnected datagram socket. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html deleted file mode 100644 index 721a904..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send/overload2.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -basic_datagram_socket::async_send (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the datagram socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_send operation can only be used with a connected socket. Use - the async_send_to function to send data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html deleted file mode 100644 index ece5f5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_datagram_socket::async_send_to - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html deleted file mode 100644 index 6ac7979..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_datagram_socket::async_send_to (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send a datagram to the specified - remote endpoint. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
destination
-

- The remote endpoint to which the data will be sent. Copies will - be made of the endpoint as required. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint destination(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_send_to(
-    asio::buffer(data, size), destination, handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html deleted file mode 100644 index 8b50b0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_send_to/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_datagram_socket::async_send_to (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send a datagram to the specified - remote endpoint. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
destination
-

- The remote endpoint to which the data will be sent. Copies will - be made of the endpoint as required. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_wait.html deleted file mode 100644 index 5be9737..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/async_wait.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_datagram_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark.html deleted file mode 100644 index 1193c3f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html deleted file mode 100644 index 2b1820e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_datagram_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html deleted file mode 100644 index 4173308..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/at_mark/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_datagram_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available.html deleted file mode 100644 index bdfd1fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html deleted file mode 100644 index 5f758ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_datagram_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html deleted file mode 100644 index 13fee74..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/available/overload2.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_datagram_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html deleted file mode 100644 index 66f026e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_datagram_socket - without opening it. -

-
explicit basic_datagram_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_datagram_socket. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_datagram_socket, - opening it and binding it to the given local endpoint. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_datagram_socket - on an existing native socket. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_datagram_socket - from another. -

-
basic_datagram_socket(
-    basic_datagram_socket && other);
-  » more...
-
-

- Move-construct a basic_datagram_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_datagram_socket(
-    basic_datagram_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html deleted file mode 100644 index 2c7edbc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_datagram_socket - without opening it. -

-
basic_datagram_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a datagram socket without opening it. The open() - function must be called before data can be sent or received on the socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the datagram socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html deleted file mode 100644 index c660ac0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_datagram_socket. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a datagram socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the datagram socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html deleted file mode 100644 index 68df424..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_datagram_socket, - opening it and binding it to the given local endpoint. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a datagram socket and automatically opens it - bound to the specified endpoint on the local machine. The protocol used - is the protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the datagram socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the datagram socket will - be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html deleted file mode 100644 index 1b21c62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_datagram_socket - on an existing native socket. -

-
basic_datagram_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a datagram socket object to hold an existing - native socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the datagram socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- The new underlying socket implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html deleted file mode 100644 index e1aeaa8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_datagram_socket - from another. -

-
basic_datagram_socket(
-    basic_datagram_socket && other);
-
-

- This constructor moves a datagram socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_datagram_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_datagram_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html deleted file mode 100644 index 93e51b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_datagram_socket::basic_datagram_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_datagram_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_datagram_socket(
-    basic_datagram_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a datagram socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_datagram_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_datagram_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind.html deleted file mode 100644 index 258228d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind - the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html deleted file mode 100644 index 2d82c9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_datagram_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html deleted file mode 100644 index 823c622..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bind/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_datagram_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/broadcast.html deleted file mode 100644 index abec4f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html deleted file mode 100644 index c0cad8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_datagram_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel.html deleted file mode 100644 index ea3c160..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html deleted file mode 100644 index 6c81f9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload1.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_datagram_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html deleted file mode 100644 index 66c7d43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/cancel/overload2.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_datagram_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close.html deleted file mode 100644 index ae0d089..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html deleted file mode 100644 index 27dff31..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_datagram_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html deleted file mode 100644 index 300533c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/close/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect.html deleted file mode 100644 index e6dcda1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect - the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html deleted file mode 100644 index b7b63dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload1.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_datagram_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html deleted file mode 100644 index 9aba845..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/connect/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_datagram_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/debug.html deleted file mode 100644 index 0e75b24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html deleted file mode 100644 index d9b9f33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html deleted file mode 100644 index 5db069a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_datagram_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html deleted file mode 100644 index 9ad9166..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_datagram_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/executor_type.html deleted file mode 100644 index 7b54989..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -basic_datagram_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_executor.html deleted file mode 100644 index c81160e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_context.html deleted file mode 100644 index 935065e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_datagram_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_service.html deleted file mode 100644 index 23c8034..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_datagram_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option.html deleted file mode 100644 index 01615ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_datagram_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html deleted file mode 100644 index 890d0ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_datagram_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html deleted file mode 100644 index 9fcc0cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/get_option/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_datagram_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control.html deleted file mode 100644 index d9817f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_datagram_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html deleted file mode 100644 index 787f390..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_datagram_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html deleted file mode 100644 index 45c91dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_datagram_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/is_open.html deleted file mode 100644 index 7d1dc17..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Determine - whether the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html deleted file mode 100644 index 3bf4a59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/linger.html deleted file mode 100644 index 173c513..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/linger.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_datagram_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to specify whether the socket lingers on close if unsent data is - present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html deleted file mode 100644 index f44084c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html deleted file mode 100644 index 9da7f9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_datagram_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html deleted file mode 100644 index 29d4306..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_datagram_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html deleted file mode 100644 index 607ae10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html deleted file mode 100644 index 6cc5791..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_datagram_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html deleted file mode 100644 index 2d06054..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_datagram_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html deleted file mode 100644 index 9bcfd92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/lowest_layer_type.html +++ /dev/null @@ -1,862 +0,0 @@ - - - -basic_datagram_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_connections.html deleted file mode 100644 index 63c07e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_datagram_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html deleted file mode 100644 index 2da60bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html deleted file mode 100644 index 816551c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html deleted file mode 100644 index af02ab5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_flags.html deleted file mode 100644 index 905a149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_datagram_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html deleted file mode 100644 index e1b5c4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_peek.html deleted file mode 100644 index 2382471..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_datagram_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle.html deleted file mode 100644 index 35cee88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_datagram_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html deleted file mode 100644 index 80548ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_datagram_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html deleted file mode 100644 index 4503903..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_datagram_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html deleted file mode 100644 index 2963b22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -basic_datagram_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html deleted file mode 100644 index cd287c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -basic_datagram_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html deleted file mode 100644 index cc5719a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -basic_datagram_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html deleted file mode 100644 index dd05b51..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_datagram_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html deleted file mode 100644 index 8a57e60..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_datagram_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html deleted file mode 100644 index 48ed019..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_datagram_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html deleted file mode 100644 index c318902..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_datagram_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open.html deleted file mode 100644 index 34834f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open - the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html deleted file mode 100644 index 9dcfa38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_datagram_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html deleted file mode 100644 index 6e5b2cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/open/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_datagram_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html deleted file mode 100644 index 4b88ca5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_datagram_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_datagram_socket - from another. -

-
basic_datagram_socket & operator=(
-    basic_datagram_socket && other);
-  » more...
-
-

- Move-assign a basic_datagram_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_datagram_socket >::type & operator=(
-    basic_datagram_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html deleted file mode 100644 index 344cc75..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_datagram_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_datagram_socket - from another. -

-
basic_datagram_socket & operator=(
-    basic_datagram_socket && other);
-
-

- This assignment operator moves a datagram socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_datagram_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_datagram_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html deleted file mode 100644 index 6e8c07d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_datagram_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_datagram_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_datagram_socket >::type & operator=(
-    basic_datagram_socket< Protocol1 > && other);
-
-

- This assignment operator moves a datagram socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_datagram_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_datagram_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html deleted file mode 100644 index af5f10a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html deleted file mode 100644 index 3365992..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_datagram_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive.html deleted file mode 100644 index 535ce23..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_datagram_socket::receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html deleted file mode 100644 index 7404b21..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload1.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_datagram_socket::receive (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to receive data on the datagram socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected datagram socket. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html deleted file mode 100644 index c6bbc7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_datagram_socket::receive (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to receive data on the datagram socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html deleted file mode 100644 index c49ad0d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive/overload3.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_datagram_socket::receive (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive data on the datagram socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html deleted file mode 100644 index 01d590c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from.html deleted file mode 100644 index 8ec7420..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_datagram_socket::receive_from - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - a datagram with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html deleted file mode 100644 index e4688ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_datagram_socket::receive_from (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive a datagram with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint);
-
-

- This function is used to receive a datagram. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint sender_endpoint;
-socket.receive_from(
-    asio::buffer(data, size), sender_endpoint);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html deleted file mode 100644 index 8a57ece..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_datagram_socket::receive_from (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive a datagram with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags);
-
-

- This function is used to receive a datagram. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html deleted file mode 100644 index fc525ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_from/overload3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::receive_from (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive a datagram with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive a datagram. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the datagram. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html deleted file mode 100644 index a57fc1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release.html deleted file mode 100644 index 5c89900..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html deleted file mode 100644 index 0325b54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_datagram_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html deleted file mode 100644 index f057e64..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/release/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_datagram_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html deleted file mode 100644 index d0d1342..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_datagram_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html deleted file mode 100644 index 282f69f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_datagram_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html deleted file mode 100644 index d0cf9b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_datagram_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html deleted file mode 100644 index b516bd9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_datagram_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send.html deleted file mode 100644 index 2b9b60a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_datagram_socket::send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send - some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html deleted file mode 100644 index b3a834c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload1.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_datagram_socket::send (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to send data on the datagram socket. The function - call will block until the data has been sent successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One ore more data buffers to be sent on the socket. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected datagram socket. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html deleted file mode 100644 index bf70b4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_datagram_socket::send (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to send data on the datagram socket. The function - call will block until the data has been sent successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One ore more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html deleted file mode 100644 index 7a31a90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send/overload3.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_datagram_socket::send (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send data on the datagram socket. The function - call will block until the data has been sent successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected datagram socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html deleted file mode 100644 index 1ae4959..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html deleted file mode 100644 index ff8b354..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_datagram_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_datagram_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to.html deleted file mode 100644 index bf7c7d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_datagram_socket::send_to - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send - a datagram to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html deleted file mode 100644 index 25cf43e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_datagram_socket::send_to (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a datagram to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination);
-
-

- This function is used to send a datagram to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint destination(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.send_to(asio::buffer(data, size), destination);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html deleted file mode 100644 index f9df134..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_datagram_socket::send_to (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a datagram to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags);
-
-

- This function is used to send a datagram to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html deleted file mode 100644 index a1f3295..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/send_to/overload3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::send_to (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a datagram to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send a datagram to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option.html deleted file mode 100644 index 5617693..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_datagram_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html deleted file mode 100644 index 06525f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_datagram_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html deleted file mode 100644 index 8550db3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/set_option/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_datagram_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown.html deleted file mode 100644 index c092e7a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_datagram_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html deleted file mode 100644 index 1dfb57d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_datagram_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html deleted file mode 100644 index 3038b89..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_datagram_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html deleted file mode 100644 index 32ad800..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_datagram_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait.html deleted file mode 100644 index f6e9118..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_datagram_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - for the socket to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html deleted file mode 100644 index 3367778..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_datagram_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html deleted file mode 100644 index 599abf0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_datagram_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait_type.html deleted file mode 100644 index 0a4cf73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_datagram_socket/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_datagram_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer.html deleted file mode 100644 index caa793c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer.html +++ /dev/null @@ -1,407 +0,0 @@ - - - -basic_deadline_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides waitable timer functionality. -

-
template<
-    typename Time,
-    typename TimeTraits = asio::time_traits<Time>>
-class basic_deadline_timer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- duration_type -

-
-

- The duration type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_type -

-
-

- The time type. -

-
-

- traits_type -

-
-

- The time traits type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_deadline_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_deadline_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

-
-

- expires_at -

-
-

- Get the timer's expiry time as an absolute time.

- Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- Get the timer's expiry time relative to now.

Set - the timer's expiry time relative to now. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_deadline_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_deadline_timer -

-
-

- Destroys the timer. -

-
-

- The basic_deadline_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- A deadline timer is always in one of two states: "expired" or "not - expired". If the wait() or async_wait() function - is called on an expired timer, the wait operation will complete immediately. -

-

- Most applications will use the deadline_timer - typedef. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait: -

-
// Construct a timer without setting an expiry time.
-asio::deadline_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_from_now(boost::posix_time::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait: -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::deadline_timer timer(io_context,
-    boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active deadline_timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_from_now(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_deadline_timer::expires_from_now() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html deleted file mode 100644 index aa7ed5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/_basic_deadline_timer.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_deadline_timer::~basic_deadline_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the timer. -

-
~basic_deadline_timer();
-
-

- This function destroys the timer, cancelling any outstanding asynchronous - wait operations associated with the timer as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/async_wait.html deleted file mode 100644 index d13856a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/async_wait.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_deadline_timer::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous wait on the timer. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    WaitHandler && handler);
-
-

- This function may be used to initiate an asynchronous wait against the - timer. It always returns immediately. -

-

- For each call to async_wait(), the supplied handler will be - called exactly once. The handler will be called when: -

-
    -
  • - The timer has expired. -
  • -
  • - The timer was cancelled, in which case the handler is passed the error - code asio::error::operation_aborted. -
  • -
-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the timer expires. Copies will be made - of the handler as required. The function signature of the handler - must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html deleted file mode 100644 index 5d1a0d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
explicit basic_deadline_timer(
-    asio::io_context & io_context);
-  » more...
-
-

- Constructor to set a particular expiry time as an absolute time. -

-
basic_deadline_timer(
-    asio::io_context & io_context,
-    const time_type & expiry_time);
-  » more...
-
-

- Constructor to set a particular expiry time relative to now. -

-
basic_deadline_timer(
-    asio::io_context & io_context,
-    const duration_type & expiry_time);
-  » more...
-
-

- Move-construct a basic_deadline_timer - from another. -

-
basic_deadline_timer(
-    basic_deadline_timer && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html deleted file mode 100644 index aba2c89..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
basic_deadline_timer(
-    asio::io_context & io_context);
-
-

- This constructor creates a timer without setting an expiry time. The - expires_at() or expires_from_now() functions - must be called to set an expiry time before the timer can be waited on. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html deleted file mode 100644 index 7256fe9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor to set a particular expiry time as an absolute time. -

-
basic_deadline_timer(
-    asio::io_context & io_context,
-    const time_type & expiry_time);
-
-

- This constructor creates a timer and sets the expiry time. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
expiry_time
-

- The expiry time to be used for the timer, expressed as an absolute - time. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html deleted file mode 100644 index d0ad95c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor to set a particular expiry time relative to now. -

-
basic_deadline_timer(
-    asio::io_context & io_context,
-    const duration_type & expiry_time);
-
-

- This constructor creates a timer and sets the expiry time. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
expiry_time
-

- The expiry time to be used for the timer, relative to now. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html deleted file mode 100644 index b91e581..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_deadline_timer::basic_deadline_timer (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_deadline_timer - from another. -

-
basic_deadline_timer(
-    basic_deadline_timer && other);
-
-

- This constructor moves a timer from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_deadline_timer - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_deadline_timer(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel.html deleted file mode 100644 index 2eefaed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_deadline_timer::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel();
-  » more...
-
-std::size_t cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html deleted file mode 100644 index 416ca46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload1.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_deadline_timer::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel();
-
-

- This function forces the completion of any pending asynchronous wait - operations against the timer. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html deleted file mode 100644 index 7d921b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel/overload2.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -basic_deadline_timer::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel(
-    asio::error_code & ec);
-
-

- This function forces the completion of any pending asynchronous wait - operations against the timer. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html deleted file mode 100644 index 795f6d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_deadline_timer::cancel_one - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancels - one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one();
-  » more...
-
-std::size_t cancel_one(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html deleted file mode 100644 index 2dffb9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -basic_deadline_timer::cancel_one (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancels one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one();
-
-

- This function forces the completion of one pending asynchronous wait - operation against the timer. Handlers are cancelled in FIFO order. The - handler for the cancelled operation will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. That is, either - 0 or 1. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when cancel_one() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html deleted file mode 100644 index 5ae9aec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/cancel_one/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_deadline_timer::cancel_one (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancels one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one(
-    asio::error_code & ec);
-
-

- This function forces the completion of one pending asynchronous wait - operation against the timer. Handlers are cancelled in FIFO order. The - handler for the cancelled operation will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. That is, either - 0 or 1. -

-
- - Remarks -
-

- If the timer has already expired when cancel_one() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/duration_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/duration_type.html deleted file mode 100644 index 27c0e87..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/duration_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_deadline_timer::duration_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - duration type. -

-
typedef traits_type::duration_type duration_type;
-
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/executor_type.html deleted file mode 100644 index 50e2b42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_deadline_timer::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at.html deleted file mode 100644 index 1c338ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_deadline_timer::expires_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the timer's expiry time as an absolute time. -

-
time_type expires_at() const;
-  » more...
-
-

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_type & expiry_time);
-  » more...
-
-std::size_t expires_at(
-    const time_type & expiry_time,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html deleted file mode 100644 index 3bc8ae1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_deadline_timer::expires_at (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the timer's expiry time as an absolute time. -

-
time_type expires_at() const;
-
-

- This function may be used to obtain the timer's current expiry time. - Whether the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html deleted file mode 100644 index 7e2b5f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -basic_deadline_timer::expires_at (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_type & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_at() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html deleted file mode 100644 index 7cbbc3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_at/overload3.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_deadline_timer::expires_at (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_type & expiry_time,
-    asio::error_code & ec);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when expires_at() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html deleted file mode 100644 index 6ab1828..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_deadline_timer::expires_from_now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the timer's expiry time relative to now. -

-
duration_type expires_from_now() const;
-  » more...
-
-

- Set the timer's expiry time relative to now. -

-
std::size_t expires_from_now(
-    const duration_type & expiry_time);
-  » more...
-
-std::size_t expires_from_now(
-    const duration_type & expiry_time,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html deleted file mode 100644 index 8ad97c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_deadline_timer::expires_from_now (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the timer's expiry time relative to now. -

-
duration_type expires_from_now() const;
-
-

- This function may be used to obtain the timer's current expiry time. - Whether the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html deleted file mode 100644 index e8c613c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -basic_deadline_timer::expires_from_now (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time relative to now. -

-
std::size_t expires_from_now(
-    const duration_type & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_from_now() - is called, then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html deleted file mode 100644 index df00ba2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/expires_from_now/overload3.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_deadline_timer::expires_from_now (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time relative to now. -

-
std::size_t expires_from_now(
-    const duration_type & expiry_time,
-    asio::error_code & ec);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when expires_from_now() - is called, then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_executor.html deleted file mode 100644 index a1e22c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_deadline_timer::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_context.html deleted file mode 100644 index 2634962..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_deadline_timer::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_service.html deleted file mode 100644 index dc6d8e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_deadline_timer::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html deleted file mode 100644 index 16e6d58..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_deadline_timer::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_deadline_timer - from another. -

-
basic_deadline_timer & operator=(
-    basic_deadline_timer && other);
-
-

- This assignment operator moves a timer from one object to another. Cancels - any outstanding asynchronous operations associated with the target object. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_deadline_timer - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the basic_deadline_timer(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/time_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/time_type.html deleted file mode 100644 index 7f3e187..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/time_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_deadline_timer::time_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time type. -

-
typedef traits_type::time_type time_type;
-
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/traits_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/traits_type.html deleted file mode 100644 index fc44f86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/traits_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_deadline_timer::traits_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time traits type. -

-
typedef TimeTraits traits_type;
-
-
- - Requirements -
-

- Header: asio/basic_deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait.html deleted file mode 100644 index 82a80e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_deadline_timer::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - a blocking wait on the timer. -

-
void wait();
-  » more...
-
-void wait(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html deleted file mode 100644 index 418edda..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_deadline_timer::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the timer. -

-
void wait();
-
-

- This function is used to wait for the timer to expire. This function - blocks and does not return until the timer has expired. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html deleted file mode 100644 index 5dde736..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_deadline_timer/wait/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_deadline_timer::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the timer. -

-
void wait(
-    asio::error_code & ec);
-
-

- This function is used to wait for the timer to expire. This function - blocks and does not return until the timer has expired. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object.html deleted file mode 100644 index 672c029..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object.html +++ /dev/null @@ -1,270 +0,0 @@ - - - -basic_io_object - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Base class for all I/O objects. -

-
template<
-    typename IoObjectService>
-class basic_io_object
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- implementation_type -

-
-

- The underlying implementation type of I/O object. -

-
-

- service_type -

-
-

- The type of the service that will be used to provide I/O operations. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_io_object -

-
-

- Construct a basic_io_object.

Move-construct a basic_io_object. -

Perform a converting move-construction of a basic_io_object. -

-
-

- get_implementation -

-
-

- Get the underlying implementation of the I/O object. -

-
-

- get_service -

-
-

- Get the service associated with the I/O object. -

-
-

- operator= -

-
-

- Move-assign a basic_io_object. -

-
-

- ~basic_io_object -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Remarks -
-

- All I/O objects are non-copyable. However, when using C++0x, certain I/O - objects do support move construction and move assignment. -

-
- - Requirements -
-

- Header: asio/basic_io_object.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/_basic_io_object.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/_basic_io_object.html deleted file mode 100644 index a9c19ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/_basic_io_object.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_io_object::~basic_io_object - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~basic_io_object();
-
-

- Performs: -

-
get_service().destroy(get_implementation());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object.html deleted file mode 100644 index d6a30b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_io_object::basic_io_object - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_io_object. -

-
explicit basic_io_object(
-    asio::io_context & io_context);
-  » more...
-
-

- Move-construct a basic_io_object. -

-
basic_io_object(
-    basic_io_object && other);
-  » more...
-
-

- Perform a converting move-construction of a basic_io_object. -

-
template<
-    typename IoObjectService1>
-basic_io_object(
-    IoObjectService1 & other_service,
-    typename IoObjectService1::implementation_type & other_implementation);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html deleted file mode 100644 index 3ba6ec4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload1.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_io_object::basic_io_object (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_io_object. -

-
basic_io_object(
-    asio::io_context & io_context);
-
-

- Performs: -

-
get_service().construct(get_implementation());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html deleted file mode 100644 index 1058452..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_io_object::basic_io_object (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_io_object. -

-
basic_io_object(
-    basic_io_object && other);
-
-

- Performs: -

-
get_service().move_construct(
-    get_implementation(), other.get_implementation());
-
-
- - Remarks -
-

- Available only for services that support movability, -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html deleted file mode 100644 index ba8441b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/basic_io_object/overload3.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_io_object::basic_io_object (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a converting move-construction of a basic_io_object. -

-
template<
-    typename IoObjectService1>
-basic_io_object(
-    IoObjectService1 & other_service,
-    typename IoObjectService1::implementation_type & other_implementation);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/executor_type.html deleted file mode 100644 index 8eefac4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_io_object::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef asio::io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_io_object.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_executor.html deleted file mode 100644 index 5c64506..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_io_object::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation.html deleted file mode 100644 index e19ea9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_io_object::get_implementation - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the underlying implementation of the I/O object. -

-
implementation_type & get_implementation();
-  » more...
-
-const implementation_type & get_implementation() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html deleted file mode 100644 index db688eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_io_object::get_implementation (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying implementation of the I/O object. -

-
implementation_type & get_implementation();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html deleted file mode 100644 index b7858eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_implementation/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_io_object::get_implementation (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying implementation of the I/O object. -

-
const implementation_type & get_implementation() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_context.html deleted file mode 100644 index 5c5ce43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_io_object::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_service.html deleted file mode 100644 index 351d5dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_io_object::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service.html deleted file mode 100644 index 2260ca4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_io_object::get_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the service associated with the I/O object. -

-
service_type & get_service();
-  » more...
-
-const service_type & get_service() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload1.html deleted file mode 100644 index bb2f3bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_io_object::get_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the service associated with the I/O object. -

-
service_type & get_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload2.html deleted file mode 100644 index 5c50edb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/get_service/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_io_object::get_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the service associated with the I/O object. -

-
const service_type & get_service() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/implementation_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/implementation_type.html deleted file mode 100644 index be13f99..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/implementation_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_io_object::implementation_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - underlying implementation type of I/O object. -

-
typedef service_type::implementation_type implementation_type;
-
-
- - Requirements -
-

- Header: asio/basic_io_object.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/operator_eq_.html deleted file mode 100644 index e8e1c97..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/operator_eq_.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -basic_io_object::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_io_object. -

-
basic_io_object & operator=(
-    basic_io_object && other);
-
-

- Performs: -

-
get_service().move_assign(get_implementation(),
-    other.get_service(), other.get_implementation());
-
-
- - Remarks -
-

- Available only for services that support movability, -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/service_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_io_object/service_type.html deleted file mode 100644 index 1383a47..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_io_object/service_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_io_object::service_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the service that will be used to provide I/O operations. -

-
typedef IoObjectService service_type;
-
-
- - Requirements -
-

- Header: asio/basic_io_object.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket.html deleted file mode 100644 index 298876f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket.html +++ /dev/null @@ -1,929 +0,0 @@ - - - -basic_raw_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides raw-oriented socket functionality. -

-
template<
-    typename Protocol>
-class basic_raw_socket :
-  public basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_raw_socket -

-
-

- Construct a basic_raw_socket without opening it.

- Construct and open a basic_raw_socket.

Construct - a basic_raw_socket, opening it and binding it to the given local - endpoint.

Construct a basic_raw_socket on an existing - native socket.

Move-construct a basic_raw_socket - from another.

Move-construct a basic_raw_socket from - a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_raw_socket from another.

Move-assign - a basic_raw_socket from a socket of another protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive raw data with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send raw data to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-

- ~basic_raw_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_raw_socket - class template provides asynchronous and blocking raw-oriented socket functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html deleted file mode 100644 index 1ee6ce2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/_basic_raw_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_raw_socket::~basic_raw_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the socket. -

-
~basic_raw_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign.html deleted file mode 100644 index 1826c86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_raw_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign an existing - native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html deleted file mode 100644 index 2860038..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_raw_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html deleted file mode 100644 index 54a225d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/assign/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_connect.html deleted file mode 100644 index 0a99047..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_connect.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_raw_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive.html deleted file mode 100644 index eb54eb6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_raw_socket::async_receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html deleted file mode 100644 index c06017a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_raw_socket::async_receive (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the raw socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_receive operation can only be used with a connected socket. - Use the async_receive_from function to receive data on an unconnected - raw socket. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html deleted file mode 100644 index 79caa67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive/overload2.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_raw_socket::async_receive (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive on a connected socket. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the raw socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_receive operation can only be used with a connected socket. - Use the async_receive_from function to receive data on an unconnected - raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html deleted file mode 100644 index f0f5fc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_raw_socket::async_receive_from - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html deleted file mode 100644 index 4308e3f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_raw_socket::async_receive_from (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive raw data. The function - call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. Ownership of the sender_endpoint object is retained - by the caller, which must guarantee that it is valid until the - handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive_from(
-    asio::buffer(data, size), 0, sender_endpoint, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html deleted file mode 100644 index 180063e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_receive_from/overload2.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -basic_raw_socket::async_receive_from (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive raw data. The function - call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. Ownership of the sender_endpoint object is retained - by the caller, which must guarantee that it is valid until the - handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send.html deleted file mode 100644 index 716f83b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_raw_socket::async_send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html deleted file mode 100644 index 28d91af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload1.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -basic_raw_socket::async_send (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_send operation can only be used with a connected socket. Use - the async_send_to function to send data on an unconnected raw socket. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html deleted file mode 100644 index 1d74a43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send/overload2.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -basic_raw_socket::async_send (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send on a connected socket. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The async_send operation can only be used with a connected socket. Use - the async_send_to function to send data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to.html deleted file mode 100644 index 9fa9e83..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_raw_socket::async_send_to - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html deleted file mode 100644 index 26bde63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_raw_socket::async_send_to (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send raw data to the specified - remote endpoint. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
destination
-

- The remote endpoint to which the data will be sent. Copies will - be made of the endpoint as required. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint destination(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_send_to(
-    asio::buffer(data, size), destination, handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html deleted file mode 100644 index bd1d4fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_send_to/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_raw_socket::async_send_to (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send raw data to the specified - remote endpoint. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
destination
-

- The remote endpoint to which the data will be sent. Copies will - be made of the endpoint as required. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_wait.html deleted file mode 100644 index 593e52c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/async_wait.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_raw_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark.html deleted file mode 100644 index 7c2f69c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html deleted file mode 100644 index fd3edf6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_raw_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html deleted file mode 100644 index 20d31cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/at_mark/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_raw_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available.html deleted file mode 100644 index c15cc88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload1.html deleted file mode 100644 index 327c872..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_raw_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload2.html deleted file mode 100644 index fc49984..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/available/overload2.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_raw_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html deleted file mode 100644 index 7a7341f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_raw_socket - without opening it. -

-
explicit basic_raw_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_raw_socket. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_raw_socket, - opening it and binding it to the given local endpoint. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_raw_socket - on an existing native socket. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_raw_socket - from another. -

-
basic_raw_socket(
-    basic_raw_socket && other);
-  » more...
-
-

- Move-construct a basic_raw_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_raw_socket(
-    basic_raw_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html deleted file mode 100644 index 9895149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_raw_socket - without opening it. -

-
basic_raw_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a raw socket without opening it. The open() - function must be called before data can be sent or received on the socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the raw socket will use to dispatch handlers for any - asynchronous operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html deleted file mode 100644 index d4827c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_raw_socket. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a raw socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the raw socket will use to dispatch handlers for any - asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html deleted file mode 100644 index 8ab2502..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload3.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_raw_socket, - opening it and binding it to the given local endpoint. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a raw socket and automatically opens it bound - to the specified endpoint on the local machine. The protocol used is - the protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the raw socket will use to dispatch handlers for any - asynchronous operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the raw socket will be - bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html deleted file mode 100644 index 6345e61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_raw_socket - on an existing native socket. -

-
basic_raw_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a raw socket object to hold an existing native - socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the raw socket will use to dispatch handlers for any - asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- The new underlying socket implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html deleted file mode 100644 index b8c37b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_raw_socket - from another. -

-
basic_raw_socket(
-    basic_raw_socket && other);
-
-

- This constructor moves a raw socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_raw_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_raw_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html deleted file mode 100644 index 09bce41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/basic_raw_socket/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_raw_socket::basic_raw_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_raw_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_raw_socket(
-    basic_raw_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a raw socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_raw_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_raw_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind.html deleted file mode 100644 index d1f8516..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind the socket - to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html deleted file mode 100644 index a5a6286..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_raw_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html deleted file mode 100644 index ff639bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bind/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_raw_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/broadcast.html deleted file mode 100644 index 77c00f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html deleted file mode 100644 index 625e4ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_raw_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel.html deleted file mode 100644 index 0f8c254..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all - asynchronous operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html deleted file mode 100644 index 98a70fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload1.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_raw_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html deleted file mode 100644 index 95c86cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/cancel/overload2.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_raw_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close.html deleted file mode 100644 index edf609e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_raw_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload1.html deleted file mode 100644 index d3ddc84..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_raw_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload2.html deleted file mode 100644 index d871aea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/close/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect.html deleted file mode 100644 index 582733f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect the - socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html deleted file mode 100644 index d5d7d52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload1.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_raw_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html deleted file mode 100644 index c653c15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/connect/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_raw_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/debug.html deleted file mode 100644 index ef09ff4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option - to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/do_not_route.html deleted file mode 100644 index 503170c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html deleted file mode 100644 index aaf03a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_raw_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html deleted file mode 100644 index d8136dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_raw_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/executor_type.html deleted file mode 100644 index deede15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -basic_raw_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_executor.html deleted file mode 100644 index be2579d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_context.html deleted file mode 100644 index bcc5f29..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_raw_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_service.html deleted file mode 100644 index 296f9d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_raw_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option.html deleted file mode 100644 index f6b54a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_raw_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html deleted file mode 100644 index fc9ac20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_raw_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html deleted file mode 100644 index ab5c165..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/get_option/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_raw_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control.html deleted file mode 100644 index 7ef520c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_raw_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html deleted file mode 100644 index 078c5ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_raw_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html deleted file mode 100644 index 332027a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_raw_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/is_open.html deleted file mode 100644 index a00e7d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Determine - whether the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/keep_alive.html deleted file mode 100644 index e9a6f63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/linger.html deleted file mode 100644 index 380e960..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/linger.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_raw_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option - to specify whether the socket lingers on close if unsent data is present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html deleted file mode 100644 index 7fb4a00..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html deleted file mode 100644 index 1e3cd22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_raw_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html deleted file mode 100644 index 45b1de6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_raw_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html deleted file mode 100644 index 7840d88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html deleted file mode 100644 index eccfead..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_raw_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html deleted file mode 100644 index 1d17c5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_raw_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html deleted file mode 100644 index 525123b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/lowest_layer_type.html +++ /dev/null @@ -1,862 +0,0 @@ - - - -basic_raw_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_connections.html deleted file mode 100644 index e9ebbac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_raw_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html deleted file mode 100644 index a32fc7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html deleted file mode 100644 index 48fd9cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html deleted file mode 100644 index c5d0a92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_flags.html deleted file mode 100644 index ea5571b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_raw_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html deleted file mode 100644 index 478afcd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_peek.html deleted file mode 100644 index ae8fb5f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_raw_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle.html deleted file mode 100644 index a3a64ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_raw_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html deleted file mode 100644 index 10a2eab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_raw_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html deleted file mode 100644 index b928434..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_raw_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html deleted file mode 100644 index fce894a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -basic_raw_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html deleted file mode 100644 index 0db7664..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -basic_raw_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html deleted file mode 100644 index dd9a061..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -basic_raw_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking.html deleted file mode 100644 index 64180cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_raw_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html deleted file mode 100644 index 7d619a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_raw_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html deleted file mode 100644 index e795615..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_raw_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html deleted file mode 100644 index 52ac1f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_raw_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open.html deleted file mode 100644 index d177572..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open the socket - using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload1.html deleted file mode 100644 index 446183b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_raw_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload2.html deleted file mode 100644 index 3827ce0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/open/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_raw_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html deleted file mode 100644 index 944fbce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_raw_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_raw_socket - from another. -

-
basic_raw_socket & operator=(
-    basic_raw_socket && other);
-  » more...
-
-

- Move-assign a basic_raw_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_raw_socket >::type & operator=(
-    basic_raw_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html deleted file mode 100644 index fcaec57..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_raw_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_raw_socket - from another. -

-
basic_raw_socket & operator=(
-    basic_raw_socket && other);
-
-

- This assignment operator moves a raw socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_raw_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_raw_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html deleted file mode 100644 index f86ec6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_raw_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_raw_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_raw_socket >::type & operator=(
-    basic_raw_socket< Protocol1 > && other);
-
-

- This assignment operator moves a raw socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_raw_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_raw_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html deleted file mode 100644 index 7bfe3c8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/protocol_type.html deleted file mode 100644 index 7075fe1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_raw_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive.html deleted file mode 100644 index 6be6def..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_raw_socket::receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive some - data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html deleted file mode 100644 index d1b3816..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload1.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_raw_socket::receive (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to receive data on the raw socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected raw socket. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html deleted file mode 100644 index 486baa5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload2.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -basic_raw_socket::receive (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to receive data on the raw socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html deleted file mode 100644 index 4e775f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive/overload3.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_raw_socket::receive (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive data on the raw socket. The function - call will block until data has been received successfully or an error - occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Remarks -
-

- The receive operation can only be used with a connected socket. Use the - receive_from function to receive data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html deleted file mode 100644 index 184ce43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from.html deleted file mode 100644 index 4cd7574..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_raw_socket::receive_from - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - raw data with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html deleted file mode 100644 index f354b4a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_raw_socket::receive_from (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive raw data with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint);
-
-

- This function is used to receive raw data. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint sender_endpoint;
-socket.receive_from(
-    asio::buffer(data, size), sender_endpoint);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html deleted file mode 100644 index a8b490c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_raw_socket::receive_from (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive raw data with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags);
-
-

- This function is used to receive raw data. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html deleted file mode 100644 index 8a0c6b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_from/overload3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::receive_from (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive raw data with the endpoint of the sender. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive_from(
-    const MutableBufferSequence & buffers,
-    endpoint_type & sender_endpoint,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive raw data. The function call will block - until data has been received successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
sender_endpoint
-

- An endpoint object that receives the endpoint of the remote sender - of the data. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html deleted file mode 100644 index 9c93b46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release.html deleted file mode 100644 index 71b47e2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release ownership - of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload1.html deleted file mode 100644 index 837f068..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_raw_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload2.html deleted file mode 100644 index 54d9c09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/release/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_raw_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html deleted file mode 100644 index 55a3794..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_raw_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html deleted file mode 100644 index c92adc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_raw_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html deleted file mode 100644 index 8ba4ab8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_raw_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/reuse_address.html deleted file mode 100644 index 5e961a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_raw_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send.html deleted file mode 100644 index 2b068ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_raw_socket::send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send some data - on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload1.html deleted file mode 100644 index c6fd27e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_raw_socket::send (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One ore more data buffers to be sent on the socket. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected raw socket. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload2.html deleted file mode 100644 index c5ad5bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload2.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -basic_raw_socket::send (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One ore more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload3.html deleted file mode 100644 index 192eeae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send/overload3.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_raw_socket::send (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on a connected socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send data on the raw socket. The function call - will block until the data has been sent successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Remarks -
-

- The send operation can only be used with a connected socket. Use the - send_to function to send data on an unconnected raw socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html deleted file mode 100644 index fee24b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html deleted file mode 100644 index 9d8340a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_raw_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_raw_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to.html deleted file mode 100644 index d422baf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_raw_socket::send_to - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send raw - data to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html deleted file mode 100644 index d6b3b10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload1.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_raw_socket::send_to (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send raw data to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination);
-
-

- This function is used to send raw data to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
asio::ip::udp::endpoint destination(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.send_to(asio::buffer(data, size), destination);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html deleted file mode 100644 index 551b3f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_raw_socket::send_to (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send raw data to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags);
-
-

- This function is used to send raw data to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html deleted file mode 100644 index b92df8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/send_to/overload3.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::send_to (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send raw data to the specified endpoint. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send_to(
-    const ConstBufferSequence & buffers,
-    const endpoint_type & destination,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send raw data to the specified remote endpoint. - The function call will block until the data has been sent successfully - or an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent to the remote endpoint. -

-
destination
-

- The remote endpoint to which the data will be sent. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option.html deleted file mode 100644 index d922b3b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_raw_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html deleted file mode 100644 index b799503..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_raw_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html deleted file mode 100644 index f78dec2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/set_option/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_raw_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown.html deleted file mode 100644 index 45ed1ee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html deleted file mode 100644 index 356d8a1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_raw_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html deleted file mode 100644 index fd43f12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_raw_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html deleted file mode 100644 index 15d13d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_raw_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait.html deleted file mode 100644 index fb8dbd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_raw_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for the socket - to become ready to read, ready to write, or to have pending error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html deleted file mode 100644 index 5970ed8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_raw_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html deleted file mode 100644 index f542a0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_raw_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait_type.html deleted file mode 100644 index 8caf6d5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_raw_socket/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_raw_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket.html deleted file mode 100644 index 073f5b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket.html +++ /dev/null @@ -1,883 +0,0 @@ - - - -basic_seq_packet_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides sequenced packet socket functionality. -

-
template<
-    typename Protocol>
-class basic_seq_packet_socket :
-  public basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_seq_packet_socket -

-
-

- Construct a basic_seq_packet_socket without opening it.
-
Construct and open a basic_seq_packet_socket.

- Construct a basic_seq_packet_socket, opening it and binding it - to the given local endpoint.

Construct a basic_seq_packet_socket - on an existing native socket.

Move-construct a basic_seq_packet_socket - from another.

Move-construct a basic_seq_packet_socket - from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_seq_packet_socket from another.

- Move-assign a basic_seq_packet_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-

- ~basic_seq_packet_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_seq_packet_socket - class template provides asynchronous and blocking sequenced packet socket - functionality. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html deleted file mode 100644 index e61d52d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_seq_packet_socket::~basic_seq_packet_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the socket. -

-
~basic_seq_packet_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign.html deleted file mode 100644 index 6ef9289..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_seq_packet_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html deleted file mode 100644 index 3b7768b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_seq_packet_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html deleted file mode 100644 index dfcccec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/assign/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html deleted file mode 100644 index 30f905a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_connect.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_seq_packet_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html deleted file mode 100644 index e853596..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_seq_packet_socket::async_receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags & out_flags,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html deleted file mode 100644 index 2d21b3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_seq_packet_socket::async_receive (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags & out_flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the sequenced - packet socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
out_flags
-

- Once the asynchronous operation completes, contains flags associated - with the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. The - caller must guarantee that the referenced variable remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), out_flags, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html deleted file mode 100644 index 6874913..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_receive/overload2.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -basic_seq_packet_socket::async_receive (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the sequenced - data socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
in_flags
-

- Flags specifying how the receive call is to be made. -

-
out_flags
-

- Once the asynchronous operation completes, contains flags associated - with the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. The - caller must guarantee that the referenced variable remains valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(
-    asio::buffer(data, size),
-    0, out_flags, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html deleted file mode 100644 index 52add32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_send.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_seq_packet_socket::async_send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the sequenced packet - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the buffers - object may be copied as necessary, ownership of the underlying memory - blocks is retained by the caller, which must guarantee that they - remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), 0, handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html deleted file mode 100644 index fb25913..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/async_wait.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_seq_packet_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html deleted file mode 100644 index 15bfeb6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html deleted file mode 100644 index bbbef36..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_seq_packet_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html deleted file mode 100644 index 4ee1f64..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/at_mark/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_seq_packet_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available.html deleted file mode 100644 index 0f59ea5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html deleted file mode 100644 index ddeb8ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_seq_packet_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html deleted file mode 100644 index 4f40d1b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/available/overload2.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_seq_packet_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html deleted file mode 100644 index bf16f6f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_seq_packet_socket - without opening it. -

-
explicit basic_seq_packet_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_seq_packet_socket. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_seq_packet_socket, - opening it and binding it to the given local endpoint. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_seq_packet_socket - on an existing native socket. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_seq_packet_socket - from another. -

-
basic_seq_packet_socket(
-    basic_seq_packet_socket && other);
-  » more...
-
-

- Move-construct a basic_seq_packet_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_seq_packet_socket(
-    basic_seq_packet_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html deleted file mode 100644 index 9071b22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_seq_packet_socket - without opening it. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a sequenced packet socket without opening it. - The socket needs to be opened and then connected or accepted before data - can be sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the sequenced packet socket will use to dispatch handlers - for any asynchronous operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html deleted file mode 100644 index 0d0c026..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_seq_packet_socket. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a sequenced_packet socket. The socket - needs to be connected or accepted before data can be sent or received - on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the sequenced packet socket will use to dispatch handlers - for any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html deleted file mode 100644 index 0c9d950..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_seq_packet_socket, - opening it and binding it to the given local endpoint. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a sequenced packet socket and automatically - opens it bound to the specified endpoint on the local machine. The protocol - used is the protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the sequenced packet socket will use to dispatch handlers - for any asynchronous operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the sequenced packet - socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html deleted file mode 100644 index 49f90d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_seq_packet_socket - on an existing native socket. -

-
basic_seq_packet_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a sequenced packet socket object to hold an - existing native socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the sequenced packet socket will use to dispatch handlers - for any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- The new underlying socket implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html deleted file mode 100644 index e6defe3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_seq_packet_socket - from another. -

-
basic_seq_packet_socket(
-    basic_seq_packet_socket && other);
-
-

- This constructor moves a sequenced packet socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_seq_packet_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_seq_packet_socket(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html deleted file mode 100644 index e9cbce0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_seq_packet_socket::basic_seq_packet_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_seq_packet_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_seq_packet_socket(
-    basic_seq_packet_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a sequenced packet socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_seq_packet_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_seq_packet_socket(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind.html deleted file mode 100644 index 5b278a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind - the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html deleted file mode 100644 index d8124f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_seq_packet_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html deleted file mode 100644 index 27389c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bind/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_seq_packet_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html deleted file mode 100644 index 0fe2642..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html deleted file mode 100644 index 551188b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_seq_packet_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html deleted file mode 100644 index e314e66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html deleted file mode 100644 index d186150..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload1.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_seq_packet_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html deleted file mode 100644 index 7190d38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/cancel/overload2.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_seq_packet_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close.html deleted file mode 100644 index b1f5cd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html deleted file mode 100644 index 57e5a7f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_seq_packet_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html deleted file mode 100644 index 77c128c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/close/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_seq_packet_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect.html deleted file mode 100644 index 0246f20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect - the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html deleted file mode 100644 index a4dfbaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload1.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_seq_packet_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html deleted file mode 100644 index 88eb180..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/connect/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_seq_packet_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/debug.html deleted file mode 100644 index b20a1b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html deleted file mode 100644 index 2137c11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html deleted file mode 100644 index 8496d33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_seq_packet_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html deleted file mode 100644 index 35309ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_seq_packet_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html deleted file mode 100644 index cc6a6fc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -basic_seq_packet_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html deleted file mode 100644 index 7963b0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_context.html deleted file mode 100644 index 81663ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_seq_packet_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_service.html deleted file mode 100644 index b8f7bf4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_seq_packet_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html deleted file mode 100644 index 7cc7f8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_seq_packet_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html deleted file mode 100644 index 79a96c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_seq_packet_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html deleted file mode 100644 index 70f6a4f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_seq_packet_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html deleted file mode 100644 index f578d95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_seq_packet_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html deleted file mode 100644 index 596c4dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_seq_packet_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html deleted file mode 100644 index 48cea2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_seq_packet_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html deleted file mode 100644 index 9a96e8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Determine - whether the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html deleted file mode 100644 index 7a7937f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/linger.html deleted file mode 100644 index 98fa5c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/linger.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_seq_packet_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to specify whether the socket lingers on close if unsent data is - present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html deleted file mode 100644 index e2753ee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html deleted file mode 100644 index 5efce6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_seq_packet_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html deleted file mode 100644 index b26aed1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_seq_packet_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html deleted file mode 100644 index 05b79cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html deleted file mode 100644 index 68566a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_seq_packet_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html deleted file mode 100644 index 41b8e72..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_seq_packet_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html deleted file mode 100644 index c614ceb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/lowest_layer_type.html +++ /dev/null @@ -1,862 +0,0 @@ - - - -basic_seq_packet_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html deleted file mode 100644 index e5e8d9c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_seq_packet_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html deleted file mode 100644 index c90e32b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html deleted file mode 100644 index 41504bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html deleted file mode 100644 index 0d6b411..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html deleted file mode 100644 index 757bdc8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html deleted file mode 100644 index 147eb2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html deleted file mode 100644 index 11bb72e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_seq_packet_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html deleted file mode 100644 index 1e45893..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_seq_packet_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html deleted file mode 100644 index ca013de..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_seq_packet_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html deleted file mode 100644 index e5ff70d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html deleted file mode 100644 index 3da085d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -basic_seq_packet_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html deleted file mode 100644 index 80f94ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -basic_seq_packet_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html deleted file mode 100644 index c786083..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -basic_seq_packet_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html deleted file mode 100644 index 1d29cc9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html deleted file mode 100644 index c3622fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_seq_packet_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html deleted file mode 100644 index 385dee9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_seq_packet_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html deleted file mode 100644 index 4ebab91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_seq_packet_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open.html deleted file mode 100644 index 6e3d725..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open - the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html deleted file mode 100644 index e930ee5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_seq_packet_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html deleted file mode 100644 index d55928d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/open/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_seq_packet_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html deleted file mode 100644 index c7f3477..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_seq_packet_socket - from another. -

-
basic_seq_packet_socket & operator=(
-    basic_seq_packet_socket && other);
-  » more...
-
-

- Move-assign a basic_seq_packet_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_seq_packet_socket >::type & operator=(
-    basic_seq_packet_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html deleted file mode 100644 index 65ba4f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_seq_packet_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_seq_packet_socket - from another. -

-
basic_seq_packet_socket & operator=(
-    basic_seq_packet_socket && other);
-
-

- This assignment operator moves a sequenced packet socket from one object - to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_seq_packet_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_seq_packet_socket(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html deleted file mode 100644 index 6c3af66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_seq_packet_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_seq_packet_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_seq_packet_socket >::type & operator=(
-    basic_seq_packet_socket< Protocol1 > && other);
-
-

- This assignment operator moves a sequenced packet socket from one object - to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_seq_packet_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_seq_packet_socket(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html deleted file mode 100644 index f7975d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html deleted file mode 100644 index 70499fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_seq_packet_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive.html deleted file mode 100644 index c141c43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_seq_packet_socket::receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags & out_flags);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags);
-  » more...
-
-

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html deleted file mode 100644 index 4baff92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload1.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_seq_packet_socket::receive (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags & out_flags);
-
-

- This function is used to receive data on the sequenced packet socket. - The function call will block until data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
out_flags
-

- After the receive call completes, contains flags associated with - the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size), out_flags);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html deleted file mode 100644 index 77ae9c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload2.html +++ /dev/null @@ -1,122 +0,0 @@ - - - -basic_seq_packet_socket::receive (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags);
-
-

- This function is used to receive data on the sequenced packet socket. - The function call will block until data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
in_flags
-

- Flags specifying how the receive call is to be made. -

-
out_flags
-

- After the receive call completes, contains flags associated with - the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size), 0, out_flags);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html deleted file mode 100644 index 8bbd7f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive/overload3.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -basic_seq_packet_socket::receive (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags in_flags,
-    socket_base::message_flags & out_flags,
-    asio::error_code & ec);
-
-

- This function is used to receive data on the sequenced packet socket. - The function call will block until data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
in_flags
-

- Flags specifying how the receive call is to be made. -

-
out_flags
-

- After the receive call completes, contains flags associated with - the received data. For example, if the socket_base::message_end_of_record - bit is set then the received data marks the end of a record. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html deleted file mode 100644 index ebeb4ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html deleted file mode 100644 index 22f5940..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release.html deleted file mode 100644 index f8119fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html deleted file mode 100644 index 8237202..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_seq_packet_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html deleted file mode 100644 index 19b6c05..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/release/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_seq_packet_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html deleted file mode 100644 index 2989dcb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_seq_packet_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html deleted file mode 100644 index 9e31c09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_seq_packet_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html deleted file mode 100644 index fcc8296..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_seq_packet_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html deleted file mode 100644 index 86af577..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_seq_packet_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send.html deleted file mode 100644 index f7fe068..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_seq_packet_socket::send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send - some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html deleted file mode 100644 index bbe0c7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload1.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_seq_packet_socket::send (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to send data on the sequenced packet socket. The - function call will block until the data has been sent successfully, or - an until error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size), 0);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html deleted file mode 100644 index e20beff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send/overload2.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_seq_packet_socket::send (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send data on the sequenced packet socket. The - function call will block the data has been sent successfully, or an until - error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html deleted file mode 100644 index 5d1e077..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html deleted file mode 100644 index 4515702..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_seq_packet_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_seq_packet_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html deleted file mode 100644 index 717b73c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_seq_packet_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html deleted file mode 100644 index 8a35d86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_seq_packet_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html deleted file mode 100644 index 0d25fa1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/set_option/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_seq_packet_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html deleted file mode 100644 index dd71b1a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_seq_packet_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html deleted file mode 100644 index 02c382a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_seq_packet_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html deleted file mode 100644 index 162eba9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_seq_packet_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html deleted file mode 100644 index c660ff5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_seq_packet_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait.html deleted file mode 100644 index ef20032..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_seq_packet_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - for the socket to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html deleted file mode 100644 index 9bb3e1a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_seq_packet_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html deleted file mode 100644 index 7ba4425..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_seq_packet_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html deleted file mode 100644 index d6bf601..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_seq_packet_socket/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_seq_packet_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket.html deleted file mode 100644 index 5212797..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket.html +++ /dev/null @@ -1,857 +0,0 @@ - - - -basic_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides socket functionality. -

-
template<
-    typename Protocol>
-class basic_socket :
-  public socket_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another protocol - type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/_basic_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/_basic_socket.html deleted file mode 100644 index 2b091fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/_basic_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket::~basic_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~basic_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign.html deleted file mode 100644 index 719165e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign an existing - native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload1.html deleted file mode 100644 index 605d5b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload2.html deleted file mode 100644 index 152620f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/assign/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_connect.html deleted file mode 100644 index 9f596a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_connect.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -basic_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_wait.html deleted file mode 100644 index 258600f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/async_wait.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -basic_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark.html deleted file mode 100644 index 440a5c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether - the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload1.html deleted file mode 100644 index 4189d0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload1.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -basic_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload2.html deleted file mode 100644 index 7deafab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/at_mark/overload2.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/available.html deleted file mode 100644 index e249798..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine the - number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload1.html deleted file mode 100644 index 630d8b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload1.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload2.html deleted file mode 100644 index 50229d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/available/overload2.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket.html deleted file mode 100644 index edb2f69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_socket::basic_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_socket - without opening it. -

-
explicit basic_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_socket. -

-
basic_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_socket, - opening it and binding it to the given local endpoint. -

-
basic_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_socket - on an existing native socket. -

-
basic_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_socket - from another. -

-
basic_socket(
-    basic_socket && other);
-  » more...
-
-

- Move-construct a basic_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_socket(
-    basic_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html deleted file mode 100644 index 0f4a240..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket::basic_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket - without opening it. -

-
basic_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a socket without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the socket will use to dispatch handlers for any asynchronous - operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html deleted file mode 100644 index 380ac57..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket::basic_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_socket. -

-
basic_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the socket will use to dispatch handlers for any asynchronous - operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html deleted file mode 100644 index 6c77bf3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload3.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket::basic_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket, - opening it and binding it to the given local endpoint. -

-
basic_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a socket and automatically opens it bound to - the specified endpoint on the local machine. The protocol used is the - protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the socket will use to dispatch handlers for any asynchronous - operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html deleted file mode 100644 index 6ee20f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload4.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_socket::basic_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket - on an existing native socket. -

-
basic_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a socket object to hold an existing native socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the socket will use to dispatch handlers for any asynchronous - operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- A native socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html deleted file mode 100644 index 3f46396..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::basic_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket - from another. -

-
basic_socket(
-    basic_socket && other);
-
-

- This constructor moves a socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html deleted file mode 100644 index d175ddf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/basic_socket/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket::basic_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_socket(
-    basic_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind.html deleted file mode 100644 index 4c6d920..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind the socket to the - given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload1.html deleted file mode 100644 index 9a94deb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload2.html deleted file mode 100644 index 614afa1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bind/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/broadcast.html deleted file mode 100644 index 818053e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option - to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/bytes_readable.html deleted file mode 100644 index ceb08f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel.html deleted file mode 100644 index aaf7f40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all asynchronous - operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload1.html deleted file mode 100644 index 22936bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload1.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload2.html deleted file mode 100644 index 1d382c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/cancel/overload2.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -basic_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/close.html deleted file mode 100644 index 8d05562..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload1.html deleted file mode 100644 index 5d0b5b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload2.html deleted file mode 100644 index 3cdee11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/close/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect.html deleted file mode 100644 index 2e76f81..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect the socket - to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload1.html deleted file mode 100644 index 3e65a0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload1.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload2.html deleted file mode 100644 index 5160e90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/connect/overload2.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/debug.html deleted file mode 100644 index d87f270..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option to enable - socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/do_not_route.html deleted file mode 100644 index 6bb2d6b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html deleted file mode 100644 index f67c358..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/endpoint_type.html deleted file mode 100644 index f093512..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The endpoint - type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/executor_type.html deleted file mode 100644 index 1259f18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_executor.html deleted file mode 100644 index e8f0be1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_context.html deleted file mode 100644 index 4b775e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_service.html deleted file mode 100644 index 1f8af5d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option.html deleted file mode 100644 index ea03ea5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get an option - from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload1.html deleted file mode 100644 index 219873d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload2.html deleted file mode 100644 index 5470cba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/get_option/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control.html deleted file mode 100644 index ff5ea5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform an - IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload1.html deleted file mode 100644 index 9c70cee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload2.html deleted file mode 100644 index 1ead717..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/io_control/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/is_open.html deleted file mode 100644 index 026ef15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether - the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/keep_alive.html deleted file mode 100644 index aa1ea85..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option - to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/linger.html deleted file mode 100644 index 83f8246..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/linger.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket option to specify - whether the socket lingers on close if unsent data is present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint.html deleted file mode 100644 index 29a2ae7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html deleted file mode 100644 index a8b3519..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html deleted file mode 100644 index 422b53b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer.html deleted file mode 100644 index 599c609..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a reference - to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html deleted file mode 100644 index 1943c19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html deleted file mode 100644 index 55ed6ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer_type.html deleted file mode 100644 index 46fc247..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/lowest_layer_type.html +++ /dev/null @@ -1,859 +0,0 @@ - - - -basic_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_connections.html deleted file mode 100644 index 2a686dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_listen_connections.html deleted file mode 100644 index 92e21fc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_do_not_route.html deleted file mode 100644 index fd52f92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_end_of_record.html deleted file mode 100644 index 2677b47..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_flags.html deleted file mode 100644 index fb85fd1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_out_of_band.html deleted file mode 100644 index 923e470..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_peek.html deleted file mode 100644 index 7cddf8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek at - incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle.html deleted file mode 100644 index ef4ea91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle_type.html deleted file mode 100644 index e249224..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking.html deleted file mode 100644 index cdf113d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html deleted file mode 100644 index 31b602c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,141 +0,0 @@ - - - -basic_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html deleted file mode 100644 index 9092a89..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -basic_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html deleted file mode 100644 index f37ea45..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -basic_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking.html deleted file mode 100644 index 4f63ce7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets the - non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html deleted file mode 100644 index 34e349b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html deleted file mode 100644 index 438dda7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html deleted file mode 100644 index bf22e6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/non_blocking/overload3.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/open.html deleted file mode 100644 index 70e613d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open the socket using the - specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload1.html deleted file mode 100644 index c95d64f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload1.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload2.html deleted file mode 100644 index 3c541f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/open/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -basic_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_.html deleted file mode 100644 index 57361a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_socket - from another. -

-
basic_socket & operator=(
-    basic_socket && other);
-  » more...
-
-

- Move-assign a basic_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket >::type & operator=(
-    basic_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html deleted file mode 100644 index 40788e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_socket - from another. -

-
basic_socket & operator=(
-    basic_socket && other);
-
-

- This assignment operator moves a socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html deleted file mode 100644 index 983051b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket >::type & operator=(
-    basic_socket< Protocol1 > && other);
-
-

- This assignment operator moves a socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/out_of_band_inline.html deleted file mode 100644 index c7b0196..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/protocol_type.html deleted file mode 100644 index 0194149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The protocol - type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_buffer_size.html deleted file mode 100644 index 3d4b129..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_low_watermark.html deleted file mode 100644 index 1259611..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/release.html deleted file mode 100644 index 669e5a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release ownership - of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload1.html deleted file mode 100644 index d773a06..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload2.html deleted file mode 100644 index 3d90b05..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/release/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint.html deleted file mode 100644 index 78ffa9a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html deleted file mode 100644 index 8a366ee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html deleted file mode 100644 index 64ec59e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/reuse_address.html deleted file mode 100644 index 02134d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_buffer_size.html deleted file mode 100644 index c05c7db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_low_watermark.html deleted file mode 100644 index 6382997..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option.html deleted file mode 100644 index 7badd95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set an option - on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload1.html deleted file mode 100644 index 84a4d91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload1.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload2.html deleted file mode 100644 index 01620a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/set_option/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown.html deleted file mode 100644 index 1b2ee93..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable sends or - receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload1.html deleted file mode 100644 index dc242fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload2.html deleted file mode 100644 index c51d23b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown_type.html deleted file mode 100644 index db25b0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait.html deleted file mode 100644 index 9b9b84d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for the socket to - become ready to read, ready to write, or to have pending error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload1.html deleted file mode 100644 index 302e0b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload2.html deleted file mode 100644 index 934ce65..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait/overload2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -basic_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait_type.html deleted file mode 100644 index f573405..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket/wait_type.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor.html deleted file mode 100644 index 7d46804..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor.html +++ /dev/null @@ -1,788 +0,0 @@ - - - -basic_socket_acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides the ability to accept new connections. -

-
template<
-    typename Protocol>
-class basic_socket_acceptor :
-  public socket_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of an acceptor. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- accept -

-
-

- Accept a new connection.

Accept a new connection - and obtain the endpoint of the peer. -

-
-

- assign -

-
-

- Assigns an existing native acceptor to the acceptor. -

-
-

- async_accept -

-
-

- Start an asynchronous accept. -

-
-

- async_wait -

-
-

- Asynchronously wait for the acceptor to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- basic_socket_acceptor -

-
-

- Construct an acceptor without opening it.

Construct - an open acceptor.

Construct an acceptor opened on - the given endpoint.

Construct a basic_socket_acceptor - on an existing native acceptor.

Move-construct a - basic_socket_acceptor from another.

Move-construct - a basic_socket_acceptor from an acceptor of another protocol type. -

-
-

- bind -

-
-

- Bind the acceptor to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the acceptor. -

-
-

- close -

-
-

- Close the acceptor. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the acceptor. -

-
-

- io_control -

-
-

- Perform an IO control command on the acceptor. -

-
-

- is_open -

-
-

- Determine whether the acceptor is open. -

-
-

- listen -

-
-

- Place the acceptor into the state where it will listen for new - connections. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the acceptor. -

-
-

- native_handle -

-
-

- Get the native acceptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native acceptor implementation. -

Sets the non-blocking mode of the native acceptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the acceptor.

Sets - the non-blocking mode of the acceptor. -

-
-

- open -

-
-

- Open the acceptor using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_acceptor from another.

- Move-assign a basic_socket_acceptor from an acceptor of another - protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native acceptor. -

-
-

- set_option -

-
-

- Set an option on the acceptor. -

-
-

- wait -

-
-

- Wait for the acceptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_socket_acceptor -

-
-

- Destroys the acceptor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket_acceptor - class template is used for accepting new socket connections. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- Opening a socket acceptor with the SO_REUSEADDR option enabled: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port);
-acceptor.open(endpoint.protocol());
-acceptor.set_option(asio::ip::tcp::acceptor::reuse_address(true));
-acceptor.bind(endpoint);
-acceptor.listen();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html deleted file mode 100644 index 38bcf4f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket_acceptor::~basic_socket_acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the acceptor. -

-
~basic_socket_acceptor();
-
-

- This function destroys the acceptor, cancelling any outstanding asynchronous - operations associated with the acceptor as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept.html deleted file mode 100644 index 6bacab6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_socket_acceptor::accept - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Accept - a new connection. -

-
template<
-    typename Protocol1>
-void accept(
-    basic_socket< Protocol1 > & peer,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol1>
-void accept(
-    basic_socket< Protocol1 > & peer,
-    asio::error_code & ec,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-  » more...
-
-

- Accept a new connection and obtain the endpoint of the peer. -

-
void accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint);
-  » more...
-
-void accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-Protocol::socket accept();
-  » more...
-
-Protocol::socket accept(
-    asio::error_code & ec);
-  » more...
-
-Protocol::socket accept(
-    asio::io_context & io_context);
-  » more...
-
-Protocol::socket accept(
-    asio::io_context & io_context,
-    asio::error_code & ec);
-  » more...
-
-Protocol::socket accept(
-    endpoint_type & peer_endpoint);
-  » more...
-
-Protocol::socket accept(
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-Protocol::socket accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint);
-  » more...
-
-Protocol::socket accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html deleted file mode 100644 index ceae02e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload1.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::accept (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
template<
-    typename Protocol1>
-void accept(
-    basic_socket< Protocol1 > & peer,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-
-

- This function is used to accept a new connection from a peer into the - given socket. The function call will block until a new connection has - been accepted successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-acceptor.accept(socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html deleted file mode 100644 index 346e5c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload10.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -basic_socket_acceptor::accept (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- On success, a socket object representing the newly accepted connection. - On error, a socket object where is_open() is false. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec));
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html deleted file mode 100644 index 6a800a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload11.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_socket_acceptor::accept (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. -

-
-
-
- - Return - Value -
-

- A socket object representing the newly accepted connection. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-asio::ip::tcp::socket socket(
-    acceptor.accept(io_context2, endpoint));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html deleted file mode 100644 index c64afbe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload12.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_socket_acceptor::accept (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- On success, a socket object representing the newly accepted connection. - On error, a socket object where is_open() is false. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-asio::ip::tcp::socket socket(
-    acceptor.accept(io_context2, endpoint, ec));
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html deleted file mode 100644 index 87e7545..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket_acceptor::accept (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
template<
-    typename Protocol1>
-void accept(
-    basic_socket< Protocol1 > & peer,
-    asio::error_code & ec,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-
-

- This function is used to accept a new connection from a peer into the - given socket. The function call will block until a new connection has - been accepted successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-acceptor.accept(socket, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html deleted file mode 100644 index 8de6006..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload3.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_socket_acceptor::accept (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection and obtain the endpoint of the peer. -

-
void accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint);
-
-

- This function is used to accept a new connection from a peer into the - given socket, and additionally provide the endpoint of the remote peer. - The function call will block until a new connection has been accepted - successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. -

-
peer_endpoint
-

- An endpoint object which will receive the endpoint of the remote - peer. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint;
-acceptor.accept(socket, endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html deleted file mode 100644 index c6fa1c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload4.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_socket_acceptor::accept (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection and obtain the endpoint of the peer. -

-
void accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer into the - given socket, and additionally provide the endpoint of the remote peer. - The function call will block until a new connection has been accepted - successfully or an error occurs. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. -

-
peer_endpoint
-

- An endpoint object which will receive the endpoint of the remote - peer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint;
-asio::error_code ec;
-acceptor.accept(socket, endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html deleted file mode 100644 index e69e9da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload5.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::accept (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept();
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Return - Value -
-

- A socket object representing the newly accepted connection. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(acceptor.accept());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html deleted file mode 100644 index 5e51c5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload6.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::accept (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- On success, a socket object representing the newly accepted connection. - On error, a socket object where is_open() is false. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(acceptor.accept(ec));
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html deleted file mode 100644 index 063abac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload7.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -basic_socket_acceptor::accept (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::io_context & io_context);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
-
-
- - Return - Value -
-

- A socket object representing the newly accepted connection. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(acceptor.accept());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html deleted file mode 100644 index 681f063..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload8.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_socket_acceptor::accept (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    asio::io_context & io_context,
-    asio::error_code & ec);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- On success, a socket object representing the newly accepted connection. - On error, a socket object where is_open() is false. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(acceptor.accept(io_context2, ec));
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html deleted file mode 100644 index 9ac872f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/accept/overload9.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -basic_socket_acceptor::accept (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Accept a new connection. -

-
Protocol::socket accept(
-    endpoint_type & peer_endpoint);
-
-

- This function is used to accept a new connection from a peer. The function - call will block until a new connection has been accepted successfully - or an error occurs. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. -

-
-
-
- - Return - Value -
-

- A socket object representing the newly accepted connection. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-asio::ip::tcp::socket socket(acceptor.accept(endpoint));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign.html deleted file mode 100644 index f55f78b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_acceptor::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assigns - an existing native acceptor to the acceptor. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html deleted file mode 100644 index 2567d05..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_acceptor::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assigns an existing native acceptor to the acceptor. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html deleted file mode 100644 index 8cf24f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/assign/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_socket_acceptor::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assigns an existing native acceptor to the acceptor. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html deleted file mode 100644 index 5dfc58d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::async_accept - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous accept. -

-
template<
-    typename Protocol1,
-    typename AcceptHandler>
-DEDUCED async_accept(
-    basic_socket< Protocol1 > & peer,
-    AcceptHandler && handler,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-  » more...
-
-template<
-    typename AcceptHandler>
-DEDUCED async_accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint,
-    AcceptHandler && handler);
-  » more...
-
-template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    MoveAcceptHandler && handler);
-  » more...
-
-template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    asio::io_context & io_context,
-    MoveAcceptHandler && handler);
-  » more...
-
-template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    endpoint_type & peer_endpoint,
-    MoveAcceptHandler && handler);
-  » more...
-
-template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint,
-    MoveAcceptHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html deleted file mode 100644 index 1791c2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload1.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_socket_acceptor::async_accept (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename Protocol1,
-    typename AcceptHandler>
-DEDUCED async_accept(
-    basic_socket< Protocol1 > & peer,
-    AcceptHandler && handler,
-    typename enable_if< is_convertible< Protocol, Protocol1 >::value >::type *  = 0);
-
-

- This function is used to asynchronously accept a new connection into - a socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. Ownership - of the peer object is retained by the caller, which must guarantee - that it is valid until the handler is called. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::socket socket(io_context);
-acceptor.async_accept(socket, accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html deleted file mode 100644 index 948d689..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload2.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_socket_acceptor::async_accept (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename AcceptHandler>
-DEDUCED async_accept(
-    basic_socket< protocol_type > & peer,
-    endpoint_type & peer_endpoint,
-    AcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection into - a socket, and additionally obtain the endpoint of the remote peer. The - function call always returns immediately. -

-
- - Parameters -
-
-

-
-
peer
-

- The socket into which the new connection will be accepted. Ownership - of the peer object is retained by the caller, which must guarantee - that it is valid until the handler is called. -

-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. Ownership of the peer_endpoint object is retained by - the caller, which must guarantee that it is valid until the handler - is called. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html deleted file mode 100644 index c783b07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload3.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_socket_acceptor::async_accept (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    MoveAcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection. The - function call always returns immediately. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  typename Protocol::socket peer // On success, the newly accepted socket.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error,
-    asio::ip::tcp::socket peer)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-acceptor.async_accept(accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html deleted file mode 100644 index 70d113b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload4.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -basic_socket_acceptor::async_accept (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    asio::io_context & io_context,
-    MoveAcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection. The - function call always returns immediately. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  typename Protocol::socket peer // On success, the newly accepted socket.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error,
-    asio::ip::tcp::socket peer)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-acceptor.async_accept(io_context2, accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html deleted file mode 100644 index a146859..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload5.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -basic_socket_acceptor::async_accept (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    endpoint_type & peer_endpoint,
-    MoveAcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection. The - function call always returns immediately. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. Ownership of the peer_endpoint object is retained by - the caller, which must guarantee that it is valid until the handler - is called. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  typename Protocol::socket peer // On success, the newly accepted socket.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error,
-    asio::ip::tcp::socket peer)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-acceptor.async_accept(endpoint, accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html deleted file mode 100644 index 1b082a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_accept/overload6.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -basic_socket_acceptor::async_accept (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous accept. -

-
template<
-    typename MoveAcceptHandler>
-DEDUCED async_accept(
-    asio::io_context & io_context,
-    endpoint_type & peer_endpoint,
-    MoveAcceptHandler && handler);
-
-

- This function is used to asynchronously accept a new connection. The - function call always returns immediately. -

-

- This overload requires that the Protocol template parameter satisfy the - AcceptableProtocol type requirements. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object to be used for the newly accepted socket. -

-
peer_endpoint
-

- An endpoint object into which the endpoint of the remote peer will - be written. Ownership of the peer_endpoint object is retained by - the caller, which must guarantee that it is valid until the handler - is called. -

-
handler
-
-

- The handler to be called when the accept operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  typename Protocol::socket peer // On success, the newly accepted socket.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void accept_handler(const asio::error_code& error,
-    asio::ip::tcp::socket peer)
-{
-  if (!error)
-  {
-    // Accept succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint;
-acceptor.async_accept(io_context2, endpoint, accept_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html deleted file mode 100644 index 714676c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/async_wait.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_socket_acceptor::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Asynchronously - wait for the acceptor to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for an acceptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired acceptor state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::acceptor acceptor(io_context);
-...
-acceptor.async_wait(
-    asio::ip::tcp::acceptor::wait_read,
-    wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html deleted file mode 100644 index 432b420..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an acceptor without opening it. -

-
explicit basic_socket_acceptor(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct an open acceptor. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct an acceptor opened on the given endpoint. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint,
-    bool reuse_addr = true);
-  » more...
-
-

- Construct a basic_socket_acceptor - on an existing native acceptor. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor);
-  » more...
-
-

- Move-construct a basic_socket_acceptor - from another. -

-
basic_socket_acceptor(
-    basic_socket_acceptor && other);
-  » more...
-
-

- Move-construct a basic_socket_acceptor - from an acceptor of another protocol type. -

-
template<
-    typename Protocol1>
-basic_socket_acceptor(
-    basic_socket_acceptor< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html deleted file mode 100644 index ef995b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an acceptor without opening it. -

-
basic_socket_acceptor(
-    asio::io_context & io_context);
-
-

- This constructor creates an acceptor without opening it to listen for - new connections. The open() function must be called before - the acceptor can accept new socket connections. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the acceptor will use to dispatch handlers for any - asynchronous operations performed on the acceptor. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html deleted file mode 100644 index 53e242e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an open acceptor. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates an acceptor and automatically opens it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the acceptor will use to dispatch handlers for any - asynchronous operations performed on the acceptor. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html deleted file mode 100644 index 2b84c2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an acceptor opened on the given endpoint. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint,
-    bool reuse_addr = true);
-
-

- This constructor creates an acceptor and automatically opens it to listen - for new connections on the specified endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the acceptor will use to dispatch handlers for any - asynchronous operations performed on the acceptor. -

-
endpoint
-

- An endpoint on the local machine on which the acceptor will listen - for new connections. -

-
reuse_addr
-

- Whether the constructor should set the socket option socket_base::reuse_address. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This constructor is equivalent to the following code: -

-
basic_socket_acceptor<Protocol> acceptor(io_context);
-acceptor.open(endpoint.protocol());
-if (reuse_addr)
-  acceptor.set_option(socket_base::reuse_address(true));
-acceptor.bind(endpoint);
-acceptor.listen(listen_backlog);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html deleted file mode 100644 index 5787f19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_acceptor - on an existing native acceptor. -

-
basic_socket_acceptor(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_acceptor);
-
-

- This constructor creates an acceptor object to hold an existing native - acceptor. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the acceptor will use to dispatch handlers for any - asynchronous operations performed on the acceptor. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_acceptor
-

- A native acceptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html deleted file mode 100644 index 774bc4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket_acceptor - from another. -

-
basic_socket_acceptor(
-    basic_socket_acceptor && other);
-
-

- This constructor moves an acceptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket_acceptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket_acceptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html deleted file mode 100644 index 95f89b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket_acceptor::basic_socket_acceptor (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket_acceptor - from an acceptor of another protocol type. -

-
template<
-    typename Protocol1>
-basic_socket_acceptor(
-    basic_socket_acceptor< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves an acceptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket_acceptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind.html deleted file mode 100644 index 0ecb88e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket_acceptor::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind - the acceptor to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html deleted file mode 100644 index bdaf150..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload1.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket_acceptor::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Bind the acceptor to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket acceptor to the specified endpoint on - the local machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket acceptor will - be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345);
-acceptor.open(endpoint.protocol());
-acceptor.bind(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html deleted file mode 100644 index 41107eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bind/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Bind the acceptor to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket acceptor to the specified endpoint on - the local machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket acceptor will - be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345);
-acceptor.open(endpoint.protocol());
-asio::error_code ec;
-acceptor.bind(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html deleted file mode 100644 index aa2cd18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html deleted file mode 100644 index 38b19d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket_acceptor::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel.html deleted file mode 100644 index f4699e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the acceptor. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html deleted file mode 100644 index db6b094..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_socket_acceptor::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the acceptor. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html deleted file mode 100644 index 8f040e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_acceptor::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the acceptor. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close.html deleted file mode 100644 index b57d2c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the acceptor. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html deleted file mode 100644 index bf0b693..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_socket_acceptor::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the acceptor. -

-
void close();
-
-

- This function is used to close the acceptor. Any asynchronous accept - operations will be cancelled immediately. -

-

- A subsequent call to open() is required before the acceptor - can again be used to again perform socket accept operations. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html deleted file mode 100644 index b803e78..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/close/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_socket_acceptor::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the acceptor. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the acceptor. Any asynchronous accept - operations will be cancelled immediately. -

-

- A subsequent call to open() is required before the acceptor - can again be used to again perform socket accept operations. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::error_code ec;
-acceptor.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/debug.html deleted file mode 100644 index cd173db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html deleted file mode 100644 index 4ea1d94..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html deleted file mode 100644 index e603a6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket_acceptor::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html deleted file mode 100644 index a286ea0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_acceptor::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html deleted file mode 100644 index 7d09363..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_socket_acceptor::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html deleted file mode 100644 index e09639c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_acceptor::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_context.html deleted file mode 100644 index a0cb3a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_socket_acceptor::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_service.html deleted file mode 100644 index 0a107a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_socket_acceptor::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option.html deleted file mode 100644 index c74047f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket_acceptor::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the acceptor. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html deleted file mode 100644 index dfd49ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_socket_acceptor::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the acceptor. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the acceptor. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the acceptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_REUSEADDR option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html deleted file mode 100644 index a7eea68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/get_option/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_socket_acceptor::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the acceptor. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the acceptor. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the acceptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_REUSEADDR option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::reuse_address option;
-asio::error_code ec;
-acceptor.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control.html deleted file mode 100644 index 21ff6b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket_acceptor::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the acceptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html deleted file mode 100644 index 585a89d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload1.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the acceptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the acceptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the acceptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::non_blocking_io command(true);
-socket.io_control(command);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html deleted file mode 100644 index 5542059..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/io_control/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket_acceptor::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the acceptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the acceptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the acceptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::non_blocking_io command(true);
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/is_open.html deleted file mode 100644 index 8d1fbb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_acceptor::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the acceptor is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html deleted file mode 100644 index 497be15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/linger.html deleted file mode 100644 index 64c3c77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/linger.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket_acceptor::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to specify whether the socket lingers on close if unsent data is - present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen.html deleted file mode 100644 index a68cf55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket_acceptor::listen - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Place - the acceptor into the state where it will listen for new connections. -

-
void listen(
-    int backlog = socket_base::max_listen_connections);
-  » more...
-
-void listen(
-    int backlog,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html deleted file mode 100644 index 223033c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_socket_acceptor::listen (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Place the acceptor into the state where it will listen for new connections. -

-
void listen(
-    int backlog = socket_base::max_listen_connections);
-
-

- This function puts the socket acceptor into the state where it may accept - new connections. -

-
- - Parameters -
-
-

-
-
backlog
-

- The maximum length of the queue of pending connections. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html deleted file mode 100644 index cfc8161..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/listen/overload2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -basic_socket_acceptor::listen (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Place the acceptor into the state where it will listen for new connections. -

-
void listen(
-    int backlog,
-    asio::error_code & ec);
-
-

- This function puts the socket acceptor into the state where it may accept - new connections. -

-
- - Parameters -
-
-

-
-
backlog
-

- The maximum length of the queue of pending connections. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::error_code ec;
-acceptor.listen(asio::socket_base::max_listen_connections, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html deleted file mode 100644 index ad7787e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the acceptor. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html deleted file mode 100644 index 9dd2cbf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket_acceptor::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the local endpoint of the acceptor. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the acceptor. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the acceptor. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html deleted file mode 100644 index 3a0d62d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/local_endpoint/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_socket_acceptor::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the local endpoint of the acceptor. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the acceptor. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the acceptor. Returns - a default-constructed endpoint object if an error occurred and the error - handler did not throw an exception. -

-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html deleted file mode 100644 index e365ff0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_socket_acceptor::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html deleted file mode 100644 index 7288296..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html deleted file mode 100644 index 46bf946..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html deleted file mode 100644 index 5dad9a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html deleted file mode 100644 index f50b5c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket_acceptor::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html deleted file mode 100644 index b8de7c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html deleted file mode 100644 index 0f1e36d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_socket_acceptor::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html deleted file mode 100644 index 7be011b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the native acceptor representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - acceptor. This is intended to allow access to native acceptor functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html deleted file mode 100644 index c336e5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_acceptor::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of an acceptor. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html deleted file mode 100644 index cb2212e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket_acceptor::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native acceptor implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native acceptor implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html deleted file mode 100644 index 2850fb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -basic_socket_acceptor::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the native acceptor implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native acceptor. This mode has no effect on the behaviour of the acceptor - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying acceptor is in non-blocking mode - and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the acceptor object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native acceptor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html deleted file mode 100644 index e8578ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_socket_acceptor::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native acceptor implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native acceptor. It has no effect on the behaviour of the acceptor object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying acceptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html deleted file mode 100644 index cab7bbe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket_acceptor::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native acceptor implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native acceptor. It has no effect on the behaviour of the acceptor object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying acceptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html deleted file mode 100644 index 98fbca4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket_acceptor::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the acceptor. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the acceptor. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html deleted file mode 100644 index f9c3477..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_acceptor::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the acceptor. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the acceptor's synchronous operations will fail - with asio::error::would_block if they are unable to perform - the requested operation immediately. If false, synchronous - operations will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html deleted file mode 100644 index bae8735..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the acceptor. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the acceptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html deleted file mode 100644 index 8b0f53a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/non_blocking/overload3.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket_acceptor::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the acceptor. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the acceptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open.html deleted file mode 100644 index c99064c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_socket_acceptor::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open - the acceptor using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html deleted file mode 100644 index 323bc66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload1.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the acceptor using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket acceptor so that it will use the specified - protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-acceptor.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html deleted file mode 100644 index f7f5efc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/open/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_socket_acceptor::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the acceptor using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket acceptor so that it will use the specified - protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::error_code ec;
-acceptor.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html deleted file mode 100644 index 635e7d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_socket_acceptor::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_socket_acceptor - from another. -

-
basic_socket_acceptor & operator=(
-    basic_socket_acceptor && other);
-  » more...
-
-

- Move-assign a basic_socket_acceptor - from an acceptor of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket_acceptor >::type & operator=(
-    basic_socket_acceptor< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html deleted file mode 100644 index 1ed215f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_socket_acceptor::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_socket_acceptor - from another. -

-
basic_socket_acceptor & operator=(
-    basic_socket_acceptor && other);
-
-

- This assignment operator moves an acceptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket_acceptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket_acceptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html deleted file mode 100644 index 2d6c747..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket_acceptor::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_socket_acceptor - from an acceptor of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_socket_acceptor >::type & operator=(
-    basic_socket_acceptor< Protocol1 > && other);
-
-

- This assignment operator moves an acceptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_socket_acceptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html deleted file mode 100644 index e5c9b50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html deleted file mode 100644 index 1dff837..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_acceptor::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html deleted file mode 100644 index fa8dfa5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html deleted file mode 100644 index 77fbdf0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release.html deleted file mode 100644 index 2d054d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_socket_acceptor::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the underlying native acceptor. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html deleted file mode 100644 index fa78082..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_socket_acceptor::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Release ownership of the underlying native acceptor. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous accept operations to - finish immediately, and the handlers for cancelled operations will be - passed the asio::error::operation_aborted error. Ownership - of the native acceptor is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html deleted file mode 100644 index ca9ed60..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/release/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_socket_acceptor::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Release ownership of the underlying native acceptor. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous accept operations to - finish immediately, and the handlers for cancelled operations will be - passed the asio::error::operation_aborted error. Ownership - of the native acceptor is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html deleted file mode 100644 index 5d89363..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_socket_acceptor::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html deleted file mode 100644 index fe1d436..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html deleted file mode 100644 index f888a82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_socket_acceptor::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_socket_acceptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option.html deleted file mode 100644 index e2144cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket_acceptor::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the acceptor. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html deleted file mode 100644 index b208d66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload1.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_socket_acceptor::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the acceptor. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the acceptor. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the acceptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the SOL_SOCKET/SO_REUSEADDR option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::reuse_address option(true);
-acceptor.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html deleted file mode 100644 index 5c31a2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/set_option/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_socket_acceptor::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the acceptor. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the acceptor. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the acceptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the SOL_SOCKET/SO_REUSEADDR option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::ip::tcp::acceptor::reuse_address option(true);
-asio::error_code ec;
-acceptor.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html deleted file mode 100644 index a9e5b13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket_acceptor::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait.html deleted file mode 100644 index 1b50e5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_acceptor::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - for the acceptor to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html deleted file mode 100644 index 30eabc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_socket_acceptor::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the acceptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for an acceptor to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired acceptor state. -

-
-
-
- - Example -
-

- Waiting for an acceptor to become readable. -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-acceptor.wait(asio::ip::tcp::acceptor::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html deleted file mode 100644 index db4cf6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait/overload2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -basic_socket_acceptor::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the acceptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for an acceptor to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired acceptor state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for an acceptor to become readable. -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::error_code ec;
-acceptor.wait(asio::ip::tcp::acceptor::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html deleted file mode 100644 index 381ef67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_acceptor/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_socket_acceptor::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream.html deleted file mode 100644 index 7e87adc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream.html +++ /dev/null @@ -1,328 +0,0 @@ - - - -basic_socket_iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Iostream interface for a socket. -

-
template<
-    typename Protocol,
-    typename Clock = chrono::steady_clock,
-    typename WaitTraits = wait_traits<Clock>>
-class basic_socket_iostream
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_iostream -

-
-

- Construct a basic_socket_iostream without establishing a connection. -

Construct a basic_socket_iostream from the supplied - socket.

Move-construct a basic_socket_iostream from - another.

Establish a connection to an endpoint corresponding - to a resolver query. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection to an endpoint corresponding to a resolver - query. -

-
-

- error -

-
-

- Get the last error associated with the stream. -

-
-

- expires_after -

-
-

- Set the stream's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time as an - absolute time.

Set the stream's expiry time as an - absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - stream's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_iostream from another. -

-
-

- rdbuf -

-
-

- Return a pointer to the underlying streambuf. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html deleted file mode 100644 index 84a9ad0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_socket_iostream - without establishing a connection. -

-
basic_socket_iostream();
-  » more...
-
-

- Construct a basic_socket_iostream - from the supplied socket. -

-
explicit basic_socket_iostream(
-    basic_stream_socket< protocol_type > s);
-  » more...
-
-

- Move-construct a basic_socket_iostream - from another. -

-
basic_socket_iostream(
-    basic_socket_iostream && other);
-  » more...
-
-

- Establish a connection to an endpoint corresponding to a resolver query. -

-
template<
-    typename T1,
-    ... ,
-    typename TN>
-explicit basic_socket_iostream(
-    T1 t1,
-    ... ,
-    TN tn);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html deleted file mode 100644 index b483d83..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_iostream - without establishing a connection. -

-
basic_socket_iostream();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html deleted file mode 100644 index d5fe71a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_iostream - from the supplied socket. -

-
basic_socket_iostream(
-    basic_stream_socket< protocol_type > s);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html deleted file mode 100644 index c5cd98c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket_iostream - from another. -

-
basic_socket_iostream(
-    basic_socket_iostream && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html deleted file mode 100644 index 99f19c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_socket_iostream::basic_socket_iostream (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establish a connection to an endpoint corresponding to a resolver query. -

-
template<
-    typename T1,
-    ... ,
-    typename TN>
-basic_socket_iostream(
-    T1 t1,
-    ... ,
-    TN tn);
-
-

- This constructor automatically establishes a connection based on the - supplied resolver query parameters. The arguments are used to construct - a resolver query object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/clock_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/clock_type.html deleted file mode 100644 index 130b912..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/clock_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::clock_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - clock type. -

-
typedef Clock clock_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/close.html deleted file mode 100644 index 5973565..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/close.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_iostream::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the connection. -

-
void close();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/connect.html deleted file mode 100644 index 6a35dfb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/connect.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -basic_socket_iostream::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Establish - a connection to an endpoint corresponding to a resolver query. -

-
template<
-    typename T1,
-    ... ,
-    typename TN>
-void connect(
-    T1 t1,
-    ... ,
-    TN tn);
-
-

- This function automatically establishes a connection based on the supplied - resolver query parameters. The arguments are used to construct a resolver - query object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration.html deleted file mode 100644 index be2b114..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - duration type. -

-
typedef WaitTraits::duration duration;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration_type.html deleted file mode 100644 index 8559a26..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/duration_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::duration_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use duration.) The duration type. -

-
typedef WaitTraits::duration_type duration_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html deleted file mode 100644 index 4fe0a68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/error.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/error.html deleted file mode 100644 index 8839616..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/error.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_socket_iostream::error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the last error associated with the stream. -

-
const asio::error_code & error() const;
-
-
- - Return - Value -
-

- An error_code corresponding to the last error from the stream. -

-
- - Example -
-

- To print the error associated with a failure to establish a connection: -

-
tcp::iostream s("www.boost.org", "http");
-if (!s)
-{
-  std::cout << "Error: " << s.error().message() << std::endl;
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_after.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_after.html deleted file mode 100644 index ec50019..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_after.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket_iostream::expires_after - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the stream's expiry time relative to now. -

-
void expires_after(
-    const duration & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream operations - performed after this time (where the operations cannot be completed using - the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at.html deleted file mode 100644 index 0927167..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_iostream::expires_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the stream's expiry time as an absolute - time. -

-
time_point expires_at() const;
-  » more...
-
-

- Set the stream's expiry time as an absolute time. -

-
void expires_at(
-    const time_point & expiry_time);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html deleted file mode 100644 index d6dee13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_iostream::expires_at (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the stream's expiry time - as an absolute time. -

-
time_point expires_at() const;
-
-
- - Return - Value -
-

- An absolute time value representing the stream's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html deleted file mode 100644 index 3e59d60..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_at/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_iostream::expires_at (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the stream's expiry time as an absolute time. -

-
void expires_at(
-    const time_point & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream - operations performed after this time (where the operations cannot be - completed using the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the stream. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html deleted file mode 100644 index 0765aca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_iostream::expires_from_now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the stream's expiry time relative to now. -

-
duration expires_from_now() const;
-  » more...
-
-

- (Deprecated: Use expires_after().) Set the stream's expiry - time relative to now. -

-
void expires_from_now(
-    const duration & expiry_time);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html deleted file mode 100644 index f541d13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_iostream::expires_from_now (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the stream's expiry time - relative to now. -

-
duration expires_from_now() const;
-
-
- - Return - Value -
-

- A relative time value representing the stream's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html deleted file mode 100644 index 5bfe66e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expires_from_now/overload2.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket_iostream::expires_from_now (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expires_after().) Set the stream's expiry - time relative to now. -

-
void expires_from_now(
-    const duration & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream - operations performed after this time (where the operations cannot be - completed using the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expiry.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expiry.html deleted file mode 100644 index 4978ede..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/expiry.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_iostream::expiry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the stream's expiry time as an absolute time. -

-
time_point expiry() const;
-
-
- - Return - Value -
-

- An absolute time value representing the stream's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html deleted file mode 100644 index d8a8d77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/operator_eq_.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_socket_iostream::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_socket_iostream - from another. -

-
basic_socket_iostream & operator=(
-    basic_socket_iostream && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html deleted file mode 100644 index 4e9ac07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html deleted file mode 100644 index b9c5456..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/rdbuf.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_iostream::rdbuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return - a pointer to the underlying streambuf. -

-
basic_socket_streambuf< Protocol, Clock, WaitTraits > * rdbuf() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/socket.html deleted file mode 100644 index 3ae39a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/socket.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_iostream::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the underlying socket. -

-
basic_socket< Protocol > & socket();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_point.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_point.html deleted file mode 100644 index 3a9b587..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_point.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::time_point - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time type. -

-
typedef WaitTraits::time_point time_point;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_type.html deleted file mode 100644 index baf1ef0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_iostream/time_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_iostream::time_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use time_point.) The time type. -

-
typedef WaitTraits::time_type time_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_iostream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf.html deleted file mode 100644 index 913e04c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf.html +++ /dev/null @@ -1,401 +0,0 @@ - - - -basic_socket_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Iostream streambuf for a socket. -

-
template<
-    typename Protocol,
-    typename Clock = chrono::steady_clock,
-    typename WaitTraits = wait_traits<Clock>>
-class basic_socket_streambuf :
-  basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_streambuf -

-
-

- Construct a basic_socket_streambuf without establishing a connection. -

Construct a basic_socket_streambuf from the supplied - socket.

Move-construct a basic_socket_streambuf from - another. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection. -

-
-

- error -

-
-

- Get the last error associated with the stream buffer. -

-
-

- expires_after -

-
-

- Set the stream buffer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream buffer's expiry time - as an absolute time.

Set the stream buffer's expiry - time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream buffer's expiry time - relative to now.

(Deprecated: Use expires_after().) - Set the stream buffer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream buffer's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_streambuf from another. -

-
-

- puberror -

-
-

- (Deprecated: Use error().) Get the last error associated with the - stream buffer. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-

- ~basic_socket_streambuf -

-
-

- Destructor flushes buffered data. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-
-

- setbuf -

-
-
-

- sync -

-
-
-

- underflow -

-
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html deleted file mode 100644 index 48e1070..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_streambuf::~basic_socket_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor - flushes buffered data. -

-
virtual ~basic_socket_streambuf();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html deleted file mode 100644 index da8bffd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_streambuf::basic_socket_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_socket_streambuf - without establishing a connection. -

-
basic_socket_streambuf();
-  » more...
-
-

- Construct a basic_socket_streambuf - from the supplied socket. -

-
explicit basic_socket_streambuf(
-    basic_stream_socket< protocol_type > s);
-  » more...
-
-

- Move-construct a basic_socket_streambuf - from another. -

-
basic_socket_streambuf(
-    basic_socket_streambuf && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html deleted file mode 100644 index b904163..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_streambuf::basic_socket_streambuf (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_streambuf - without establishing a connection. -

-
basic_socket_streambuf();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html deleted file mode 100644 index 1f92b07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_streambuf::basic_socket_streambuf (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_socket_streambuf - from the supplied socket. -

-
basic_socket_streambuf(
-    basic_stream_socket< protocol_type > s);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html deleted file mode 100644 index 35dddf1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_socket_streambuf::basic_socket_streambuf (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_socket_streambuf - from another. -

-
basic_socket_streambuf(
-    basic_socket_streambuf && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html deleted file mode 100644 index 7232f95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/clock_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::clock_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - clock type. -

-
typedef Clock clock_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/close.html deleted file mode 100644 index e8c918a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/close.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_streambuf::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the connection. -

-
basic_socket_streambuf * close();
-
-
- - Return - Value -
-

- this if a connection was successfully established, a null - pointer otherwise. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect.html deleted file mode 100644 index ff05fbc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -basic_socket_streambuf::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Establish - a connection. -

-
basic_socket_streambuf * connect(
-    const endpoint_type & endpoint);
-  » more...
-
-template<
-    typename T1,
-    ... ,
-    typename TN>
-basic_socket_streambuf * connect(
-    T1 t1,
-    ... ,
-    TN tn);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html deleted file mode 100644 index b37358c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload1.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -basic_socket_streambuf::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establish a connection. -

-
basic_socket_streambuf * connect(
-    const endpoint_type & endpoint);
-
-

- This function establishes a connection to the specified endpoint. -

-
- - Return - Value -
-

- this if a connection was successfully established, a null - pointer otherwise. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html deleted file mode 100644 index a2b1cab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/connect/overload2.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_socket_streambuf::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establish a connection. -

-
template<
-    typename T1,
-    ... ,
-    typename TN>
-basic_socket_streambuf * connect(
-    T1 t1,
-    ... ,
-    TN tn);
-
-

- This function automatically establishes a connection based on the supplied - resolver query parameters. The arguments are used to construct a resolver - query object. -

-
- - Return - Value -
-

- this if a connection was successfully established, a null - pointer otherwise. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration.html deleted file mode 100644 index e459000..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - duration type. -

-
typedef WaitTraits::duration duration;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html deleted file mode 100644 index ac587d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/duration_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::duration_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use duration.) The duration type. -

-
typedef WaitTraits::duration_type duration_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html deleted file mode 100644 index fdcebd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/error.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/error.html deleted file mode 100644 index 7c469aa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/error.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_streambuf::error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the last error associated with the stream buffer. -

-
const asio::error_code & error() const;
-
-
- - Return - Value -
-

- An error_code corresponding to the last error from the stream - buffer. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html deleted file mode 100644 index 41b4551..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_after.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket_streambuf::expires_after - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the stream buffer's expiry time relative to now. -

-
void expires_after(
-    const duration & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream operations - performed after this time (where the operations cannot be completed using - the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html deleted file mode 100644 index 3182895..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_socket_streambuf::expires_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the stream buffer's expiry time as an absolute - time. -

-
time_point expires_at() const;
-  » more...
-
-

- Set the stream buffer's expiry time as an absolute time. -

-
void expires_at(
-    const time_point & expiry_time);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html deleted file mode 100644 index a962f68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_streambuf::expires_at (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the stream buffer's expiry - time as an absolute time. -

-
time_point expires_at() const;
-
-
- - Return - Value -
-

- An absolute time value representing the stream buffer's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html deleted file mode 100644 index ceb8eb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_at/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_socket_streambuf::expires_at (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the stream buffer's expiry time as an absolute time. -

-
void expires_at(
-    const time_point & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream - operations performed after this time (where the operations cannot be - completed using the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the stream. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html deleted file mode 100644 index 5dd75e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::expires_from_now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the stream buffer's expiry time relative - to now. -

-
duration expires_from_now() const;
-  » more...
-
-

- (Deprecated: Use expires_after().) Set the stream buffer's - expiry time relative to now. -

-
void expires_from_now(
-    const duration & expiry_time);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html deleted file mode 100644 index f781d72..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_streambuf::expires_from_now (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the stream buffer's expiry - time relative to now. -

-
duration expires_from_now() const;
-
-
- - Return - Value -
-

- A relative time value representing the stream buffer's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html deleted file mode 100644 index 0f91ccf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expires_from_now/overload2.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_socket_streambuf::expires_from_now (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expires_after().) Set the stream buffer's - expiry time relative to now. -

-
void expires_from_now(
-    const duration & expiry_time);
-
-

- This function sets the expiry time associated with the stream. Stream - operations performed after this time (where the operations cannot be - completed using the internal buffers) will fail with the error asio::error::operation_aborted. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expiry.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expiry.html deleted file mode 100644 index 48f7897..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/expiry.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_socket_streambuf::expiry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the stream buffer's expiry time as an absolute time. -

-
time_point expiry() const;
-
-
- - Return - Value -
-

- An absolute time value representing the stream buffer's expiry time. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html deleted file mode 100644 index 739d188..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/operator_eq_.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_socket_streambuf::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_socket_streambuf - from another. -

-
basic_socket_streambuf & operator=(
-    basic_socket_streambuf && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/overflow.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/overflow.html deleted file mode 100644 index 96ee386..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/overflow.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_socket_streambuf::overflow - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
int_type overflow(
-    int_type c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html deleted file mode 100644 index 5310b53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/puberror.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/puberror.html deleted file mode 100644 index 4b20d3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/puberror.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::puberror - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use error().) Get the last error associated with the stream - buffer. -

-
const asio::error_code & puberror() const;
-
-
- - Return - Value -
-

- An error_code corresponding to the last error from the stream - buffer. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html deleted file mode 100644 index 2cf6c28..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/setbuf.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_streambuf::setbuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
std::streambuf * setbuf(
-    char_type * s,
-    std::streamsize n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/socket.html deleted file mode 100644 index e989729..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/socket.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_socket_streambuf::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the underlying socket. -

-
basic_socket< Protocol > & socket();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/sync.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/sync.html deleted file mode 100644 index 82f71c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/sync.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -basic_socket_streambuf::sync - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
int sync();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_point.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_point.html deleted file mode 100644 index fe9a193..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_point.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::time_point - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time type. -

-
typedef WaitTraits::time_point time_point;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_type.html deleted file mode 100644 index 6afac3e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/time_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_socket_streambuf::time_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use time_point.) The time type. -

-
typedef WaitTraits::time_type time_type;
-
-
- - Requirements -
-

- Header: asio/basic_socket_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/underflow.html b/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/underflow.html deleted file mode 100644 index eb26bee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_socket_streambuf/underflow.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -basic_socket_streambuf::underflow - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
int_type underflow();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket.html deleted file mode 100644 index 0b286df..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket.html +++ /dev/null @@ -1,931 +0,0 @@ - - - -basic_stream_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides stream-oriented socket functionality. -

-
template<
-    typename Protocol>
-class basic_stream_socket :
-  public basic_socket< Protocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_stream_socket -

-
-

- Construct a basic_stream_socket without opening it.

- Construct and open a basic_stream_socket.

Construct - a basic_stream_socket, opening it and binding it to the given local - endpoint.

Construct a basic_stream_socket on an existing - native socket.

Move-construct a basic_stream_socket - from another.

Move-construct a basic_stream_socket - from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets the - non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_stream_socket from another.

Move-assign - a basic_stream_socket from a socket of another protocol type. -

-
-

- read_some -

-
-

- Read some data from the socket. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, or - to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the socket. -

-
-

- ~basic_stream_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_stream_socket - class template provides asynchronous and blocking stream-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html deleted file mode 100644 index 5d56346..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/_basic_stream_socket.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_stream_socket::~basic_stream_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the socket. -

-
~basic_stream_socket();
-
-

- This function destroys the socket, cancelling any outstanding asynchronous - operations associated with the socket as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign.html deleted file mode 100644 index f835c67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_stream_socket::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html deleted file mode 100644 index 46abc69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_stream_socket::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html deleted file mode 100644 index 9fed4f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/assign/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Assign an existing native socket to the socket. -

-
void assign(
-    const protocol_type & protocol,
-    const native_handle_type & native_socket,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_connect.html deleted file mode 100644 index 7011263..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_connect.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_stream_socket::async_connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Start - an asynchronous connect. -

-
template<
-    typename ConnectHandler>
-DEDUCED async_connect(
-    const endpoint_type & peer_endpoint,
-    ConnectHandler && handler);
-
-

- This function is used to asynchronously connect a socket to the specified - remote endpoint. The function call always returns immediately. -

-

- The socket is automatically opened if it is not already open. If the connect - fails, and the socket was automatically opened, the socket is not returned - to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. Copies - will be made of the endpoint object as required. -

-
handler
-
-

- The handler to be called when the connection operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void connect_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Connect succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.async_connect(endpoint, connect_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_read_some.html deleted file mode 100644 index ee06e0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_read_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -basic_stream_socket::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the stream socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
socket.async_read_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive.html deleted file mode 100644 index fb167a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_stream_socket::async_receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-  » more...
-
-template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html deleted file mode 100644 index f6aedb4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload1.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -basic_stream_socket::async_receive (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the stream - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the async_read - function if you need to ensure that the requested amount of data is received - before the asynchronous operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html deleted file mode 100644 index 288d281..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_receive/overload2.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -basic_stream_socket::async_receive (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous receive. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously receive data from the stream - socket. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. Although - the buffers object may be copied as necessary, ownership of the - underlying memory blocks is retained by the caller, which must - guarantee that they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
handler
-
-

- The handler to be called when the receive operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes received.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the async_read - function if you need to ensure that the requested amount of data is received - before the asynchronous operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.async_receive(asio::buffer(data, size), 0, handler);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send.html deleted file mode 100644 index e1fdd41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_stream_socket::async_send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html deleted file mode 100644 index 4d22a8e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload1.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -basic_stream_socket::async_send (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the stream socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html deleted file mode 100644 index 3e2b084..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_send/overload2.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -basic_stream_socket::async_send (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous send. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously send data on the stream socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
handler
-
-

- The handler to be called when the send operation completes. Copies - will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes sent.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.async_send(asio::buffer(data, size), 0, handler);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_wait.html deleted file mode 100644 index c33d440..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_wait.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_stream_socket::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Asynchronously - wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::ip::tcp::socket socket(io_context);
-...
-socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_write_some.html deleted file mode 100644 index 197f40c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/async_write_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -basic_stream_socket::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the stream socket. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the socket. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
socket.async_write_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark.html deleted file mode 100644 index 4e8b409..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::at_mark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-  » more...
-
-bool at_mark(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html deleted file mode 100644 index 072c7b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload1.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -basic_stream_socket::at_mark (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark() const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html deleted file mode 100644 index 9667e9b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/at_mark/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_stream_socket::at_mark (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine whether the socket is at the out-of-band data mark. -

-
bool at_mark(
-    asio::error_code & ec) const;
-
-

- This function is used to check whether the socket input is currently - positioned at the out-of-band data mark. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A bool indicating whether the socket is at the out-of-band data mark. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available.html deleted file mode 100644 index c699470..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::available - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the number of bytes available for reading. -

-
std::size_t available() const;
-  » more...
-
-std::size_t available(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload1.html deleted file mode 100644 index a882325..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_stream_socket::available (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available() const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload2.html deleted file mode 100644 index e7cda79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/available/overload2.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_stream_socket::available (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Determine the number of bytes available for reading. -

-
std::size_t available(
-    asio::error_code & ec) const;
-
-

- This function is used to determine the number of bytes that may be read - without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes that may be read without blocking, or 0 if an error - occurs. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html deleted file mode 100644 index 3877601..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_stream_socket - without opening it. -

-
explicit basic_stream_socket(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a basic_stream_socket. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-  » more...
-
-

- Construct a basic_stream_socket, - opening it and binding it to the given local endpoint. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-  » more...
-
-

- Construct a basic_stream_socket - on an existing native socket. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-  » more...
-
-

- Move-construct a basic_stream_socket - from another. -

-
basic_stream_socket(
-    basic_stream_socket && other);
-  » more...
-
-

- Move-construct a basic_stream_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_stream_socket(
-    basic_stream_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html deleted file mode 100644 index 6237654..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_stream_socket - without opening it. -

-
basic_stream_socket(
-    asio::io_context & io_context);
-
-

- This constructor creates a stream socket without opening it. The socket - needs to be opened and then connected or accepted before data can be - sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html deleted file mode 100644 index 74211f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a basic_stream_socket. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol);
-
-

- This constructor creates and opens a stream socket. The socket needs - to be connected or accepted before data can be sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html deleted file mode 100644 index 786dc08..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload3.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_stream_socket, - opening it and binding it to the given local endpoint. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const endpoint_type & endpoint);
-
-

- This constructor creates a stream socket and automatically opens it bound - to the specified endpoint on the local machine. The protocol used is - the protocol associated with the given endpoint. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
endpoint
-

- An endpoint on the local machine to which the stream socket will - be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html deleted file mode 100644 index 8278042..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload4.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_stream_socket - on an existing native socket. -

-
basic_stream_socket(
-    asio::io_context & io_context,
-    const protocol_type & protocol,
-    const native_handle_type & native_socket);
-
-

- This constructor creates a stream socket object to hold an existing native - socket. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream socket will use to dispatch handlers for - any asynchronous operations performed on the socket. -

-
protocol
-

- An object specifying protocol parameters to be used. -

-
native_socket
-

- The new underlying socket implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html deleted file mode 100644 index f81243b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_stream_socket - from another. -

-
basic_stream_socket(
-    basic_stream_socket && other);
-
-

- This constructor moves a stream socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_stream_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_stream_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html deleted file mode 100644 index 0042c47..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/basic_stream_socket/overload6.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_stream_socket::basic_stream_socket (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_stream_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-basic_stream_socket(
-    basic_stream_socket< Protocol1 > && other,
-    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
-
-

- This constructor moves a stream socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_stream_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_stream_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind.html deleted file mode 100644 index 386d96d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bind the - socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-  » more...
-
-void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html deleted file mode 100644 index 4e6bb4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -basic_stream_socket::bind (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html deleted file mode 100644 index d298a39..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bind/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_stream_socket::bind (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Bind the socket to the given local endpoint. -

-
void bind(
-    const endpoint_type & endpoint,
-    asio::error_code & ec);
-
-

- This function binds the socket to the specified endpoint on the local - machine. -

-
- - Parameters -
-
-

-
-
endpoint
-

- An endpoint on the local machine to which the socket will be bound. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-asio::error_code ec;
-socket.bind(asio::ip::tcp::endpoint(
-      asio::ip::tcp::v4(), 12345), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/broadcast.html deleted file mode 100644 index d3bb348..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/broadcast.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html deleted file mode 100644 index 9b38716..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_stream_socket::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel.html deleted file mode 100644 index 0631aec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the socket. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html deleted file mode 100644 index 628f25f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload1.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_stream_socket::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html deleted file mode 100644 index c89cfdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/cancel/overload2.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -basic_stream_socket::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Cancel all asynchronous operations associated with the socket. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls to cancel() will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions of - Windows, unless ASIO_ENABLE_CANCELIO is defined. However, the CancelIo - function has two issues that should be considered before enabling its - use: -

-
    -
  • - It will only cancel asynchronous operations that were initiated in - the current thread. -
  • -
  • - It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -
  • -
-

- For portable cancellation, consider using one of the following alternatives: -

-
    -
  • - Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -
  • -
  • - Use the close() function to simultaneously cancel the - outstanding operations and close the socket. -
  • -
-

- When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx - function is always used. This function does not have the problems described - above. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close.html deleted file mode 100644 index 249bb2c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the - socket. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload1.html deleted file mode 100644 index 1d35f38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_stream_socket::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close();
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload2.html deleted file mode 100644 index ee69f60..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/close/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Close the socket. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the socket. Any asynchronous send, receive - or connect operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.close(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - Remarks -
-

- For portable behaviour with respect to graceful closure of a connected - socket, call shutdown() before closing the socket. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect.html deleted file mode 100644 index 339025f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Connect - the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-  » more...
-
-void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html deleted file mode 100644 index 27d8565..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload1.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_stream_socket::connect (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-socket.connect(endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html deleted file mode 100644 index 389d1cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/connect/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -basic_stream_socket::connect (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Connect the socket to the specified endpoint. -

-
void connect(
-    const endpoint_type & peer_endpoint,
-    asio::error_code & ec);
-
-

- This function is used to connect a socket to the specified remote endpoint. - The function call will block until the connection is successfully made - or an error occurs. -

-

- The socket is automatically opened if it is not already open. If the - connect fails, and the socket was automatically opened, the socket is - not returned to the closed state. -

-
- - Parameters -
-
-

-
-
peer_endpoint
-

- The remote endpoint to which the socket will be connected. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::ip::tcp::endpoint endpoint(
-    asio::ip::address::from_string("1.2.3.4"), 12345);
-asio::error_code ec;
-socket.connect(endpoint, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/debug.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/debug.html deleted file mode 100644 index 87ea477..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/debug.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to enable socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/do_not_route.html deleted file mode 100644 index cb61292..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/do_not_route.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html deleted file mode 100644 index 17c9423..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/enable_connection_aborted.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_stream_socket::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html deleted file mode 100644 index e06eea5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_stream_socket::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef Protocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/executor_type.html deleted file mode 100644 index f068713..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -basic_stream_socket::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_executor.html deleted file mode 100644 index 2b25c91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_context.html deleted file mode 100644 index fbde798..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_stream_socket::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_service.html deleted file mode 100644 index ffbe4c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_stream_socket::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option.html deleted file mode 100644 index 91c74b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-  » more...
-
-template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html deleted file mode 100644 index c79348a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_stream_socket::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html deleted file mode 100644 index c5945a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/get_option/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_stream_socket::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get an option from the socket. -

-
template<
-    typename GettableSocketOption>
-void get_option(
-    GettableSocketOption & option,
-    asio::error_code & ec) const;
-
-

- This function is used to get the current value of an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::keep_alive option;
-asio::error_code ec;
-socket.get_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-bool is_set = option.value();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control.html deleted file mode 100644 index e911956..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html deleted file mode 100644 index a78fd1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_stream_socket::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html deleted file mode 100644 index 2b9992a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_stream_socket::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Perform an IO control command on the socket. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the socket. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::socket::bytes_readable command;
-asio::error_code ec;
-socket.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/is_open.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/is_open.html deleted file mode 100644 index 76f309f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Determine - whether the socket is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/keep_alive.html deleted file mode 100644 index b76bc4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/keep_alive.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/linger.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/linger.html deleted file mode 100644 index 6279842..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/linger.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_stream_socket::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to specify whether the socket lingers on close if unsent data is - present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html deleted file mode 100644 index dfd50b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::local_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-  » more...
-
-endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html deleted file mode 100644 index 3da38a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_stream_socket::local_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint() const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html deleted file mode 100644 index 42849cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/local_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_stream_socket::local_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the local endpoint of the socket. -

-
endpoint_type local_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the locally bound endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the local endpoint of the socket. Returns a - default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html deleted file mode 100644 index 8a619b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html deleted file mode 100644 index 5216ae8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_stream_socket::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html deleted file mode 100644 index 9c660f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_stream_socket::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a basic_socket - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html deleted file mode 100644 index 944533b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/lowest_layer_type.html +++ /dev/null @@ -1,862 +0,0 @@ - - - -basic_stream_socket::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -A - basic_socket - is always the lowest layer. -

-
typedef basic_socket< Protocol > lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_socket -

-
-

- Construct a basic_socket without opening it.

Construct - and open a basic_socket.

Construct a basic_socket, - opening it and binding it to the given local endpoint.
-
Construct a basic_socket on an existing native socket. -

Move-construct a basic_socket from another.
-
Move-construct a basic_socket from a socket of another - protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket from another.

Move-assign - a basic_socket from a socket of another protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~basic_socket -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket - class template provides functionality that is common to both stream-oriented - and datagram-oriented sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_connections.html deleted file mode 100644 index 6b862b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_connections.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_stream_socket::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html deleted file mode 100644 index b31c022..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/max_listen_connections.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html deleted file mode 100644 index e63fda5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_do_not_route.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html deleted file mode 100644 index 040f7f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_end_of_record.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_flags.html deleted file mode 100644 index ffd79b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_stream_socket::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html deleted file mode 100644 index 95c2723..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_out_of_band.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_peek.html deleted file mode 100644 index 9dea8a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/message_peek.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_stream_socket::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Peek - at incoming data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle.html deleted file mode 100644 index 65dca3a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_stream_socket::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- -Get - the native socket representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - socket. This is intended to allow access to native socket functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html deleted file mode 100644 index 8048e0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_stream_socket::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a socket. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html deleted file mode 100644 index 75dabac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_stream_socket::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html deleted file mode 100644 index 3237a46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload1.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -basic_stream_socket::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the native socket implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native socket. This mode has no effect on the behaviour of the socket - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying socket is in non-blocking mode and - direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the socket object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native socket. -

-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html deleted file mode 100644 index 9fca3e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload2.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -basic_stream_socket::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html deleted file mode 100644 index 6ce185c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/native_non_blocking/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -basic_stream_socket::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the native socket implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native socket. It has no effect on the behaviour of the socket object's - synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying socket is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - Example -
-

- This function is intended to allow the encapsulation of arbitrary non-blocking - system calls as asynchronous operations, in a way that is transparent - to the user of the socket object. The following example illustrates how - Linux's sendfile system call might be encapsulated: -

-
template <typename Handler>
-struct sendfile_op
-{
-  tcp::socket& sock_;
-  int fd_;
-  Handler handler_;
-  off_t offset_;
-  std::size_t total_bytes_transferred_;
-
-  // Function call operator meeting WriteHandler requirements.
-  // Used as the handler for the async_write_some operation.
-  void operator()(asio::error_code ec, std::size_t)
-  {
-    // Put the underlying socket into non-blocking mode.
-    if (!ec)
-      if (!sock_.native_non_blocking())
-        sock_.native_non_blocking(true, ec);
-
-    if (!ec)
-    {
-      for (;;)
-      {
-        // Try the system call.
-        errno = 0;
-        int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
-        ec = asio::error_code(n < 0 ? errno : 0,
-            asio::error::get_system_category());
-        total_bytes_transferred_ += ec ? 0 : n;
-
-        // Retry operation immediately if interrupted by signal.
-        if (ec == asio::error::interrupted)
-          continue;
-
-        // Check if we need to run the operation again.
-        if (ec == asio::error::would_block
-            || ec == asio::error::try_again)
-        {
-          // We have to wait for the socket to become ready again.
-          sock_.async_wait(tcp::socket::wait_write, *this);
-          return;
-        }
-
-        if (ec || n == 0)
-        {
-          // An error occurred, or we have reached the end of the file.
-          // Either way we must exit the loop so we can call the handler.
-          break;
-        }
-
-        // Loop around to try calling sendfile again.
-      }
-    }
-
-    // Pass result back to user's handler.
-    handler_(ec, total_bytes_transferred_);
-  }
-};
-
-template <typename Handler>
-void async_sendfile(tcp::socket& sock, int fd, Handler h)
-{
-  sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
-  sock.async_wait(tcp::socket::wait_write, op);
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking.html deleted file mode 100644 index 804900a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_stream_socket::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the socket. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html deleted file mode 100644 index b389ef5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_stream_socket::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Gets the non-blocking mode of the socket. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the socket's synchronous operations will fail with - asio::error::would_block if they are unable to perform the - requested operation immediately. If false, synchronous operations - will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html deleted file mode 100644 index 6abda40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -basic_stream_socket::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html deleted file mode 100644 index 1cdfb69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_stream_socket::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Sets the non-blocking mode of the socket. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the socket's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open.html deleted file mode 100644 index 4ae7994..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open the - socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-  » more...
-
-void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload1.html deleted file mode 100644 index eed9ff7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -basic_stream_socket::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol = protocol_type());
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying protocol parameters to be used. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-socket.open(asio::ip::tcp::v4());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload2.html deleted file mode 100644 index 30a00a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/open/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -basic_stream_socket::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Open the socket using the specified protocol. -

-
void open(
-    const protocol_type & protocol,
-    asio::error_code & ec);
-
-

- This function opens the socket so that it will use the specified protocol. -

-
- - Parameters -
-
-

-
-
protocol
-

- An object specifying which protocol is to be used. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-asio::error_code ec;
-socket.open(asio::ip::tcp::v4(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html deleted file mode 100644 index 4d297a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_stream_socket::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_stream_socket - from another. -

-
basic_stream_socket & operator=(
-    basic_stream_socket && other);
-  » more...
-
-

- Move-assign a basic_stream_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_stream_socket >::type & operator=(
-    basic_stream_socket< Protocol1 > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html deleted file mode 100644 index 0dd3f52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_stream_socket::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_stream_socket - from another. -

-
basic_stream_socket & operator=(
-    basic_stream_socket && other);
-
-

- This assignment operator moves a stream socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_stream_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_stream_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html deleted file mode 100644 index 2bcbbe9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/operator_eq_/overload2.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_stream_socket::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign a basic_stream_socket - from a socket of another protocol type. -

-
template<
-    typename Protocol1>
-enable_if< is_convertible< Protocol1, Protocol >::value, basic_stream_socket >::type & operator=(
-    basic_stream_socket< Protocol1 > && other);
-
-

- This assignment operator moves a stream socket from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_stream_socket - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_stream_socket(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html deleted file mode 100644 index 6ba3763..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/out_of_band_inline.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/protocol_type.html deleted file mode 100644 index 3666bdc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_stream_socket::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some.html deleted file mode 100644 index 0bdb075..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html deleted file mode 100644 index 9a59d50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_stream_socket::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the stream socket. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
socket.read_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html deleted file mode 100644 index 8695ad0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the stream socket. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive.html deleted file mode 100644 index 68024a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -basic_stream_socket::receive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Receive - some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html deleted file mode 100644 index 9ed5744..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_stream_socket::receive (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to receive data on the stream socket. The function - call will block until one or more bytes of data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html deleted file mode 100644 index ffd8a24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -basic_stream_socket::receive (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on the socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to receive data on the stream socket. The function - call will block until one or more bytes of data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes received. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To receive into a single data buffer use the buffer - function as follows: -

-
socket.receive(asio::buffer(data, size), 0);
-
-

- See the buffer - documentation for information on receiving into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html deleted file mode 100644 index e04d8a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive/overload3.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_stream_socket::receive (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Receive some data on a connected socket. -

-
template<
-    typename MutableBufferSequence>
-std::size_t receive(
-    const MutableBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to receive data on the stream socket. The function - call will block until one or more bytes of data has been received successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be received. -

-
flags
-

- Flags specifying how the receive call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes received. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The receive operation may not receive all of the requested number of - bytes. Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html deleted file mode 100644 index 70955f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html deleted file mode 100644 index abc2c96..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/receive_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release.html deleted file mode 100644 index e788e00..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the underlying native socket. -

-
native_handle_type release();
-  » more...
-
-native_handle_type release(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload1.html deleted file mode 100644 index e5859c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -basic_stream_socket::release (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release();
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload2.html deleted file mode 100644 index 17c1a56..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/release/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -basic_stream_socket::release (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Release ownership of the underlying native socket. -

-
native_handle_type release(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous connect, send and receive - operations to finish immediately, and the handlers for cancelled operations - will be passed the asio::error::operation_aborted error. - Ownership of the native socket is then transferred to the caller. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- This function is unsupported on Windows versions prior to Windows 8.1, - and will fail with asio::error::operation_not_supported - on these platforms. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html deleted file mode 100644 index be89073..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_stream_socket::remote_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-  » more...
-
-endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html deleted file mode 100644 index 3a206e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -basic_stream_socket::remote_endpoint (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint() const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html deleted file mode 100644 index 8fd405a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/remote_endpoint/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_stream_socket::remote_endpoint (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Get the remote endpoint of the socket. -

-
endpoint_type remote_endpoint(
-    asio::error_code & ec) const;
-
-

- This function is used to obtain the remote endpoint of the socket. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- An object that represents the remote endpoint of the socket. Returns - a default-constructed endpoint object if an error occurred. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/reuse_address.html deleted file mode 100644 index 5b22018..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/reuse_address.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_stream_socket::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send.html deleted file mode 100644 index fe50ded..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -basic_stream_socket::send - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send some - data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload1.html deleted file mode 100644 index d9ab912..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload1.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -basic_stream_socket::send (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to send data on the stream socket. The function - call will block until one or more bytes of the data has been sent successfully, - or an until error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload2.html deleted file mode 100644 index 99da1f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload2.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -basic_stream_socket::send (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags);
-
-

- This function is used to send data on the stream socket. The function - call will block until one or more bytes of the data has been sent successfully, - or an until error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To send a single data buffer use the buffer - function as follows: -

-
socket.send(asio::buffer(data, size), 0);
-
-

- See the buffer - documentation for information on sending multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload3.html deleted file mode 100644 index 7f12963..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send/overload3.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -basic_stream_socket::send (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send some data on the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t send(
-    const ConstBufferSequence & buffers,
-    socket_base::message_flags flags,
-    asio::error_code & ec);
-
-

- This function is used to send data on the stream socket. The function - call will block until one or more bytes of the data has been sent successfully, - or an until error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be sent on the socket. -

-
flags
-

- Flags specifying how the send call is to be made. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes sent. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The send operation may not transmit all of the data to the peer. Consider - using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html deleted file mode 100644 index 0b51abc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_buffer_size.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html deleted file mode 100644 index 7e15527..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/send_low_watermark.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -basic_stream_socket::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/basic_stream_socket.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option.html deleted file mode 100644 index 39c7280..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-  » more...
-
-template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html deleted file mode 100644 index 96f122b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -basic_stream_socket::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html deleted file mode 100644 index 89f6ec4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/set_option/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Set an option on the socket. -

-
template<
-    typename SettableSocketOption>
-void set_option(
-    const SettableSocketOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the socket. -

-
- - Parameters -
-
-

-
-
option
-

- The new option value to be set on the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Setting the IPPROTO_TCP/TCP_NODELAY option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-asio::error_code ec;
-socket.set_option(option, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown.html deleted file mode 100644 index 8b9650b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_stream_socket::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-  » more...
-
-void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html deleted file mode 100644 index a24d3cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -basic_stream_socket::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.shutdown(asio::ip::tcp::socket::shutdown_send);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html deleted file mode 100644 index 1092089..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -basic_stream_socket::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Disable sends or receives on the socket. -

-
void shutdown(
-    shutdown_type what,
-    asio::error_code & ec);
-
-

- This function is used to disable send operations, receive operations, - or both. -

-
- - Parameters -
-
-

-
-
what
-

- Determines what types of operation will no longer be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Shutting down the send side of the socket: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html deleted file mode 100644 index 9eb41e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/shutdown_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -basic_stream_socket::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait.html deleted file mode 100644 index 30ef64d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_stream_socket::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for - the socket to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html deleted file mode 100644 index 08c440a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_stream_socket::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-socket.wait(asio::ip::tcp::socket::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html deleted file mode 100644 index e88e196..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -basic_stream_socket::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from basic_socket. -

-

- Wait for the socket to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a socket to enter - a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired socket state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a socket to become readable. -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::error_code ec;
-socket.wait(asio::ip::tcp::socket::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait_type.html deleted file mode 100644 index 78572ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -basic_stream_socket::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from socket_base. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some.html deleted file mode 100644 index 8e60135..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -basic_stream_socket::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - some data to the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html deleted file mode 100644 index 1401403..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -basic_stream_socket::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the stream socket. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the socket. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
socket.write_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html deleted file mode 100644 index 2f76ed0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_stream_socket/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -basic_stream_socket::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the socket. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the stream socket. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the socket. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf.html deleted file mode 100644 index d79c52e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf.html +++ /dev/null @@ -1,363 +0,0 @@ - - - -basic_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Automatically resizable buffer class based on std::streambuf. -

-
template<
-    typename Allocator = std::allocator<char>>
-class basic_streambuf :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf -

-
-

- Construct a basic_streambuf object. -

-
-

- capacity -

-
-

- Get the current capacity of the basic_streambuf. -

-
-

- commit -

-
-

- Move characters from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the basic_streambuf. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-

- Override std::streambuf behaviour. -

-
-

- reserve -

-
-
-

- underflow -

-
-

- Override std::streambuf behaviour. -

-
-

- The basic_streambuf class is derived from std::streambuf - to associate the streambuf's input and output sequences with one or more - character arrays. These character arrays are internal to the basic_streambuf - object, but direct access to the array elements is provided to permit them - to be used efficiently with I/O operations. Characters written to the output - sequence of a basic_streambuf object are appended to the input - sequence of the same object. -

-

- The basic_streambuf class's public interface is intended to - permit the following implementation strategies: -

-
    -
  • - A single contiguous character array, which is reallocated as necessary - to accommodate changes in the size of the character sequence. This is - the implementation approach currently used in Asio. -
  • -
  • - A sequence of one or more character arrays, where each array is of the - same size. Additional character array objects are appended to the sequence - to accommodate changes in the size of the character sequence. -
  • -
  • - A sequence of one or more character arrays of varying sizes. Additional - character array objects are appended to the sequence to accommodate changes - in the size of the character sequence. -
  • -
-

- The constructor for basic_streambuf - accepts a size_t argument specifying the maximum of the sum - of the sizes of the input sequence and output sequence. During the lifetime - of the basic_streambuf object, the following invariant holds: -

-
size() <= max_size()
-
-

- Any member function that would, if successful, cause the invariant to be - violated shall throw an exception of class std::length_error. -

-

- The constructor for basic_streambuf takes an Allocator argument. - A copy of this argument is used for any memory allocation performed, by the - constructor and by all member functions, during the lifetime of each basic_streambuf - object. -

-
- - Examples -
-

- Writing directly from an streambuf to a socket: -

-
asio::streambuf b;
-std::ostream os(&b);
-os << "Hello, World!\n";
-
-// try sending some data in input sequence
-size_t n = sock.send(b.data());
-
-b.consume(n); // sent data is removed from input sequence
-
-

- Reading from a socket directly into a streambuf: -

-
asio::streambuf b;
-
-// reserve 512 bytes in output sequence
-asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
-size_t n = sock.receive(bufs);
-
-// received data is "committed" from output sequence to input sequence
-b.commit(n);
-
-std::istream is(&b);
-std::string s;
-is >> s;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html deleted file mode 100644 index 1d0f9eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/basic_streambuf.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_streambuf::basic_streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_streambuf - object. -

-
basic_streambuf(
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)(),
-    const Allocator & allocator = Allocator());
-
-

- Constructs a streambuf with the specified maximum size. The initial size - of the streambuf's input sequence is 0. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/capacity.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/capacity.html deleted file mode 100644 index 2342bc7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/capacity.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_streambuf::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the current - capacity of the basic_streambuf. -

-
std::size_t capacity() const;
-
-
- - Return Value -
-

- The current total capacity of the streambuf, i.e. for both the input sequence - and output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/commit.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/commit.html deleted file mode 100644 index 0c411de..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/commit.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_streambuf::commit - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move characters - from the output sequence to the input sequence. -

-
void commit(
-    std::size_t n);
-
-

- Appends n characters from the start of the output sequence - to the input sequence. The beginning of the output sequence is advanced - by n characters. -

-

- Requires a preceding call prepare(x) where x >= n, - and no intervening operations that modify the input or output sequence. -

-
- - Remarks -
-

- If n is greater than the size of the output sequence, the - entire output sequence is moved to the input sequence and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html deleted file mode 100644 index 3fdb1d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/const_buffers_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_streambuf::const_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the input sequence as a list of buffers. -

-
typedef implementation_defined const_buffers_type;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/consume.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/consume.html deleted file mode 100644 index 02caaa9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/consume.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -basic_streambuf::consume - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove characters - from the input sequence. -

-
void consume(
-    std::size_t n);
-
-

- Removes n characters from the beginning of the input sequence. -

-
- - Remarks -
-

- If n is greater than the size of the input sequence, the entire - input sequence is consumed and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/data.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/data.html deleted file mode 100644 index 47c4506..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/data.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_streambuf::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a list of buffers - that represents the input sequence. -

-
const_buffers_type data() const;
-
-
- - Return - Value -
-

- An object of type const_buffers_type that satisfies ConstBufferSequence - requirements, representing all character arrays in the input sequence. -

-
- - Remarks -
-

- The returned object is invalidated by any basic_streambuf - member function that modifies the input sequence or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/max_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/max_size.html deleted file mode 100644 index fcb95c8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/max_size.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -basic_streambuf::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the maximum - size of the basic_streambuf. -

-
std::size_t max_size() const;
-
-
- - Return Value -
-

- The allowed maximum of the sum of the sizes of the input sequence and output - sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html deleted file mode 100644 index d8cd14f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/mutable_buffers_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_streambuf::mutable_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the output sequence as a list of buffers. -

-
typedef implementation_defined mutable_buffers_type;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/overflow.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/overflow.html deleted file mode 100644 index a80f562..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/overflow.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_streambuf::overflow - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Override - std::streambuf behaviour. -

-
int_type overflow(
-    int_type c);
-
-

- Behaves according to the specification of std::streambuf::overflow(), - with the specialisation that std::length_error is thrown if - appending the character to the input sequence would require the condition - size() > max_size() to be true. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/prepare.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/prepare.html deleted file mode 100644 index 352104f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/prepare.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -basic_streambuf::prepare - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a list - of buffers that represents the output sequence, with the given size. -

-
mutable_buffers_type prepare(
-    std::size_t n);
-
-

- Ensures that the output sequence can accommodate n characters, - reallocating character array objects as necessary. -

-
- - Return Value -
-

- An object of type mutable_buffers_type that satisfies MutableBufferSequence - requirements, representing character array objects at the start of the - output sequence such that the sum of the buffer sizes is n. -

-
- - Exceptions -
-
-

-
-
std::length_error
-

- If size() + n > max_size(). -

-
-
-
- - Remarks -
-

- The returned object is invalidated by any basic_streambuf - member function that modifies the input sequence or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/reserve.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/reserve.html deleted file mode 100644 index d6dc190..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/reserve.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -basic_streambuf::reserve - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void reserve(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/size.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/size.html deleted file mode 100644 index 1f72137..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/size.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_streambuf::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the size of the - input sequence. -

-
std::size_t size() const;
-
-
- - Return - Value -
-

- The size of the input sequence. The value is equal to that calculated for - s in the following code: -

-
size_t s = 0;
-const_buffers_type bufs = data();
-const_buffers_type::const_iterator i = bufs.begin();
-while (i != bufs.end())
-{
-  const_buffer buf(*i++);
-  s += buf.size();
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/underflow.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/underflow.html deleted file mode 100644 index 3f61090..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf/underflow.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -basic_streambuf::underflow - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Override - std::streambuf behaviour. -

-
int_type underflow();
-
-

- Behaves according to the specification of std::streambuf::underflow(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref.html deleted file mode 100644 index 35c08cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref.html +++ /dev/null @@ -1,226 +0,0 @@ - - - -basic_streambuf_ref - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adapts basic_streambuf - to the dynamic buffer sequence type requirements. -

-
template<
-    typename Allocator = std::allocator<char>>
-class basic_streambuf_ref
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf_ref -

-
-

- Construct a basic_streambuf_ref for the given basic_streambuf object. -

Copy construct a basic_streambuf_ref.

- Move construct a basic_streambuf_ref. -

-
-

- capacity -

-
-

- Get the current capacity of the dynamic buffer. -

-
-

- commit -

-
-

- Move bytes from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the dynamic buffer. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html deleted file mode 100644 index cdd2c4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_streambuf_ref::basic_streambuf_ref - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a basic_streambuf_ref - for the given basic_streambuf - object. -

-
explicit basic_streambuf_ref(
-    basic_streambuf< Allocator > & sb);
-  » more...
-
-

- Copy construct a basic_streambuf_ref. -

-
basic_streambuf_ref(
-    const basic_streambuf_ref & other);
-  » more...
-
-

- Move construct a basic_streambuf_ref. -

-
basic_streambuf_ref(
-    basic_streambuf_ref && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html deleted file mode 100644 index 194aca1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -basic_streambuf_ref::basic_streambuf_ref (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a basic_streambuf_ref - for the given basic_streambuf - object. -

-
basic_streambuf_ref(
-    basic_streambuf< Allocator > & sb);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html deleted file mode 100644 index 0c1982a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::basic_streambuf_ref (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy construct a basic_streambuf_ref. -

-
basic_streambuf_ref(
-    const basic_streambuf_ref & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html deleted file mode 100644 index 3a2a537..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::basic_streambuf_ref (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct a basic_streambuf_ref. -

-
basic_streambuf_ref(
-    basic_streambuf_ref && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/capacity.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/capacity.html deleted file mode 100644 index 55dd532..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/capacity.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the current capacity of the dynamic buffer. -

-
std::size_t capacity() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/commit.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/commit.html deleted file mode 100644 index fa3eca3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/commit.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_streambuf_ref::commit - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - bytes from the output sequence to the input sequence. -

-
void commit(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html deleted file mode 100644 index d9691db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/const_buffers_type.html +++ /dev/null @@ -1,362 +0,0 @@ - - - -basic_streambuf_ref::const_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the input sequence as a list of buffers. -

-
typedef basic_streambuf< Allocator >::const_buffers_type const_buffers_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf -

-
-

- Construct a basic_streambuf object. -

-
-

- capacity -

-
-

- Get the current capacity of the basic_streambuf. -

-
-

- commit -

-
-

- Move characters from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the basic_streambuf. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-

- Override std::streambuf behaviour. -

-
-

- reserve -

-
-
-

- underflow -

-
-

- Override std::streambuf behaviour. -

-
-

- The basic_streambuf class is derived from std::streambuf - to associate the streambuf's input and output sequences with one or more - character arrays. These character arrays are internal to the basic_streambuf - object, but direct access to the array elements is provided to permit them - to be used efficiently with I/O operations. Characters written to the output - sequence of a basic_streambuf object are appended to the input - sequence of the same object. -

-

- The basic_streambuf class's public interface is intended to - permit the following implementation strategies: -

-
    -
  • - A single contiguous character array, which is reallocated as necessary - to accommodate changes in the size of the character sequence. This - is the implementation approach currently used in Asio. -
  • -
  • - A sequence of one or more character arrays, where each array is of - the same size. Additional character array objects are appended to the - sequence to accommodate changes in the size of the character sequence. -
  • -
  • - A sequence of one or more character arrays of varying sizes. Additional - character array objects are appended to the sequence to accommodate - changes in the size of the character sequence. -
  • -
-

- The constructor for basic_streambuf - accepts a size_t argument specifying the maximum of the sum - of the sizes of the input sequence and output sequence. During the lifetime - of the basic_streambuf object, the following invariant holds: -

-
size() <= max_size()
-
-

- Any member function that would, if successful, cause the invariant to be - violated shall throw an exception of class std::length_error. -

-

- The constructor for basic_streambuf takes an Allocator argument. - A copy of this argument is used for any memory allocation performed, by - the constructor and by all member functions, during the lifetime of each - basic_streambuf object. -

-
- - Examples -
-

- Writing directly from an streambuf to a socket: -

-
asio::streambuf b;
-std::ostream os(&b);
-os << "Hello, World!\n";
-
-// try sending some data in input sequence
-size_t n = sock.send(b.data());
-
-b.consume(n); // sent data is removed from input sequence
-
-

- Reading from a socket directly into a streambuf: -

-
asio::streambuf b;
-
-// reserve 512 bytes in output sequence
-asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
-size_t n = sock.receive(bufs);
-
-// received data is "committed" from output sequence to input sequence
-b.commit(n);
-
-std::istream is(&b);
-std::string s;
-is >> s;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/consume.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/consume.html deleted file mode 100644 index cd4f8d9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/consume.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_streambuf_ref::consume - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove - characters from the input sequence. -

-
void consume(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/data.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/data.html deleted file mode 100644 index 0f66b85..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/data.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a list - of buffers that represents the input sequence. -

-
const_buffers_type data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/max_size.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/max_size.html deleted file mode 100644 index c3ded0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/max_size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the maximum size of the dynamic buffer. -

-
std::size_t max_size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html deleted file mode 100644 index 59fa46c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/mutable_buffers_type.html +++ /dev/null @@ -1,362 +0,0 @@ - - - -basic_streambuf_ref::mutable_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the output sequence as a list of buffers. -

-
typedef basic_streambuf< Allocator >::mutable_buffers_type mutable_buffers_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf -

-
-

- Construct a basic_streambuf object. -

-
-

- capacity -

-
-

- Get the current capacity of the basic_streambuf. -

-
-

- commit -

-
-

- Move characters from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the basic_streambuf. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-

- Override std::streambuf behaviour. -

-
-

- reserve -

-
-
-

- underflow -

-
-

- Override std::streambuf behaviour. -

-
-

- The basic_streambuf class is derived from std::streambuf - to associate the streambuf's input and output sequences with one or more - character arrays. These character arrays are internal to the basic_streambuf - object, but direct access to the array elements is provided to permit them - to be used efficiently with I/O operations. Characters written to the output - sequence of a basic_streambuf object are appended to the input - sequence of the same object. -

-

- The basic_streambuf class's public interface is intended to - permit the following implementation strategies: -

-
    -
  • - A single contiguous character array, which is reallocated as necessary - to accommodate changes in the size of the character sequence. This - is the implementation approach currently used in Asio. -
  • -
  • - A sequence of one or more character arrays, where each array is of - the same size. Additional character array objects are appended to the - sequence to accommodate changes in the size of the character sequence. -
  • -
  • - A sequence of one or more character arrays of varying sizes. Additional - character array objects are appended to the sequence to accommodate - changes in the size of the character sequence. -
  • -
-

- The constructor for basic_streambuf - accepts a size_t argument specifying the maximum of the sum - of the sizes of the input sequence and output sequence. During the lifetime - of the basic_streambuf object, the following invariant holds: -

-
size() <= max_size()
-
-

- Any member function that would, if successful, cause the invariant to be - violated shall throw an exception of class std::length_error. -

-

- The constructor for basic_streambuf takes an Allocator argument. - A copy of this argument is used for any memory allocation performed, by - the constructor and by all member functions, during the lifetime of each - basic_streambuf object. -

-
- - Examples -
-

- Writing directly from an streambuf to a socket: -

-
asio::streambuf b;
-std::ostream os(&b);
-os << "Hello, World!\n";
-
-// try sending some data in input sequence
-size_t n = sock.send(b.data());
-
-b.consume(n); // sent data is removed from input sequence
-
-

- Reading from a socket directly into a streambuf: -

-
asio::streambuf b;
-
-// reserve 512 bytes in output sequence
-asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
-size_t n = sock.receive(bufs);
-
-// received data is "committed" from output sequence to input sequence
-b.commit(n);
-
-std::istream is(&b);
-std::string s;
-is >> s;
-
-
- - Requirements -
-

- Header: asio/basic_streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/prepare.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/prepare.html deleted file mode 100644 index c85eabc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/prepare.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -basic_streambuf_ref::prepare - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a list of buffers that represents the output sequence, with the given size. -

-
mutable_buffers_type prepare(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/size.html b/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/size.html deleted file mode 100644 index 12dfcee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_streambuf_ref/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_streambuf_ref::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the size - of the input sequence. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer.html deleted file mode 100644 index b464e42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer.html +++ /dev/null @@ -1,460 +0,0 @@ - - - -basic_waitable_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides waitable timer functionality. -

-
template<
-    typename Clock,
-    typename WaitTraits>
-class basic_waitable_timer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type of the clock. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_point -

-
-

- The time point type of the clock. -

-
-

- traits_type -

-
-

- The wait traits type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_waitable_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_waitable_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancel - any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancels - one asynchronous operation that is waiting on the timer. -

-
-

- expires_after -

-
-

- Set the timer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - time.

Set the timer's expiry time as an absolute - time.

(Deprecated: Use non-error_code overload.) - Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - timer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the timer's expiry time as an absolute time. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_waitable_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_waitable_timer -

-
-

- Destroys the timer. -

-
-

- The basic_waitable_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- A waitable timer is always in one of two states: "expired" or "not - expired". If the wait() or async_wait() function - is called on an expired timer, the wait operation will complete immediately. -

-

- Most applications will use one of the steady_timer, - system_timer - or high_resolution_timer - typedefs. -

-
- - Remarks -
-

- This waitable timer functionality is for use with the C++11 standard library's - <chrono> facility, or with the Boost.Chrono library. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait (C++11): -

-
// Construct a timer without setting an expiry time.
-asio::steady_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_after(std::chrono::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait (C++11): -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::steady_timer timer(io_context,
-    std::chrono::steady_clock::now() + std::chrono::seconds(60));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active waitable timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_after(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_waitable_timer::expires_after() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html deleted file mode 100644 index 04e576a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/_basic_waitable_timer.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_waitable_timer::~basic_waitable_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the timer. -

-
~basic_waitable_timer();
-
-

- This function destroys the timer, cancelling any outstanding asynchronous - wait operations associated with the timer as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/async_wait.html deleted file mode 100644 index 6b8cc1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/async_wait.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -basic_waitable_timer::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous wait on the timer. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    WaitHandler && handler);
-
-

- This function may be used to initiate an asynchronous wait against the - timer. It always returns immediately. -

-

- For each call to async_wait(), the supplied handler will be - called exactly once. The handler will be called when: -

-
    -
  • - The timer has expired. -
  • -
  • - The timer was cancelled, in which case the handler is passed the error - code asio::error::operation_aborted. -
  • -
-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the timer expires. Copies will be made - of the handler as required. The function signature of the handler - must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html deleted file mode 100644 index 9148233..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
explicit basic_waitable_timer(
-    asio::io_context & io_context);
-  » more...
-
-

- Constructor to set a particular expiry time as an absolute time. -

-
basic_waitable_timer(
-    asio::io_context & io_context,
-    const time_point & expiry_time);
-  » more...
-
-

- Constructor to set a particular expiry time relative to now. -

-
basic_waitable_timer(
-    asio::io_context & io_context,
-    const duration & expiry_time);
-  » more...
-
-

- Move-construct a basic_waitable_timer - from another. -

-
basic_waitable_timer(
-    basic_waitable_timer && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html deleted file mode 100644 index 7526829..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
basic_waitable_timer(
-    asio::io_context & io_context);
-
-

- This constructor creates a timer without setting an expiry time. The - expires_at() or expires_after() functions must - be called to set an expiry time before the timer can be waited on. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html deleted file mode 100644 index a0badd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor to set a particular expiry time as an absolute time. -

-
basic_waitable_timer(
-    asio::io_context & io_context,
-    const time_point & expiry_time);
-
-

- This constructor creates a timer and sets the expiry time. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
expiry_time
-

- The expiry time to be used for the timer, expressed as an absolute - time. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html deleted file mode 100644 index 3d42dbd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor to set a particular expiry time relative to now. -

-
basic_waitable_timer(
-    asio::io_context & io_context,
-    const duration & expiry_time);
-
-

- This constructor creates a timer and sets the expiry time. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the timer will use to dispatch handlers for any asynchronous - operations performed on the timer. -

-
expiry_time
-

- The expiry time to be used for the timer, relative to now. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html deleted file mode 100644 index 29006c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -basic_waitable_timer::basic_waitable_timer (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a basic_waitable_timer - from another. -

-
basic_waitable_timer(
-    basic_waitable_timer && other);
-
-

- This constructor moves a timer from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_waitable_timer - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_waitable_timer(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel.html deleted file mode 100644 index cffabdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_waitable_timer::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Cancel any asynchronous operations - that are waiting on the timer. -

-
std::size_t cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html deleted file mode 100644 index 053e93c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload1.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -basic_waitable_timer::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel any asynchronous operations that are waiting on the timer. -

-
std::size_t cancel();
-
-

- This function forces the completion of any pending asynchronous wait - operations against the timer. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html deleted file mode 100644 index 2764d88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel/overload2.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -basic_waitable_timer::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Cancel any asynchronous operations - that are waiting on the timer. -

-
std::size_t cancel(
-    asio::error_code & ec);
-
-

- This function forces the completion of any pending asynchronous wait - operations against the timer. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html deleted file mode 100644 index 0ccb06a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -basic_waitable_timer::cancel_one - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancels - one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Cancels one asynchronous operation - that is waiting on the timer. -

-
std::size_t cancel_one(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html deleted file mode 100644 index 8374845..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -basic_waitable_timer::cancel_one (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancels one asynchronous operation that is waiting on the timer. -

-
std::size_t cancel_one();
-
-

- This function forces the completion of one pending asynchronous wait - operation against the timer. Handlers are cancelled in FIFO order. The - handler for the cancelled operation will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. That is, either - 0 or 1. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when cancel_one() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html deleted file mode 100644 index 9e0da0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/cancel_one/overload2.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -basic_waitable_timer::cancel_one (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Cancels one asynchronous operation - that is waiting on the timer. -

-
std::size_t cancel_one(
-    asio::error_code & ec);
-
-

- This function forces the completion of one pending asynchronous wait - operation against the timer. Handlers are cancelled in FIFO order. The - handler for the cancelled operation will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancelling the timer does not change the expiry time. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. That is, either - 0 or 1. -

-
- - Remarks -
-

- If the timer has already expired when cancel_one() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/clock_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/clock_type.html deleted file mode 100644 index a8f2fe0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/clock_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_waitable_timer::clock_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - clock type. -

-
typedef Clock clock_type;
-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/duration.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/duration.html deleted file mode 100644 index 376dc5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/duration.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_waitable_timer::duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - duration type of the clock. -

-
typedef clock_type::duration duration;
-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/executor_type.html deleted file mode 100644 index e828a97..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -basic_waitable_timer::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_after.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_after.html deleted file mode 100644 index 68cad69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_after.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_waitable_timer::expires_after - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the timer's expiry time relative to now. -

-
std::size_t expires_after(
-    const duration & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_after() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at.html deleted file mode 100644 index 88847ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -basic_waitable_timer::expires_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the timer's expiry time as an absolute - time. -

-
time_point expires_at() const;
-  » more...
-
-

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_point & expiry_time);
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Set the timer's expiry time - as an absolute time. -

-
std::size_t expires_at(
-    const time_point & expiry_time,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html deleted file mode 100644 index 469bb32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_waitable_timer::expires_at (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the timer's expiry time - as an absolute time. -

-
time_point expires_at() const;
-
-

- This function may be used to obtain the timer's current expiry time. - Whether the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html deleted file mode 100644 index 4ec752a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -basic_waitable_timer::expires_at (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the timer's expiry time as an absolute time. -

-
std::size_t expires_at(
-    const time_point & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_at() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html deleted file mode 100644 index 2ae3447..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_at/overload3.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -basic_waitable_timer::expires_at (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Set the timer's expiry time - as an absolute time. -

-
std::size_t expires_at(
-    const time_point & expiry_time,
-    asio::error_code & ec);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when expires_at() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html deleted file mode 100644 index bc9db71..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -basic_waitable_timer::expires_from_now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use expiry().) Get the timer's expiry time relative to now. -

-
duration expires_from_now() const;
-  » more...
-
-

- (Deprecated: Use expires_after().) Set the timer's expiry - time relative to now. -

-
std::size_t expires_from_now(
-    const duration & expiry_time);
-  » more...
-
-std::size_t expires_from_now(
-    const duration & expiry_time,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html deleted file mode 100644 index e4d77e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_waitable_timer::expires_from_now (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expiry().) Get the timer's expiry time - relative to now. -

-
duration expires_from_now() const;
-
-

- This function may be used to obtain the timer's current expiry time. - Whether the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html deleted file mode 100644 index 3edb3dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload2.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -basic_waitable_timer::expires_from_now (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expires_after().) Set the timer's expiry - time relative to now. -

-
std::size_t expires_from_now(
-    const duration & expiry_time);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If the timer has already expired when expires_from_now() - is called, then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html deleted file mode 100644 index ba9fb13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expires_from_now/overload3.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -basic_waitable_timer::expires_from_now (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use expires_after().) Set the timer's expiry - time relative to now. -

-
std::size_t expires_from_now(
-    const duration & expiry_time,
-    asio::error_code & ec);
-
-

- This function sets the expiry time. Any pending asynchronous wait operations - will be cancelled. The handler for each cancelled operation will be invoked - with the asio::error::operation_aborted error code. -

-
- - Parameters -
-
-

-
-
expiry_time
-

- The expiry time to be used for the timer. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of asynchronous operations that were cancelled. -

-
- - Remarks -
-

- If the timer has already expired when expires_from_now() - is called, then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expiry.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expiry.html deleted file mode 100644 index b579d3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/expiry.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -basic_waitable_timer::expiry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the timer's expiry time as an absolute time. -

-
time_point expiry() const;
-
-

- This function may be used to obtain the timer's current expiry time. Whether - the timer has expired or not does not affect this value. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_executor.html deleted file mode 100644 index e989a84..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -basic_waitable_timer::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_context.html deleted file mode 100644 index 9ca27af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_waitable_timer::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_service.html deleted file mode 100644 index 172f98c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -basic_waitable_timer::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html deleted file mode 100644 index 60ce19c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -basic_waitable_timer::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a basic_waitable_timer - from another. -

-
basic_waitable_timer & operator=(
-    basic_waitable_timer && other);
-
-

- This assignment operator moves a timer from one object to another. Cancels - any outstanding asynchronous operations associated with the target object. -

-
- - Parameters -
-
-

-
-
other
-

- The other basic_waitable_timer - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the basic_waitable_timer(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/time_point.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/time_point.html deleted file mode 100644 index ee878e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/time_point.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_waitable_timer::time_point - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - time point type of the clock. -

-
typedef clock_type::time_point time_point;
-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/traits_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/traits_type.html deleted file mode 100644 index 6175304..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/traits_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -basic_waitable_timer::traits_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - wait traits type. -

-
typedef WaitTraits traits_type;
-
-
- - Requirements -
-

- Header: asio/basic_waitable_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait.html deleted file mode 100644 index 02a5981..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_waitable_timer::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - a blocking wait on the timer. -

-
void wait();
-  » more...
-
-void wait(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html deleted file mode 100644 index 18fc878..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -basic_waitable_timer::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the timer. -

-
void wait();
-
-

- This function is used to wait for the timer to expire. This function - blocks and does not return until the timer has expired. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html deleted file mode 100644 index 6261af2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_waitable_timer/wait/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -basic_waitable_timer::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the timer. -

-
void wait(
-    asio::error_code & ec);
-
-

- This function is used to wait for the timer to expire. This function - blocks and does not return until the timer has expired. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context.html deleted file mode 100644 index 69cece0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context.html +++ /dev/null @@ -1,171 +0,0 @@ - - - -basic_yield_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Context object the represents the currently executing coroutine. -

-
template<
-    typename Handler>
-class basic_yield_context
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- callee_type -

-
-

- The coroutine callee type, used by the implementation. -

-
-

- caller_type -

-
-

- The coroutine caller type, used by the implementation. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_yield_context -

-
-

- Construct a yield context to represent the specified coroutine. -

Construct a yield context from another yield context - type. -

-
-

- operator[] -

-
-

- Return a yield context that sets the specified error_code. -

-
-

- The basic_yield_context - class is used to represent the currently executing stackful coroutine. A - basic_yield_context - may be passed as a handler to an asynchronous operation. For example: -

-
template <typename Handler>
-void my_coroutine(basic_yield_context<Handler> yield)
-{
-  ...
-  std::size_t n = my_socket.async_read_some(buffer, yield);
-  ...
-}
-
-

- The initiating function (async_read_some in the above example) suspends the - current coroutine. The coroutine is resumed when the asynchronous operation - completes, and the result of the operation is returned. -

-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html deleted file mode 100644 index f7db66d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -basic_yield_context::basic_yield_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a yield context to represent the specified coroutine. -

-
basic_yield_context(
-    const detail::weak_ptr< callee_type > & coro,
-    caller_type & ca,
-    Handler & handler);
-  » more...
-
-

- Construct a yield context from another yield context type. -

-
template<
-    typename OtherHandler>
-basic_yield_context(
-    const basic_yield_context< OtherHandler > & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload1.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload1.html deleted file mode 100644 index a518f70..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload1.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -basic_yield_context::basic_yield_context (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a yield context to represent the specified coroutine. -

-
basic_yield_context(
-    const detail::weak_ptr< callee_type > & coro,
-    caller_type & ca,
-    Handler & handler);
-
-

- Most applications do not need to use this constructor. Instead, the - spawn() function passes a yield context as an argument to - the coroutine function. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload2.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload2.html deleted file mode 100644 index 961566f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/basic_yield_context/overload2.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -basic_yield_context::basic_yield_context (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a yield context from another yield context type. -

-
template<
-    typename OtherHandler>
-basic_yield_context(
-    const basic_yield_context< OtherHandler > & other);
-
-

- Requires that OtherHandler be convertible to Handler. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/callee_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/callee_type.html deleted file mode 100644 index 55f2499..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/callee_type.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_yield_context::callee_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - coroutine callee type, used by the implementation. -

-
typedef implementation_defined callee_type;
-
-

- When using Boost.Coroutine v1, this type is: -

-
typename coroutine<void()>
-
-

- When using Boost.Coroutine v2 (unidirectional coroutines), this type is: -

-
push_coroutine<void>
-
-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/caller_type.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/caller_type.html deleted file mode 100644 index 7446abb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/caller_type.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -basic_yield_context::caller_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - coroutine caller type, used by the implementation. -

-
typedef implementation_defined caller_type;
-
-

- When using Boost.Coroutine v1, this type is: -

-
typename coroutine<void()>::caller_type
-
-

- When using Boost.Coroutine v2 (unidirectional coroutines), this type is: -

-
pull_coroutine<void>
-
-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html b/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html deleted file mode 100644 index 298f90f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/basic_yield_context/operator_lb__rb_.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -basic_yield_context::operator[] - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return - a yield context that sets the specified error_code. -

-
basic_yield_context operator[](
-    asio::error_code & ec) const;
-
-

- By default, when a yield context is used with an asynchronous operation, - a non-success error_code - is converted to system_error - and thrown. This operator may be used to specify an error_code - object that should instead be set with the asynchronous operation's result. - For example: -

-
template <typename Handler>
-void my_coroutine(basic_yield_context<Handler> yield)
-{
-  ...
-  std::size_t n = my_socket.async_read_some(buffer, yield[ec]);
-  if (ec)
-  {
-    // An error occurred.
-  }
-  ...
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bind_executor.html b/Sources/Vendor/asio/doc/asio/reference/bind_executor.html deleted file mode 100644 index 4743ce2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bind_executor.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -bind_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Associate an object of type T - with an executor of type Executor. -

-
template<
-    typename Executor,
-    typename T>
-executor_binder< typename decay< T >::type, Executor > bind_executor(
-    const Executor & ex,
-    T && t,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-

- Associate an object of type T with an execution context's executor. -

-
template<
-    typename ExecutionContext,
-    typename T>
-executor_binder< typename decay< T >::type, typename ExecutionContext::executor_type > bind_executor(
-    ExecutionContext & ctx,
-    T && t,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload1.html deleted file mode 100644 index 505ec51..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload1.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -bind_executor (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Associate an object of type T with an executor of type Executor. -

-
template<
-    typename Executor,
-    typename T>
-executor_binder< typename decay< T >::type, Executor > bind_executor(
-    const Executor & ex,
-    T && t,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload2.html deleted file mode 100644 index e1dfd37..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/bind_executor/overload2.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -bind_executor (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Associate an object of type T with an execution context's - executor. -

-
template<
-    typename ExecutionContext,
-    typename T>
-executor_binder< typename decay< T >::type, typename ExecutionContext::executor_type > bind_executor(
-    ExecutionContext & ctx,
-    T && t,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer.html b/Sources/Vendor/asio/doc/asio/reference/buffer.html deleted file mode 100644 index 2776bfd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer.html +++ /dev/null @@ -1,521 +0,0 @@ - - - -buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-buffer -

-

- -The asio::buffer function is used - to create a buffer object to represent raw memory, an array of POD elements, - a vector of POD elements, or a std::string. -

-

- Create a new modifiable buffer from an existing buffer. -

-
mutable_buffer buffer(
-    const mutable_buffer & b);
-  » more...
-
-mutable_buffer buffer(
-    const mutable_buffer & b,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer from an existing buffer. -

-
const_buffer buffer(
-    const const_buffer & b);
-  » more...
-
-const_buffer buffer(
-    const const_buffer & b,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given memory range. -

-
mutable_buffer buffer(
-    void * data,
-    std::size_t size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given memory range. -

-
const_buffer buffer(
-    const void * data,
-    std::size_t size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    PodType (&data)[N]);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    PodType (&data)[N],
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const PodType (&data)[N]);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const PodType (&data)[N],
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    boost::array< PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    boost::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    boost::array< const PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    boost::array< const PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const boost::array< PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const boost::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    std::array< PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    std::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    std::array< const PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    std::array< const PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const std::array< PodType, N > & data);
-  » more...
-
-template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const std::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-mutable_buffer buffer(
-    std::vector< PodType, Allocator > & data);
-  » more...
-
-template<
-    typename PodType,
-    typename Allocator>
-mutable_buffer buffer(
-    std::vector< PodType, Allocator > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-const_buffer buffer(
-    const std::vector< PodType, Allocator > & data);
-  » more...
-
-template<
-    typename PodType,
-    typename Allocator>
-const_buffer buffer(
-    const std::vector< PodType, Allocator > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-mutable_buffer buffer(
-    std::basic_string< Elem, Traits, Allocator > & data);
-  » more...
-
-template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-mutable_buffer buffer(
-    std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-const_buffer buffer(
-    const std::basic_string< Elem, Traits, Allocator > & data);
-  » more...
-
-template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-const_buffer buffer(
-    const std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- Create a new modifiable buffer that represents the given string_view. -

-
template<
-    typename Elem,
-    typename Traits>
-const_buffer buffer(
-    basic_string_view< Elem, Traits > data);
-  » more...
-
-

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits>
-const_buffer buffer(
-    basic_string_view< Elem, Traits > data,
-    std::size_t max_size_in_bytes);
-  » more...
-
-

- A buffer object represents a contiguous region of memory as a 2-tuple consisting - of a pointer and size in bytes. A tuple of the form {void*, size_t} - specifies a mutable (modifiable) region of memory. Similarly, a tuple of - the form {const void*, size_t} specifies a const (non-modifiable) - region of memory. These two forms correspond to the classes mutable_buffer - and const_buffer, - respectively. To mirror C++'s conversion rules, a mutable_buffer - is implicitly convertible to a const_buffer, - and the opposite conversion is not permitted. -

-

- The simplest use case involves reading or writing a single buffer of a specified - size: -

-
sock.send(asio::buffer(data, size));
-
-

- In the above example, the return value of asio::buffer meets - the requirements of the ConstBufferSequence concept so that it may be directly - passed to the socket's write function. A buffer created for modifiable memory - also meets the requirements of the MutableBufferSequence concept. -

-

- An individual buffer may be created from a builtin array, std::vector, std::array - or boost::array of POD elements. This helps prevent buffer overruns by automatically - determining the size of the buffer: -

-
char d1[128];
-size_t bytes_transferred = sock.receive(asio::buffer(d1));
-
-std::vector<char> d2(128);
-bytes_transferred = sock.receive(asio::buffer(d2));
-
-std::array<char, 128> d3;
-bytes_transferred = sock.receive(asio::buffer(d3));
-
-boost::array<char, 128> d4;
-bytes_transferred = sock.receive(asio::buffer(d4));
-
-

- In all three cases above, the buffers created are exactly 128 bytes long. - Note that a vector is never automatically resized when - creating or using a buffer. The buffer size is determined using the vector's - size() member function, and not its capacity. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() and - size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-asio::const_buffer b2 = ...;
-std::size_t s2 = b2.size();
-const void* p2 = b2.data();
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-

- For convenience, a buffer_size - function is provided that works with both buffers and buffer sequences (that - is, types meeting the ConstBufferSequence or MutableBufferSequence type requirements). - In this case, the function returns the total size of all buffers in the sequence. -

-
- - Buffer - Copying -
-

- The buffer_copy - function may be used to copy raw bytes between individual buffers and buffer - sequences. -

-

- In particular, when used with the buffer_size - function, the buffer_copy - function can be used to linearise a sequence of buffers. For example: -

-
vector<const_buffer> buffers = ...;
-
-vector<unsigned char> data(asio::buffer_size(buffers));
-asio::buffer_copy(asio::buffer(data), buffers);
-
-

- Note that buffer_copy - is implemented in terms of memcpy, and consequently it cannot - be used to copy between overlapping memory regions. -

-
- - Buffer - Invalidation -
-

- A buffer object does not have any ownership of the memory it refers to. It - is the responsibility of the application to ensure the memory region remains - valid until it is no longer required for an I/O operation. When the memory - is no longer available, the buffer is said to have been invalidated. -

-

- For the asio::buffer overloads that accept an argument of type - std::vector, the buffer objects returned are invalidated by any vector operation - that also invalidates all references, pointers and iterators referring to - the elements in the sequence (C++ Std, 23.2.4) -

-

- For the asio::buffer overloads that accept an argument of type - std::basic_string, the buffer objects returned are invalidated according - to the rules defined for invalidation of references, pointers and iterators - referring to elements of the sequence (C++ Std, 21.3). -

-
- - Buffer - Arithmetic -
-

- Buffer objects may be manipulated using simple arithmetic in a safe way which - helps prevent buffer overruns. Consider an array initialised as follows: -

-
boost::array<char, 6> a = { 'a', 'b', 'c', 'd', 'e' };
-
-

- A buffer object b1 created using: -

-
b1 = asio::buffer(a);
-
-

- represents the entire array, { 'a', 'b', 'c', 'd', 'e' }. An - optional second argument to the asio::buffer function may be - used to limit the size, in bytes, of the buffer: -

-
b2 = asio::buffer(a, 3);
-
-

- such that b2 represents the data { 'a', 'b', 'c' }. - Even if the size argument exceeds the actual size of the array, the size - of the buffer object created will be limited to the array size. -

-

- An offset may be applied to an existing buffer to create a new one: -

-
b3 = b1 + 2;
-
-

- where b3 will set to represent { 'c', 'd', 'e' }. - If the offset exceeds the size of the existing buffer, the newly created - buffer will be empty. -

-

- Both an offset and size may be specified to create a buffer that corresponds - to a specific range of bytes within an existing buffer: -

-
b4 = asio::buffer(b1 + 1, 3);
-
-

- so that b4 will refer to the bytes { 'b', 'c', 'd' }. -

-
- - Buffers and - Scatter-Gather I/O -
-

- To read or write using multiple buffers (i.e. scatter-gather I/O), multiple - buffer objects may be assigned into a container that supports the MutableBufferSequence - (for read) or ConstBufferSequence (for write) concepts: -

-
char d1[128];
-std::vector<char> d2(128);
-boost::array<char, 128> d3;
-
-boost::array<mutable_buffer, 3> bufs1 = {
-  asio::buffer(d1),
-  asio::buffer(d2),
-  asio::buffer(d3) };
-bytes_transferred = sock.receive(bufs1);
-
-std::vector<const_buffer> bufs2;
-bufs2.push_back(asio::buffer(d1));
-bufs2.push_back(asio::buffer(d2));
-bufs2.push_back(asio::buffer(d3));
-bytes_transferred = sock.send(bufs2);
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload1.html deleted file mode 100644 index 8a66c67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload1.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffer (1 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer from an existing buffer. -

-
mutable_buffer buffer(
-    const mutable_buffer & b);
-
-
- - Return - Value -
-

- mutable_buffer(b). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload10.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload10.html deleted file mode 100644 index 48feb11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload10.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (10 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const PodType (&data)[N],
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    static_cast<const void*>(data),
-    min(N * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload11.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload11.html deleted file mode 100644 index 7f13b8d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload11.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (11 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    boost::array< PodType, N > & data);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload12.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload12.html deleted file mode 100644 index a1d9444..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload12.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (12 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    boost::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload13.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload13.html deleted file mode 100644 index 9d23e8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload13.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (13 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    boost::array< const PodType, N > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload14.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload14.html deleted file mode 100644 index a266e22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload14.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (14 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    boost::array< const PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload15.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload15.html deleted file mode 100644 index 3518abf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload15.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (15 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const boost::array< PodType, N > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload16.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload16.html deleted file mode 100644 index b7f435c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload16.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (16 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const boost::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload17.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload17.html deleted file mode 100644 index 74f0943..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload17.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (17 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    std::array< PodType, N > & data);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload18.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload18.html deleted file mode 100644 index a6bcc51..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload18.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (18 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    std::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload19.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload19.html deleted file mode 100644 index 2365326..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload19.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (19 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    std::array< const PodType, N > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload2.html deleted file mode 100644 index 8da27a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -buffer (2 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer from an existing buffer. -

-
mutable_buffer buffer(
-    const mutable_buffer & b,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    b.data(),
-    min(b.size(), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload20.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload20.html deleted file mode 100644 index 846f2ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload20.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (20 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    std::array< const PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload21.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload21.html deleted file mode 100644 index 123c280..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload21.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (21 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const std::array< PodType, N > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    data.size() * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload22.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload22.html deleted file mode 100644 index f123515..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload22.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (22 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const std::array< PodType, N > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload23.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload23.html deleted file mode 100644 index 8a5242a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload23.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -buffer (23 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-mutable_buffer buffer(
-    std::vector< PodType, Allocator > & data);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.size() ? &data[0] : 0,
-    data.size() * sizeof(PodType));
-
-
- - Remarks -
-

- The buffer is invalidated by any vector operation that would also invalidate - iterators. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload24.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload24.html deleted file mode 100644 index 078ec6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload24.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -buffer (24 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-mutable_buffer buffer(
-    std::vector< PodType, Allocator > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.size() ? &data[0] : 0,
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - Remarks -
-

- The buffer is invalidated by any vector operation that would also invalidate - iterators. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload25.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload25.html deleted file mode 100644 index 4a74d09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload25.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -buffer (25 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-const_buffer buffer(
-    const std::vector< PodType, Allocator > & data);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.size() ? &data[0] : 0,
-    data.size() * sizeof(PodType));
-
-
- - Remarks -
-

- The buffer is invalidated by any vector operation that would also invalidate - iterators. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload26.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload26.html deleted file mode 100644 index 8063564..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload26.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -buffer (26 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD vector. -

-
template<
-    typename PodType,
-    typename Allocator>
-const_buffer buffer(
-    const std::vector< PodType, Allocator > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.size() ? &data[0] : 0,
-    min(data.size() * sizeof(PodType), max_size_in_bytes));
-
-
- - Remarks -
-

- The buffer is invalidated by any vector operation that would also invalidate - iterators. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload27.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload27.html deleted file mode 100644 index e9c54db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload27.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -buffer (27 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-mutable_buffer buffer(
-    std::basic_string< Elem, Traits, Allocator > & data);
-
-
- - Return - Value -
-

- mutable_buffer(data.size() ? &data[0] : 0, data.size() * sizeof(Elem)). -

-
- - Remarks -
-

- The buffer is invalidated by any non-const operation called on the given - string object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload28.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload28.html deleted file mode 100644 index 691a2cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload28.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -buffer (28 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-mutable_buffer buffer(
-    std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.size() ? &data[0] : 0,
-    min(data.size() * sizeof(Elem), max_size_in_bytes));
-
-
- - Remarks -
-

- The buffer is invalidated by any non-const operation called on the given - string object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload29.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload29.html deleted file mode 100644 index 6f89edc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload29.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -buffer (29 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-const_buffer buffer(
-    const std::basic_string< Elem, Traits, Allocator > & data);
-
-
- - Return - Value -
-

- const_buffer(data.data(), data.size() * sizeof(Elem)). -

-
- - Remarks -
-

- The buffer is invalidated by any non-const operation called on the given - string object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload3.html deleted file mode 100644 index 98fce12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload3.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffer (3 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer from an existing buffer. -

-
const_buffer buffer(
-    const const_buffer & b);
-
-
- - Return - Value -
-

- const_buffer(b). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload30.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload30.html deleted file mode 100644 index 9b07c53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload30.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -buffer (30 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-const_buffer buffer(
-    const std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    data.data(),
-    min(data.size() * sizeof(Elem), max_size_in_bytes));
-
-
- - Remarks -
-

- The buffer is invalidated by any non-const operation called on the given - string object. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload31.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload31.html deleted file mode 100644 index 0a8317b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload31.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffer (31 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given string_view. -

-
template<
-    typename Elem,
-    typename Traits>
-const_buffer buffer(
-    basic_string_view< Elem, Traits > data);
-
-
- - Return - Value -
-

- mutable_buffer(data.size() ? &data[0] : 0, data.size() * sizeof(Elem)). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload32.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload32.html deleted file mode 100644 index 16479fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload32.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -buffer (32 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits>
-const_buffer buffer(
-    basic_string_view< Elem, Traits > data,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    data.size() ? &data[0] : 0,
-    min(data.size() * sizeof(Elem), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload4.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload4.html deleted file mode 100644 index e3ff343..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload4.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -buffer (4 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer from an existing buffer. -

-
const_buffer buffer(
-    const const_buffer & b,
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    b.data(),
-    min(b.size(), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload5.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload5.html deleted file mode 100644 index 619d189..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload5.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffer (5 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given memory range. -

-
mutable_buffer buffer(
-    void * data,
-    std::size_t size_in_bytes);
-
-
- - Return - Value -
-

- mutable_buffer(data, size_in_bytes). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload6.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload6.html deleted file mode 100644 index bdbbe55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload6.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffer (6 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given memory range. -

-
const_buffer buffer(
-    const void * data,
-    std::size_t size_in_bytes);
-
-
- - Return - Value -
-

- const_buffer(data, size_in_bytes). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload7.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload7.html deleted file mode 100644 index eb0852d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload7.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -buffer (7 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    PodType (&data)[N]);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    static_cast<void*>(data),
-    N * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload8.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload8.html deleted file mode 100644 index 9beeec5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload8.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffer (8 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-mutable_buffer buffer(
-    PodType (&data)[N],
-    std::size_t max_size_in_bytes);
-
-
- - Return - Value -
-

- A mutable_buffer - value equivalent to: -

-
mutable_buffer(
-    static_cast<void*>(data),
-    min(N * sizeof(PodType), max_size_in_bytes));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer/overload9.html b/Sources/Vendor/asio/doc/asio/reference/buffer/overload9.html deleted file mode 100644 index c250b98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer/overload9.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -buffer (9 of 32 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that represents the given POD array. -

-
template<
-    typename PodType,
-    std::size_t N>
-const_buffer buffer(
-    const PodType (&data)[N]);
-
-
- - Return - Value -
-

- A const_buffer - value equivalent to: -

-
const_buffer(
-    static_cast<const void*>(data),
-    N * sizeof(PodType));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_cast.html b/Sources/Vendor/asio/doc/asio/reference/buffer_cast.html deleted file mode 100644 index b2e92fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_cast.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -buffer_cast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use the data() - member function.) The asio::buffer_cast function is used to - obtain a pointer to the underlying memory region associated with a buffer. -

-

- Cast a non-modifiable buffer to a specified pointer to POD type. -

-
template<
-    typename PointerToPodType>
-PointerToPodType buffer_cast(
-    const mutable_buffer & b);
-  » more...
-
-template<
-    typename PointerToPodType>
-PointerToPodType buffer_cast(
-    const const_buffer & b);
-  » more...
-
-
- - Examples: -
-

- To access the memory of a non-modifiable buffer, use: -

-
asio::const_buffer b1 = ...;
-const unsigned char* p1 = asio::buffer_cast<const unsigned char*>(b1);
-
-

- To access the memory of a modifiable buffer, use: -

-
asio::mutable_buffer b2 = ...;
-unsigned char* p2 = asio::buffer_cast<unsigned char*>(b2);
-
-

- The asio::buffer_cast function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload1.html deleted file mode 100644 index 1dfa0ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_cast (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cast a non-modifiable buffer to a specified pointer to POD type. -

-
template<
-    typename PointerToPodType>
-PointerToPodType buffer_cast(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload2.html deleted file mode 100644 index 95562f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_cast/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_cast (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cast a non-modifiable buffer to a specified pointer to POD type. -

-
template<
-    typename PointerToPodType>
-PointerToPodType buffer_cast(
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_copy.html b/Sources/Vendor/asio/doc/asio/reference/buffer_copy.html deleted file mode 100644 index 3572001..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_copy.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -buffer_copy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The asio::buffer_copy function - is used to copy bytes from a source buffer (or buffer sequence) to a target - buffer (or buffer sequence). -

-

- Copies bytes from a source buffer sequence to a target buffer sequence. -

-
template<
-    typename MutableBufferSequence,
-    typename ConstBufferSequence>
-std::size_t buffer_copy(
-    const MutableBufferSequence & target,
-    const ConstBufferSequence & source);
-  » more...
-
-

- Copies a limited number of bytes from a source buffer sequence to a target - buffer sequence. -

-
template<
-    typename MutableBufferSequence,
-    typename ConstBufferSequence>
-std::size_t buffer_copy(
-    const MutableBufferSequence & target,
-    const ConstBufferSequence & source,
-    std::size_t max_bytes_to_copy);
-  » more...
-
-

- The buffer_copy function is available in two forms: -

-
    -
  • - A 2-argument form: buffer_copy(target, source) -
  • -
  • - A 3-argument form: buffer_copy(target, source, max_bytes_to_copy) -
  • -
-

- Both forms return the number of bytes actually copied. The number of bytes - copied is the lesser of: -

-
    -
  • - buffer_size(target) -
  • -
  • - buffer_size(source) -
  • -
  • - If specified, max_bytes_to_copy. -
  • -
-

- This prevents buffer overflow, regardless of the buffer sizes used in the - copy operation. -

-

- Note that buffer_copy - is implemented in terms of memcpy, and consequently it cannot - be used to copy between overlapping memory regions. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload1.html deleted file mode 100644 index a0f565f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -buffer_copy (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copies bytes from a source buffer sequence to a target buffer sequence. -

-
template<
-    typename MutableBufferSequence,
-    typename ConstBufferSequence>
-std::size_t buffer_copy(
-    const MutableBufferSequence & target,
-    const ConstBufferSequence & source);
-
-
- - Parameters -
-
-

-
-
target
-

- A modifiable buffer sequence representing the memory regions to which - the bytes will be copied. -

-
source
-

- A non-modifiable buffer sequence representing the memory regions - from which the bytes will be copied. -

-
-
-
- - Return - Value -
-

- The number of bytes copied. -

-
- - Remarks -
-

- The number of bytes copied is the lesser of: -

-
    -
  • - buffer_size(target) -
  • -
  • - buffer_size(source) -
  • -
-

- This function is implemented in terms of memcpy, and consequently - it cannot be used to copy between overlapping memory regions. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload2.html deleted file mode 100644 index 1ecb748..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_copy/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -buffer_copy (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copies a limited number of bytes from a source buffer sequence to a target - buffer sequence. -

-
template<
-    typename MutableBufferSequence,
-    typename ConstBufferSequence>
-std::size_t buffer_copy(
-    const MutableBufferSequence & target,
-    const ConstBufferSequence & source,
-    std::size_t max_bytes_to_copy);
-
-
- - Parameters -
-
-

-
-
target
-

- A modifiable buffer sequence representing the memory regions to which - the bytes will be copied. -

-
source
-

- A non-modifiable buffer sequence representing the memory regions - from which the bytes will be copied. -

-
max_bytes_to_copy
-

- The maximum number of bytes to be copied. -

-
-
-
- - Return - Value -
-

- The number of bytes copied. -

-
- - Remarks -
-

- The number of bytes copied is the lesser of: -

-
    -
  • - buffer_size(target) -
  • -
  • - buffer_size(source) -
  • -
  • - max_bytes_to_copy -
  • -
-

- This function is implemented in terms of memcpy, and consequently - it cannot be used to copy between overlapping memory regions. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin.html deleted file mode 100644 index 87833c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -buffer_sequence_begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The asio::buffer_sequence_begin - function returns an iterator pointing to the first element in a buffer sequence. -

-

- Get an iterator to the first element in a buffer sequence. -

-
const mutable_buffer * buffer_sequence_begin(
-    const mutable_buffer & b);
-  » more...
-
-const const_buffer * buffer_sequence_begin(
-    const const_buffer & b);
-  » more...
-
-template<
-    typename C>
-auto buffer_sequence_begin(
-    C & c);
-  » more...
-
-template<
-    typename C>
-auto buffer_sequence_begin(
-    const C & c);
-  » more...
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload1.html deleted file mode 100644 index 7269d10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffer_sequence_begin (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to the first element in a buffer sequence. -

-
const mutable_buffer * buffer_sequence_begin(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload2.html deleted file mode 100644 index f38f31f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffer_sequence_begin (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to the first element in a buffer sequence. -

-
const const_buffer * buffer_sequence_begin(
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload3.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload3.html deleted file mode 100644 index 8ab2fde..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_sequence_begin (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to the first element in a buffer sequence. -

-
template<
-    typename C>
-auto buffer_sequence_begin(
-    C & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload4.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload4.html deleted file mode 100644 index b52be00..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_begin/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_sequence_begin (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to the first element in a buffer sequence. -

-
template<
-    typename C>
-auto buffer_sequence_begin(
-    const C & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end.html deleted file mode 100644 index aefe569..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -buffer_sequence_end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The asio::buffer_sequence_end - function returns an iterator pointing to one past the end element in a buffer - sequence. -

-

- Get an iterator to one past the end element in a buffer sequence. -

-
const mutable_buffer * buffer_sequence_end(
-    const mutable_buffer & b);
-  » more...
-
-const const_buffer * buffer_sequence_end(
-    const const_buffer & b);
-  » more...
-
-template<
-    typename C>
-auto buffer_sequence_end(
-    C & c);
-  » more...
-
-template<
-    typename C>
-auto buffer_sequence_end(
-    const C & c);
-  » more...
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload1.html deleted file mode 100644 index 825ae24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffer_sequence_end (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to one past the end element in a buffer sequence. -

-
const mutable_buffer * buffer_sequence_end(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload2.html deleted file mode 100644 index 68b385f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffer_sequence_end (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to one past the end element in a buffer sequence. -

-
const const_buffer * buffer_sequence_end(
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload3.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload3.html deleted file mode 100644 index c7129ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_sequence_end (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to one past the end element in a buffer sequence. -

-
template<
-    typename C>
-auto buffer_sequence_end(
-    C & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload4.html b/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload4.html deleted file mode 100644 index f63d30c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_sequence_end/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffer_sequence_end (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an iterator to one past the end element in a buffer sequence. -

-
template<
-    typename C>
-auto buffer_sequence_end(
-    const C & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/buffer_size.html deleted file mode 100644 index 003e618..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffer_size.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the total number of bytes in a buffer - sequence. -

-
template<
-    typename BufferSequence>
-std::size_t buffer_size(
-    const BufferSequence & b);
-
-

- The buffer_size function determines the total size of all buffers - in the buffer sequence, as if computed as follows: -

-
size_t total_size = 0;
-auto i = asio::buffer_sequence_begin(buffers);
-auto end = asio::buffer_sequence_end(buffers);
-for (; i != end; ++i)
-{
-  const_buffer b(*i);
-  total_size += b.size();
-}
-return total_size;
-
-

- The BufferSequence template parameter may meet either of the - ConstBufferSequence or MutableBufferSequence type - requirements. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream.html deleted file mode 100644 index b84cdb9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream.html +++ /dev/null @@ -1,387 +0,0 @@ - - - -buffered_read_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adds buffering to the read-related operations of a stream. -

-
template<
-    typename Stream>
-class buffered_read_stream :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- The type of the lowest layer. -

-
-

- next_layer_type -

-
-

- The type of the next layer. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_fill -

-
-

- Start an asynchronous fill. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. The buffer into which the data will - be read must be valid for the lifetime of the asynchronous operation. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. The data being written must be valid - for the lifetime of the asynchronous operation. -

-
-

- buffered_read_stream -

-
-

- Construct, passing the specified argument to initialise the next - layer. -

-
-

- close -

-
-

- Close the stream. -

-
-

- fill -

-
-

- Fill the buffer with some data. Returns the number of bytes placed - in the buffer as a result of the operation. Throws an exception - on failure.

Fill the buffer with some data. Returns - the number of bytes placed in the buffer as a result of the operation, - or 0 if an error occurred. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- in_avail -

-
-

- Determine the amount of data that may be read without blocking. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- next_layer -

-
-

- Get a reference to the next layer. -

-
-

- peek -

-
-

- Peek at the incoming data on the stream. Returns the number of - bytes read. Throws an exception on failure.

Peek - at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
-

- read_some -

-
-

- Read some data from the stream. Returns the number of bytes read. - Throws an exception on failure.

Read some data from - the stream. Returns the number of bytes read or 0 if an error occurred. -

-
-

- write_some -

-
-

- Write the given data to the stream. Returns the number of bytes - written. Throws an exception on failure.

Write the - given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- default_buffer_size -

-
-

- The default buffer size. -

-
-

- The buffered_read_stream - class template can be used to add buffering to the synchronous and asynchronous - read operations of a stream. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/buffered_read_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_fill.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_fill.html deleted file mode 100644 index 83ef723..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_fill.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::async_fill - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous fill. -

-
template<
-    typename ReadHandler>
-DEDUCED async_fill(
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_read_some.html deleted file mode 100644 index 211119c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_read_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_read_stream::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. The buffer into which the data will be read must - be valid for the lifetime of the asynchronous operation. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_write_some.html deleted file mode 100644 index d7ea427..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/async_write_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_read_stream::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. The data being written must be valid for the lifetime - of the asynchronous operation. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html deleted file mode 100644 index 46fdd94..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffered_read_stream::buffered_read_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct, - passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-explicit buffered_read_stream(
-    Arg & a);
-  » more...
-
-template<
-    typename Arg>
-buffered_read_stream(
-    Arg & a,
-    std::size_t buffer_size);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html deleted file mode 100644 index c1b738d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_read_stream::buffered_read_stream (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_read_stream(
-    Arg & a);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html deleted file mode 100644 index fef88ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/buffered_read_stream/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::buffered_read_stream (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_read_stream(
-    Arg & a,
-    std::size_t buffer_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close.html deleted file mode 100644 index 9c692d9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_read_stream::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the stream. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload1.html deleted file mode 100644 index e50347e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_read_stream::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload2.html deleted file mode 100644 index d7c4c95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/close/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html deleted file mode 100644 index 456b393..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/default_buffer_size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::default_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - default buffer size. -

-
static const std::size_t default_buffer_size = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/executor_type.html deleted file mode 100644 index 4923ead..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_read_stream::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef lowest_layer_type::executor_type executor_type;
-
-
- - Requirements -
-

- Header: asio/buffered_read_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill.html deleted file mode 100644 index 6a8aa25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_read_stream::fill - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Fill the - buffer with some data. Returns the number of bytes placed in the buffer - as a result of the operation. Throws an exception on failure. -

-
std::size_t fill();
-  » more...
-
-

- Fill the buffer with some data. Returns the number of bytes placed in the - buffer as a result of the operation, or 0 if an error occurred. -

-
std::size_t fill(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html deleted file mode 100644 index a69cc8d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::fill (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fill the buffer with some data. Returns the number of bytes placed in - the buffer as a result of the operation. Throws an exception on failure. -

-
std::size_t fill();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html deleted file mode 100644 index 57525ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/fill/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_read_stream::fill (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fill the buffer with some data. Returns the number of bytes placed in - the buffer as a result of the operation, or 0 if an error occurred. -

-
std::size_t fill(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_executor.html deleted file mode 100644 index 309c989..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_context.html deleted file mode 100644 index 5784241..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_read_stream::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_service.html deleted file mode 100644 index 347fcd6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_read_stream::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail.html deleted file mode 100644 index 5689d54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_read_stream::in_avail - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-  » more...
-
-std::size_t in_avail(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html deleted file mode 100644 index e651d59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_read_stream::in_avail (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html deleted file mode 100644 index 8d39311..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/in_avail/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::in_avail (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html deleted file mode 100644 index 33c42f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffered_read_stream::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html deleted file mode 100644 index b142f09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_read_stream::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html deleted file mode 100644 index efc4644..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_read_stream::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html deleted file mode 100644 index 4e17885..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/lowest_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_read_stream::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the lowest layer. -

-
typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_read_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer.html deleted file mode 100644 index 01e4a0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_read_stream::next_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the next layer. -

-
next_layer_type & next_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html deleted file mode 100644 index 572fc8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/next_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_read_stream::next_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the next layer. -

-
typedef remove_reference< Stream >::type next_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_read_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek.html deleted file mode 100644 index a9e4a44..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_read_stream::peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Peek at - the incoming data on the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Peek at the incoming data on the stream. Returns the number of bytes read, - or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html deleted file mode 100644 index 146fb4a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::peek (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read. Throws an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html deleted file mode 100644 index 7901ecf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/peek/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_read_stream::peek (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some.html deleted file mode 100644 index 63f39bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_read_stream::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the stream. Returns the number of bytes read. Throws an - exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Read some data from the stream. Returns the number of bytes read or 0 if - an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html deleted file mode 100644 index f5f222f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html deleted file mode 100644 index 20f1c48..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/read_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_read_stream::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read or 0 - if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some.html deleted file mode 100644 index 0924358..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_read_stream::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - the given data to the stream. Returns the number of bytes written. Throws - an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html deleted file mode 100644 index 896dbdd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_read_stream::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written. - Throws an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html deleted file mode 100644 index 370ea9f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_read_stream/write_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_read_stream::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream.html deleted file mode 100644 index cf8b424..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream.html +++ /dev/null @@ -1,382 +0,0 @@ - - - -buffered_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adds buffering to the read- and write-related operations of a stream. -

-
template<
-    typename Stream>
-class buffered_stream :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- The type of the lowest layer. -

-
-

- next_layer_type -

-
-

- The type of the next layer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_fill -

-
-

- Start an asynchronous fill. -

-
-

- async_flush -

-
-

- Start an asynchronous flush. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. The buffer into which the data will - be read must be valid for the lifetime of the asynchronous operation. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. The data being written must be valid - for the lifetime of the asynchronous operation. -

-
-

- buffered_stream -

-
-

- Construct, passing the specified argument to initialise the next - layer. -

-
-

- close -

-
-

- Close the stream. -

-
-

- fill -

-
-

- Fill the buffer with some data. Returns the number of bytes placed - in the buffer as a result of the operation. Throws an exception - on failure.

Fill the buffer with some data. Returns - the number of bytes placed in the buffer as a result of the operation, - or 0 if an error occurred. -

-
-

- flush -

-
-

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation. - Throws an exception on failure.

Flush all data from - the buffer to the next layer. Returns the number of bytes written - to the next layer on the last write operation, or 0 if an error - occurred. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- in_avail -

-
-

- Determine the amount of data that may be read without blocking. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- next_layer -

-
-

- Get a reference to the next layer. -

-
-

- peek -

-
-

- Peek at the incoming data on the stream. Returns the number of - bytes read. Throws an exception on failure.

Peek - at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
-

- read_some -

-
-

- Read some data from the stream. Returns the number of bytes read. - Throws an exception on failure.

Read some data from - the stream. Returns the number of bytes read or 0 if an error occurred. -

-
-

- write_some -

-
-

- Write the given data to the stream. Returns the number of bytes - written. Throws an exception on failure.

Write the - given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
-

- The buffered_stream - class template can be used to add buffering to the synchronous and asynchronous - read and write operations of a stream. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/buffered_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_fill.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_fill.html deleted file mode 100644 index c5b9d58..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_fill.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::async_fill - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous fill. -

-
template<
-    typename ReadHandler>
-DEDUCED async_fill(
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_flush.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_flush.html deleted file mode 100644 index 330f4f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_flush.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::async_flush - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous flush. -

-
template<
-    typename WriteHandler>
-DEDUCED async_flush(
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_read_some.html deleted file mode 100644 index be6cdb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_read_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_stream::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. The buffer into which the data will be read must - be valid for the lifetime of the asynchronous operation. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_write_some.html deleted file mode 100644 index 72ef642..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/async_write_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_stream::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. The data being written must be valid for the lifetime - of the asynchronous operation. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream.html deleted file mode 100644 index e953e54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffered_stream::buffered_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct, - passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-explicit buffered_stream(
-    Arg & a);
-  » more...
-
-template<
-    typename Arg>
-explicit buffered_stream(
-    Arg & a,
-    std::size_t read_buffer_size,
-    std::size_t write_buffer_size);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html deleted file mode 100644 index 0456f93..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_stream::buffered_stream (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_stream(
-    Arg & a);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html deleted file mode 100644 index 9049c07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/buffered_stream/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::buffered_stream (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_stream(
-    Arg & a,
-    std::size_t read_buffer_size,
-    std::size_t write_buffer_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close.html deleted file mode 100644 index 77201c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the stream. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload1.html deleted file mode 100644 index 3a34f43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_stream::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload2.html deleted file mode 100644 index 1d5b0c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/close/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/executor_type.html deleted file mode 100644 index 3bed091..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_stream::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef lowest_layer_type::executor_type executor_type;
-
-
- - Requirements -
-

- Header: asio/buffered_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill.html deleted file mode 100644 index dff3894..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_stream::fill - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Fill the buffer with - some data. Returns the number of bytes placed in the buffer as a result - of the operation. Throws an exception on failure. -

-
std::size_t fill();
-  » more...
-
-

- Fill the buffer with some data. Returns the number of bytes placed in the - buffer as a result of the operation, or 0 if an error occurred. -

-
std::size_t fill(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload1.html deleted file mode 100644 index e75c06c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::fill (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fill the buffer with some data. Returns the number of bytes placed in - the buffer as a result of the operation. Throws an exception on failure. -

-
std::size_t fill();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload2.html deleted file mode 100644 index a2504b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/fill/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_stream::fill (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Fill the buffer with some data. Returns the number of bytes placed in - the buffer as a result of the operation, or 0 if an error occurred. -

-
std::size_t fill(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush.html deleted file mode 100644 index e64d80a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffered_stream::flush - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Flush all data - from the buffer to the next layer. Returns the number of bytes written - to the next layer on the last write operation. Throws an exception on failure. -

-
std::size_t flush();
-  » more...
-
-

- Flush all data from the buffer to the next layer. Returns the number of - bytes written to the next layer on the last write operation, or 0 if an - error occurred. -

-
std::size_t flush(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload1.html deleted file mode 100644 index 7b6fac7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_stream::flush (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation. Throws - an exception on failure. -

-
std::size_t flush();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload2.html deleted file mode 100644 index 0caa5c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/flush/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_stream::flush (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation, or 0 - if an error occurred. -

-
std::size_t flush(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_executor.html deleted file mode 100644 index cca63ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_context.html deleted file mode 100644 index d74814c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_stream::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_service.html deleted file mode 100644 index 70088bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_stream::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail.html deleted file mode 100644 index 1b18761..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_stream::in_avail - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-  » more...
-
-std::size_t in_avail(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html deleted file mode 100644 index 6035f6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_stream::in_avail (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html deleted file mode 100644 index 01b5534..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/in_avail/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::in_avail (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer.html deleted file mode 100644 index 4f5a839..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffered_stream::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html deleted file mode 100644 index df6ac61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_stream::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html deleted file mode 100644 index 1ea1b12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_stream::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html deleted file mode 100644 index cae9752..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/lowest_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_stream::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the lowest layer. -

-
typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer.html deleted file mode 100644 index 0413c04..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_stream::next_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a - reference to the next layer. -

-
next_layer_type & next_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer_type.html deleted file mode 100644 index 82f93cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/next_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_stream::next_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the next layer. -

-
typedef remove_reference< Stream >::type next_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek.html deleted file mode 100644 index bedd10f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_stream::peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Peek at the incoming - data on the stream. Returns the number of bytes read. Throws an exception - on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Peek at the incoming data on the stream. Returns the number of bytes read, - or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload1.html deleted file mode 100644 index bca1117..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::peek (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read. Throws an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload2.html deleted file mode 100644 index bcf52e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/peek/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::peek (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some.html deleted file mode 100644 index d86a2c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_stream::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read some - data from the stream. Returns the number of bytes read. Throws an exception - on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Read some data from the stream. Returns the number of bytes read or 0 if - an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload1.html deleted file mode 100644 index c6d1511..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload2.html deleted file mode 100644 index 553e57a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/read_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read or 0 - if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some.html deleted file mode 100644 index 02c74b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_stream::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - the given data to the stream. Returns the number of bytes written. Throws - an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload1.html deleted file mode 100644 index fbb8104..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_stream::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written. - Throws an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload2.html deleted file mode 100644 index 7f74c53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_stream/write_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_stream::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream.html deleted file mode 100644 index 8139095..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream.html +++ /dev/null @@ -1,388 +0,0 @@ - - - -buffered_write_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adds buffering to the write-related operations of a stream. -

-
template<
-    typename Stream>
-class buffered_write_stream :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- The type of the lowest layer. -

-
-

- next_layer_type -

-
-

- The type of the next layer. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_flush -

-
-

- Start an asynchronous flush. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. The buffer into which the data will - be read must be valid for the lifetime of the asynchronous operation. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. The data being written must be valid - for the lifetime of the asynchronous operation. -

-
-

- buffered_write_stream -

-
-

- Construct, passing the specified argument to initialise the next - layer. -

-
-

- close -

-
-

- Close the stream. -

-
-

- flush -

-
-

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation. - Throws an exception on failure.

Flush all data from - the buffer to the next layer. Returns the number of bytes written - to the next layer on the last write operation, or 0 if an error - occurred. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- in_avail -

-
-

- Determine the amount of data that may be read without blocking. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- next_layer -

-
-

- Get a reference to the next layer. -

-
-

- peek -

-
-

- Peek at the incoming data on the stream. Returns the number of - bytes read. Throws an exception on failure.

Peek - at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
-

- read_some -

-
-

- Read some data from the stream. Returns the number of bytes read. - Throws an exception on failure.

Read some data from - the stream. Returns the number of bytes read or 0 if an error occurred. -

-
-

- write_some -

-
-

- Write the given data to the stream. Returns the number of bytes - written. Throws an exception on failure.

Write the - given data to the stream. Returns the number of bytes written, - or 0 if an error occurred and the error handler did not throw. -

-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- default_buffer_size -

-
-

- The default buffer size. -

-
-

- The buffered_write_stream - class template can be used to add buffering to the synchronous and asynchronous - write operations of a stream. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/buffered_write_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_flush.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_flush.html deleted file mode 100644 index 35215ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_flush.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::async_flush - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous flush. -

-
template<
-    typename WriteHandler>
-DEDUCED async_flush(
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_read_some.html deleted file mode 100644 index 71a207d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_read_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_write_stream::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. The buffer into which the data will be read must - be valid for the lifetime of the asynchronous operation. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_write_some.html deleted file mode 100644 index 8c8a7cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/async_write_some.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -buffered_write_stream::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. The data being written must be valid for the lifetime - of the asynchronous operation. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html deleted file mode 100644 index 3a60507..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffered_write_stream::buffered_write_stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct, - passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-explicit buffered_write_stream(
-    Arg & a);
-  » more...
-
-template<
-    typename Arg>
-buffered_write_stream(
-    Arg & a,
-    std::size_t buffer_size);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html deleted file mode 100644 index 79bde19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_write_stream::buffered_write_stream (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_write_stream(
-    Arg & a);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html deleted file mode 100644 index 130e18f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/buffered_write_stream/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::buffered_write_stream (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct, passing the specified argument to initialise the next layer. -

-
template<
-    typename Arg>
-buffered_write_stream(
-    Arg & a,
-    std::size_t buffer_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close.html deleted file mode 100644 index 7966c78..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_write_stream::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the stream. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload1.html deleted file mode 100644 index e48cf15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_write_stream::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload2.html deleted file mode 100644 index 7dc1d42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/close/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the stream. -

-
void close(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html deleted file mode 100644 index bb7e466..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/default_buffer_size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::default_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - default buffer size. -

-
static const std::size_t default_buffer_size = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/executor_type.html deleted file mode 100644 index 4f3b65c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_write_stream::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef lowest_layer_type::executor_type executor_type;
-
-
- - Requirements -
-

- Header: asio/buffered_write_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush.html deleted file mode 100644 index 18955af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffered_write_stream::flush - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Flush - all data from the buffer to the next layer. Returns the number of bytes - written to the next layer on the last write operation. Throws an exception - on failure. -

-
std::size_t flush();
-  » more...
-
-

- Flush all data from the buffer to the next layer. Returns the number of - bytes written to the next layer on the last write operation, or 0 if an - error occurred. -

-
std::size_t flush(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html deleted file mode 100644 index 6e77690..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_write_stream::flush (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation. Throws - an exception on failure. -

-
std::size_t flush();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html deleted file mode 100644 index 4562a9f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/flush/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -buffered_write_stream::flush (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Flush all data from the buffer to the next layer. Returns the number - of bytes written to the next layer on the last write operation, or 0 - if an error occurred. -

-
std::size_t flush(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_executor.html deleted file mode 100644 index 7545ce0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_context.html deleted file mode 100644 index 8e03bc2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_write_stream::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_service.html deleted file mode 100644 index 879e5ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffered_write_stream::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail.html deleted file mode 100644 index 2753441..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -buffered_write_stream::in_avail - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-  » more...
-
-std::size_t in_avail(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html deleted file mode 100644 index c523fda..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_write_stream::in_avail (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html deleted file mode 100644 index dc36cd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/in_avail/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::in_avail (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Determine the amount of data that may be read without blocking. -

-
std::size_t in_avail(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html deleted file mode 100644 index 980f297..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -buffered_write_stream::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html deleted file mode 100644 index 1f7f6f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_write_stream::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html deleted file mode 100644 index 253230c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffered_write_stream::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html deleted file mode 100644 index 53b08b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/lowest_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_write_stream::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the lowest layer. -

-
typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_write_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer.html deleted file mode 100644 index 33863b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffered_write_stream::next_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the next layer. -

-
next_layer_type & next_layer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html deleted file mode 100644 index b148835..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/next_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffered_write_stream::next_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the next layer. -

-
typedef remove_reference< Stream >::type next_layer_type;
-
-
- - Requirements -
-

- Header: asio/buffered_write_stream.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek.html deleted file mode 100644 index 0d72a37..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_write_stream::peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Peek - at the incoming data on the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Peek at the incoming data on the stream. Returns the number of bytes read, - or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html deleted file mode 100644 index 6a03a9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::peek (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read. Throws an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html deleted file mode 100644 index a83ea67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/peek/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_write_stream::peek (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Peek at the incoming data on the stream. Returns the number of bytes - read, or 0 if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t peek(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some.html deleted file mode 100644 index c26d3a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_write_stream::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the stream. Returns the number of bytes read. Throws an - exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-

- Read some data from the stream. Returns the number of bytes read or 0 if - an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html deleted file mode 100644 index 0f4ac08..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read. Throws - an exception on failure. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html deleted file mode 100644 index 5bd21a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/read_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_write_stream::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. Returns the number of bytes read or 0 - if an error occurred. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some.html deleted file mode 100644 index 71a3c25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -buffered_write_stream::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - the given data to the stream. Returns the number of bytes written. Throws - an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred and the error handler did not throw. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html deleted file mode 100644 index 8f6a2fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -buffered_write_stream::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written. - Throws an exception on failure. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html deleted file mode 100644 index d5f4c0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffered_write_stream/write_some/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -buffered_write_stream::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write the given data to the stream. Returns the number of bytes written, - or 0 if an error occurred and the error handler did not throw. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_begin.html b/Sources/Vendor/asio/doc/asio/reference/buffers_begin.html deleted file mode 100644 index a7eddcc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_begin.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -buffers_begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator representing - the beginning of the buffers' data. -

-
template<
-    typename BufferSequence>
-buffers_iterator< BufferSequence > buffers_begin(
-    const BufferSequence & buffers);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_end.html b/Sources/Vendor/asio/doc/asio/reference/buffers_end.html deleted file mode 100644 index b254600..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_end.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -buffers_end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator representing the - end of the buffers' data. -

-
template<
-    typename BufferSequence>
-buffers_iterator< BufferSequence > buffers_end(
-    const BufferSequence & buffers);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator.html deleted file mode 100644 index dcc5926..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator.html +++ /dev/null @@ -1,404 +0,0 @@ - - - -buffers_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A random access iterator over the bytes in a buffer sequence. -

-
template<
-    typename BufferSequence,
-    typename ByteType = char>
-class buffers_iterator
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- begin -

-
-

- Construct an iterator representing the beginning of the buffers' - data. -

-
-

- buffers_iterator -

-
-

- Default constructor. Creates an iterator in an undefined state. -

-
-

- end -

-
-

- Construct an iterator representing the end of the buffers' data. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator (postfix). -

-
-

- operator+= -

-
-

- Addition operator. -

-
-

- operator-- -

-
-

- Decrement operator (prefix).

Decrement operator (postfix). -

-
-

- operator-= -

-
-

- Subtraction operator. -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator[] -

-
-

- Access an individual element. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator+ -

-
-

- Addition operator. -

-
-

- operator- -

-
-

- Subtraction operator. -

-
-

- operator< -

-
-

- Compare two iterators. -

-
-

- operator<= -

-
-

- Compare two iterators. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- operator> -

-
-

- Compare two iterators. -

-
-

- operator>= -

-
-

- Compare two iterators. -

-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/begin.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/begin.html deleted file mode 100644 index 746715d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/begin.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an - iterator representing the beginning of the buffers' data. -

-
static buffers_iterator begin(
-    const BufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html deleted file mode 100644 index 3b4fed4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/buffers_iterator.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffers_iterator::buffers_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. Creates an iterator in an undefined state. -

-
buffers_iterator();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/difference_type.html deleted file mode 100644 index ff8e13d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffers_iterator::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used for the distance between two iterators. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/end.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/end.html deleted file mode 100644 index a7e1f5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/end.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator - representing the end of the buffers' data. -

-
static buffers_iterator end(
-    const BufferSequence & buffers);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/iterator_category.html deleted file mode 100644 index 797af77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/iterator_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffers_iterator::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - iterator category. -

-
typedef std::random_access_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator__star_.html deleted file mode 100644 index e0a9c45..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator__star_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference - an iterator. -

-
reference operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html deleted file mode 100644 index 80133b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_arrow_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffers_iterator::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference - an iterator. -

-
pointer operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html deleted file mode 100644 index 2c6d4ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for equality. -

-
friend bool operator==(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt_.html deleted file mode 100644 index 3406ae5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two iterators. -

-
friend bool operator>(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html deleted file mode 100644 index 377435a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two iterators. -

-
friend bool operator>=(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html deleted file mode 100644 index 8325084..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lb__rb_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::operator[] - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Access - an individual element. -

-
reference operator[](
-    std::ptrdiff_t difference) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt_.html deleted file mode 100644 index 303a806..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two iterators. -

-
friend bool operator<(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html deleted file mode 100644 index 4e856bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two iterators. -

-
friend bool operator<=(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_.html deleted file mode 100644 index 592412f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffers_iterator::operator- - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Subtraction - operator. -

-
friend buffers_iterator operator-(
-    const buffers_iterator & iter,
-    std::ptrdiff_t difference);
-  » more...
-
-friend std::ptrdiff_t operator-(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html deleted file mode 100644 index cca8963..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffers_iterator::operator- (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Subtraction operator. -

-
friend buffers_iterator operator-(
-    const buffers_iterator & iter,
-    std::ptrdiff_t difference);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html deleted file mode 100644 index e1f7473..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus_/overload2.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffers_iterator::operator- (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Subtraction operator. -

-
friend std::ptrdiff_t operator-(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html deleted file mode 100644 index 2342bbb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::operator-= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Subtraction - operator. -

-
buffers_iterator & operator-=(
-    std::ptrdiff_t difference);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html deleted file mode 100644 index 44aa849..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffers_iterator::operator-- - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Decrement - operator (prefix). -

-
buffers_iterator & operator--();
-  » more...
-
-

- Decrement operator (postfix). -

-
buffers_iterator operator--(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html deleted file mode 100644 index 5ce91ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffers_iterator::operator-- (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Decrement operator (prefix). -

-
buffers_iterator & operator--();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html deleted file mode 100644 index 32c0624..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_minus__minus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffers_iterator::operator-- (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Decrement operator (postfix). -

-
buffers_iterator operator--(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html deleted file mode 100644 index 7d0c28f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -buffers_iterator::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for inequality. -

-
friend bool operator!=(
-    const buffers_iterator & a,
-    const buffers_iterator & b);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_.html deleted file mode 100644 index a7296e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffers_iterator::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Addition - operator. -

-
friend buffers_iterator operator+(
-    const buffers_iterator & iter,
-    std::ptrdiff_t difference);
-  » more...
-
-friend buffers_iterator operator+(
-    std::ptrdiff_t difference,
-    const buffers_iterator & iter);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html deleted file mode 100644 index 465a1f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffers_iterator::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Addition operator. -

-
friend buffers_iterator operator+(
-    const buffers_iterator & iter,
-    std::ptrdiff_t difference);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html deleted file mode 100644 index c427326..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus_/overload2.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -buffers_iterator::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Addition operator. -

-
friend buffers_iterator operator+(
-    std::ptrdiff_t difference,
-    const buffers_iterator & iter);
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html deleted file mode 100644 index bb24992..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -buffers_iterator::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Addition - operator. -

-
buffers_iterator & operator+=(
-    std::ptrdiff_t difference);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html deleted file mode 100644 index 3e9b225..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -buffers_iterator::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Increment - operator (prefix). -

-
buffers_iterator & operator++();
-  » more...
-
-

- Increment operator (postfix). -

-
buffers_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html deleted file mode 100644 index 478c70c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -buffers_iterator::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Increment operator (prefix). -

-
buffers_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html deleted file mode 100644 index d8355b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -buffers_iterator::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Increment operator (postfix). -

-
buffers_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/pointer.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/pointer.html deleted file mode 100644 index 7e4f7c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/pointer.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -buffers_iterator::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the result of applying operator->() to the iterator. -

-
typedef const_or_non_const_ByteType * pointer;
-
-

- If the buffer sequence stores buffer objects that are convertible to mutable_buffer, - this is a pointer to a non-const ByteType. Otherwise, a pointer to a const - ByteType. -

-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/reference.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/reference.html deleted file mode 100644 index 92ff23a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/reference.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -buffers_iterator::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the result of applying operator*() to the iterator. -

-
typedef const_or_non_const_ByteType & reference;
-
-

- If the buffer sequence stores buffer objects that are convertible to mutable_buffer, - this is a reference to a non-const ByteType. Otherwise, a reference to - a const ByteType. -

-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/value_type.html b/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/value_type.html deleted file mode 100644 index d500d7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/buffers_iterator/value_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -buffers_iterator::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the value pointed to by the iterator. -

-
typedef ByteType value_type;
-
-
- - Requirements -
-

- Header: asio/buffers_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect.html b/Sources/Vendor/asio/doc/asio/reference/connect.html deleted file mode 100644 index e307cca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect.html +++ /dev/null @@ -1,195 +0,0 @@ - - - -connect - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The connect function is a composed - operation that establishes a socket connection by trying each endpoint in - a sequence. -

-

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol,
-    typename EndpointSequence>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    asio::error_code & ec,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    asio::error_code & ec,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end);
-  » more...
-
-template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    asio::error_code & ec,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-  » more...
-
-

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    asio::error_code & ec,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-  » more...
-
-

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition);
-  » more...
-
-template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/connect.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload1.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload1.html deleted file mode 100644 index ec4f0f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload1.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -connect (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
-
-
- - Return - Value -
-

- The successfully connected endpoint. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-asio::connect(s, r.resolve(q));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload10.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload10.html deleted file mode 100644 index efa8761..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload10.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -connect (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    asio::error_code & ec,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload11.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload11.html deleted file mode 100644 index 94d39ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload11.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -connect (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
-
-
- - Return - Value -
-

- An iterator denoting the successfully connected endpoint. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::resolver::results_type e = r.resolve(q);
-tcp::socket s(io_context);
-tcp::resolver::results_type::iterator i = asio::connect(
-    s, e.begin(), e.end(), my_connect_condition());
-std::cout << "Connected to: " << i->endpoint() << std::endl;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload12.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload12.html deleted file mode 100644 index f65faae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload12.html +++ /dev/null @@ -1,152 +0,0 @@ - - - -connect (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    ConnectCondition connect_condition,
-    asio::error_code & ec);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::resolver::results_type e = r.resolve(q);
-tcp::socket s(io_context);
-asio::error_code ec;
-tcp::resolver::results_type::iterator i = asio::connect(
-    s, e.begin(), e.end(), my_connect_condition());
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  std::cout << "Connected to: " << i->endpoint() << std::endl;
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload2.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload2.html deleted file mode 100644 index 5906c0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload2.html +++ /dev/null @@ -1,102 +0,0 @@ - - - -connect (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    asio::error_code & ec,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, the successfully connected endpoint. Otherwise, a default-constructed - endpoint. -

-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-asio::error_code ec;
-asio::connect(s, r.resolve(q), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload3.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload3.html deleted file mode 100644 index fc9a2bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload3.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -connect (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload4.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload4.html deleted file mode 100644 index fb4e9ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload4.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -connect (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    asio::error_code & ec,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload5.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload5.html deleted file mode 100644 index 0d51137..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload5.html +++ /dev/null @@ -1,109 +0,0 @@ - - - -connect (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
-
-
- - Return - Value -
-

- An iterator denoting the successfully connected endpoint. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::resolver::results_type e = r.resolve(q);
-tcp::socket s(io_context);
-asio::connect(s, e.begin(), e.end());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload6.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload6.html deleted file mode 100644 index 54bb471..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload6.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -connect (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    Iterator end,
-    asio::error_code & ec);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
end
-

- An iterator pointing to the end of a sequence of endpoints. -

-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Example -
-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::resolver::results_type e = r.resolve(q);
-tcp::socket s(io_context);
-asio::error_code ec;
-asio::connect(s, e.begin(), e.end(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload7.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload7.html deleted file mode 100644 index af6cd75..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload7.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -connect (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
-
-
- - Return - Value -
-

- The successfully connected endpoint. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-tcp::endpoint e = asio::connect(s,
-    r.resolve(q), my_connect_condition());
-std::cout << "Connected to: " << e << std::endl;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload8.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload8.html deleted file mode 100644 index 89a442b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload8.html +++ /dev/null @@ -1,147 +0,0 @@ - - - -connect (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Establishes a socket connection by trying each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename EndpointSequence,
-    typename ConnectCondition>
-Protocol::endpoint connect(
-    basic_socket< Protocol > & s,
-    const EndpointSequence & endpoints,
-    ConnectCondition connect_condition,
-    asio::error_code & ec,
-    typename enable_if< is_endpoint_sequence< EndpointSequence >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
endpoints
-

- A sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
ec
-

- Set to indicate what error occurred, if any. If the sequence is empty, - set to asio::error::not_found. Otherwise, contains the - error from the last connection attempt. -

-
-
-
- - Return - Value -
-

- On success, the successfully connected endpoint. Otherwise, a default-constructed - endpoint. -

-
- - Example -
-

- The following connect condition function object can be used to output information - about the individual connection attempts: -

-
struct my_connect_condition
-{
-  bool operator()(
-      const asio::error_code& ec,
-      const::tcp::endpoint& next)
-  {
-    if (ec) std::cout << "Error: " << ec.message() << std::endl;
-    std::cout << "Trying: " << next << std::endl;
-    return true;
-  }
-};
-
-

- It would be used with the asio::connect function as follows: -

-
tcp::resolver r(io_context);
-tcp::resolver::query q("host", "service");
-tcp::socket s(io_context);
-asio::error_code ec;
-tcp::endpoint e = asio::connect(s,
-    r.resolve(q), my_connect_condition(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  std::cout << "Connected to: " << e << std::endl;
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/connect/overload9.html b/Sources/Vendor/asio/doc/asio/reference/connect/overload9.html deleted file mode 100644 index aa639cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/connect/overload9.html +++ /dev/null @@ -1,127 +0,0 @@ - - - -connect (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use range overload.) Establishes a socket connection by trying - each endpoint in a sequence. -

-
template<
-    typename Protocol,
-    typename Iterator,
-    typename ConnectCondition>
-Iterator connect(
-    basic_socket< Protocol > & s,
-    Iterator begin,
-    ConnectCondition connect_condition,
-    typename enable_if<!is_endpoint_sequence< Iterator >::value >::type *  = 0);
-
-

- This function attempts to connect a socket to one of a sequence of endpoints. - It does this by repeated calls to the socket's connect member - function, once for each endpoint in the sequence, until a connection is - successfully established. -

-
- - Parameters -
-
-

-
-
s
-

- The socket to be connected. If the socket is already open, it will - be closed. -

-
begin
-

- An iterator pointing to the start of a sequence of endpoints. -

-
connect_condition
-
-

- A function object that is called prior to each connection attempt. - The signature of the function object must be: -

-
bool connect_condition(
-    const asio::error_code& ec,
-    const typename Protocol::endpoint& next);
-
-

- The ec parameter contains the result from the most recent - connect operation. Before the first connection attempt, ec - is always set to indicate success. The next parameter - is the next endpoint to be tried. The function object should return - true if the next endpoint should be tried, and false if it should - be skipped. -

-
-
-
-
- - Return - Value -
-

- On success, an iterator denoting the successfully connected endpoint. Otherwise, - the end iterator. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the sequence is empty, the associated error_code - is asio::error::not_found. Otherwise, contains the error - from the last connection attempt. -

-
-
-
- - Remarks -
-

- This overload assumes that a default constructed object of type Iterator - represents the end of the sequence. This is a valid assumption for iterator - types such as asio::ip::tcp::resolver::iterator. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer.html deleted file mode 100644 index 1eeb564..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer.html +++ /dev/null @@ -1,184 +0,0 @@ - - - -const_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Holds a buffer that cannot be modified. -

-
class const_buffer
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range.

Construct a non-modifiable - buffer from a modifiable one. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-

- The const_buffer - class provides a safe representation of a buffer that cannot be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() and - size() member functions: -

-
asio::const_buffer b1 = ...;
-std::size_t s1 = b1.size();
-const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer.html deleted file mode 100644 index 474032f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -const_buffer::const_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an empty buffer. -

-
const_buffer();
-  » more...
-
-

- Construct a buffer to represent a given memory range. -

-
const_buffer(
-    const void * data,
-    std::size_t size);
-  » more...
-
-

- Construct a non-modifiable buffer from a modifiable one. -

-
const_buffer(
-    const mutable_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html deleted file mode 100644 index 78cc1df..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -const_buffer::const_buffer (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty buffer. -

-
const_buffer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html deleted file mode 100644 index 8fb7a4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffer::const_buffer (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a buffer to represent a given memory range. -

-
const_buffer(
-    const void * data,
-    std::size_t size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html deleted file mode 100644 index 3e4cbfc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/const_buffer/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffer::const_buffer (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a non-modifiable buffer from a modifiable one. -

-
const_buffer(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/data.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/data.html deleted file mode 100644 index 1ac727f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/data.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffer::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a pointer to the beginning - of the memory range. -

-
const void * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_.html deleted file mode 100644 index 7be1b2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -const_buffer::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create a - new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    const const_buffer & b,
-    std::size_t n);
-  » more...
-
-const_buffer operator+(
-    std::size_t n,
-    const const_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html deleted file mode 100644 index 4bc77b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffer::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    const const_buffer & b,
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html deleted file mode 100644 index 9a3d39f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus_/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffer::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    std::size_t n,
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html deleted file mode 100644 index 95d3877..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/operator_plus__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffer::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - the start of the buffer by the specified number of bytes. -

-
const_buffer & operator+=(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffer/size.html b/Sources/Vendor/asio/doc/asio/reference/const_buffer/size.html deleted file mode 100644 index c6e39d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffer/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffer::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the size of the memory - range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1.html deleted file mode 100644 index e8c7ddc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1.html +++ /dev/null @@ -1,236 +0,0 @@ - - - -const_buffers_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use const_buffer.) - Adapts a single non-modifiable buffer so that it meets the requirements of - the ConstBufferSequence concept. -

-
class const_buffers_1 :
-  public const_buffer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- A random-access iterator type that may be used to read elements. -

-
-

- value_type -

-
-

- The type for each element in the list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- begin -

-
-

- Get a random-access iterator to the first element. -

-
-

- const_buffers_1 -

-
-

- Construct to represent a given memory range.

Construct - to represent a single non-modifiable buffer. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- end -

-
-

- Get a random-access iterator for one past the last element. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/begin.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/begin.html deleted file mode 100644 index 7dbe70a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffers_1::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access - iterator to the first element. -

-
const_iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html deleted file mode 100644 index 5a4241c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -const_buffers_1::const_buffers_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - to represent a given memory range. -

-
const_buffers_1(
-    const void * data,
-    std::size_t size);
-  » more...
-
-

- Construct to represent a single non-modifiable buffer. -

-
explicit const_buffers_1(
-    const const_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html deleted file mode 100644 index 08185e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -const_buffers_1::const_buffers_1 (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct to represent a given memory range. -

-
const_buffers_1(
-    const void * data,
-    std::size_t size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html deleted file mode 100644 index a44b9c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_buffers_1/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffers_1::const_buffers_1 (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct to represent a single non-modifiable buffer. -

-
const_buffers_1(
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_iterator.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_iterator.html deleted file mode 100644 index 2bfba09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/const_iterator.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -const_buffers_1::const_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - random-access iterator type that may be used to read elements. -

-
typedef const const_buffer * const_iterator;
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/data.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/data.html deleted file mode 100644 index 6a1e5d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/data.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -const_buffers_1::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- -Get a pointer to - the beginning of the memory range. -

-
const void * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/end.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/end.html deleted file mode 100644 index c7facee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -const_buffers_1::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access - iterator for one past the last element. -

-
const_iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_.html deleted file mode 100644 index 210cfcf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -const_buffers_1::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    const const_buffer & b,
-    std::size_t n);
-  » more...
-
-const_buffer operator+(
-    std::size_t n,
-    const const_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html deleted file mode 100644 index 70811ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -const_buffers_1::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- Create a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    const const_buffer & b,
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html deleted file mode 100644 index 71453a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus_/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -const_buffers_1::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- Create a new non-modifiable buffer that is offset from the start of another. -

-
const_buffer operator+(
-    std::size_t n,
-    const const_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html deleted file mode 100644 index 8618fba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/operator_plus__eq_.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -const_buffers_1::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- -Move - the start of the buffer by the specified number of bytes. -

-
const_buffer & operator+=(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/size.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/size.html deleted file mode 100644 index 697281b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/size.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -const_buffers_1::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from const_buffer. -

-

- -Get the size of the - memory range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/value_type.html b/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/value_type.html deleted file mode 100644 index 17e2d0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/const_buffers_1/value_type.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -const_buffers_1::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - for each element in the list of buffers. -

-
typedef const_buffer value_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range.

Construct a non-modifiable - buffer from a modifiable one. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-

- The const_buffer - class provides a safe representation of a buffer that cannot be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::const_buffer b1 = ...;
-std::size_t s1 = b1.size();
-const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine.html b/Sources/Vendor/asio/doc/asio/reference/coroutine.html deleted file mode 100644 index c669e0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine.html +++ /dev/null @@ -1,427 +0,0 @@ - - - -coroutine - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides support for implementing stackless coroutines. -

-
class coroutine
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- coroutine -

-
-

- Constructs a coroutine in its initial state. -

-
-

- is_child -

-
-

- Returns true if the coroutine is the child of a fork. -

-
-

- is_complete -

-
-

- Returns true if the coroutine has reached its terminal state. -

-
-

- is_parent -

-
-

- Returns true if the coroutine is the parent of a fork. -

-
-

- The coroutine class may be used to implement stackless coroutines. - The class itself is used to store the current state of the coroutine. -

-

- Coroutines are copy-constructible and assignable, and the space overhead - is a single int. They can be used as a base class: -

-
class session : coroutine
-{
-  ...
-};
-
-

- or as a data member: -

-
class session
-{
-  ...
-  coroutine coro_;
-};
-
-

- or even bound in as a function argument using lambdas or bind(). - The important thing is that as the application maintains a copy of the object - for as long as the coroutine must be kept alive. -

-
- - Pseudo-keywords -
-

- A coroutine is used in conjunction with certain "pseudo-keywords", - which are implemented as macros. These macros are defined by a header file: -

-
#include <asio/yield.hpp>
-
-

- and may conversely be undefined as follows: -

-
#include <asio/unyield.hpp>
-
-

- reenter -

-

- The reenter macro is used to define the body of a coroutine. - It takes a single argument: a pointer or reference to a coroutine object. - For example, if the base class is a coroutine object you may write: -

-
reenter (this)
-{
-  ... coroutine body ...
-}
-
-

- and if a data member or other variable you can write: -

-
reenter (coro_)
-{
-  ... coroutine body ...
-}
-
-

- When reenter is executed at runtime, control jumps to the location - of the last yield or fork. -

-

- The coroutine body may also be a single statement, such as: -

-
reenter (this) for (;;)
-{
-  ...
-}
-
-

- Limitation: The reenter macro - is implemented using a switch. This means that you must take care when using - local variables within the coroutine body. The local variable is not allowed - in a position where reentering the coroutine could bypass the variable definition. -

-

- yield statement -

-

- This form of the yield keyword is often used with asynchronous - operations: -

-
yield socket_->async_read_some(buffer(*buffer_), *this);
-
-

- This divides into four logical steps: -

-
    -
  • - yield saves the current state of the coroutine. -
  • -
  • - The statement initiates the asynchronous operation. -
  • -
  • - The resume point is defined immediately following the statement. -
  • -
  • - Control is transferred to the end of the coroutine body. -
  • -
-

- When the asynchronous operation completes, the function object is invoked - and reenter causes control to transfer to the resume point. - It is important to remember to carry the coroutine state forward with the - asynchronous operation. In the above snippet, the current class is a function - object object with a coroutine object as base class or data member. -

-

- The statement may also be a compound statement, and this permits us to define - local variables with limited scope: -

-
yield
-{
-  mutable_buffers_1 b = buffer(*buffer_);
-  socket_->async_read_some(b, *this);
-}
-
-

- yield return expression ; -

-

- This form of yield is often used in generators or coroutine-based - parsers. For example, the function object: -

-
struct interleave : coroutine
-{
-  istream& is1;
-  istream& is2;
-  char operator()(char c)
-  {
-    reenter (this) for (;;)
-    {
-      yield return is1.get();
-      yield return is2.get();
-    }
-  }
-};
-
-

- defines a trivial coroutine that interleaves the characters from two input - streams. -

-

- This type of yield divides into three logical steps: -

-
    -
  • - yield saves the current state of the coroutine. -
  • -
  • - The resume point is defined immediately following the semicolon. -
  • -
  • - The value of the expression is returned from the function. -
  • -
-

- yield ; -

-

- This form of yield is equivalent to the following steps: -

-
    -
  • - yield saves the current state of the coroutine. -
  • -
  • - The resume point is defined immediately following the semicolon. -
  • -
  • - Control is transferred to the end of the coroutine body. -
  • -
-

- This form might be applied when coroutines are used for cooperative threading - and scheduling is explicitly managed. For example: -

-
struct task : coroutine
-{
-  ...
-  void operator()()
-  {
-    reenter (this)
-    {
-      while (... not finished ...)
-      {
-        ... do something ...
-        yield;
-        ... do some more ...
-        yield;
-      }
-    }
-  }
-  ...
-};
-...
-task t1, t2;
-for (;;)
-{
-  t1();
-  t2();
-}
-
-

- yield break ; -

-

- The final form of yield is used to explicitly terminate the - coroutine. This form is comprised of two steps: -

-
    -
  • - yield sets the coroutine state to indicate termination. -
  • -
  • - Control is transferred to the end of the coroutine body. -
  • -
-

- Once terminated, calls to is_complete() return true and the - coroutine cannot be reentered. -

-

- Note that a coroutine may also be implicitly terminated if the coroutine - body is exited without a yield, e.g. by return, throw or by running to the - end of the body. -

-

- fork statement -

-

- The fork pseudo-keyword is used when "forking" a coroutine, - i.e. splitting it into two (or more) copies. One use of fork - is in a server, where a new coroutine is created to handle each client connection: -

-
reenter (this)
-{
-  do
-  {
-    socket_.reset(new tcp::socket(io_context_));
-    yield acceptor->async_accept(*socket_, *this);
-    fork server(*this)();
-  } while (is_parent());
-  ... client-specific handling follows ...
-}
-
-

- The logical steps involved in a fork are: -

-
    -
  • - fork saves the current state of the coroutine. -
  • -
  • - The statement creates a copy of the coroutine and either executes it - immediately or schedules it for later execution. -
  • -
  • - The resume point is defined immediately following the semicolon. -
  • -
  • - For the "parent", control immediately continues from the next - line. -
  • -
-

- The functions is_parent() and is_child() can be - used to differentiate between parent and child. You would use these functions - to alter subsequent control flow. -

-

- Note that fork doesn't do the actual forking by itself. It is - the application's responsibility to create a clone of the coroutine and call - it. The clone can be called immediately, as above, or scheduled for delayed - execution using something like io_context::post(). -

-
- - Alternate - macro names -
-

- If preferred, an application can use macro names that follow a more typical - naming convention, rather than the pseudo-keywords. These are: -

-
    -
  • - ASIO_CORO_REENTER instead of reenter -
  • -
  • - ASIO_CORO_YIELD instead of yield -
  • -
  • - ASIO_CORO_FORK instead of fork -
  • -
-
- - Requirements -
-

- Header: asio/coroutine.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine/coroutine.html b/Sources/Vendor/asio/doc/asio/reference/coroutine/coroutine.html deleted file mode 100644 index 17f8574..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine/coroutine.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -coroutine::coroutine - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructs a coroutine - in its initial state. -

-
coroutine();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_child.html b/Sources/Vendor/asio/doc/asio/reference/coroutine/is_child.html deleted file mode 100644 index 460a2e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_child.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -coroutine::is_child - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns true if the coroutine - is the child of a fork. -

-
bool is_child() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_complete.html b/Sources/Vendor/asio/doc/asio/reference/coroutine/is_complete.html deleted file mode 100644 index 5caf496..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_complete.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -coroutine::is_complete - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns true if - the coroutine has reached its terminal state. -

-
bool is_complete() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_parent.html b/Sources/Vendor/asio/doc/asio/reference/coroutine/is_parent.html deleted file mode 100644 index 478ab40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/coroutine/is_parent.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -coroutine::is_parent - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns true if the - coroutine is the parent of a fork. -

-
bool is_parent() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/deadline_timer.html b/Sources/Vendor/asio/doc/asio/reference/deadline_timer.html deleted file mode 100644 index df1467c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/deadline_timer.html +++ /dev/null @@ -1,407 +0,0 @@ - - - -deadline_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for the typical usage - of timer. Uses a UTC clock. -

-
typedef basic_deadline_timer< boost::posix_time::ptime > deadline_timer;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- duration_type -

-
-

- The duration type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_type -

-
-

- The time type. -

-
-

- traits_type -

-
-

- The time traits type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_deadline_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_deadline_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

-
-

- expires_at -

-
-

- Get the timer's expiry time as an absolute time.

- Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- Get the timer's expiry time relative to now.

Set - the timer's expiry time relative to now. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_deadline_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_deadline_timer -

-
-

- Destroys the timer. -

-
-

- The basic_deadline_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- A deadline timer is always in one of two states: "expired" or "not - expired". If the wait() or async_wait() function - is called on an expired timer, the wait operation will complete immediately. -

-

- Most applications will use the deadline_timer - typedef. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait: -

-
// Construct a timer without setting an expiry time.
-asio::deadline_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_from_now(boost::posix_time::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait: -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::deadline_timer timer(io_context,
-    boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active deadline_timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_from_now(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_deadline_timer::expires_from_now() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-
- - Requirements -
-

- Header: asio/deadline_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/defer.html b/Sources/Vendor/asio/doc/asio/reference/defer.html deleted file mode 100644 index 8e0da62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/defer.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-defer -

-

- -Submits a completion token or function object for - execution. -

-
template<
-    typename CompletionToken>
-DEDUCED defer(
-    CompletionToken && token);
-  » more...
-
-template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED defer(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED defer(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/defer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/defer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/defer/overload1.html deleted file mode 100644 index f4e0a4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/defer/overload1.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -defer (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename CompletionToken>
-DEDUCED defer(
-    CompletionToken && token);
-
-

- This function submits an object for execution using the object's associated - executor. The function object is queued for execution, and is never called - from the current thread prior to returning from defer(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex by - performing get_associated_executor(handler). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Performs ex.defer(std::move(handler), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/defer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/defer/overload2.html deleted file mode 100644 index 5f405a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/defer/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -defer (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED defer(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-

- This function submits an object for execution using the specified executor. - The function object is queued for execution, and is never called from the - current thread prior to returning from defer(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex1 by - performing get_associated_executor(handler). -
  • -
  • - Creates a work object w by performing make_work(ex1). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Constructs a function object f with a function call operator - that performs ex1.dispatch(std::move(handler), alloc) - followed by w.reset(). -
  • -
  • - Performs Executor(ex).defer(std::move(f), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/defer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/defer/overload3.html deleted file mode 100644 index ec4c357..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/defer/overload3.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -defer (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED defer(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - Return - Value -
-

- defer(ctx.get_executor(), forward<CompletionToken>(token)). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/dispatch.html deleted file mode 100644 index 4388a05..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dispatch.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Submits a completion token or function object - for execution. -

-
template<
-    typename CompletionToken>
-DEDUCED dispatch(
-    CompletionToken && token);
-  » more...
-
-template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED dispatch(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED dispatch(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/dispatch.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload1.html b/Sources/Vendor/asio/doc/asio/reference/dispatch/overload1.html deleted file mode 100644 index 89532d9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -dispatch (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename CompletionToken>
-DEDUCED dispatch(
-    CompletionToken && token);
-
-

- This function submits an object for execution using the object's associated - executor. The function object is queued for execution, and is never called - from the current thread prior to returning from dispatch(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex by - performing get_associated_executor(handler). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Performs ex.dispatch(std::move(handler), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload2.html b/Sources/Vendor/asio/doc/asio/reference/dispatch/overload2.html deleted file mode 100644 index d167b4e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -dispatch (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED dispatch(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-

- This function submits an object for execution using the specified executor. - The function object is queued for execution, and is never called from the - current thread prior to returning from dispatch(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex1 by - performing get_associated_executor(handler). -
  • -
  • - Creates a work object w by performing make_work(ex1). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Constructs a function object f with a function call operator - that performs ex1.dispatch(std::move(handler), alloc) - followed by w.reset(). -
  • -
  • - Performs Executor(ex).dispatch(std::move(f), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload3.html b/Sources/Vendor/asio/doc/asio/reference/dispatch/overload3.html deleted file mode 100644 index 7aca7f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dispatch/overload3.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -dispatch (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED dispatch(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - Return - Value -
-

- dispatch(ctx.get_executor(), forward<CompletionToken>(token)). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer.html deleted file mode 100644 index 4b3df42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -dynamic_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The asio::dynamic_buffer - function is used to create a dynamically resized buffer from a std::basic_string - or std::vector. -

-

- Create a new dynamic buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-dynamic_string_buffer< Elem, Traits, Allocator > dynamic_buffer(
-    std::basic_string< Elem, Traits, Allocator > & data);
-  » more...
-
-template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-dynamic_string_buffer< Elem, Traits, Allocator > dynamic_buffer(
-    std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size);
-  » more...
-
-

- Create a new dynamic buffer that represents the given vector. -

-
template<
-    typename Elem,
-    typename Allocator>
-dynamic_vector_buffer< Elem, Allocator > dynamic_buffer(
-    std::vector< Elem, Allocator > & data);
-  » more...
-
-template<
-    typename Elem,
-    typename Allocator>
-dynamic_vector_buffer< Elem, Allocator > dynamic_buffer(
-    std::vector< Elem, Allocator > & data,
-    std::size_t max_size);
-  » more...
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload1.html deleted file mode 100644 index 6712b2e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -dynamic_buffer (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new dynamic buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-dynamic_string_buffer< Elem, Traits, Allocator > dynamic_buffer(
-    std::basic_string< Elem, Traits, Allocator > & data);
-
-
- - Return Value -
-

- dynamic_string_buffer<Elem, Traits, Allocator>(data). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload2.html deleted file mode 100644 index 5f3247f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload2.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -dynamic_buffer (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new dynamic buffer that represents the given string. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-dynamic_string_buffer< Elem, Traits, Allocator > dynamic_buffer(
-    std::basic_string< Elem, Traits, Allocator > & data,
-    std::size_t max_size);
-
-
- - Return Value -
-

- dynamic_string_buffer<Elem, Traits, Allocator>(data, max_size). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload3.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload3.html deleted file mode 100644 index 0faedc0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload3.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -dynamic_buffer (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new dynamic buffer that represents the given vector. -

-
template<
-    typename Elem,
-    typename Allocator>
-dynamic_vector_buffer< Elem, Allocator > dynamic_buffer(
-    std::vector< Elem, Allocator > & data);
-
-
- - Return Value -
-

- dynamic_vector_buffer<Elem, Allocator>(data). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload4.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload4.html deleted file mode 100644 index f8d8dd0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_buffer/overload4.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -dynamic_buffer (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new dynamic buffer that represents the given vector. -

-
template<
-    typename Elem,
-    typename Allocator>
-dynamic_vector_buffer< Elem, Allocator > dynamic_buffer(
-    std::vector< Elem, Allocator > & data,
-    std::size_t max_size);
-
-
- - Return Value -
-

- dynamic_vector_buffer<Elem, Allocator>(data, max_size). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer.html deleted file mode 100644 index 4824020..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer.html +++ /dev/null @@ -1,228 +0,0 @@ - - - -dynamic_string_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adapt a basic_string to the DynamicBuffer requirements. -

-
template<
-    typename Elem,
-    typename Traits,
-    typename Allocator>
-class dynamic_string_buffer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- capacity -

-
-

- Get the current capacity of the dynamic buffer. -

-
-

- commit -

-
-

- Move bytes from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- dynamic_string_buffer -

-
-

- Construct a dynamic buffer from a string.

Move construct - a dynamic buffer. -

-
-

- max_size -

-
-

- Get the maximum size of the dynamic buffer. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-

- Requires that sizeof(Elem) == 1. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/capacity.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/capacity.html deleted file mode 100644 index dac20e8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/capacity.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -dynamic_string_buffer::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the current capacity of the dynamic buffer. -

-
std::size_t capacity() const;
-
-
- - Return - Value -
-

- The current total capacity of the buffer, i.e. for both the input sequence - and output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/commit.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/commit.html deleted file mode 100644 index 770a5ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/commit.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -dynamic_string_buffer::commit - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - bytes from the output sequence to the input sequence. -

-
void commit(
-    std::size_t n);
-
-
- - Parameters -
-
-

-
-
n
-

- The number of bytes to append from the start of the output sequence - to the end of the input sequence. The remainder of the output sequence - is discarded. -

-
-
-

- Requires a preceding call prepare(x) where x >= n, - and no intervening operations that modify the input or output sequence. -

-
- - Remarks -
-

- If n is greater than the size of the output sequence, the - entire output sequence is moved to the input sequence and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html deleted file mode 100644 index 1d0447b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/const_buffers_type.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -dynamic_string_buffer::const_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the input sequence as a list of buffers. -

-
typedef const_buffer const_buffers_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range.

Construct a non-modifiable - buffer from a modifiable one. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-

- The const_buffer - class provides a safe representation of a buffer that cannot be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::const_buffer b1 = ...;
-std::size_t s1 = b1.size();
-const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/consume.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/consume.html deleted file mode 100644 index 3b02ba6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/consume.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -dynamic_string_buffer::consume - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove - characters from the input sequence. -

-
void consume(
-    std::size_t n);
-
-

- Removes n characters from the beginning of the input sequence. -

-
- - Remarks -
-

- If n is greater than the size of the input sequence, the entire - input sequence is consumed and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/data.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/data.html deleted file mode 100644 index 4fbb377..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/data.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -dynamic_string_buffer::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a - list of buffers that represents the input sequence. -

-
const_buffers_type data() const;
-
-
- - Return - Value -
-

- An object of type const_buffers_type that satisfies ConstBufferSequence - requirements, representing the basic_string memory in input sequence. -

-
- - Remarks -
-

- The returned object is invalidated by any dynamic_string_buffer - or basic_string member function that modifies the input sequence - or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html deleted file mode 100644 index d5ad432..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -dynamic_string_buffer::dynamic_string_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a dynamic buffer from a string. -

-
explicit dynamic_string_buffer(
-    std::basic_string< Elem, Traits, Allocator > & s,
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
-  » more...
-
-

- Move construct a dynamic buffer. -

-
dynamic_string_buffer(
-    dynamic_string_buffer && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html deleted file mode 100644 index 9ce82cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -dynamic_string_buffer::dynamic_string_buffer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a dynamic buffer from a string. -

-
dynamic_string_buffer(
-    std::basic_string< Elem, Traits, Allocator > & s,
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
-
-
- - Parameters -
-
-

-
-
s
-

- The string to be used as backing storage for the dynamic buffer. - Any existing data in the string is treated as the dynamic buffer's - input sequence. The object stores a reference to the string and - the user is responsible for ensuring that the string object remains - valid until the dynamic_string_buffer - object is destroyed. -

-
maximum_size
-

- Specifies a maximum size for the buffer, in bytes. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html deleted file mode 100644 index 72de3bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -dynamic_string_buffer::dynamic_string_buffer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct a dynamic buffer. -

-
dynamic_string_buffer(
-    dynamic_string_buffer && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/max_size.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/max_size.html deleted file mode 100644 index b11ab64..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/max_size.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -dynamic_string_buffer::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the maximum size of the dynamic buffer. -

-
std::size_t max_size() const;
-
-
- - Return - Value -
-

- The allowed maximum of the sum of the sizes of the input sequence and output - sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html deleted file mode 100644 index 7a37b9c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/mutable_buffers_type.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -dynamic_string_buffer::mutable_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the output sequence as a list of buffers. -

-
typedef mutable_buffer mutable_buffers_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start - of another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/prepare.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/prepare.html deleted file mode 100644 index 1f66797..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/prepare.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -dynamic_string_buffer::prepare - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a list of buffers that represents the output sequence, with the given size. -

-
mutable_buffers_type prepare(
-    std::size_t n);
-
-

- Ensures that the output sequence can accommodate n bytes, - resizing the basic_string object as necessary. -

-
- - Return - Value -
-

- An object of type mutable_buffers_type that satisfies MutableBufferSequence - requirements, representing basic_string memory at the start of the output - sequence of size n. -

-
- - Exceptions -
-
-

-
-
std::length_error
-

- If size() + n > max_size(). -

-
-
-
- - Remarks -
-

- The returned object is invalidated by any dynamic_string_buffer - or basic_string member function that modifies the input sequence - or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/size.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/size.html deleted file mode 100644 index 62ae3cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_string_buffer/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -dynamic_string_buffer::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - size of the input sequence. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer.html deleted file mode 100644 index 4c01761..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer.html +++ /dev/null @@ -1,227 +0,0 @@ - - - -dynamic_vector_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Adapt a vector to the DynamicBuffer requirements. -

-
template<
-    typename Elem,
-    typename Allocator>
-class dynamic_vector_buffer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- capacity -

-
-

- Get the current capacity of the dynamic buffer. -

-
-

- commit -

-
-

- Move bytes from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- dynamic_vector_buffer -

-
-

- Construct a dynamic buffer from a string.

Move construct - a dynamic buffer. -

-
-

- max_size -

-
-

- Get the maximum size of the dynamic buffer. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-

- Requires that sizeof(Elem) == 1. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html deleted file mode 100644 index 71dc100..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/capacity.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -dynamic_vector_buffer::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the current capacity of the dynamic buffer. -

-
std::size_t capacity() const;
-
-
- - Return - Value -
-

- The current total capacity of the buffer, i.e. for both the input sequence - and output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/commit.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/commit.html deleted file mode 100644 index 90e51e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/commit.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -dynamic_vector_buffer::commit - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - bytes from the output sequence to the input sequence. -

-
void commit(
-    std::size_t n);
-
-
- - Parameters -
-
-

-
-
n
-

- The number of bytes to append from the start of the output sequence - to the end of the input sequence. The remainder of the output sequence - is discarded. -

-
-
-

- Requires a preceding call prepare(x) where x >= n, - and no intervening operations that modify the input or output sequence. -

-
- - Remarks -
-

- If n is greater than the size of the output sequence, the - entire output sequence is moved to the input sequence and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html deleted file mode 100644 index fae64a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/const_buffers_type.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -dynamic_vector_buffer::const_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the input sequence as a list of buffers. -

-
typedef const_buffer const_buffers_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range.

Construct a non-modifiable - buffer from a modifiable one. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new non-modifiable buffer that is offset from the start - of another. -

-
-

- The const_buffer - class provides a safe representation of a buffer that cannot be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::const_buffer b1 = ...;
-std::size_t s1 = b1.size();
-const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/consume.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/consume.html deleted file mode 100644 index 441c0f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/consume.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -dynamic_vector_buffer::consume - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove - characters from the input sequence. -

-
void consume(
-    std::size_t n);
-
-

- Removes n characters from the beginning of the input sequence. -

-
- - Remarks -
-

- If n is greater than the size of the input sequence, the entire - input sequence is consumed and no error is issued. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/data.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/data.html deleted file mode 100644 index 9158e48..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/data.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -dynamic_vector_buffer::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a - list of buffers that represents the input sequence. -

-
const_buffers_type data() const;
-
-
- - Return - Value -
-

- An object of type const_buffers_type that satisfies ConstBufferSequence - requirements, representing the basic_string memory in input sequence. -

-
- - Remarks -
-

- The returned object is invalidated by any dynamic_vector_buffer - or basic_string member function that modifies the input sequence - or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html deleted file mode 100644 index 90f1377..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -dynamic_vector_buffer::dynamic_vector_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a dynamic buffer from a string. -

-
explicit dynamic_vector_buffer(
-    std::vector< Elem, Allocator > & v,
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
-  » more...
-
-

- Move construct a dynamic buffer. -

-
dynamic_vector_buffer(
-    dynamic_vector_buffer && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html deleted file mode 100644 index 21f55cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -dynamic_vector_buffer::dynamic_vector_buffer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a dynamic buffer from a string. -

-
dynamic_vector_buffer(
-    std::vector< Elem, Allocator > & v,
-    std::size_t maximum_size = (std::numeric_limits< std::size_t >::max)());
-
-
- - Parameters -
-
-

-
-
v
-

- The vector to be used as backing storage for the dynamic buffer. - Any existing data in the vector is treated as the dynamic buffer's - input sequence. The object stores a reference to the vector and - the user is responsible for ensuring that the vector object remains - valid until the dynamic_vector_buffer - object is destroyed. -

-
maximum_size
-

- Specifies a maximum size for the buffer, in bytes. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html deleted file mode 100644 index 948042a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -dynamic_vector_buffer::dynamic_vector_buffer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct a dynamic buffer. -

-
dynamic_vector_buffer(
-    dynamic_vector_buffer && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html deleted file mode 100644 index 93084a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/max_size.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -dynamic_vector_buffer::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the maximum size of the dynamic buffer. -

-
std::size_t max_size() const;
-
-
- - Return - Value -
-

- The allowed maximum of the sum of the sizes of the input sequence and output - sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html deleted file mode 100644 index 1489e70..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/mutable_buffers_type.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -dynamic_vector_buffer::mutable_buffers_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used to represent the output sequence as a list of buffers. -

-
typedef mutable_buffer mutable_buffers_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start - of another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html deleted file mode 100644 index b843ccf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/prepare.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -dynamic_vector_buffer::prepare - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a list of buffers that represents the output sequence, with the given size. -

-
mutable_buffers_type prepare(
-    std::size_t n);
-
-

- Ensures that the output sequence can accommodate n bytes, - resizing the basic_string object as necessary. -

-
- - Return - Value -
-

- An object of type mutable_buffers_type that satisfies MutableBufferSequence - requirements, representing basic_string memory at the start of the output - sequence of size n. -

-
- - Exceptions -
-
-

-
-
std::length_error
-

- If size() + n > max_size(). -

-
-
-
- - Remarks -
-

- The returned object is invalidated by any dynamic_vector_buffer - or basic_string member function that modifies the input sequence - or output sequence. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/size.html b/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/size.html deleted file mode 100644 index 9f9f50d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/dynamic_vector_buffer/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -dynamic_vector_buffer::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - size of the input sequence. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_category.html b/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_category.html deleted file mode 100644 index 9d50cf2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::addrinfo_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & addrinfo_category = asio::error::get_addrinfo_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_errors.html deleted file mode 100644 index 129ae14..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__addrinfo_errors.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -error::addrinfo_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum addrinfo_errors
-
-

- - -

-
- - Values -
-
-

-
-
service_not_found
-

- The service is not supported for the given socket type. -

-
socket_type_not_supported
-

- The socket type is not supported. -

-
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__basic_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__basic_errors.html deleted file mode 100644 index 21d42af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__basic_errors.html +++ /dev/null @@ -1,233 +0,0 @@ - - - -error::basic_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum basic_errors
-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
- - Values -
-
-

-
-
access_denied
-

- Permission denied. -

-
address_family_not_supported
-

- Address family not supported by protocol. -

-
address_in_use
-

- Address already in use. -

-
already_connected
-

- Transport endpoint is already connected. -

-
already_started
-

- Operation already in progress. -

-
broken_pipe
-

- Broken pipe. -

-
connection_aborted
-

- A connection has been aborted. -

-
connection_refused
-

- Connection refused. -

-
connection_reset
-

- Connection reset by peer. -

-
bad_descriptor
-

- Bad file descriptor. -

-
fault
-

- Bad address. -

-
host_unreachable
-

- No route to host. -

-
in_progress
-

- Operation now in progress. -

-
interrupted
-

- Interrupted system call. -

-
invalid_argument
-

- Invalid argument. -

-
message_size
-

- Message too long. -

-
name_too_long
-

- The name was too long. -

-
network_down
-

- Network is down. -

-
network_reset
-

- Network dropped connection on reset. -

-
network_unreachable
-

- Network is unreachable. -

-
no_descriptors
-

- Too many open files. -

-
no_buffer_space
-

- No buffer space available. -

-
no_memory
-

- Cannot allocate memory. -

-
no_permission
-

- Operation not permitted. -

-
no_protocol_option
-

- Protocol not available. -

-
no_such_device
-

- No such device. -

-
not_connected
-

- Transport endpoint is not connected. -

-
not_socket
-

- Socket operation on non-socket. -

-
operation_aborted
-

- Operation cancelled. -

-
operation_not_supported
-

- Operation not supported. -

-
shut_down
-

- Cannot send after transport endpoint shutdown. -

-
timed_out
-

- Connection timed out. -

-
try_again
-

- Resource temporarily unavailable. -

-
would_block
-

- The socket is marked non-blocking and the requested operation would - block. -

-
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_addrinfo_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_addrinfo_category.html deleted file mode 100644 index 89ec2e2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_addrinfo_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_addrinfo_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_addrinfo_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_misc_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_misc_category.html deleted file mode 100644 index a07b0d0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_misc_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_misc_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_misc_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_netdb_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_netdb_category.html deleted file mode 100644 index d56dcd2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_netdb_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_netdb_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_netdb_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_ssl_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_ssl_category.html deleted file mode 100644 index 27d063a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_ssl_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_ssl_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_ssl_category();
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__get_system_category.html b/Sources/Vendor/asio/doc/asio/reference/error__get_system_category.html deleted file mode 100644 index 21482f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__get_system_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::get_system_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_system_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code.html deleted file mode 100644 index 28d8d68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -error::make_error_code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - asio::error_code -

-
[link asio.reference.error__make_error_code.overload1 make_error_code]
-

- ( basic_errors e); -

-
[''''&raquo;''' [link asio.reference.error__make_error_code.overload1 more...]]
-

-

-
asio::error_code make_error_code(
-    netdb_errors e);
-  » more...
-
-asio::error_code make_error_code(
-    addrinfo_errors e);
-  » more...
-
-asio::error_code make_error_code(
-    misc_errors e);
-  » more...
-
-asio::error_code make_error_code(
-    ssl_errors e);
-  » more...
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload1.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload1.html deleted file mode 100644 index 4391c27..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload1.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (1 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    basic_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload2.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload2.html deleted file mode 100644 index 5fc8e18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload2.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (2 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    netdb_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload3.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload3.html deleted file mode 100644 index bca2890..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload3.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (3 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    addrinfo_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload4.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload4.html deleted file mode 100644 index c3e4388..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload4.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (4 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    misc_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload5.html b/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload5.html deleted file mode 100644 index e7c2331..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__make_error_code/overload5.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -error::make_error_code (5 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
asio::error_code make_error_code(
-    ssl_errors e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__misc_category.html b/Sources/Vendor/asio/doc/asio/reference/error__misc_category.html deleted file mode 100644 index 6d1c58c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__misc_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::misc_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & misc_category = asio::error::get_misc_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__misc_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__misc_errors.html deleted file mode 100644 index d7776e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__misc_errors.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -error::misc_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum misc_errors
-
-

- - - - -

-
- - Values -
-
-

-
-
already_open
-

- Already open. -

-
eof
-

- End of file or stream. -

-
not_found
-

- Element not found. -

-
fd_set_failure
-

- The descriptor cannot fit into the select system call's fd_set. -

-
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__netdb_category.html b/Sources/Vendor/asio/doc/asio/reference/error__netdb_category.html deleted file mode 100644 index 48305e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__netdb_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::netdb_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & netdb_category = asio::error::get_netdb_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__netdb_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__netdb_errors.html deleted file mode 100644 index a472f02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__netdb_errors.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -error::netdb_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum netdb_errors
-
-

- - - - -

-
- - Values -
-
-

-
-
host_not_found
-

- Host not found (authoritative). -

-
host_not_found_try_again
-

- Host not found (non-authoritative). -

-
no_data
-

- The query is valid but does not have associated address data. -

-
no_recovery
-

- A non-recoverable error occurred. -

-
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__ssl_category.html b/Sources/Vendor/asio/doc/asio/reference/error__ssl_category.html deleted file mode 100644 index 13f8a55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__ssl_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::ssl_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & ssl_category = asio::error::get_ssl_category();
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__ssl_errors.html b/Sources/Vendor/asio/doc/asio/reference/error__ssl_errors.html deleted file mode 100644 index 3467595..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__ssl_errors.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::ssl_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum ssl_errors
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error__system_category.html b/Sources/Vendor/asio/doc/asio/reference/error__system_category.html deleted file mode 100644 index 9de43d5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error__system_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error::system_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & system_category = asio::error::get_system_category();
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category.html b/Sources/Vendor/asio/doc/asio/reference/error_category.html deleted file mode 100644 index 75ceea0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -error_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Base class for all error categories. -

-
class error_category :
-  noncopyable
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- message -

-
-

- Returns a string describing the error denoted by value. -

-
-

- name -

-
-

- Returns a string naming the error gategory. -

-
-

- operator!= -

-
-

- Inequality operator to compare two error categories. -

-
-

- operator== -

-
-

- Equality operator to compare two error categories. -

-
-

- ~error_category -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/_error_category.html b/Sources/Vendor/asio/doc/asio/reference/error_category/_error_category.html deleted file mode 100644 index 9b04254..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/_error_category.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_category::~error_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~error_category();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/message.html b/Sources/Vendor/asio/doc/asio/reference/error_category/message.html deleted file mode 100644 index fb55d23..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/message.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_category::message - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns a string - describing the error denoted by value. -

-
std::string message(
-    int value) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/name.html b/Sources/Vendor/asio/doc/asio/reference/error_category/name.html deleted file mode 100644 index 8b63198..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/name.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -error_category::name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns a string naming - the error gategory. -

-
const char * name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/error_category/operator_eq__eq_.html deleted file mode 100644 index fea5e2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/operator_eq__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_category::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Equality - operator to compare two error categories. -

-
bool operator==(
-    const error_category & rhs) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_category/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/error_category/operator_not__eq_.html deleted file mode 100644 index 018e864..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_category/operator_not__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_category::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inequality - operator to compare two error categories. -

-
bool operator!=(
-    const error_category & rhs) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code.html b/Sources/Vendor/asio/doc/asio/reference/error_code.html deleted file mode 100644 index dff8cc1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code.html +++ /dev/null @@ -1,272 +0,0 @@ - - - -error_code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Class to represent an error code value. -

-
class error_code
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- unspecified_bool_type_t -

-
-
-

- unspecified_bool_type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign a new error value. -

-
-

- category -

-
-

- Get the error category. -

-
-

- clear -

-
-

- Clear the error value to the default. -

-
-

- error_code -

-
-

- Default constructor.

Construct with specific error - code and category.

Construct from an error code enum. -

-
-

- message -

-
-

- Get the message associated with the error. -

-
-

- operator unspecified_bool_type -

-
-

- Operator returns non-null if there is a non-success error code. -

-
-

- operator! -

-
-

- Operator to test if the error represents success. -

-
-

- unspecified_bool_true -

-
-
-

- value -

-
-

- Get the error value. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Inequality operator to compare two error objects. -

-
-

- operator== -

-
-

- Equality operator to compare two error objects. -

-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/assign.html b/Sources/Vendor/asio/doc/asio/reference/error_code/assign.html deleted file mode 100644 index bbb2889..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/assign.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_code::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign a new error value. -

-
void assign(
-    int v,
-    const error_category & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/category.html b/Sources/Vendor/asio/doc/asio/reference/error_code/category.html deleted file mode 100644 index 12cc121..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/category.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_code::category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the error category. -

-
const error_category & category() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/clear.html b/Sources/Vendor/asio/doc/asio/reference/error_code/clear.html deleted file mode 100644 index faf1d10..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/clear.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -error_code::clear - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Clear the error value to - the default. -

-
void clear();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code.html b/Sources/Vendor/asio/doc/asio/reference/error_code/error_code.html deleted file mode 100644 index 5d232f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -error_code::error_code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default constructor. -

-
error_code();
-  » more...
-
-

- Construct with specific error code and category. -

-
error_code(
-    int v,
-    const error_category & c);
-  » more...
-
-

- Construct from an error code enum. -

-
template<
-    typename ErrorEnum>
-error_code(
-    ErrorEnum e);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload1.html b/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload1.html deleted file mode 100644 index 2f00ce6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_code::error_code (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
error_code();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload2.html b/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload2.html deleted file mode 100644 index 1e89f45..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_code::error_code (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specific error code and category. -

-
error_code(
-    int v,
-    const error_category & c);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload3.html b/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload3.html deleted file mode 100644 index 5176e3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/error_code/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -error_code::error_code (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct from an error code enum. -

-
template<
-    typename ErrorEnum>
-error_code(
-    ErrorEnum e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/message.html b/Sources/Vendor/asio/doc/asio/reference/error_code/message.html deleted file mode 100644 index b864edc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/message.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -error_code::message - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the message associated - with the error. -

-
std::string message() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/error_code/operator_eq__eq_.html deleted file mode 100644 index b7d7bf4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -error_code::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Equality - operator to compare two error objects. -

-
friend bool operator==(
-    const error_code & e1,
-    const error_code & e2);
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not_.html b/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not_.html deleted file mode 100644 index 15d1608..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -error_code::operator! - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Operator to test - if the error represents success. -

-
bool operator!() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not__eq_.html deleted file mode 100644 index 8233de2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -error_code::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inequality - operator to compare two error objects. -

-
friend bool operator!=(
-    const error_code & e1,
-    const error_code & e2);
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html b/Sources/Vendor/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html deleted file mode 100644 index 9c9a96f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/operator_unspecified_bool_type.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -error_code::operator unspecified_bool_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Operator - returns non-null if there is a non-success error code. -

-
operator unspecified_bool_type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_true.html b/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_true.html deleted file mode 100644 index e06454b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_true.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_code::unspecified_bool_true - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static void unspecified_bool_true(
-    unspecified_bool_type_t );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_type.html b/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_type.html deleted file mode 100644 index fd7279d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/unspecified_bool_type.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -error_code::unspecified_bool_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
typedef void(*) unspecified_bool_type;
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code/value.html b/Sources/Vendor/asio/doc/asio/reference/error_code/value.html deleted file mode 100644 index b7a0d98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code/value.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -error_code::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the error value. -

-
int value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html b/Sources/Vendor/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html deleted file mode 100644 index 4f07e92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/error_code__unspecified_bool_type_t.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -error_code::unspecified_bool_type_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
struct unspecified_bool_type_t
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context.html b/Sources/Vendor/asio/doc/asio/reference/execution_context.html deleted file mode 100644 index 1b35a5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context.html +++ /dev/null @@ -1,382 +0,0 @@ - - - -execution_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A context for function object execution. -

-
class execution_context :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- id -

-
-

- Class used to uniquely identify a service. -

-
-

- service -

-
-

- Base class for all io_context services. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- execution_context -

-
-

- Constructor. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-

- ~execution_context -

-
-

- Destructor. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

- Obtain the service object corresponding to the given type. -

-
-

- An execution context represents a place where function objects will be executed. - An io_context is an example of an execution context. -

-
- - The - execution_context class and services -
-

- Class execution_context - implements an extensible, type-safe, polymorphic set of services, indexed - by service type. -

-

- Services exist to manage the resources that are shared across an execution - context. For example, timers may be implemented in terms of a single timer - queue, and this queue would be stored in a service. -

-

- Access to the services of an execution_context - is via three function templates, use_service(), add_service() - and has_service(). -

-

- In a call to use_service<Service>(), the type argument - chooses a service, making available all members of the named type. If Service - is not present in an execution_context, - an object of type Service is created and added to the execution_context. - A C++ program can check if an execution_context - implements a particular service with the function template has_service<Service>(). -

-

- Service objects may be explicitly added to an execution_context - using the function template add_service<Service>(). If - the Service is already present, the service_already_exists - exception is thrown. If the owner of the service is not the same object as - the execution_context - parameter, the invalid_service_owner - exception is thrown. -

-

- Once a service reference is obtained from an execution_context - object by calling use_service(), that reference remains usable - as long as the owning execution_context - object exists. -

-

- All service implementations have execution_context::service - as a public base class. Custom services may be implemented by deriving from - this class and then added to an execution_context - using the facilities described above. -

-
- - The - execution_context as a base class -
-

- Class execution_context - may be used only as a base class for concrete execution context types. The - io_context is an example of such a derived type. -

-

- On destruction, a class that is derived from execution_context - must perform execution_context::shutdown() followed by execution_context::destroy(). -

-

- This destruction sequence permits programs to simplify their resource management - by using shared_ptr<>. Where an object's lifetime is tied - to the lifetime of a connection (or some other sequence of asynchronous operations), - a shared_ptr to the object would be bound into the handlers - for all asynchronous operations associated with it. This works as follows: -

-
    -
  • - When a single connection ends, all associated asynchronous operations - complete. The corresponding handler objects are destroyed, and all shared_ptr - references to the objects are destroyed. -
  • -
  • - To shut down the whole program, the io_context - function stop() is called to terminate any run() calls as soon as possible. - The io_context - destructor calls shutdown() and destroy() to - destroy all pending handlers, causing all shared_ptr references - to all connection objects to be destroyed. -
  • -
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/_execution_context.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/_execution_context.html deleted file mode 100644 index a02b393..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/_execution_context.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -execution_context::~execution_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~execution_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/add_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/add_service.html deleted file mode 100644 index 3033cc4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/add_service.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -execution_context::add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_service().) Add a service object to the execution_context. -

-
template<
-    typename Service>
-friend void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/destroy.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/destroy.html deleted file mode 100644 index e5c3cd9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/destroy.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -execution_context::destroy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - all services in the context. -

-
void destroy();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order * of the beginning of service object lifetime, - performs delete static_cast<execution_context::service*>(svc). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/execution_context.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/execution_context.html deleted file mode 100644 index cab6575..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/execution_context.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -execution_context::execution_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
execution_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/fork_event.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/fork_event.html deleted file mode 100644 index 5ff7ca7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/fork_event.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -execution_context::fork_event - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Fork-related - event notifications. -

-
enum fork_event
-
-

- - - -

-
- - Values -
-
-

-
-
fork_prepare
-

- Notify the context that the process is about to fork. -

-
fork_parent
-

- Notify the context that the process has forked and is the parent. -

-
fork_child
-

- Notify the context that the process has forked and is the child. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/has_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/has_service.html deleted file mode 100644 index 7660057..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/has_service.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -execution_context::has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - if an execution_context - contains a specified service type. -

-
template<
-    typename Service>
-friend bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/make_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/make_service.html deleted file mode 100644 index 532c853..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/make_service.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -execution_context::make_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Creates - a service object and adds it to the execution_context. -

-
template<
-    typename Service,
-    typename... Args>
-friend Service & make_service(
-    execution_context & e,
-    Args &&... args);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
args
-

- Zero or more arguments to be passed to the service constructor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/notify_fork.html deleted file mode 100644 index 46d513c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/notify_fork.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -execution_context::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Notify - the execution_context - of a fork-related event. -

-
void notify_fork(
-    fork_event event);
-
-

- This function is used to inform the execution_context - that the process is about to fork, or has just forked. This allows the - execution_context, - and the services it contains, to perform any necessary housekeeping to - ensure correct operation following a fork. -

-

- This function must not be called while any other execution_context - function, or any function associated with the execution_context's derived - class, is being called in another thread. It is, however, safe to call - this function from within a completion handler, provided no other thread - is accessing the execution_context - or its derived class. -

-
- - Parameters -
-
-

-
-
event
-

- A fork-related event. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the notification fails the execution_context - object should no longer be used and should be destroyed. -

-
-
-
- - Example -
-

- The following code illustrates how to incorporate the notify_fork() - function: -

-
my_execution_context.notify_fork(execution_context::fork_prepare);
-if (fork() == 0)
-{
-  // This is the child process.
-  my_execution_context.notify_fork(execution_context::fork_child);
-}
-else
-{
-  // This is the parent process.
-  my_execution_context.notify_fork(execution_context::fork_parent);
-}
-
-
- - Remarks -
-

- For each service object svc in the execution_context - set, performs svc->notify_fork();. When processing the - fork_prepare event, services are visited in reverse order of the beginning - of service object lifetime. Otherwise, services are visited in order of - the beginning of service object lifetime. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/shutdown.html deleted file mode 100644 index ccd39fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/shutdown.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -execution_context::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Shuts - down all services in the context. -

-
void shutdown();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service.html deleted file mode 100644 index 87fd092..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -execution_context::use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-  » more...
-
-template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload1.html deleted file mode 100644 index 69e0157..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -execution_context::use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload2.html deleted file mode 100644 index 132c397..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context/use_service/overload2.html +++ /dev/null @@ -1,92 +0,0 @@ - - - -execution_context::use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services - that inherit from io_context::service. -

-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__id.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__id.html deleted file mode 100644 index 5a9d70a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__id.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -execution_context::id - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Class used to uniquely identify a service. -

-
class id :
-  noncopyable
-
-
- - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- id -

-
-

- Constructor. -

-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__id/id.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__id/id.html deleted file mode 100644 index edd7c45..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__id/id.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -execution_context::id::id - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
id();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service.html deleted file mode 100644 index c54584a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service.html +++ /dev/null @@ -1,187 +0,0 @@ - - - -execution_context::service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Base class for all io_context - services. -

-
class service :
-  noncopyable
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Get the context object that owns the service. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- service -

-
-

- Constructor. -

-
-

- ~service -

-
-

- Destructor. -

-
-
- - Private - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- notify_fork -

-
-

- Handle notification of a fork-related event to perform any necessary - housekeeping. -

-
-

- shutdown -

-
-

- Destroy all user-defined handler objects owned by the service. -

-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/_service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/_service.html deleted file mode 100644 index 0152469..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/_service.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -execution_context::service::~service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/context.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/context.html deleted file mode 100644 index acb97e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -execution_context::service::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the context object that owns the service. -

-
execution_context & context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/notify_fork.html deleted file mode 100644 index be67bb4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/notify_fork.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -execution_context::service::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Handle - notification of a fork-related event to perform any necessary housekeeping. -

-
virtual void notify_fork(
-    execution_context::fork_event event);
-
-

- This function is not a pure virtual so that services only have to implement - it if necessary. The default implementation does nothing. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/service.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/service.html deleted file mode 100644 index b98406f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/service.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -execution_context::service::service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
service(
-    execution_context & owner);
-
-
- - Parameters -
-
-

-
-
owner
-

- The execution_context - object that owns the service. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/execution_context__service/shutdown.html deleted file mode 100644 index ea0a608..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/execution_context__service/shutdown.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -execution_context::service::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroy - all user-defined handler objects owned by the service. -

-
void shutdown();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor.html b/Sources/Vendor/asio/doc/asio/reference/executor.html deleted file mode 100644 index 50516f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor.html +++ /dev/null @@ -1,328 +0,0 @@ - - - -executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Polymorphic wrapper for executors. -

-
class executor
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- unspecified_bool_type_t -

-
-
-

- unspecified_bool_type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the executor to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the executor to invoke the given function object. -

-
-

- executor -

-
-

- Default constructor.

Construct from nullptr.
-
Copy constructor.

Move constructor.
-
Construct a polymorphic wrapper for the specified executor. -

Allocator-aware constructor to create a polymorphic - wrapper for the specified executor. -

-
-

- on_work_finished -

-
-

- Inform the executor that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the executor that it has some outstanding work to do. -

-
-

- operator unspecified_bool_type -

-
-

- Operator to test if the executor contains a valid target. -

-
-

- operator= -

-
-

- Assignment operator.

-

-

-

Assignment operator for nullptr_t.

- Assignment operator to create a polymorphic wrapper for the specified - executor. -

-
-

- post -

-
-

- Request the executor to invoke the given function object. -

-
-

- target -

-
-

- Obtain a pointer to the target executor object. -

-
-

- target_type -

-
-

- Obtain type information for the target executor object. -

-
-

- unspecified_bool_true -

-
-
-

- ~executor -

-
-

- Destructor. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/_executor.html b/Sources/Vendor/asio/doc/asio/reference/executor/_executor.html deleted file mode 100644 index 1ad827c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/_executor.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor::~executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/context.html b/Sources/Vendor/asio/doc/asio/reference/executor/context.html deleted file mode 100644 index f58743a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the underlying execution - context. -

-
execution_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/defer.html b/Sources/Vendor/asio/doc/asio/reference/executor/defer.html deleted file mode 100644 index 9eda4f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/defer.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -executor::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the executor to invoke - the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object is executed according to the rules of the target - executor object. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/executor/dispatch.html deleted file mode 100644 index bd8402d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/dispatch.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -executor::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the executor to - invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object is executed according to the rules of the target - executor object. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor.html deleted file mode 100644 index 512278e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -executor::executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default constructor. -

-
executor();
-  » more...
-
-

- Construct from nullptr. -

-
executor(
-    nullptr_t );
-  » more...
-
-

- Copy constructor. -

-
executor(
-    const executor & other);
-  » more...
-
-

- Move constructor. -

-
executor(
-    executor && other);
-  » more...
-
-

- Construct a polymorphic wrapper for the specified executor. -

-
template<
-    typename Executor>
-executor(
-    Executor e);
-  » more...
-
-

- Allocator-aware constructor to create a polymorphic wrapper for the specified - executor. -

-
template<
-    typename Executor,
-    typename Allocator>
-executor(
-    allocator_arg_t ,
-    const Allocator & a,
-    Executor e);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload1.html deleted file mode 100644 index c38a8e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor::executor (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload2.html deleted file mode 100644 index 5e40aca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::executor (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct from nullptr. -

-
executor(
-    nullptr_t );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload3.html deleted file mode 100644 index 9637394..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::executor (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
executor(
-    const executor & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload4.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload4.html deleted file mode 100644 index f9e4f82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::executor (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
executor(
-    executor && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload5.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload5.html deleted file mode 100644 index 2d47276..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload5.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -executor::executor (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a polymorphic wrapper for the specified executor. -

-
template<
-    typename Executor>
-executor(
-    Executor e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload6.html b/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload6.html deleted file mode 100644 index 8a3ed78..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/executor/overload6.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -executor::executor (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Allocator-aware constructor to create a polymorphic wrapper for the specified - executor. -

-
template<
-    typename Executor,
-    typename Allocator>
-executor(
-    allocator_arg_t ,
-    const Allocator & a,
-    Executor e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/executor/on_work_finished.html deleted file mode 100644 index 21c5484..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/on_work_finished.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the executor that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/executor/on_work_started.html deleted file mode 100644 index 9a8179d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/on_work_started.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform the - executor that it has some outstanding work to do. -

-
void on_work_started() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_.html deleted file mode 100644 index adfbbc8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -executor::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
executor & operator=(
-    const executor & other);
-  » more...
-
-
-
-executor & operator=(
-    executor && other);
-  » more...
-
-

- Assignment operator for nullptr_t. -

-
executor & operator=(
-    nullptr_t );
-  » more...
-
-

- Assignment operator to create a polymorphic wrapper for the specified executor. -

-
template<
-    typename Executor>
-executor & operator=(
-    Executor && e);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload1.html deleted file mode 100644 index 7e56676..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::operator= (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator. -

-
executor & operator=(
-    const executor & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload2.html deleted file mode 100644 index 90e0367..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload2.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -executor::operator= (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
executor & operator=(
-    executor && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload3.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload3.html deleted file mode 100644 index cc3619e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor::operator= (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator for nullptr_t. -

-
executor & operator=(
-    nullptr_t );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload4.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload4.html deleted file mode 100644 index dfb4d40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq_/overload4.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -executor::operator= (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator to create a polymorphic wrapper for the specified - executor. -

-
template<
-    typename Executor>
-executor & operator=(
-    Executor && e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq__eq_.html deleted file mode 100644 index c230fea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -executor::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two executors - for equality. -

-
friend bool operator==(
-    const executor & a,
-    const executor & b);
-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_not__eq_.html deleted file mode 100644 index a8f343e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -executor::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two - executors for inequality. -

-
friend bool operator!=(
-    const executor & a,
-    const executor & b);
-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html b/Sources/Vendor/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html deleted file mode 100644 index dada888..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/operator_unspecified_bool_type.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -executor::operator unspecified_bool_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Operator - to test if the executor contains a valid target. -

-
operator unspecified_bool_type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/post.html b/Sources/Vendor/asio/doc/asio/reference/executor/post.html deleted file mode 100644 index 916f055..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/post.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -executor::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the executor to invoke - the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object is executed according to the rules of the target - executor object. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/target.html b/Sources/Vendor/asio/doc/asio/reference/executor/target.html deleted file mode 100644 index 2ddccd1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/target.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor::target - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain a pointer to the target - executor object. -

-
template<
-    typename Executor>
-Executor * target();
-  » more...
-
-template<
-    typename Executor>
-const Executor * target() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/target/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor/target/overload1.html deleted file mode 100644 index e473cf9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/target/overload1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor::target (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain a pointer to the target executor object. -

-
template<
-    typename Executor>
-Executor * target();
-
-
- - Return - Value -
-

- If target_type() == typeid(T), a pointer to the stored executor - target; otherwise, a null pointer. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/target/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor/target/overload2.html deleted file mode 100644 index f79b8ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/target/overload2.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor::target (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain a pointer to the target executor object. -

-
template<
-    typename Executor>
-const Executor * target() const;
-
-
- - Return - Value -
-

- If target_type() == typeid(T), a pointer to the stored executor - target; otherwise, a null pointer. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/target_type.html b/Sources/Vendor/asio/doc/asio/reference/executor/target_type.html deleted file mode 100644 index 7654037..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/target_type.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -executor::target_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain type information - for the target executor object. -

-
const std::type_info & target_type() const;
-
-
- - Return - Value -
-

- If *this has a target type of type T, typeid(T); - otherwise, typeid(void). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_true.html b/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_true.html deleted file mode 100644 index b523d95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_true.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor::unspecified_bool_true - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static void unspecified_bool_true(
-    unspecified_bool_type_t );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_type.html b/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_type.html deleted file mode 100644 index 77a799b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor/unspecified_bool_type.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor::unspecified_bool_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
typedef void(*) unspecified_bool_type;
-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor__unspecified_bool_type_t.html b/Sources/Vendor/asio/doc/asio/reference/executor__unspecified_bool_type_t.html deleted file mode 100644 index 99904af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor__unspecified_bool_type_t.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -executor::unspecified_bool_type_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
struct unspecified_bool_type_t
-
-
- - Requirements -
-

- Header: asio/executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_arg.html b/Sources/Vendor/asio/doc/asio/reference/executor_arg.html deleted file mode 100644 index e3251bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_arg.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -executor_arg - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A special value, similar to std::nothrow, - used to disambiguate constructors that accept executor arguments. -

-
constexpr executor_arg_t executor_arg;
-
-

- See executor_arg_t - and uses_executor - for more information. -

-
- - Requirements -
-

- Header: asio/uses_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_arg_t.html b/Sources/Vendor/asio/doc/asio/reference/executor_arg_t.html deleted file mode 100644 index 3903b24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_arg_t.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -executor_arg_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A special type, similar to std::nothrow_t, used to disambiguate constructors - that accept executor arguments. -

-
struct executor_arg_t
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_arg_t -

-
-

- Constructor. -

-
-

- The executor_arg_t - struct is an empty structure type used as a unique type to disambiguate constructor - and function overloading. Specifically, some types have constructors with - executor_arg_t - as the first argument, immediately followed by an argument of a type that - satisfies the Executor type requirements. -

-
- - Requirements -
-

- Header: asio/uses_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html b/Sources/Vendor/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html deleted file mode 100644 index 1168aa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_arg_t/executor_arg_t.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_arg_t::executor_arg_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
constexpr executor_arg_t();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder.html deleted file mode 100644 index e57a003..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder.html +++ /dev/null @@ -1,242 +0,0 @@ - - - -executor_binder - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A call wrapper type to bind an executor of type Executor to - an object of type T. -

-
template<
-    typename T,
-    typename Executor>
-class executor_binder
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- argument_type -

-
-

- The type of the function's argument. -

-
-

- executor_type -

-
-

- The type of the associated executor. -

-
-

- first_argument_type -

-
-

- The type of the function's first argument. -

-
-

- result_type -

-
-

- The return type if a function. -

-
-

- second_argument_type -

-
-

- The type of the function's second argument. -

-
-

- target_type -

-
-

- The type of the target object. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_binder -

-
-

- Construct an executor wrapper for the specified object.
-
Copy constructor.

Construct a copy, but specify - a different executor.

Construct a copy of a different - executor wrapper type.

Construct a copy of a different - executor wrapper type, but specify a different executor.
-
Move constructor.

Move construct the target - object, but specify a different executor.

Move construct - from a different executor wrapper type.

Move construct - from a different executor wrapper type, but specify a different - executor. -

-
-

- get -

-
-

- Obtain a reference to the target object. -

-
-

- get_executor -

-
-

- Obtain the associated executor. -

-
-

- operator() -

-
-
-

- ~executor_binder -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/_executor_binder.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/_executor_binder.html deleted file mode 100644 index 3cd45db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/_executor_binder.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::~executor_binder - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~executor_binder();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/argument_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/argument_type.html deleted file mode 100644 index d2d3a3e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/argument_type.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -executor_binder::argument_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the function's argument. -

-
typedef see_below argument_type;
-
-

- The type of argument_type is based on the type T - of the wrapper's target object: -

-
    -
  • - if T is a pointer to a function type accepting a single - argument, argument_type is a synonym for the return type - of T; -
  • -
  • - if T is a class type with a member type argument_type, - then argument_type is a synonym for T::argument_type; -
  • -
  • - otherwise argument_type is not defined. -
  • -
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder.html deleted file mode 100644 index c16a7e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder.html +++ /dev/null @@ -1,127 +0,0 @@ - - - -executor_binder::executor_binder - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an executor wrapper for the specified object. -

-
template<
-    typename U>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    U && u);
-  » more...
-
-

- Copy constructor. -

-
executor_binder(
-    const executor_binder & other);
-  » more...
-
-

- Construct a copy, but specify a different executor. -

-
executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    const executor_binder & other);
-  » more...
-
-

- Construct a copy of a different executor wrapper type. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    const executor_binder< U, OtherExecutor > & other);
-  » more...
-
-

- Construct a copy of a different executor wrapper type, but specify a different - executor. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    const executor_binder< U, OtherExecutor > & other);
-  » more...
-
-

- Move constructor. -

-
executor_binder(
-    executor_binder && other);
-  » more...
-
-

- Move construct the target object, but specify a different executor. -

-
executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    executor_binder && other);
-  » more...
-
-

- Move construct from a different executor wrapper type. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_binder< U, OtherExecutor > && other);
-  » more...
-
-

- Move construct from a different executor wrapper type, but specify a different - executor. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    executor_binder< U, OtherExecutor > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html deleted file mode 100644 index d2587f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor_binder::executor_binder (1 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an executor wrapper for the specified object. -

-
template<
-    typename U>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    U && u);
-
-

- This constructor is only valid if the type T is constructible - from type U. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html deleted file mode 100644 index 60f51d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_binder::executor_binder (2 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
executor_binder(
-    const executor_binder & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html deleted file mode 100644 index 0a3a298..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -executor_binder::executor_binder (3 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a copy, but specify a different executor. -

-
executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    const executor_binder & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html deleted file mode 100644 index 13e9362..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload4.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor_binder::executor_binder (4 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a copy of a different executor wrapper type. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    const executor_binder< U, OtherExecutor > & other);
-
-

- This constructor is only valid if the Executor type is constructible - from type OtherExecutor, and the type T is - constructible from type U. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html deleted file mode 100644 index 0c0fb94..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload5.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor_binder::executor_binder (5 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a copy of a different executor wrapper type, but specify a - different executor. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    const executor_binder< U, OtherExecutor > & other);
-
-

- This constructor is only valid if the type T is constructible - from type U. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html deleted file mode 100644 index 5411ff9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_binder::executor_binder (6 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
executor_binder(
-    executor_binder && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html deleted file mode 100644 index 1e5e29c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload7.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -executor_binder::executor_binder (7 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct the target object, but specify a different executor. -

-
executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    executor_binder && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html deleted file mode 100644 index a5d81eb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload8.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -executor_binder::executor_binder (8 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct from a different executor wrapper type. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_binder< U, OtherExecutor > && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html deleted file mode 100644 index 5caeab0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_binder/overload9.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -executor_binder::executor_binder (9 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move construct from a different executor wrapper type, but specify a - different executor. -

-
template<
-    typename U,
-    typename OtherExecutor>
-executor_binder(
-    executor_arg_t ,
-    const executor_type & e,
-    executor_binder< U, OtherExecutor > && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_type.html deleted file mode 100644 index 59cd3c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor_binder::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the associated executor. -

-
typedef Executor executor_type;
-
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/first_argument_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/first_argument_type.html deleted file mode 100644 index 5c9c73e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/first_argument_type.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -executor_binder::first_argument_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the function's first argument. -

-
typedef see_below first_argument_type;
-
-

- The type of first_argument_type is based on the type T - of the wrapper's target object: -

-
    -
  • - if T is a pointer to a function type accepting two arguments, - first_argument_type is a synonym for the return type of - T; -
  • -
  • - if T is a class type with a member type first_argument_type, - then first_argument_type is a synonym for T::first_argument_type; -
  • -
  • - otherwise first_argument_type is not defined. -
  • -
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/get.html deleted file mode 100644 index 92aae71..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -executor_binder::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain a reference - to the target object. -

-
target_type & get();
-  » more...
-
-const target_type & get() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload1.html deleted file mode 100644 index 547fd0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::get (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain a reference to the target object. -

-
target_type & get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload2.html deleted file mode 100644 index 8a8587e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::get (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain a reference to the target object. -

-
const target_type & get() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/get_executor.html deleted file mode 100644 index 9a67a2e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_binder::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the associated executor. -

-
executor_type get_executor() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html deleted file mode 100644 index 6616ad2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -executor_binder::operator() - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
template<
-    typename... Args>
-auto operator()(
-    Args && ...);
-  » more...
-
-template<
-    typename... Args>
-auto operator()(
-    Args && ...) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html deleted file mode 100644 index e4c24ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::operator() (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename... Args>
-auto operator()(
-    Args && ...);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html deleted file mode 100644 index 18ff25b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/operator_lp__rp_/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -executor_binder::operator() (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename... Args>
-auto operator()(
-    Args && ...) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/result_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/result_type.html deleted file mode 100644 index 9f68286..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/result_type.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -executor_binder::result_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - return type if a function. -

-
typedef see_below result_type;
-
-

- The type of result_type is based on the type T - of the wrapper's target object: -

-
    -
  • - if T is a pointer to function type, result_type - is a synonym for the return type of T; -
  • -
  • - if T is a class type with a member type result_type, - then result_type is a synonym for T::result_type; -
  • -
  • - otherwise result_type is not defined. -
  • -
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/second_argument_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/second_argument_type.html deleted file mode 100644 index 864a519..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/second_argument_type.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -executor_binder::second_argument_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the function's second argument. -

-
typedef see_below second_argument_type;
-
-

- The type of second_argument_type is based on the type T - of the wrapper's target object: -

-
    -
  • - if T is a pointer to a function type accepting two arguments, - second_argument_type is a synonym for the return type - of T; -
  • -
  • - if T is a class type with a member type first_argument_type, - then second_argument_type is a synonym for T::second_argument_type; -
  • -
  • - otherwise second_argument_type is not defined. -
  • -
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_binder/target_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_binder/target_type.html deleted file mode 100644 index 9376ec0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_binder/target_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor_binder::target_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the target object. -

-
typedef T target_type;
-
-
- - Requirements -
-

- Header: asio/bind_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard.html deleted file mode 100644 index 0cd9699..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -executor_work_guard - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An object of type executor_work_guard controls ownership of - executor work within a scope. -

-
template<
-    typename Executor>
-class executor_work_guard
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The underlying executor type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_work_guard -

-
-

- Constructs a executor_work_guard object for the specified executor. -

Copy constructor.

Move constructor. -

-
-

- get_executor -

-
-

- Obtain the associated executor. -

-
-

- owns_work -

-
-

- Whether the executor_work_guard object owns some outstanding work. -

-
-

- reset -

-
-

- Indicate that the work is no longer outstanding. -

-
-

- ~executor_work_guard -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/executor_work_guard.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html deleted file mode 100644 index 6de8bcc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/_executor_work_guard.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -executor_work_guard::~executor_work_guard - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~executor_work_guard();
-
-

- Unless the object has already been reset, or is in a moved-from state, - calls on_work_finished() on the stored executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_type.html deleted file mode 100644 index 06ff5b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -executor_work_guard::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - underlying executor type. -

-
typedef Executor executor_type;
-
-
- - Requirements -
-

- Header: asio/executor_work_guard.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html deleted file mode 100644 index bb16a61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -executor_work_guard::executor_work_guard - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructs - a executor_work_guard object for the specified executor. -

-
explicit executor_work_guard(
-    const executor_type & e);
-  » more...
-
-

- Copy constructor. -

-
executor_work_guard(
-    const executor_work_guard & other);
-  » more...
-
-

- Move constructor. -

-
executor_work_guard(
-    executor_work_guard && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html deleted file mode 100644 index d7169fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload1.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -executor_work_guard::executor_work_guard (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructs a executor_work_guard object for the specified - executor. -

-
executor_work_guard(
-    const executor_type & e);
-
-

- Stores a copy of e and calls on_work_started() - on it. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html deleted file mode 100644 index af0f65c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_work_guard::executor_work_guard (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
executor_work_guard(
-    const executor_work_guard & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html deleted file mode 100644 index b5684f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/executor_work_guard/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_work_guard::executor_work_guard (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
executor_work_guard(
-    executor_work_guard && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/get_executor.html deleted file mode 100644 index 2e3d4f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_work_guard::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the associated executor. -

-
executor_type get_executor() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/owns_work.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/owns_work.html deleted file mode 100644 index bc0b0fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/owns_work.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -executor_work_guard::owns_work - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Whether - the executor_work_guard - object owns some outstanding work. -

-
bool owns_work() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/reset.html b/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/reset.html deleted file mode 100644 index 9b6dee2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/executor_work_guard/reset.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -executor_work_guard::reset - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Indicate - that the work is no longer outstanding. -

-
void reset();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token.html deleted file mode 100644 index 3cf0678..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -experimental::await_token - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A completion token that represents the currently executing coroutine. -

-
template<
-    typename Executor>
-class await_token
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The associated executor type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- await_token -

-
-

- Copy constructor.

Move constructor. -

-
-

- get_executor -

-
-

- Get the associated executor. -

-
-

- The experimental::await_token - class is used to represent the currently executing coroutine. An experimental::await_token - may be passed as a handler to an asynchronous operation. For example: -

-
awaitable<void> my_coroutine()
-{
-  await_token token = co_await this_coro::token();
-  ...
-  std::size_t n = co_await my_socket.async_read_some(buffer, token);
-  ...
-}
-
-

- The initiating function (async_read_some in the above example) suspends the - current coroutine. The coroutine is resumed when the asynchronous operation - completes, and the result of the operation is returned. -

-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token.html deleted file mode 100644 index 2a0a4d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -experimental::await_token::await_token - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Copy - constructor. -

-
await_token(
-    const await_token & other);
-  » more...
-
-

- Move constructor. -

-
await_token(
-    await_token && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload1.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload1.html deleted file mode 100644 index aae2648..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -experimental::await_token::await_token (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
await_token(
-    const await_token & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload2.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload2.html deleted file mode 100644 index 7962ba3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/await_token/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -experimental::await_token::await_token (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
await_token(
-    await_token && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/executor_type.html deleted file mode 100644 index 44d5a73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::await_token::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - associated executor type. -

-
typedef Executor executor_type;
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/get_executor.html deleted file mode 100644 index aa66ffa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__await_token/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -experimental::await_token::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the associated executor. -

-
executor_type get_executor() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable.html deleted file mode 100644 index 647875b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable.html +++ /dev/null @@ -1,151 +0,0 @@ - - - -experimental::awaitable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The return type of a coroutine or asynchronous operation. -

-
template<
-    typename T,
-    typename Executor = strand<executor>>
-class awaitable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The executor type that will be used for the coroutine. -

-
-

- value_type -

-
-

- The type of the awaited value. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- awaitable -

-
-

- Move constructor. -

-
-

- ~awaitable -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/_awaitable.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/_awaitable.html deleted file mode 100644 index edba7a1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/_awaitable.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -experimental::awaitable::~awaitable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~awaitable();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/awaitable.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/awaitable.html deleted file mode 100644 index e884f26..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/awaitable.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -experimental::awaitable::awaitable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - constructor. -

-
awaitable(
-    awaitable && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/executor_type.html deleted file mode 100644 index 016f7d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::awaitable::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - executor type that will be used for the coroutine. -

-
typedef Executor executor_type;
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/value_type.html b/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/value_type.html deleted file mode 100644 index 4363938..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__awaitable/value_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::awaitable::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the awaited value. -

-
typedef T value_type;
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn.html b/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn.html deleted file mode 100644 index 9dc0654..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -experimental::co_spawn - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Spawn a new thread - of execution. -

-
template<
-    typename Executor,
-    typename F,
-    typename CompletionToken,
-    typename  = typename enable_if<is_executor<Executor>::value>::type>
-auto co_spawn(
-    const Executor & ex,
-    F && f,
-    CompletionToken && token);
-  » more...
-
-template<
-    typename ExecutionContext,
-    typename F,
-    typename CompletionToken,
-    typename  = typename enable_if<      is_convertible<ExecutionContext&, execution_context&>::value>::type>
-auto co_spawn(
-    ExecutionContext & ctx,
-    F && f,
-    CompletionToken && token);
-  » more...
-
-template<
-    typename Executor,
-    typename F,
-    typename CompletionToken>
-auto co_spawn(
-    const await_token< Executor > & parent,
-    F && f,
-    CompletionToken && token);
-  » more...
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload1.html b/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload1.html deleted file mode 100644 index 5e4cd5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload1.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -experimental::co_spawn (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Spawn a new thread of execution. -

-
template<
-    typename Executor,
-    typename F,
-    typename CompletionToken,
-    typename  = typename enable_if<is_executor<Executor>::value>::type>
-auto co_spawn(
-    const Executor & ex,
-    F && f,
-    CompletionToken && token);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload2.html b/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload2.html deleted file mode 100644 index b0a768a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload2.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -experimental::co_spawn (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Spawn a new thread of execution. -

-
template<
-    typename ExecutionContext,
-    typename F,
-    typename CompletionToken,
-    typename  = typename enable_if<      is_convertible<ExecutionContext&, execution_context&>::value>::type>
-auto co_spawn(
-    ExecutionContext & ctx,
-    F && f,
-    CompletionToken && token);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload3.html b/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload3.html deleted file mode 100644 index dff8e08..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__co_spawn/overload3.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -experimental::co_spawn (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Spawn a new thread of execution. -

-
template<
-    typename Executor,
-    typename F,
-    typename CompletionToken>
-auto co_spawn(
-    const await_token< Executor > & parent,
-    F && f,
-    CompletionToken && token);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__detached.html b/Sources/Vendor/asio/doc/asio/reference/experimental__detached.html deleted file mode 100644 index d1248f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__detached.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -experimental::detached - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A special value, - similar to std::nothrow. -

-
constexpr detached_t detached;
-
-

- See the documentation for experimental::detached_t - for a usage example. -

-
- - Requirements -
-

- Header: asio/experimental/detached.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t.html deleted file mode 100644 index e921286..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -experimental::detached_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Class used to specify that an asynchronous operation is detached. -

-
class detached_t
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- detached_t -

-
-

- Constructor. -

-
-

- The experimental::detached_t - class is used to indicate that an asynchronous operation is detached. That - is, there is no completion handler waiting for the operation's result. A - experimental::detached_t - object may be passed as a handler to an asynchronous operation, typically - using the special value asio::experimental::detached. For example: -

-
my_socket.async_send(my_buffer, asio::experimental::detached);
-
-
- - Requirements -
-

- Header: asio/experimental/detached.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t/detached_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t/detached_t.html deleted file mode 100644 index fddcf63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__detached_t/detached_t.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -experimental::detached_t::detached_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
constexpr detached_t();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error.html deleted file mode 100644 index fe4e2ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -experimental::redirect_error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - a completion token to capture error_code - values to a variable. -

-
template<
-    typename CompletionToken>
-redirect_error_t< typename decay< CompletionToken >::type > redirect_error(
-    CompletionToken && completion_token,
-    asio::error_code & ec);
-
-
- - Requirements -
-

- Header: asio/experimental/redirect_error.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t.html deleted file mode 100644 index 22b030f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -experimental::redirect_error_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Completion token type used to specify that an error produced by an asynchronous - operation is captured to an error_code - variable. -

-
template<
-    typename CompletionToken>
-class redirect_error_t
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- redirect_error_t -

-
-

- Constructor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ec_ -

-
-
-

- token_ -

-
-
-

- The experimental::redirect_error_t - class is used to indicate that any error_code - produced by an asynchronous operation is captured to a specified variable. -

-
- - Requirements -
-

- Header: asio/experimental/redirect_error.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/ec_.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/ec_.html deleted file mode 100644 index afb9440..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/ec_.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -experimental::redirect_error_t::ec_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
asio::error_code & ec_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html deleted file mode 100644 index 52b059a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/redirect_error_t.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -experimental::redirect_error_t::redirect_error_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
template<
-    typename T>
-redirect_error_t(
-    T && completion_token,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/token_.html b/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/token_.html deleted file mode 100644 index 4a70fb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__redirect_error_t/token_.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -experimental::redirect_error_t::token_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
CompletionToken token_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor.html b/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor.html deleted file mode 100644 index a57a29c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::this_coro::executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Awaitable - object that returns the executor of the current coroutine. -

-
constexpr executor_t executor();
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor_t.html deleted file mode 100644 index 0170a98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__executor_t.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -experimental::this_coro::executor_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Awaitable type that returns the executor of the current coroutine. -

-
struct executor_t
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token.html b/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token.html deleted file mode 100644 index d90d0f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -experimental::this_coro::token - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Awaitable - object that returns a completion token for the current coroutine. -

-
constexpr token_t token();
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token_t.html b/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token_t.html deleted file mode 100644 index 8c06bb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/experimental__this_coro__token_t.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -experimental::this_coro::token_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Awaitable type that returns a completion token for the current coroutine. -

-
struct token_t
-
-
- - Requirements -
-

- Header: asio/experimental/co_spawn.hpp -

-

- Convenience header: asio/experimental.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint.html deleted file mode 100644 index 5babf38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint.html +++ /dev/null @@ -1,332 +0,0 @@ - - - -generic::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Describes an endpoint for any socket type. -

-
template<
-    typename Protocol>
-class basic_endpoint
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on the - underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from the - specified socket address.

Construct an endpoint from - the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html deleted file mode 100644 index 1a4a1d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
basic_endpoint();
-  » more...
-
-

- Construct an endpoint from the specified socket address. -

-
basic_endpoint(
-    const void * socket_address,
-    std::size_t socket_address_size,
-    int socket_protocol = 0);
-  » more...
-
-

- Construct an endpoint from the specific endpoint type. -

-
template<
-    typename Endpoint>
-basic_endpoint(
-    const Endpoint & endpoint);
-  » more...
-
-

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html deleted file mode 100644 index 9507521..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
basic_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html deleted file mode 100644 index 256c5ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint from the specified socket address. -

-
basic_endpoint(
-    const void * socket_address,
-    std::size_t socket_address_size,
-    int socket_protocol = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html deleted file mode 100644 index b438491..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint from the specific endpoint type. -

-
template<
-    typename Endpoint>
-basic_endpoint(
-    const Endpoint & endpoint);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html deleted file mode 100644 index 419d703..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::basic_endpoint::basic_endpoint (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/capacity.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/capacity.html deleted file mode 100644 index cf31b49..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/capacity.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::basic_endpoint::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the capacity of the endpoint in the native type. -

-
std::size_t capacity() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data.html deleted file mode 100644 index 1eca83f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -generic::basic_endpoint::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the underlying endpoint in the native type. -

-
data_type * data();
-  » more...
-
-const data_type * data() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html deleted file mode 100644 index 99d4357..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -generic::basic_endpoint::data (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
data_type * data();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html deleted file mode 100644 index c4e1262..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -generic::basic_endpoint::data (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
const data_type * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data_type.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data_type.html deleted file mode 100644 index 52e0524..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/data_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -generic::basic_endpoint::data_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the endpoint structure. This type is dependent on the underlying - implementation of the socket layer. -

-
typedef implementation_defined data_type;
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html deleted file mode 100644 index 7d52771..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::basic_endpoint::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another endpoint. -

-
basic_endpoint & operator=(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html deleted file mode 100644 index eaf025a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for equality. -

-
friend bool operator==(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html deleted file mode 100644 index 480ac1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html deleted file mode 100644 index 70fcc6a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html deleted file mode 100644 index a708f87..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html deleted file mode 100644 index deaab24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html deleted file mode 100644 index ecb6726..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::basic_endpoint::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for inequality. -

-
friend bool operator!=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol.html deleted file mode 100644 index 1e8bbe5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::basic_endpoint::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol associated with the endpoint. -

-
protocol_type protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html deleted file mode 100644 index a8a56ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -generic::basic_endpoint::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/generic/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/resize.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/resize.html deleted file mode 100644 index 4cc984e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/resize.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::basic_endpoint::resize - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the underlying size of the endpoint in the native type. -

-
void resize(
-    std::size_t new_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/size.html b/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/size.html deleted file mode 100644 index 28d4eaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__basic_endpoint/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::basic_endpoint::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the underlying size of the endpoint in the native type. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol.html deleted file mode 100644 index dcdfa32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol.html +++ /dev/null @@ -1,252 +0,0 @@ - - - -generic::datagram_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for a generic datagram-oriented socket. -

-
class datagram_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of an endpoint. -

-
-

- socket -

-
-

- The generic socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- datagram_protocol -

-
-

- Construct a protocol object for a specific address family and protocol. -

Construct a generic protocol object from a specific - protocol. -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The generic::datagram_protocol - class contains flags necessary for datagram-oriented sockets of any address - family and protocol. -

-
- - Examples -
-

- Constructing using a native address family and socket protocol: -

-
datagram_protocol p(AF_INET, IPPROTO_UDP);
-
-

- Constructing from a specific protocol type: -

-
datagram_protocol p(asio::ip::udp::v4());
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html deleted file mode 100644 index a420f32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::datagram_protocol::datagram_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a protocol object for a specific address family and protocol. -

-
datagram_protocol(
-    int address_family,
-    int socket_protocol);
-  » more...
-
-

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-datagram_protocol(
-    const Protocol & source_protocol);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html deleted file mode 100644 index 04d39b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::datagram_protocol::datagram_protocol (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a protocol object for a specific address family and protocol. -

-
datagram_protocol(
-    int address_family,
-    int socket_protocol);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html deleted file mode 100644 index c5d7d4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -generic::datagram_protocol::datagram_protocol (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-datagram_protocol(
-    const Protocol & source_protocol);
-
-
- - Exceptions -
-
-

-
-
@c
-

- bad_cast Thrown if the source protocol is not datagram-oriented. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html deleted file mode 100644 index d86302c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/endpoint.html +++ /dev/null @@ -1,333 +0,0 @@ - - - -generic::datagram_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an endpoint. -

-
typedef basic_endpoint< datagram_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from - the specified socket address.

Construct an endpoint - from the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/family.html deleted file mode 100644 index 3fc8447..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::datagram_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html deleted file mode 100644 index e2713e6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::datagram_protocol::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for equality. -

-
friend bool operator==(
-    const datagram_protocol & p1,
-    const datagram_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html deleted file mode 100644 index 5f39b92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::datagram_protocol::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for inequality. -

-
friend bool operator!=(
-    const datagram_protocol & p1,
-    const datagram_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/protocol.html deleted file mode 100644 index 55aa5d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::datagram_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/socket.html deleted file mode 100644 index c22d3ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/socket.html +++ /dev/null @@ -1,932 +0,0 @@ - - - -generic::datagram_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket type. -

-
typedef basic_datagram_socket< datagram_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_datagram_socket -

-
-

- Construct a basic_datagram_socket without opening it.
-
Construct and open a basic_datagram_socket.

- Construct a basic_datagram_socket, opening it and binding it - to the given local endpoint.

Construct a basic_datagram_socket - on an existing native socket.

Move-construct a - basic_datagram_socket from another.

Move-construct - a basic_datagram_socket from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_datagram_socket from another.

- Move-assign a basic_datagram_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive a datagram with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send a datagram to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_datagram_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_datagram_socket - class template provides asynchronous and blocking datagram-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/type.html deleted file mode 100644 index 22b8d7d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__datagram_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::datagram_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol.html deleted file mode 100644 index 6776a04..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol.html +++ /dev/null @@ -1,251 +0,0 @@ - - - -generic::raw_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for a generic raw socket. -

-
class raw_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of an endpoint. -

-
-

- socket -

-
-

- The generic socket type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- raw_protocol -

-
-

- Construct a protocol object for a specific address family and protocol. -

Construct a generic protocol object from a specific - protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The generic::raw_protocol - class contains flags necessary for raw sockets of any address family and - protocol. -

-
- - Examples -
-

- Constructing using a native address family and socket protocol: -

-
raw_protocol p(AF_INET, IPPROTO_ICMP);
-
-

- Constructing from a specific protocol type: -

-
raw_protocol p(asio::ip::icmp::v4());
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/endpoint.html deleted file mode 100644 index 9238025..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/endpoint.html +++ /dev/null @@ -1,333 +0,0 @@ - - - -generic::raw_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an endpoint. -

-
typedef basic_endpoint< raw_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from - the specified socket address.

Construct an endpoint - from the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/family.html deleted file mode 100644 index 77c37f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::raw_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html deleted file mode 100644 index c98c847..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::raw_protocol::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for equality. -

-
friend bool operator==(
-    const raw_protocol & p1,
-    const raw_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html deleted file mode 100644 index 9832b33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::raw_protocol::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for inequality. -

-
friend bool operator!=(
-    const raw_protocol & p1,
-    const raw_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/protocol.html deleted file mode 100644 index cf28530..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::raw_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html deleted file mode 100644 index eacd14e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::raw_protocol::raw_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a protocol object for a specific address family and protocol. -

-
raw_protocol(
-    int address_family,
-    int socket_protocol);
-  » more...
-
-

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-raw_protocol(
-    const Protocol & source_protocol);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html deleted file mode 100644 index f2f9a82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::raw_protocol::raw_protocol (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a protocol object for a specific address family and protocol. -

-
raw_protocol(
-    int address_family,
-    int socket_protocol);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html deleted file mode 100644 index 374001c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/raw_protocol/overload2.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -generic::raw_protocol::raw_protocol (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-raw_protocol(
-    const Protocol & source_protocol);
-
-
- - Exceptions -
-
-

-
-
@c
-

- bad_cast Thrown if the source protocol is not raw-oriented. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/socket.html deleted file mode 100644 index b4b2779..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/socket.html +++ /dev/null @@ -1,930 +0,0 @@ - - - -generic::raw_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket type. -

-
typedef basic_raw_socket< raw_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_raw_socket -

-
-

- Construct a basic_raw_socket without opening it.

- Construct and open a basic_raw_socket.

Construct - a basic_raw_socket, opening it and binding it to the given local - endpoint.

Construct a basic_raw_socket on an existing - native socket.

Move-construct a basic_raw_socket - from another.

Move-construct a basic_raw_socket - from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_raw_socket from another.

Move-assign - a basic_raw_socket from a socket of another protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive raw data with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send raw data to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_raw_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_raw_socket - class template provides asynchronous and blocking raw-oriented socket functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/raw_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/type.html deleted file mode 100644 index 83aaf92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__raw_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::raw_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol.html deleted file mode 100644 index 846e4e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol.html +++ /dev/null @@ -1,247 +0,0 @@ - - - -generic::seq_packet_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for a generic sequenced packet socket. -

-
class seq_packet_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of an endpoint. -

-
-

- socket -

-
-

- The generic socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- seq_packet_protocol -

-
-

- Construct a protocol object for a specific address family and protocol. -

Construct a generic protocol object from a specific - protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The generic::seq_packet_protocol - class contains flags necessary for seq_packet-oriented sockets of any address - family and protocol. -

-
- - Examples -
-

- Constructing using a native address family and socket protocol: -

-
seq_packet_protocol p(AF_INET, IPPROTO_SCTP);
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html deleted file mode 100644 index ec5bd7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/endpoint.html +++ /dev/null @@ -1,333 +0,0 @@ - - - -generic::seq_packet_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an endpoint. -

-
typedef basic_endpoint< seq_packet_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from - the specified socket address.

Construct an endpoint - from the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/family.html deleted file mode 100644 index fab1224..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::seq_packet_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html deleted file mode 100644 index ee3c531..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::seq_packet_protocol::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for equality. -

-
friend bool operator==(
-    const seq_packet_protocol & p1,
-    const seq_packet_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html deleted file mode 100644 index 44bcbc6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::seq_packet_protocol::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for inequality. -

-
friend bool operator!=(
-    const seq_packet_protocol & p1,
-    const seq_packet_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html deleted file mode 100644 index 457892d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::seq_packet_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html deleted file mode 100644 index 9637263..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::seq_packet_protocol::seq_packet_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a protocol object for a specific address family and protocol. -

-
seq_packet_protocol(
-    int address_family,
-    int socket_protocol);
-  » more...
-
-

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-seq_packet_protocol(
-    const Protocol & source_protocol);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html deleted file mode 100644 index b0c4a47..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::seq_packet_protocol::seq_packet_protocol (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a protocol object for a specific address family and protocol. -

-
seq_packet_protocol(
-    int address_family,
-    int socket_protocol);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html deleted file mode 100644 index bcb1ed0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -generic::seq_packet_protocol::seq_packet_protocol (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-seq_packet_protocol(
-    const Protocol & source_protocol);
-
-
- - Exceptions -
-
-

-
-
@c
-

- bad_cast Thrown if the source protocol is not based around sequenced - packets. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html deleted file mode 100644 index bf23e54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/socket.html +++ /dev/null @@ -1,885 +0,0 @@ - - - -generic::seq_packet_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket type. -

-
typedef basic_seq_packet_socket< seq_packet_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_seq_packet_socket -

-
-

- Construct a basic_seq_packet_socket without opening it.
-
Construct and open a basic_seq_packet_socket.
-
Construct a basic_seq_packet_socket, opening it and binding - it to the given local endpoint.

Construct a basic_seq_packet_socket - on an existing native socket.

Move-construct a - basic_seq_packet_socket from another.

Move-construct - a basic_seq_packet_socket from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_seq_packet_socket from another.

- Move-assign a basic_seq_packet_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_seq_packet_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_seq_packet_socket - class template provides asynchronous and blocking sequenced packet socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/seq_packet_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/type.html deleted file mode 100644 index 136d6cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__seq_packet_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::seq_packet_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol.html deleted file mode 100644 index a4fb553..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol.html +++ /dev/null @@ -1,263 +0,0 @@ - - - -generic::stream_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for a generic stream-oriented socket. -

-
class stream_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of an endpoint. -

-
-

- iostream -

-
-

- The generic socket iostream type. -

-
-

- socket -

-
-

- The generic socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- stream_protocol -

-
-

- Construct a protocol object for a specific address family and protocol. -

Construct a generic protocol object from a specific - protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The generic::stream_protocol - class contains flags necessary for stream-oriented sockets of any address - family and protocol. -

-
- - Examples -
-

- Constructing using a native address family and socket protocol: -

-
stream_protocol p(AF_INET, IPPROTO_TCP);
-
-

- Constructing from a specific protocol type: -

-
stream_protocol p(asio::ip::tcp::v4());
-
-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/endpoint.html deleted file mode 100644 index 204e387..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/endpoint.html +++ /dev/null @@ -1,333 +0,0 @@ - - - -generic::stream_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an endpoint. -

-
typedef basic_endpoint< stream_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint from - the specified socket address.

Construct an endpoint - from the specific endpoint type.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-

- The generic::basic_endpoint - class template describes an endpoint that may be associated with any socket - type. -

-
- - Remarks -
-

- The socket types sockaddr type must be able to fit into a sockaddr_storage - structure. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/family.html deleted file mode 100644 index aefcda4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::stream_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/iostream.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/iostream.html deleted file mode 100644 index 53d387c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/iostream.html +++ /dev/null @@ -1,327 +0,0 @@ - - - -generic::stream_protocol::iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket iostream type. -

-
typedef basic_socket_iostream< stream_protocol > iostream;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_iostream -

-
-

- Construct a basic_socket_iostream without establishing a connection. -

Construct a basic_socket_iostream from the supplied - socket.

Move-construct a basic_socket_iostream - from another.

Establish a connection to an endpoint - corresponding to a resolver query. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection to an endpoint corresponding to a resolver - query. -

-
-

- error -

-
-

- Get the last error associated with the stream. -

-
-

- expires_after -

-
-

- Set the stream's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time as an - absolute time.

Set the stream's expiry time as - an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time relative - to now.

(Deprecated: Use expires_after().) Set - the stream's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_iostream from another. -

-
-

- rdbuf -

-
-

- Return a pointer to the underlying streambuf. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html deleted file mode 100644 index 956a69a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::stream_protocol::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for equality. -

-
friend bool operator==(
-    const stream_protocol & p1,
-    const stream_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html deleted file mode 100644 index 838f9ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::stream_protocol::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two protocols for inequality. -

-
friend bool operator!=(
-    const stream_protocol & p1,
-    const stream_protocol & p2);
-
-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/protocol.html deleted file mode 100644 index 6cd2419..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::stream_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/socket.html deleted file mode 100644 index ed7a8c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/socket.html +++ /dev/null @@ -1,933 +0,0 @@ - - - -generic::stream_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - generic socket type. -

-
typedef basic_stream_socket< stream_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_stream_socket -

-
-

- Construct a basic_stream_socket without opening it.

- Construct and open a basic_stream_socket.

Construct - a basic_stream_socket, opening it and binding it to the given - local endpoint.

Construct a basic_stream_socket - on an existing native socket.

Move-construct a - basic_stream_socket from another.

Move-construct - a basic_stream_socket from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_stream_socket from another.

- Move-assign a basic_stream_socket from a socket of another protocol - type. -

-
-

- read_some -

-
-

- Read some data from the socket. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the socket. -

-
-

- ~basic_stream_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_stream_socket - class template provides asynchronous and blocking stream-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/generic/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html deleted file mode 100644 index dc9c7c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -generic::stream_protocol::stream_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a protocol object for a specific address family and protocol. -

-
stream_protocol(
-    int address_family,
-    int socket_protocol);
-  » more...
-
-

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-stream_protocol(
-    const Protocol & source_protocol);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html deleted file mode 100644 index 48b5b91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -generic::stream_protocol::stream_protocol (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a protocol object for a specific address family and protocol. -

-
stream_protocol(
-    int address_family,
-    int socket_protocol);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html deleted file mode 100644 index f2cbf1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/stream_protocol/overload2.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -generic::stream_protocol::stream_protocol (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a generic protocol object from a specific protocol. -

-
template<
-    typename Protocol>
-stream_protocol(
-    const Protocol & source_protocol);
-
-
- - Exceptions -
-
-

-
-
@c
-

- bad_cast Thrown if the source protocol is not stream-oriented. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/type.html deleted file mode 100644 index 26b0ba4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/generic__stream_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -generic::stream_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator.html deleted file mode 100644 index dd19b6b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -get_associated_allocator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Helper function - to obtain an object's associated allocator. -

-
template<
-    typename T>
-associated_allocator< T >::type get_associated_allocator(
-    const T & t);
-  » more...
-
-template<
-    typename T,
-    typename Allocator>
-associated_allocator< T, Allocator >::type get_associated_allocator(
-    const T & t,
-    const Allocator & a);
-  » more...
-
-
- - Requirements -
-

- Header: asio/associated_allocator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload1.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload1.html deleted file mode 100644 index 0bc090b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -get_associated_allocator (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated allocator. -

-
template<
-    typename T>
-associated_allocator< T >::type get_associated_allocator(
-    const T & t);
-
-
- - Return - Value -
-

- associated_allocator<T>::get(t) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload2.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload2.html deleted file mode 100644 index 2406f83..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_allocator/overload2.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -get_associated_allocator (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated allocator. -

-
template<
-    typename T,
-    typename Allocator>
-associated_allocator< T, Allocator >::type get_associated_allocator(
-    const T & t,
-    const Allocator & a);
-
-
- - Return - Value -
-

- associated_allocator<T, Allocator>::get(t, a) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_executor.html deleted file mode 100644 index 6415cdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -get_associated_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Helper function - to obtain an object's associated executor. -

-
template<
-    typename T>
-associated_executor< T >::type get_associated_executor(
-    const T & t);
-  » more...
-
-template<
-    typename T,
-    typename Executor>
-associated_executor< T, Executor >::type get_associated_executor(
-    const T & t,
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename T,
-    typename ExecutionContext>
-associated_executor< T, typename ExecutionContext::executor_type >::type get_associated_executor(
-    const T & t,
-    ExecutionContext & ctx,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/associated_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload1.html deleted file mode 100644 index c3e175a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -get_associated_executor (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated executor. -

-
template<
-    typename T>
-associated_executor< T >::type get_associated_executor(
-    const T & t);
-
-
- - Return - Value -
-

- associated_executor<T>::get(t) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload2.html deleted file mode 100644 index f725891..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -get_associated_executor (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated executor. -

-
template<
-    typename T,
-    typename Executor>
-associated_executor< T, Executor >::type get_associated_executor(
-    const T & t,
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-
- - Return - Value -
-

- associated_executor<T, Executor>::get(t, ex) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload3.html deleted file mode 100644 index 18a7ed3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/get_associated_executor/overload3.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -get_associated_executor (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Helper function to obtain an object's associated executor. -

-
template<
-    typename T,
-    typename ExecutionContext>
-associated_executor< T, typename ExecutionContext::executor_type >::type get_associated_executor(
-    const T & t,
-    ExecutionContext & ctx,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - Return - Value -
-

- associated_executor<T, typename ExecutionContext::executor_type>get(t, - ctx.get_executor()) -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/handler_type.html b/Sources/Vendor/asio/doc/asio/reference/handler_type.html deleted file mode 100644 index cf92074..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/handler_type.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -handler_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use two-parameter version of async_result.) - Default handler type traits provided for all completion token types. -

-
template<
-    typename CompletionToken,
-    typename Signature,
-    typename  = void>
-struct handler_type
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-

- The handler type for the specific signature. -

-
-

- The handler_type - traits class is used for determining the concrete handler type to be used - for an asynchronous operation. It allows the handler type to be determined - at the point where the specific completion handler signature is known. -

-

- This template may be specialised for user-defined completion token types. -

-
- - Requirements -
-

- Header: asio/handler_type.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/handler_type/type.html b/Sources/Vendor/asio/doc/asio/reference/handler_type/type.html deleted file mode 100644 index 85103b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/handler_type/type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -handler_type::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The handler type for the - specific signature. -

-
typedef conditional< is_same< CompletionToken, typename decay< CompletionToken >::type >::value, decay< CompletionToken >, handler_type< typename decay< CompletionToken >::type, Signature > >::type::type type;
-
-
- - Requirements -
-

- Header: asio/handler_type.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/has_service.html b/Sources/Vendor/asio/doc/asio/reference/has_service.html deleted file mode 100644 index 18e2f70..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/has_service.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
template<
-    typename Service>
-bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/impl/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/high_resolution_timer.html b/Sources/Vendor/asio/doc/asio/reference/high_resolution_timer.html deleted file mode 100644 index 744bfe7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/high_resolution_timer.html +++ /dev/null @@ -1,467 +0,0 @@ - - - -high_resolution_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for a timer - based on the high resolution clock. -

-
typedef basic_waitable_timer< chrono::high_resolution_clock > high_resolution_timer;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type of the clock. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_point -

-
-

- The time point type of the clock. -

-
-

- traits_type -

-
-

- The wait traits type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_waitable_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_waitable_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancel - any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancels - one asynchronous operation that is waiting on the timer. -

-
-

- expires_after -

-
-

- Set the timer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - time.

Set the timer's expiry time as an absolute - time.

(Deprecated: Use non-error_code overload.) - Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - timer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the timer's expiry time as an absolute time. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_waitable_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_waitable_timer -

-
-

- Destroys the timer. -

-
-

- The basic_waitable_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- A waitable timer is always in one of two states: "expired" or "not - expired". If the wait() or async_wait() function - is called on an expired timer, the wait operation will complete immediately. -

-

- Most applications will use one of the steady_timer, - system_timer - or high_resolution_timer - typedefs. -

-
- - Remarks -
-

- This waitable timer functionality is for use with the C++11 standard library's - <chrono> facility, or with the Boost.Chrono library. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait (C++11): -

-
// Construct a timer without setting an expiry time.
-asio::steady_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_after(std::chrono::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait (C++11): -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::steady_timer timer(io_context,
-    std::chrono::steady_clock::now() + std::chrono::seconds(60));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active waitable timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_after(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_waitable_timer::expires_after() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-

- This typedef uses the C++11 <chrono> standard library - facility, if available. Otherwise, it may use the Boost.Chrono library. To - explicitly utilise Boost.Chrono, use the basic_waitable_timer - template directly: -

-
typedef basic_waitable_timer<boost::chrono::high_resolution_clock> timer;
-
-
- - Requirements -
-

- Header: asio/high_resolution_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner.html b/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner.html deleted file mode 100644 index e72f137..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -invalid_service_owner - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Exception thrown when trying to add a service object to an execution_context - where the service has a different owner. -

-
class invalid_service_owner
-
-
- - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- invalid_service_owner -

-
-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html b/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html deleted file mode 100644 index 46dc48f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/invalid_service_owner/invalid_service_owner.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -invalid_service_owner::invalid_service_owner - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
invalid_service_owner();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context.html deleted file mode 100644 index ffdfeeb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context.html +++ /dev/null @@ -1,714 +0,0 @@ - - - -io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides core I/O functionality. -

-
class io_context :
-  public execution_context
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- Executor used to submit functions to an io_context. -

-
-

- service -

-
-

- Base class for all io_context services. -

-
-

- strand -

-
-

- Provides serialised handler execution. -

-
-

- work -

-
-

- (Deprecated: Use executor_work_guard.) Class to inform the io_context - when it has work to do. -

-
-

- count_type -

-
-

- The type used to count the number of handlers executed by the context. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dispatch -

-
-

- (Deprecated: Use asio::dispatch().) Request the io_context to invoke - the given handler. -

-
-

- get_executor -

-
-

- Obtains the executor associated with the io_context. -

-
-

- io_context -

-
-

- Constructor. -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-

- poll -

-
-

- Run the io_context object's event processing loop to execute ready - handlers.

(Deprecated: Use non-error_code overload.) - Run the io_context object's event processing loop to execute ready - handlers. -

-
-

- poll_one -

-
-

- Run the io_context object's event processing loop to execute one - ready handler.

(Deprecated: Use non-error_code overload.) - Run the io_context object's event processing loop to execute one - ready handler. -

-
-

- post -

-
-

- (Deprecated: Use asio::post().) Request the io_context to invoke - the given handler and return immediately. -

-
-

- reset -

-
-

- (Deprecated: Use restart().) Reset the io_context in preparation - for a subsequent run() invocation. -

-
-

- restart -

-
-

- Restart the io_context in preparation for a subsequent run() invocation. -

-
-

- run -

-
-

- Run the io_context object's event processing loop.

- (Deprecated: Use non-error_code overload.) Run the io_context object's - event processing loop. -

-
-

- run_for -

-
-

- Run the io_context object's event processing loop for a specified - duration. -

-
-

- run_one -

-
-

- Run the io_context object's event processing loop to execute at - most one handler.

(Deprecated: Use non-error_code - overlaod.) Run the io_context object's event processing loop to - execute at most one handler. -

-
-

- run_one_for -

-
-

- Run the io_context object's event processing loop for a specified - duration to execute at most one handler. -

-
-

- run_one_until -

-
-

- Run the io_context object's event processing loop until a specified - time to execute at most one handler. -

-
-

- run_until -

-
-

- Run the io_context object's event processing loop until a specified - time. -

-
-

- stop -

-
-

- Stop the io_context object's event processing loop. -

-
-

- stopped -

-
-

- Determine whether the io_context object has been stopped. -

-
-

- wrap -

-
-

- (Deprecated: Use asio::bind_executor().) Create a new handler that - automatically dispatches the wrapped handler on the io_context. -

-
-

- ~io_context -

-
-

- Destructor. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

-

Obtain the service object corresponding to the given - type. -

-
-

- The io_context - class provides the core I/O functionality for users of the asynchronous I/O - objects, including: -

-
    -
  • - asio::ip::tcp::socket -
  • -
  • - asio::ip::tcp::acceptor -
  • -
  • - asio::ip::udp::socket -
  • -
  • - deadline_timer. -
  • -
-

- The io_context - class also includes facilities intended for developers of custom asynchronous - services. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe, with the - specific exceptions of the restart() and notify_fork() - functions. Calling restart() while there are unfinished run(), - run_one(), run_for(), run_until(), - poll() or poll_one() calls results in undefined - behaviour. The notify_fork() function should not be called while - any io_context - function, or any function on an I/O object that is associated with the io_context, is being - called in another thread. -

-
- - Synchronous - and asynchronous operations -
-

- Synchronous operations on I/O objects implicitly run the io_context - object for an individual operation. The io_context - functions run(), run_one(), run_for(), - run_until(), poll() or poll_one() - must be called for the io_context - to perform asynchronous operations on behalf of a C++ program. Notification - that an asynchronous operation has completed is delivered by invocation of - the associated handler. Handlers are invoked only by a thread that is currently - calling any overload of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - for the io_context. -

-
- - Effect - of exceptions thrown from handlers -
-

- If an exception is thrown from a handler, the exception is allowed to propagate - through the throwing thread's invocation of run(), run_one(), - run_for(), run_until(), poll() or - poll_one(). No other threads that are calling any of these functions - are affected. It is then the responsibility of the application to catch the - exception. -

-

- After the exception has been caught, the run(), run_one(), - run_for(), run_until(), poll() or - poll_one() call may be restarted without - the need for an intervening call to restart(). This allows the - thread to rejoin the io_context - object's thread pool without impacting any other threads in the pool. -

-

- For example: -

-
asio::io_context io_context;
-...
-for (;;)
-{
-  try
-  {
-    io_context.run();
-    break; // run() exited normally
-  }
-  catch (my_exception& e)
-  {
-    // Deal with exception as appropriate.
-  }
-}
-
-
- - Submitting - arbitrary tasks to the io_context -
-

- To submit functions to the io_context, - use the dispatch - , post or defer - free functions. -

-

- For example: -

-
void my_task()
-{
-  ...
-}
-
-...
-
-asio::io_context io_context;
-
-// Submit a function to the io_context.
-asio::post(io_context, my_task);
-
-// Submit a lambda object to the io_context.
-asio::post(io_context,
-    []()
-    {
-      ...
-    });
-
-// Run the io_context until it runs out of work.
-io_context.run();
-
-
- - Stopping - the io_context from running out of work -
-

- Some applications may need to prevent an io_context - object's run() call from returning when there is no more work - to do. For example, the io_context - may be being run in a background thread that is launched prior to the application's - asynchronous operations. The run() call may be kept running - by creating an object of type asio::executor_work_guard<io_context::executor_type>: -

-
asio::io_context io_context;
-asio::executor_work_guard<asio::io_context::executor_type>
-  = asio::make_work_guard(io_context);
-...
-
-

- To effect a shutdown, the application will then need to call the io_context - object's stop() member function. This will cause the io_context - run() call to return as soon as possible, abandoning unfinished - operations and without permitting ready handlers to be dispatched. -

-

- Alternatively, if the application requires that all operations and handlers - be allowed to finish normally, the work object may be explicitly reset. -

-
asio::io_context io_context;
-asio::executor_work_guard<asio::io_context::executor_type>
-  = asio::make_work_guard(io_context);
-...
-work.reset(); // Allow run() to exit.
-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/_io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context/_io_context.html deleted file mode 100644 index 73c080f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/_io_context.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -io_context::~io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~io_context();
-
-

- On destruction, the io_context - performs the following sequence of operations: -

-
    -
  • - For each service object svc in the io_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
  • -
  • - Uninvoked handler objects that were scheduled for deferred invocation - on the io_context, - or any associated strand, are destroyed. -
  • -
  • - For each service object svc in the io_context - set, in reverse order of the beginning of service object lifetime, - performs delete static_cast<io_context::service*>(svc). -
  • -
-
- - Remarks -
-

- The destruction sequence described above permits programs to simplify their - resource management by using shared_ptr<>. Where an - object's lifetime is tied to the lifetime of a connection (or some other - sequence of asynchronous operations), a shared_ptr to the - object would be bound into the handlers for all asynchronous operations - associated with it. This works as follows: -

-
    -
  • - When a single connection ends, all associated asynchronous operations - complete. The corresponding handler objects are destroyed, and all - shared_ptr references to the objects are destroyed. -
  • -
  • - To shut down the whole program, the io_context - function stop() is called to terminate any run() - calls as soon as possible. The io_context - destructor defined above destroys all handlers, causing all shared_ptr - references to all connection objects to be destroyed. -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/add_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context/add_service.html deleted file mode 100644 index e7a0d2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/add_service.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -io_context::add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -(Deprecated: - Use make_service().) Add a service object to the execution_context. -

-
template<
-    typename Service>
-friend void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/count_type.html b/Sources/Vendor/asio/doc/asio/reference/io_context/count_type.html deleted file mode 100644 index dd7ccea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/count_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -io_context::count_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type used to - count the number of handlers executed by the context. -

-
typedef std::size_t count_type;
-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/destroy.html b/Sources/Vendor/asio/doc/asio/reference/io_context/destroy.html deleted file mode 100644 index 78d3556..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/destroy.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -io_context::destroy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Destroys all services - in the context. -

-
void destroy();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order * of the beginning of service object lifetime, - performs delete static_cast<execution_context::service*>(svc). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/io_context/dispatch.html deleted file mode 100644 index c819129..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/dispatch.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -io_context::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use dispatch.) Request - the io_context - to invoke the given handler. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED dispatch(
-    LegacyCompletionHandler && handler);
-
-

- This function is used to ask the io_context - to execute the given handler. -

-

- The io_context - guarantees that the handler will only be called in a thread in which the - run(), run_one(), poll() or poll_one() - member functions is currently being invoked. The handler may be executed - inside this function if the guarantee can be met. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called. The io_context - will make a copy of the handler object as required. The function - signature of the handler must be: -

-
void handler();
-
-

-

-
-
-
-
- - Remarks -
-

- This function throws an exception only if: -

-
    -
  • - the handler's asio_handler_allocate function; or -
  • -
  • - the handler's copy constructor -
  • -
-

- throws an exception. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/fork_event.html b/Sources/Vendor/asio/doc/asio/reference/io_context/fork_event.html deleted file mode 100644 index e805b66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/fork_event.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -io_context::fork_event - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Fork-related event - notifications. -

-
enum fork_event
-
-

- - - -

-
- - Values -
-
-

-
-
fork_prepare
-

- Notify the context that the process is about to fork. -

-
fork_parent
-

- Notify the context that the process has forked and is the parent. -

-
fork_child
-

- Notify the context that the process has forked and is the child. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/io_context/get_executor.html deleted file mode 100644 index 153cc00..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -io_context::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtains the - executor associated with the io_context. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/has_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context/has_service.html deleted file mode 100644 index 6537539..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/has_service.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -io_context::has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Determine if - an execution_context - contains a specified service type. -

-
template<
-    typename Service>
-friend bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context/io_context.html deleted file mode 100644 index bcec8f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -io_context::io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
io_context();
-  » more...
-
-explicit io_context(
-    int concurrency_hint);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload1.html deleted file mode 100644 index bd120c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -io_context::io_context (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload2.html deleted file mode 100644 index 31d9d02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/io_context/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -io_context::io_context (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
io_context(
-    int concurrency_hint);
-
-

- Construct with a hint about the required level of concurrency. -

-
- - Parameters -
-
-

-
-
concurrency_hint
-

- A suggestion to the implementation on how many threads it should - allow to run simultaneously. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/make_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context/make_service.html deleted file mode 100644 index 68f9fde..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/make_service.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -io_context::make_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Creates a service - object and adds it to the execution_context. -

-
template<
-    typename Service,
-    typename... Args>
-friend Service & make_service(
-    execution_context & e,
-    Args &&... args);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
args
-

- Zero or more arguments to be passed to the service constructor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/io_context/notify_fork.html deleted file mode 100644 index 902ec88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/notify_fork.html +++ /dev/null @@ -1,120 +0,0 @@ - - - -io_context::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Notify the execution_context - of a fork-related event. -

-
void notify_fork(
-    fork_event event);
-
-

- This function is used to inform the execution_context - that the process is about to fork, or has just forked. This allows the - execution_context, - and the services it contains, to perform any necessary housekeeping to - ensure correct operation following a fork. -

-

- This function must not be called while any other execution_context - function, or any function associated with the execution_context's derived - class, is being called in another thread. It is, however, safe to call - this function from within a completion handler, provided no other thread - is accessing the execution_context - or its derived class. -

-
- - Parameters -
-
-

-
-
event
-

- A fork-related event. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the notification fails the execution_context - object should no longer be used and should be destroyed. -

-
-
-
- - Example -
-

- The following code illustrates how to incorporate the notify_fork() - function: -

-
my_execution_context.notify_fork(execution_context::fork_prepare);
-if (fork() == 0)
-{
-  // This is the child process.
-  my_execution_context.notify_fork(execution_context::fork_child);
-}
-else
-{
-  // This is the parent process.
-  my_execution_context.notify_fork(execution_context::fork_parent);
-}
-
-
- - Remarks -
-

- For each service object svc in the execution_context - set, performs svc->notify_fork();. When processing the - fork_prepare event, services are visited in reverse order of the beginning - of service object lifetime. Otherwise, services are visited in order of - the beginning of service object lifetime. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll.html deleted file mode 100644 index e64fbe2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -io_context::poll - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop to execute ready handlers. -

-
count_type poll();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop to execute ready handlers. -

-
count_type poll(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload1.html deleted file mode 100644 index e136fb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -io_context::poll (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Run the io_context - object's event processing loop to execute ready handlers. -

-
count_type poll();
-
-

- The poll() function runs handlers that are ready to run, - without blocking, until the io_context - has been stopped or there are no more ready handlers. -

-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload2.html deleted file mode 100644 index 891ab20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll/overload2.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -io_context::poll (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop to execute ready handlers. -

-
count_type poll(
-    asio::error_code & ec);
-
-

- The poll() function runs handlers that are ready to run, - without blocking, until the io_context - has been stopped or there are no more ready handlers. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one.html deleted file mode 100644 index 9ed8164..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -io_context::poll_one - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop to execute one ready handler. -

-
count_type poll_one();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop to execute one ready handler. -

-
count_type poll_one(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload1.html deleted file mode 100644 index 9881084..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload1.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -io_context::poll_one (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Run the io_context - object's event processing loop to execute one ready handler. -

-
count_type poll_one();
-
-

- The poll_one() function runs at most one handler that is - ready to run, without blocking. -

-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload2.html deleted file mode 100644 index 5ef8329..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/poll_one/overload2.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -io_context::poll_one (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop to execute one ready handler. -

-
count_type poll_one(
-    asio::error_code & ec);
-
-

- The poll_one() function runs at most one handler that is - ready to run, without blocking. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/post.html b/Sources/Vendor/asio/doc/asio/reference/io_context/post.html deleted file mode 100644 index ab6ac90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/post.html +++ /dev/null @@ -1,97 +0,0 @@ - - - -io_context::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use post.) - Request the io_context - to invoke the given handler and return immediately. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED post(
-    LegacyCompletionHandler && handler);
-
-

- This function is used to ask the io_context - to execute the given handler, but without allowing the io_context - to call the handler from inside this function. -

-

- The io_context - guarantees that the handler will only be called in a thread in which the - run(), run_one(), poll() or poll_one() - member functions is currently being invoked. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called. The io_context - will make a copy of the handler object as required. The function - signature of the handler must be: -

-
void handler();
-
-

-

-
-
-
-
- - Remarks -
-

- This function throws an exception only if: -

-
    -
  • - the handler's asio_handler_allocate function; or -
  • -
  • - the handler's copy constructor -
  • -
-

- throws an exception. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/reset.html b/Sources/Vendor/asio/doc/asio/reference/io_context/reset.html deleted file mode 100644 index 38f4049..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/reset.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::reset - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use restart().) - Reset the io_context - in preparation for a subsequent run() invocation. -

-
void reset();
-
-

- This function must be called prior to any second or later set of invocations - of the run(), run_one(), poll() - or poll_one() functions when a previous invocation of these - functions returned due to the io_context - being stopped or running out of work. After a call to restart(), - the io_context - object's stopped() function will return false. -

-

- This function must not be called while there are any unfinished calls to - the run(), run_one(), poll() or - poll_one() functions. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/restart.html b/Sources/Vendor/asio/doc/asio/reference/io_context/restart.html deleted file mode 100644 index 1cbae73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/restart.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -io_context::restart - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Restart the io_context - in preparation for a subsequent run() invocation. -

-
void restart();
-
-

- This function must be called prior to any second or later set of invocations - of the run(), run_one(), poll() - or poll_one() functions when a previous invocation of these - functions returned due to the io_context - being stopped or running out of work. After a call to restart(), - the io_context - object's stopped() function will return false. -

-

- This function must not be called while there are any unfinished calls to - the run(), run_one(), poll() or - poll_one() functions. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run.html deleted file mode 100644 index dd2f09c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -io_context::run - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop. -

-
count_type run();
-  » more...
-
-

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop. -

-
count_type run(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload1.html deleted file mode 100644 index 685560d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -io_context::run (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Run the io_context - object's event processing loop. -

-
count_type run();
-
-

- The run() function blocks until all work has finished and - there are no more handlers to be dispatched, or until the io_context - has been stopped. -

-

- Multiple threads may call the run() function to set up a - pool of threads from which the io_context - may execute handlers. All threads that are waiting in the pool are equivalent - and the io_context - may choose any one of them to invoke a handler. -

-

- A normal exit from the run() function implies that the - io_context - object is stopped (the stopped() function returns true). - Subsequent calls to run(), run_one(), poll() - or poll_one() will return immediately unless there is a - prior call to restart(). -

-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - Remarks -
-

- Calling the run() function from a thread that is currently - calling one of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - on the same io_context - object may introduce the potential for deadlock. It is the caller's reponsibility - to avoid this. -

-

- The poll() function may also be used to dispatch ready handlers, - but without blocking. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload2.html deleted file mode 100644 index c297938..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run/overload2.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -io_context::run (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overload.) Run the io_context - object's event processing loop. -

-
count_type run(
-    asio::error_code & ec);
-
-

- The run() function blocks until all work has finished and - there are no more handlers to be dispatched, or until the io_context - has been stopped. -

-

- Multiple threads may call the run() function to set up a - pool of threads from which the io_context - may execute handlers. All threads that are waiting in the pool are equivalent - and the io_context - may choose any one of them to invoke a handler. -

-

- A normal exit from the run() function implies that the - io_context - object is stopped (the stopped() function returns true). - Subsequent calls to run(), run_one(), poll() - or poll_one() will return immediately unless there is a - prior call to restart(). -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - Remarks -
-

- Calling the run() function from a thread that is currently - calling one of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - on the same io_context - object may introduce the potential for deadlock. It is the caller's reponsibility - to avoid this. -

-

- The poll() function may also be used to dispatch ready handlers, - but without blocking. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_for.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_for.html deleted file mode 100644 index b09f396..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_for.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -io_context::run_for - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop for a specified duration. -

-
template<
-    typename Rep,
-    typename Period>
-std::size_t run_for(
-    const chrono::duration< Rep, Period > & rel_time);
-
-

- The run_for() function blocks until all work has finished - and there are no more handlers to be dispatched, until the io_context - has been stopped, or until the specified duration has elapsed. -

-
- - Parameters -
-
-

-
-
rel_time
-

- The duration for which the call may block. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one.html deleted file mode 100644 index 4216d69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -io_context::run_one - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop to execute at most one handler. -

-
count_type run_one();
-  » more...
-
-

- (Deprecated: Use non-error_code overlaod.) Run the io_context - object's event processing loop to execute at most one handler. -

-
count_type run_one(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload1.html deleted file mode 100644 index 33a5a2a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -io_context::run_one (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Run the io_context - object's event processing loop to execute at most one handler. -

-
count_type run_one();
-
-

- The run_one() function blocks until one handler has been - dispatched, or until the io_context - has been stopped. -

-
- - Return - Value -
-

- The number of handlers that were executed. A zero return value implies - that the io_context - object is stopped (the stopped() function returns true). - Subsequent calls to run(), run_one(), poll() - or poll_one() will return immediately unless there is a - prior call to restart(). -

-
- - Remarks -
-

- Calling the run_one() function from a thread that is currently - calling one of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - on the same io_context - object may introduce the potential for deadlock. It is the caller's reponsibility - to avoid this. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload2.html deleted file mode 100644 index c816968..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -io_context::run_one (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use non-error_code overlaod.) Run the io_context - object's event processing loop to execute at most one handler. -

-
count_type run_one(
-    asio::error_code & ec);
-
-

- The run_one() function blocks until one handler has been - dispatched, or until the io_context - has been stopped. -

-
- - Return - Value -
-

- The number of handlers that were executed. A zero return value implies - that the io_context - object is stopped (the stopped() function returns true). - Subsequent calls to run(), run_one(), poll() - or poll_one() will return immediately unless there is a - prior call to restart(). -

-

- The number of handlers that were executed. -

-
- - Remarks -
-

- Calling the run_one() function from a thread that is currently - calling one of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - on the same io_context - object may introduce the potential for deadlock. It is the caller's reponsibility - to avoid this. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_for.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_for.html deleted file mode 100644 index e18aca9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_for.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -io_context::run_one_for - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context object's - event processing loop for a specified duration to execute at most one handler. -

-
template<
-    typename Rep,
-    typename Period>
-std::size_t run_one_for(
-    const chrono::duration< Rep, Period > & rel_time);
-
-

- The run_one_for() function blocks until one handler has been - dispatched, until the io_context - has been stopped, or until the specified duration has elapsed. -

-
- - Parameters -
-
-

-
-
rel_time
-

- The duration for which the call may block. -

-
-
-
- - Return Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_until.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_until.html deleted file mode 100644 index 4fa37db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_one_until.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -io_context::run_one_until - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the - io_context - object's event processing loop until a specified time to execute at most - one handler. -

-
template<
-    typename Clock,
-    typename Duration>
-std::size_t run_one_until(
-    const chrono::time_point< Clock, Duration > & abs_time);
-
-

- The run_one_until() function blocks until one handler has - been dispatched, until the io_context - has been stopped, or until the specified time has been reached. -

-
- - Parameters -
-
-

-
-
abs_time
-

- The time point until which the call may block. -

-
-
-
- - Return Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/run_until.html b/Sources/Vendor/asio/doc/asio/reference/io_context/run_until.html deleted file mode 100644 index 015906a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/run_until.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -io_context::run_until - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Run the io_context - object's event processing loop until a specified time. -

-
template<
-    typename Clock,
-    typename Duration>
-std::size_t run_until(
-    const chrono::time_point< Clock, Duration > & abs_time);
-
-

- The run_until() function blocks until all work has finished - and there are no more handlers to be dispatched, until the io_context - has been stopped, or until the specified time has been reached. -

-
- - Parameters -
-
-

-
-
abs_time
-

- The time point until which the call may block. -

-
-
-
- - Return - Value -
-

- The number of handlers that were executed. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/io_context/shutdown.html deleted file mode 100644 index 1c283e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/shutdown.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -io_context::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Shuts down all services - in the context. -

-
void shutdown();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/stop.html b/Sources/Vendor/asio/doc/asio/reference/io_context/stop.html deleted file mode 100644 index 54c4095..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/stop.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -io_context::stop - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Stop the io_context - object's event processing loop. -

-
void stop();
-
-

- This function does not block, but instead simply signals the io_context - to stop. All invocations of its run() or run_one() - member functions should return as soon as possible. Subsequent calls to - run(), run_one(), poll() or poll_one() - will return immediately until restart() is called. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/stopped.html b/Sources/Vendor/asio/doc/asio/reference/io_context/stopped.html deleted file mode 100644 index 774aa86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/stopped.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -io_context::stopped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether the - io_context - object has been stopped. -

-
bool stopped() const;
-
-

- This function is used to determine whether an io_context - object has been stopped, either through an explicit call to stop(), - or due to running out of work. When an io_context - object is stopped, calls to run(), run_one(), - poll() or poll_one() will return immediately - without invoking any handlers. -

-
- - Return - Value -
-

- true if the io_context - object is stopped, otherwise false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context/use_service.html deleted file mode 100644 index 222ca50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -io_context::use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-  » more...
-
-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload1.html deleted file mode 100644 index 1254be7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload1.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -io_context::use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services - that inherit from io_context::service. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload2.html deleted file mode 100644 index cdb0f40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/use_service/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -io_context::use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context/wrap.html b/Sources/Vendor/asio/doc/asio/reference/io_context/wrap.html deleted file mode 100644 index c5f72e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context/wrap.html +++ /dev/null @@ -1,100 +0,0 @@ - - - -io_context::wrap - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use bind_executor.) - Create a new handler that automatically dispatches the wrapped handler - on the io_context. -

-
template<
-    typename Handler>
-unspecified wrap(
-    Handler handler);
-
-

- This function is used to create a new handler function object that, when - invoked, will automatically pass the wrapped handler to the io_context - object's dispatch function. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be wrapped. The io_context - will make a copy of the handler object as required. The function - signature of the handler must be: -

-
void handler(A1 a1, ... An an);
-
-

-

-
-
-
-
- - Return - Value -
-

- A function object that, when invoked, passes the wrapped handler to the - io_context - object's dispatch function. Given a function object with the signature: -

-
R f(A1 a1, ... An an);
-
-

- If this function object is passed to the wrap function like so: -

-
io_context.wrap(f);
-
-

- then the return value is a function object with the signature -

-
void g(A1 a1, ... An an);
-
-

- that, when invoked, executes code equivalent to: -

-
io_context.dispatch(boost::bind(f, a1, ... an));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type.html deleted file mode 100644 index 0488e46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type.html +++ /dev/null @@ -1,208 +0,0 @@ - - - -io_context::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Executor used to submit functions to an io_context. -

-
class executor_type
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/context.html deleted file mode 100644 index 1e75ace..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -io_context::executor_type::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the underlying execution context. -

-
io_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/defer.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/defer.html deleted file mode 100644 index 8073687..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/defer.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -io_context::executor_type::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the io_context - to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the io_context - to execute the given function object. The function object will never be - executed inside defer(). Instead, it will be scheduled to - run on the io_context. -

-

- If the current thread belongs to the io_context, - defer() will delay scheduling the function object until the - current thread returns control to the pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/dispatch.html deleted file mode 100644 index e8c12ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/dispatch.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -io_context::executor_type::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the io_context - to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the io_context - to execute the given function object. If the current thread is running - the io_context, - dispatch() executes the function before returning. Otherwise, - the function will be scheduled to run on the io_context. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_finished.html deleted file mode 100644 index f079a40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_finished.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -io_context::executor_type::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the io_context - that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- This function is used to inform the io_context - that some work has finished. Once the count of unfinished work reaches - zero, the io_context - is stopped and the run() and run_one() functions - may exit. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_started.html deleted file mode 100644 index c22df69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/on_work_started.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -io_context::executor_type::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the io_context - that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- This function is used to inform the io_context - that some work has begun. This ensures that the io_context's run() - and run_one() functions do not exit while the work is underway. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_eq__eq_.html deleted file mode 100644 index 64649c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_eq__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::executor_type::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for equality. -

-
friend bool operator==(
-    const executor_type & a,
-    const executor_type & b);
-
-

- Two executors are equal if they refer to the same underlying io_context. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_not__eq_.html deleted file mode 100644 index 112b16e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/operator_not__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::executor_type::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for inequality. -

-
friend bool operator!=(
-    const executor_type & a,
-    const executor_type & b);
-
-

- Two executors are equal if they refer to the same underlying io_context. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/post.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/post.html deleted file mode 100644 index ed4488d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/post.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -io_context::executor_type::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the io_context - to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the io_context - to execute the given function object. The function object will never be - executed inside post(). Instead, it will be scheduled to run - on the io_context. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/running_in_this_thread.html b/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/running_in_this_thread.html deleted file mode 100644 index da3f4f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__executor_type/running_in_this_thread.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -io_context::executor_type::running_in_this_thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the io_context - is running in the current thread. -

-
bool running_in_this_thread() const;
-
-
- - Return - Value -
-

- true if the current thread is running the io_context. - Otherwise returns false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service.html deleted file mode 100644 index 7e00b9c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -io_context::service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Base class for all io_context - services. -

-
class service
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_io_context -

-
-

- Get the io_context object that owns the service. -

-
-

- get_io_service -

-
-

- Get the io_context object that owns the service. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- service -

-
-

- Constructor. -

-
-

- ~service -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service/_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service/_service.html deleted file mode 100644 index 8a4e257..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service/_service.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -io_context::service::~service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_context.html deleted file mode 100644 index 4159f53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -io_context::service::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the io_context - object that owns the service. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_service.html deleted file mode 100644 index bf003d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -io_context::service::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the io_context - object that owns the service. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__service/service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__service/service.html deleted file mode 100644 index 34616b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__service/service.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -io_context::service::service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
service(
-    asio::io_context & owner);
-
-
- - Parameters -
-
-

-
-
owner
-

- The io_context - object that owns the service. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand.html deleted file mode 100644 index 66ded8e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand.html +++ /dev/null @@ -1,363 +0,0 @@ - - - -io_context::strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides serialised handler execution. -

-
class strand
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the strand to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the strand to invoke the given function object.
-
(Deprecated: Use asio::dispatch().) Request the strand to - invoke the given handler. -

-
-

- get_io_context -

-
-

- (Deprecated: Use context().) Get the io_context associated with - the strand. -

-
-

- get_io_service -

-
-

- (Deprecated: Use context().) Get the io_context associated with - the strand. -

-
-

- on_work_finished -

-
-

- Inform the strand that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the strand that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the strand to invoke the given function object.
-
(Deprecated: Use asio::post().) Request the strand to invoke - the given handler and return immediately. -

-
-

- running_in_this_thread -

-
-

- Determine whether the strand is running in the current thread. -

-
-

- strand -

-
-

- Constructor. -

-
-

- wrap -

-
-

- (Deprecated: Use asio::bind_executor().) Create a new handler that - automatically dispatches the wrapped handler on the strand. -

-
-

- ~strand -

-
-

- Destructor. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two strands for inequality. -

-
-

- operator== -

-
-

- Compare two strands for equality. -

-
-

- The io_context::strand - class provides the ability to post and dispatch handlers with the guarantee - that none of those handlers will execute concurrently. -

-
- - Order - of handler invocation -
-

- Given: -

-
    -
  • - a strand object s -
  • -
  • - an object a meeting completion handler requirements -
  • -
  • - an object a1 which is an arbitrary copy of a - made by the implementation -
  • -
  • - an object b meeting completion handler requirements -
  • -
  • - an object b1 which is an arbitrary copy of b - made by the implementation -
  • -
-

- if any of the following conditions are true: -

-
    -
  • - s.post(a) happens-before s.post(b) -
  • -
  • - s.post(a) happens-before s.dispatch(b), where - the latter is performed outside the strand -
  • -
  • - s.dispatch(a) happens-before s.post(b), where - the former is performed outside the strand -
  • -
  • - s.dispatch(a) happens-before s.dispatch(b), - where both are performed outside the strand -
  • -
-

- then asio_handler_invoke(a1, &a1) happens-before asio_handler_invoke(b1, - &b1). -

-

- Note that in the following case: -

-
async_op_1(..., s.wrap(a));
-async_op_2(..., s.wrap(b));
-
-

- the completion of the first async operation will perform s.dispatch(a), - and the second will perform s.dispatch(b), but the order in - which those are performed is unspecified. That is, you cannot state whether - one happens-before the other. Therefore none of the above conditions are - met and no ordering guarantee is made. -

-
- - Remarks -
-

- The implementation makes no guarantee that handlers posted or dispatched - through different strand objects will be invoked concurrently. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/io_context_strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/_strand.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/_strand.html deleted file mode 100644 index 36c9294..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/_strand.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -io_context::strand::~strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~strand();
-
-

- Destroys a strand. -

-

- Handlers posted through the strand that have not yet been invoked will - still be dispatched in a way that meets the guarantee of non-concurrency. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/context.html deleted file mode 100644 index 32a88da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -io_context::strand::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the underlying execution context. -

-
asio::io_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/defer.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/defer.html deleted file mode 100644 index 07bc42a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/defer.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -io_context::strand::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the - strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled to run by the underlying io_context. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch.html deleted file mode 100644 index 41e0aa9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -io_context::strand::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-  » more...
-
-

- (Deprecated: Use dispatch.) - Request the strand to invoke the given handler. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED dispatch(
-    LegacyCompletionHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html deleted file mode 100644 index 9b2e776..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -io_context::strand::dispatch (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Request the strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the strand to execute the given function - object on its underlying io_context. - The function object will be executed inside this function if the strand - is not otherwise busy and if the underlying io_context's executor's - dispatch() function is also able to execute the function - before returning. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy - of the handler object as required. The function signature of the - function object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html deleted file mode 100644 index dbe4147..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/dispatch/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -io_context::strand::dispatch (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use dispatch.) - Request the strand to invoke the given handler. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED dispatch(
-    LegacyCompletionHandler && handler);
-
-

- This function is used to ask the strand to execute the given handler. -

-

- The strand object guarantees that handlers posted or dispatched through - the strand will not be executed concurrently. The handler may be executed - inside this function if the guarantee can be met. If this function is - called from within a handler that was posted or dispatched through the - same strand, then the new handler will be executed immediately. -

-

- The strand's guarantee is in addition to the guarantee provided by the - underlying io_context. - The io_context - guarantees that the handler will only be called in a thread in which - the io_context's run member function is currently being invoked. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called. The strand will make a copy of the handler - object as required. The function signature of the handler must - be: -

-
void handler();
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_context.html deleted file mode 100644 index da1c0cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::strand::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use context().) Get the io_context - associated with the strand. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the strand uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the strand will use to dispatch handlers. Ownership is not - transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_service.html deleted file mode 100644 index a210c3e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -io_context::strand::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use context().) Get the io_context - associated with the strand. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the strand uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the strand will use to dispatch handlers. Ownership is not - transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_finished.html deleted file mode 100644 index 8caa753..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_finished.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -io_context::strand::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the strand that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- The strand delegates this call to its underlying io_context. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_started.html deleted file mode 100644 index 3827708..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/on_work_started.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -io_context::strand::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the strand that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- The strand delegates this call to its underlying io_context. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html deleted file mode 100644 index 2308725..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_eq__eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -io_context::strand::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two strands for equality. -

-
friend bool operator==(
-    const strand & a,
-    const strand & b);
-
-

- Two strands are equal if they refer to the same ordered, non-concurrent - state. -

-
- - Requirements -
-

- Header: asio/io_context_strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html deleted file mode 100644 index 860c703..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/operator_not__eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -io_context::strand::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two strands for inequality. -

-
friend bool operator!=(
-    const strand & a,
-    const strand & b);
-
-

- Two strands are equal if they refer to the same ordered, non-concurrent - state. -

-
- - Requirements -
-

- Header: asio/io_context_strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post.html deleted file mode 100644 index e437598..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -io_context::strand::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the - strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-  » more...
-
-

- (Deprecated: Use post.) - Request the strand to invoke the given handler and return immediately. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED post(
-    LegacyCompletionHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload1.html deleted file mode 100644 index 13a5317..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload1.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -io_context::strand::post (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Request the strand to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled to run by the underlying io_context. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy - of the handler object as required. The function signature of the - function object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload2.html deleted file mode 100644 index 7728b82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/post/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -io_context::strand::post (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use post.) - Request the strand to invoke the given handler and return immediately. -

-
template<
-    typename LegacyCompletionHandler>
-DEDUCED post(
-    LegacyCompletionHandler && handler);
-
-

- This function is used to ask the strand to execute the given handler, - but without allowing the strand to call the handler from inside this - function. -

-

- The strand object guarantees that handlers posted or dispatched through - the strand will not be executed concurrently. The strand's guarantee - is in addition to the guarantee provided by the underlying io_context. - The io_context - guarantees that the handler will only be called in a thread in which - the io_context's run member function is currently being invoked. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called. The strand will make a copy of the handler - object as required. The function signature of the handler must - be: -

-
void handler();
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html deleted file mode 100644 index fb666d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/running_in_this_thread.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -io_context::strand::running_in_this_thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the strand is running in the current thread. -

-
bool running_in_this_thread() const;
-
-
- - Return - Value -
-

- true if the current thread is executing a handler that was - submitted to the strand using post(), dispatch() - or wrap(). Otherwise returns false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/strand.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/strand.html deleted file mode 100644 index 1bd5a95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/strand.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -io_context::strand::strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
strand(
-    asio::io_context & io_context);
-
-

- Constructs the strand. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the strand will use to dispatch handlers that are ready - to be run. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/wrap.html b/Sources/Vendor/asio/doc/asio/reference/io_context__strand/wrap.html deleted file mode 100644 index 7be2d30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__strand/wrap.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -io_context::strand::wrap - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use bind_executor.) - Create a new handler that automatically dispatches the wrapped handler - on the strand. -

-
template<
-    typename Handler>
-unspecified wrap(
-    Handler handler);
-
-

- This function is used to create a new handler function object that, when - invoked, will automatically pass the wrapped handler to the strand's dispatch - function. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be wrapped. The strand will make a copy of the handler - object as required. The function signature of the handler must be: -

-
void handler(A1 a1, ... An an);
-
-

-

-
-
-
-
- - Return Value -
-

- A function object that, when invoked, passes the wrapped handler to the - strand's dispatch function. Given a function object with the signature: -

-
R f(A1 a1, ... An an);
-
-

- If this function object is passed to the wrap function like so: -

-
strand.wrap(f);
-
-

- then the return value is a function object with the signature -

-
void g(A1 a1, ... An an);
-
-

- that, when invoked, executes code equivalent to: -

-
strand.dispatch(boost::bind(f, a1, ... an));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work.html deleted file mode 100644 index 3f31d62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work.html +++ /dev/null @@ -1,138 +0,0 @@ - - - -io_context::work - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use executor_work_guard.) - Class to inform the io_context - when it has work to do. -

-
class work
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_io_context -

-
-

- Get the io_context associated with the work. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_io_context().) Get the io_context associated - with the work. -

-
-

- work -

-
-

- Constructor notifies the io_context that work is starting.
-
Copy constructor notifies the io_context that work is starting. -

-
-

- ~work -

-
-

- Destructor notifies the io_context that the work is complete. -

-
-

- The work class is used to inform the io_context - when work starts and finishes. This ensures that the io_context - object's run() function will not exit while work is underway, - and that it does exit when there is no unfinished work remaining. -

-

- The work class is copy-constructible so that it may be used as a data member - in a handler class. It is not assignable. -

-
- - Requirements -
-

- Header: asio/io_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/_work.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/_work.html deleted file mode 100644 index 82963a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/_work.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -io_context::work::~work - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor notifies - the io_context - that the work is complete. -

-
~work();
-
-

- The destructor is used to inform the io_context - that some work has finished. Once the count of unfinished work reaches - zero, the io_context - object's run() function is permitted to exit. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_context.html deleted file mode 100644 index 01d4436..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -io_context::work::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the io_context - associated with the work. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_service.html deleted file mode 100644 index 4c81f0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -io_context::work::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_io_context().) Get the io_context - associated with the work. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/work.html deleted file mode 100644 index 089f604..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -io_context::work::work - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor notifies - the io_context - that work is starting. -

-
explicit work(
-    asio::io_context & io_context);
-  » more...
-
-

- Copy constructor notifies the io_context - that work is starting. -

-
work(
-    const work & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload1.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload1.html deleted file mode 100644 index fa032ee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload1.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -io_context::work::work (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor notifies the io_context - that work is starting. -

-
work(
-    asio::io_context & io_context);
-
-

- The constructor is used to inform the io_context - that some work has begun. This ensures that the io_context - object's run() function will not exit while the work is - underway. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload2.html b/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload2.html deleted file mode 100644 index dd5f69c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_context__work/work/overload2.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -io_context::work::work (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor notifies the io_context - that work is starting. -

-
work(
-    const work & other);
-
-

- The constructor is used to inform the io_context - that some work has begun. This ensures that the io_context - object's run() function will not exit while the work is - underway. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/io_service.html b/Sources/Vendor/asio/doc/asio/reference/io_service.html deleted file mode 100644 index cffeb73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/io_service.html +++ /dev/null @@ -1,714 +0,0 @@ - - - -io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for backwards compatibility. -

-
typedef io_context io_service;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- Executor used to submit functions to an io_context. -

-
-

- service -

-
-

- Base class for all io_context services. -

-
-

- strand -

-
-

- Provides serialised handler execution. -

-
-

- work -

-
-

- (Deprecated: Use executor_work_guard.) Class to inform the io_context - when it has work to do. -

-
-

- count_type -

-
-

- The type used to count the number of handlers executed by the context. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dispatch -

-
-

- (Deprecated: Use asio::dispatch().) Request the io_context to invoke - the given handler. -

-
-

- get_executor -

-
-

- Obtains the executor associated with the io_context. -

-
-

- io_context -

-
-

- Constructor. -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-

- poll -

-
-

- Run the io_context object's event processing loop to execute ready - handlers.

(Deprecated: Use non-error_code overload.) - Run the io_context object's event processing loop to execute ready - handlers. -

-
-

- poll_one -

-
-

- Run the io_context object's event processing loop to execute one - ready handler.

(Deprecated: Use non-error_code overload.) - Run the io_context object's event processing loop to execute one - ready handler. -

-
-

- post -

-
-

- (Deprecated: Use asio::post().) Request the io_context to invoke - the given handler and return immediately. -

-
-

- reset -

-
-

- (Deprecated: Use restart().) Reset the io_context in preparation - for a subsequent run() invocation. -

-
-

- restart -

-
-

- Restart the io_context in preparation for a subsequent run() invocation. -

-
-

- run -

-
-

- Run the io_context object's event processing loop.

- (Deprecated: Use non-error_code overload.) Run the io_context object's - event processing loop. -

-
-

- run_for -

-
-

- Run the io_context object's event processing loop for a specified - duration. -

-
-

- run_one -

-
-

- Run the io_context object's event processing loop to execute at - most one handler.

(Deprecated: Use non-error_code - overlaod.) Run the io_context object's event processing loop to - execute at most one handler. -

-
-

- run_one_for -

-
-

- Run the io_context object's event processing loop for a specified - duration to execute at most one handler. -

-
-

- run_one_until -

-
-

- Run the io_context object's event processing loop until a specified - time to execute at most one handler. -

-
-

- run_until -

-
-

- Run the io_context object's event processing loop until a specified - time. -

-
-

- stop -

-
-

- Stop the io_context object's event processing loop. -

-
-

- stopped -

-
-

- Determine whether the io_context object has been stopped. -

-
-

- wrap -

-
-

- (Deprecated: Use asio::bind_executor().) Create a new handler that - automatically dispatches the wrapped handler on the io_context. -

-
-

- ~io_context -

-
-

- Destructor. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

-

Obtain the service object corresponding to the given - type. -

-
-

- The io_context - class provides the core I/O functionality for users of the asynchronous I/O - objects, including: -

-
    -
  • - asio::ip::tcp::socket -
  • -
  • - asio::ip::tcp::acceptor -
  • -
  • - asio::ip::udp::socket -
  • -
  • - deadline_timer. -
  • -
-

- The io_context - class also includes facilities intended for developers of custom asynchronous - services. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe, with the - specific exceptions of the restart() and notify_fork() - functions. Calling restart() while there are unfinished run(), - run_one(), run_for(), run_until(), - poll() or poll_one() calls results in undefined - behaviour. The notify_fork() function should not be called while - any io_context - function, or any function on an I/O object that is associated with the io_context, is being - called in another thread. -

-
- - Synchronous - and asynchronous operations -
-

- Synchronous operations on I/O objects implicitly run the io_context - object for an individual operation. The io_context - functions run(), run_one(), run_for(), - run_until(), poll() or poll_one() - must be called for the io_context - to perform asynchronous operations on behalf of a C++ program. Notification - that an asynchronous operation has completed is delivered by invocation of - the associated handler. Handlers are invoked only by a thread that is currently - calling any overload of run(), run_one(), run_for(), - run_until(), poll() or poll_one() - for the io_context. -

-
- - Effect - of exceptions thrown from handlers -
-

- If an exception is thrown from a handler, the exception is allowed to propagate - through the throwing thread's invocation of run(), run_one(), - run_for(), run_until(), poll() or - poll_one(). No other threads that are calling any of these functions - are affected. It is then the responsibility of the application to catch the - exception. -

-

- After the exception has been caught, the run(), run_one(), - run_for(), run_until(), poll() or - poll_one() call may be restarted without - the need for an intervening call to restart(). This allows the - thread to rejoin the io_context - object's thread pool without impacting any other threads in the pool. -

-

- For example: -

-
asio::io_context io_context;
-...
-for (;;)
-{
-  try
-  {
-    io_context.run();
-    break; // run() exited normally
-  }
-  catch (my_exception& e)
-  {
-    // Deal with exception as appropriate.
-  }
-}
-
-
- - Submitting - arbitrary tasks to the io_context -
-

- To submit functions to the io_context, - use the dispatch - , post or defer - free functions. -

-

- For example: -

-
void my_task()
-{
-  ...
-}
-
-...
-
-asio::io_context io_context;
-
-// Submit a function to the io_context.
-asio::post(io_context, my_task);
-
-// Submit a lambda object to the io_context.
-asio::post(io_context,
-    []()
-    {
-      ...
-    });
-
-// Run the io_context until it runs out of work.
-io_context.run();
-
-
- - Stopping - the io_context from running out of work -
-

- Some applications may need to prevent an io_context - object's run() call from returning when there is no more work - to do. For example, the io_context - may be being run in a background thread that is launched prior to the application's - asynchronous operations. The run() call may be kept running - by creating an object of type asio::executor_work_guard<io_context::executor_type>: -

-
asio::io_context io_context;
-asio::executor_work_guard<asio::io_context::executor_type>
-  = asio::make_work_guard(io_context);
-...
-
-

- To effect a shutdown, the application will then need to call the io_context - object's stop() member function. This will cause the io_context - run() call to return as soon as possible, abandoning unfinished - operations and without permitting ready handlers to be dispatched. -

-

- Alternatively, if the application requires that all operations and handlers - be allowed to finish normally, the work object may be explicitly reset. -

-
asio::io_context io_context;
-asio::executor_work_guard<asio::io_context::executor_type>
-  = asio::make_work_guard(io_context);
-...
-work.reset(); // Allow run() to exit.
-
-
- - Requirements -
-

- Header: asio/io_service.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address.html b/Sources/Vendor/asio/doc/asio/reference/ip__address.html deleted file mode 100644 index 8cc3ea2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address.html +++ /dev/null @@ -1,375 +0,0 @@ - - - -ip::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Implements version-independent IP addresses. -

-
class address
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Default constructor.

Construct an address from an - IPv4 address.

Construct an address from an IPv6 address. -

Copy constructor. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address().) Create an address from an IPv4 - address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- is_v4 -

-
-

- Get whether the address is an IP version 4 address. -

-
-

- is_v6 -

-
-

- Get whether the address is an IP version 6 address. -

-
-

- operator= -

-
-

- Assign from another address.

Assign from an IPv4 - address.

Assign from an IPv6 address. -

-
-

- to_string -

-
-

- Get the address as a string.

(Deprecated: Use other - overload.) Get the address as a string. -

-
-

- to_v4 -

-
-

- Get the address as an IP version 4 address. -

-
-

- to_v6 -

-
-

- Get the address as an IP version 6 address. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address -

-
-

- Create an address from an IPv4 address string in dotted decimal - form, or from an IPv6 address in hexadecimal notation. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-
-

- The ip::address - class provides the ability to use either IP version 4 or version 6 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address.html deleted file mode 100644 index 49e39e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ip::address::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default constructor. -

-
address();
-  » more...
-
-

- Construct an address from an IPv4 address. -

-
address(
-    const asio::ip::address_v4 & ipv4_address);
-  » more...
-
-

- Construct an address from an IPv6 address. -

-
address(
-    const asio::ip::address_v6 & ipv6_address);
-  » more...
-
-

- Copy constructor. -

-
address(
-    const address & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload1.html deleted file mode 100644 index 397d611..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address::address (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
address();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload2.html deleted file mode 100644 index 2020b91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::address (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from an IPv4 address. -

-
address(
-    const asio::ip::address_v4 & ipv4_address);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload3.html deleted file mode 100644 index ab1f24a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::address (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from an IPv6 address. -

-
address(
-    const asio::ip::address_v6 & ipv6_address);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload4.html deleted file mode 100644 index 2130988..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/address/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::address (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
address(
-    const address & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string.html deleted file mode 100644 index 1ec2f6f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address::from_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_address().) Create an address from an IPv4 address - string in dotted decimal form, or from an IPv6 address in hexadecimal notation. -

-
static address from_string(
-    const char * str);
-  » more...
-
-static address from_string(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-static address from_string(
-    const std::string & str);
-  » more...
-
-static address from_string(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload1.html deleted file mode 100644 index 047762a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::from_string (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address().) Create an address from - an IPv4 address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
static address from_string(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload2.html deleted file mode 100644 index c258343..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address::from_string (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address().) Create an address from - an IPv4 address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
static address from_string(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload3.html deleted file mode 100644 index d709e79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload3.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::from_string (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address().) Create an address from - an IPv4 address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
static address from_string(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload4.html deleted file mode 100644 index bff74f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/from_string/overload4.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address::from_string (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address().) Create an address from - an IPv4 address string in dotted decimal form, or from an IPv6 address - in hexadecimal notation. -

-
static address from_string(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_loopback.html deleted file mode 100644 index 01cd4b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether - the address is a loopback address. -

-
bool is_loopback() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_multicast.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_multicast.html deleted file mode 100644 index a3eb5c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_multicast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_multicast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a multicast address. -

-
bool is_multicast() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_unspecified.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_unspecified.html deleted file mode 100644 index 161eb15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_unspecified.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_unspecified - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is unspecified. -

-
bool is_unspecified() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v4.html deleted file mode 100644 index 0cb89f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get whether the address - is an IP version 4 address. -

-
bool is_v4() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v6.html deleted file mode 100644 index f1fe19c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/is_v6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::is_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get whether the address - is an IP version 6 address. -

-
bool is_v6() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address.html deleted file mode 100644 index 6fd9fa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -ip::address::make_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create an - address from an IPv4 address string in dotted decimal form, or from an - IPv6 address in hexadecimal notation. -

-
address make_address(
-    const char * str);
-  » more...
-
-address make_address(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-address make_address(
-    const std::string & str);
-  » more...
-
-address make_address(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-address make_address(
-    string_view str);
-  » more...
-
-address make_address(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload1.html deleted file mode 100644 index 43650d0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address::make_address (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload2.html deleted file mode 100644 index 2428568..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::make_address (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload3.html deleted file mode 100644 index e857b27..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address::make_address (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload4.html deleted file mode 100644 index b300918..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::make_address (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload5.html deleted file mode 100644 index d309944..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload5.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address::make_address (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload6.html deleted file mode 100644 index de9f16d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/make_address/overload6.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address::make_address (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an address from an IPv4 address string in dotted decimal form, - or from an IPv6 address in hexadecimal notation. -

-
address make_address(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_.html deleted file mode 100644 index 5427e82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::address::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign from - another address. -

-
address & operator=(
-    const address & other);
-  » more...
-
-

- Assign from an IPv4 address. -

-
address & operator=(
-    const asio::ip::address_v4 & ipv4_address);
-  » more...
-
-

- Assign from an IPv6 address. -

-
address & operator=(
-    const asio::ip::address_v6 & ipv6_address);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html deleted file mode 100644 index 0ca499c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::operator= (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign from another address. -

-
address & operator=(
-    const address & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html deleted file mode 100644 index 4b74044..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::operator= (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign from an IPv4 address. -

-
address & operator=(
-    const asio::ip::address_v4 & ipv4_address);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html deleted file mode 100644 index 02b8249..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq_/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::operator= (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign from an IPv6 address. -

-
address & operator=(
-    const asio::ip::address_v6 & ipv6_address);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq__eq_.html deleted file mode 100644 index b425538..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for equality. -

-
friend bool operator==(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt_.html deleted file mode 100644 index 18cd8db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare addresses - for ordering. -

-
friend bool operator>(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt__eq_.html deleted file mode 100644 index 0f5147c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>=(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt_.html deleted file mode 100644 index 392cc77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare addresses - for ordering. -

-
friend bool operator<(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__eq_.html deleted file mode 100644 index 6f6aa76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<=(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__lt_.html deleted file mode 100644 index b881805..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_lt__lt_.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ip::address::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address & addr);
-
-

- Used to output a human-readable string for a specified address. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
addr
-

- The address to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_not__eq_.html deleted file mode 100644 index f375f6f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for inequality. -

-
friend bool operator!=(
-    const address & a1,
-    const address & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string.html deleted file mode 100644 index ef256b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::address::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as a string. -

-
std::string to_string() const;
-  » more...
-
-

- (Deprecated: Use other overload.) Get the address as a string. -

-
std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload1.html deleted file mode 100644 index 4c6e5a1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the address as a string. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload2.html deleted file mode 100644 index 41c7d88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_string/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use other overload.) Get the address as a string. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v4.html deleted file mode 100644 index b67410c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::to_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address as an IP - version 4 address. -

-
asio::ip::address_v4 to_v4() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v6.html deleted file mode 100644 index 5379895..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address/to_v6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address::to_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address as an IP - version 6 address. -

-
asio::ip::address_v6 to_v6() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4.html deleted file mode 100644 index fc261d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4.html +++ /dev/null @@ -1,528 +0,0 @@ - - - -ip::address_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Implements IP version 4 style addresses. -

-
class address_v4
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-

- uint_type -

-
-

- The type used to represent an address as an unsigned integer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v4 -

-
-

- Default constructor.

Construct an address from raw - bytes.

Construct an address from an unsigned integer - in host byte order.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- broadcast -

-
-

- Obtain an address object that represents the broadcast address. -

(Deprecated: Use network_v4 class.) Obtain an address - object that represents the broadcast address that corresponds to - the specified address and netmask. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v4().) Create an address from an - IP address string in dotted decimal form. -

-
-

- is_class_a -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class A address. -

-
-

- is_class_b -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class B address. -

-
-

- is_class_c -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class C address. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- netmask -

-
-

- (Deprecated: Use network_v4 class.) Obtain the netmask that corresponds - to the address, based on its address class. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string in dotted decimal format.

- (Deprecated: Use other overload.) Get the address as a string in - dotted decimal format. -

-
-

- to_uint -

-
-

- Get the address as an unsigned integer in host byte order. -

-
-

- to_ulong -

-
-

- Get the address as an unsigned long in host byte order. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v4 -

-
-

- Create an IPv4 address from raw bytes in network order. -

-

- Create an IPv4 address from an unsigned integer in host byte order. -

-

- Create an IPv4 address from an IP address string in dotted decimal - form. -

-

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
-

- make_network_v4 -

-
-

- Create an IPv4 network from an address and prefix length. -

-

- Create an IPv4 network from an address and netmask. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v4 - class provides the ability to use and manipulate IP version 4 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4.html deleted file mode 100644 index ee8c7b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -ip::address_v4::address_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
address_v4();
-  » more...
-
-

- Construct an address from raw bytes. -

-
explicit address_v4(
-    const bytes_type & bytes);
-  » more...
-
-

- Construct an address from an unsigned integer in host byte order. -

-
explicit address_v4(
-    uint_type addr);
-  » more...
-
-

- Copy constructor. -

-
address_v4(
-    const address_v4 & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html deleted file mode 100644 index 446fed1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v4::address_v4 (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
address_v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html deleted file mode 100644 index 6262331..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::address_v4 (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from raw bytes. -

-
address_v4(
-    const bytes_type & bytes);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html deleted file mode 100644 index 2dbbca0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::address_v4 (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from an unsigned integer in host byte order. -

-
address_v4(
-    uint_type addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html deleted file mode 100644 index 38b6257..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/address_v4/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::address_v4 (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
address_v4(
-    const address_v4 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/any.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/any.html deleted file mode 100644 index 2ef3dc8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/any.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::any - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address object - that represents any address. -

-
static address_v4 any();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast.html deleted file mode 100644 index f949652..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::address_v4::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an - address object that represents the broadcast address. -

-
static address_v4 broadcast();
-  » more...
-
-

- (Deprecated: Use ip::network_v4 - class.) Obtain an address object that represents the broadcast address - that corresponds to the specified address and netmask. -

-
static address_v4 broadcast(
-    const address_v4 & addr,
-    const address_v4 & mask);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html deleted file mode 100644 index 7f81255..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v4::broadcast (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Obtain an address object that represents the broadcast address. -

-
static address_v4 broadcast();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html deleted file mode 100644 index 8bd6c7d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/broadcast/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address_v4::broadcast (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use ip::network_v4 - class.) Obtain an address object that represents the broadcast address - that corresponds to the specified address and netmask. -

-
static address_v4 broadcast(
-    const address_v4 & addr,
-    const address_v4 & mask);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/bytes_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/bytes_type.html deleted file mode 100644 index 3a773f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/bytes_type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -ip::address_v4::bytes_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - used to represent an address as an array of bytes. -

-
typedef array< unsigned char, 4 > bytes_type;
-
-
- - Remarks -
-

- This type is defined in terms of the C++0x template std::array - when it is available. Otherwise, it uses boost:array. -

-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string.html deleted file mode 100644 index 1a29b53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address_v4::from_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_address_v4().) Create an address from an IP address - string in dotted decimal form. -

-
static address_v4 from_string(
-    const char * str);
-  » more...
-
-static address_v4 from_string(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-static address_v4 from_string(
-    const std::string & str);
-  » more...
-
-static address_v4 from_string(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html deleted file mode 100644 index 6384e40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::from_string (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v4().) Create an address from - an IP address string in dotted decimal form. -

-
static address_v4 from_string(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html deleted file mode 100644 index b736135..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v4::from_string (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v4().) Create an address from - an IP address string in dotted decimal form. -

-
static address_v4 from_string(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html deleted file mode 100644 index acf8da5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::from_string (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v4().) Create an address from - an IP address string in dotted decimal form. -

-
static address_v4 from_string(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html deleted file mode 100644 index cdc3d7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/from_string/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v4::from_string (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v4().) Create an address from - an IP address string in dotted decimal form. -

-
static address_v4 from_string(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_a.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_a.html deleted file mode 100644 index 848ff9a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_a.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::is_class_a - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use ip::network_v4 - class.) Determine whether the address is a class A address. -

-
bool is_class_a() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_b.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_b.html deleted file mode 100644 index b685f98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_b.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::is_class_b - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use ip::network_v4 - class.) Determine whether the address is a class B address. -

-
bool is_class_b() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_c.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_c.html deleted file mode 100644 index ef38ebd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_class_c.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::is_class_c - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use ip::network_v4 - class.) Determine whether the address is a class C address. -

-
bool is_class_c() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_loopback.html deleted file mode 100644 index 3c8acb0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::is_loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a loopback address. -

-
bool is_loopback() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_multicast.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_multicast.html deleted file mode 100644 index b62de01..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_multicast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::is_multicast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a multicast address. -

-
bool is_multicast() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_unspecified.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_unspecified.html deleted file mode 100644 index a237f63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/is_unspecified.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::is_unspecified - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is unspecified. -

-
bool is_unspecified() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/loopback.html deleted file mode 100644 index 2c2ca52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - object that represents the loopback address. -

-
static address_v4 loopback();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4.html deleted file mode 100644 index 3c3257c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -ip::address_v4::make_address_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv4 address from raw bytes in network order. -

-
address_v4 make_address_v4(
-    const address_v4::bytes_type & bytes);
-  » more...
-
-

- Create an IPv4 address from an unsigned integer in host byte order. -

-
address_v4 make_address_v4(
-    address_v4::uint_type addr);
-  » more...
-
-

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const char * str);
-  » more...
-
-address_v4 make_address_v4(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-address_v4 make_address_v4(
-    const std::string & str);
-  » more...
-
-address_v4 make_address_v4(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-address_v4 make_address_v4(
-    string_view str);
-  » more...
-
-address_v4 make_address_v4(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
address_v4 make_address_v4(
-    v4_mapped_t ,
-    const address_v6 & v6_addr);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html deleted file mode 100644 index d8acee9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (1 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from raw bytes in network order. -

-
address_v4 make_address_v4(
-    const address_v4::bytes_type & bytes);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html deleted file mode 100644 index 2d1c49a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (2 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an unsigned integer in host byte order. -

-
address_v4 make_address_v4(
-    address_v4::uint_type addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html deleted file mode 100644 index 2a3903d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (3 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html deleted file mode 100644 index d88119c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload4.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_address_v4 (4 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html deleted file mode 100644 index 154eecc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload5.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (5 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html deleted file mode 100644 index ccf58be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload6.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_address_v4 (6 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html deleted file mode 100644 index e931b38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload7.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::make_address_v4 (7 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html deleted file mode 100644 index 22f237d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload8.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_address_v4 (8 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from an IP address string in dotted decimal form. -

-
address_v4 make_address_v4(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html deleted file mode 100644 index 2630785..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_address_v4/overload9.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_address_v4 (9 of 9 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
address_v4 make_address_v4(
-    v4_mapped_t ,
-    const address_v6 & v6_addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4.html deleted file mode 100644 index 1bd7547..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::address_v4::make_network_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv4 network from an address and prefix length. -

-
network_v4 make_network_v4(
-    const address_v4 & addr,
-    unsigned short prefix_len);
-  » more...
-
-

- Create an IPv4 network from an address and netmask. -

-
network_v4 make_network_v4(
-    const address_v4 & addr,
-    const address_v4 & mask);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html deleted file mode 100644 index 343f2b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_network_v4 (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from an address and prefix length. -

-
network_v4 make_network_v4(
-    const address_v4 & addr,
-    unsigned short prefix_len);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html deleted file mode 100644 index 6fdb515..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/make_network_v4/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::make_network_v4 (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from an address and netmask. -

-
network_v4 make_network_v4(
-    const address_v4 & addr,
-    const address_v4 & mask);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/netmask.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/netmask.html deleted file mode 100644 index c0a9442..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/netmask.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address_v4::netmask - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use ip::network_v4 - class.) Obtain the netmask that corresponds to the address, based on its - address class. -

-
static address_v4 netmask(
-    const address_v4 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq_.html deleted file mode 100644 index 1a2f77e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another address. -

-
address_v4 & operator=(
-    const address_v4 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html deleted file mode 100644 index d380d5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for equality. -

-
friend bool operator==(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt_.html deleted file mode 100644 index 5cb12f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html deleted file mode 100644 index 680319e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>=(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt_.html deleted file mode 100644 index 0f9f5d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html deleted file mode 100644 index 8371f27..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<=(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html deleted file mode 100644 index a4c3ec1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address_v4::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address_v4 & addr);
-  » more...
-
-

- Output a network as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const network_v4 & net);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html deleted file mode 100644 index b1260a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::address_v4::operator<< (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Output an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address_v4 & addr);
-
-

- Used to output a human-readable string for a specified address. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
addr
-

- The address to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html deleted file mode 100644 index bcfac08..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_lt__lt_/overload2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::address_v4::operator<< (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Output a network as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const network_v4 & net);
-
-

- Used to output a human-readable string for a specified network. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
net
-

- The network to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html deleted file mode 100644 index e1093af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v4::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for inequality. -

-
friend bool operator!=(
-    const address_v4 & a1,
-    const address_v4 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_bytes.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_bytes.html deleted file mode 100644 index 67e01f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_bytes.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::to_bytes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - in bytes, in network byte order. -

-
bytes_type to_bytes() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string.html deleted file mode 100644 index 9b285a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::address_v4::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as a string in dotted decimal format. -

-
std::string to_string() const;
-  » more...
-
-

- (Deprecated: Use other overload.) Get the address as a string in dotted - decimal format. -

-
std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html deleted file mode 100644 index e8201aa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v4::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the address as a string in dotted decimal format. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html deleted file mode 100644 index ad9a164..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_string/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v4::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use other overload.) Get the address as a string in dotted - decimal format. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_uint.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_uint.html deleted file mode 100644 index 1eb574a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_uint.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::to_uint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as an unsigned integer in host byte order. -

-
uint_type to_uint() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_ulong.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_ulong.html deleted file mode 100644 index 092d4fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/to_ulong.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v4::to_ulong - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as an unsigned long in host byte order. -

-
unsigned long to_ulong() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/uint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/uint_type.html deleted file mode 100644 index d061c7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4/uint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::address_v4::uint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - used to represent an address as an unsigned integer. -

-
typedef uint_least32_t uint_type;
-
-
- - Requirements -
-

- Header: asio/ip/address_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_iterator.html deleted file mode 100644 index 096f690..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_iterator.html +++ /dev/null @@ -1,297 +0,0 @@ - - - -ip::address_v4_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An input iterator - that can be used for traversing IPv4 addresses. -

-
typedef basic_address_iterator< address_v4 > address_v4_iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address.
-
Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_range.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_range.html deleted file mode 100644 index 5d0f9a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v4_range.html +++ /dev/null @@ -1,207 +0,0 @@ - - - -ip::address_v4_range - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Represents a range - of IPv4 addresses. -

-
typedef basic_address_range< address_v4 > address_v4_range;
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- iterator -

-
-

- The type of an iterator that points into the range. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_range -

-
-

- Construct an empty range.

Construct an range that - represents the given range of addresses.

Copy constructor. -

-
-

- begin -

-
-

- Obtain an iterator that points to the start of the range. -

-
-

- empty -

-
-

- Determine whether the range is empty. -

-
-

- end -

-
-

- Obtain an iterator that points to the end of the range. -

-
-

- find -

-
-

- Find an address in the range. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-

- size -

-
-

- Return the size of the range. -

-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6.html deleted file mode 100644 index bf6c932..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6.html +++ /dev/null @@ -1,576 +0,0 @@ - - - -ip::address_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Implements IP version 6 style addresses. -

-
class address_v6
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v6 -

-
-

- Default constructor.

Construct an address from raw - bytes and scope ID.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv6 address from - an IP address string. -

-
-

- is_link_local -

-
-

- Determine whether the address is link local. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_multicast_global -

-
-

- Determine whether the address is a global multicast address. -

-
-

- is_multicast_link_local -

-
-

- Determine whether the address is a link-local multicast address. -

-
-

- is_multicast_node_local -

-
-

- Determine whether the address is a node-local multicast address. -

-
-

- is_multicast_org_local -

-
-

- Determine whether the address is a org-local multicast address. -

-
-

- is_multicast_site_local -

-
-

- Determine whether the address is a site-local multicast address. -

-
-

- is_site_local -

-
-

- Determine whether the address is site local. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- is_v4_compatible -

-
-

- (Deprecated: No replacement.) Determine whether the address is - an IPv4-compatible address. -

-
-

- is_v4_mapped -

-
-

- Determine whether the address is a mapped IPv4 address. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- scope_id -

-
-

- The scope ID of the address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string.

(Deprecated: Use other - overload.) Get the address as a string. -

-
-

- to_v4 -

-
-

- (Deprecated: Use make_address_v4().) Converts an IPv4-mapped or - IPv4-compatible address to an IPv4 address. -

-
-

- v4_compatible -

-
-

- (Deprecated: No replacement.) Create an IPv4-compatible IPv6 address. -

-
-

- v4_mapped -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv4-mapped IPv6 - address. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v6 -

-
-

- Create an IPv6 address from raw bytes and scope ID. -

-

- Create an IPv6 address from an IP address string. -

-

- Createan IPv6 address from an IP address string. -

-

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
-

- make_network_v6 -

-
-

- Create an IPv6 network from an address and prefix length. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v6 - class provides the ability to use and manipulate IP version 6 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6.html deleted file mode 100644 index 5a03c25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::address_v6::address_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
address_v6();
-  » more...
-
-

- Construct an address from raw bytes and scope ID. -

-
explicit address_v6(
-    const bytes_type & bytes,
-    unsigned long scope_id = 0);
-  » more...
-
-

- Copy constructor. -

-
address_v6(
-    const address_v6 & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html deleted file mode 100644 index e0fb1db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v6::address_v6 (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
address_v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html deleted file mode 100644 index a693a0d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::address_v6 (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an address from raw bytes and scope ID. -

-
address_v6(
-    const bytes_type & bytes,
-    unsigned long scope_id = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html deleted file mode 100644 index f29a274..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/address_v6/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::address_v6 (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
address_v6(
-    const address_v6 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/any.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/any.html deleted file mode 100644 index a77601c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/any.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::any - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address object - that represents any address. -

-
static address_v6 any();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/bytes_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/bytes_type.html deleted file mode 100644 index 9a9d526..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/bytes_type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -ip::address_v6::bytes_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - used to represent an address as an array of bytes. -

-
typedef array< unsigned char, 16 > bytes_type;
-
-
- - Remarks -
-

- This type is defined in terms of the C++0x template std::array - when it is available. Otherwise, it uses boost:array. -

-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string.html deleted file mode 100644 index d55190a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address_v6::from_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_address_v6().) Create an IPv6 address from an IP - address string. -

-
static address_v6 from_string(
-    const char * str);
-  » more...
-
-static address_v6 from_string(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-static address_v6 from_string(
-    const std::string & str);
-  » more...
-
-static address_v6 from_string(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html deleted file mode 100644 index 1899961..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::from_string (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v6().) Create an IPv6 address - from an IP address string. -

-
static address_v6 from_string(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html deleted file mode 100644 index 30e54ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v6::from_string (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v6().) Create an IPv6 address - from an IP address string. -

-
static address_v6 from_string(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html deleted file mode 100644 index 30e53bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::from_string (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v6().) Create an IPv6 address - from an IP address string. -

-
static address_v6 from_string(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html deleted file mode 100644 index 1cd68a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/from_string/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v6::from_string (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use make_address_v6().) Create an IPv6 address - from an IP address string. -

-
static address_v6 from_string(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_link_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_link_local.html deleted file mode 100644 index f7fd597..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_link_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_link_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is link local. -

-
bool is_link_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_loopback.html deleted file mode 100644 index 284bbd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a loopback address. -

-
bool is_loopback() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast.html deleted file mode 100644 index cb02335..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a multicast address. -

-
bool is_multicast() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html deleted file mode 100644 index 7d9b3de..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_global.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_global - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a global multicast address. -

-
bool is_multicast_global() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html deleted file mode 100644 index cf207c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_link_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_link_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a link-local multicast address. -

-
bool is_multicast_link_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html deleted file mode 100644 index 0e7f73e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_node_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_node_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a node-local multicast address. -

-
bool is_multicast_node_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html deleted file mode 100644 index ab002d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_org_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_org_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a org-local multicast address. -

-
bool is_multicast_org_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html deleted file mode 100644 index 30ae9bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_multicast_site_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_multicast_site_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a site-local multicast address. -

-
bool is_multicast_site_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_site_local.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_site_local.html deleted file mode 100644 index e901da5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_site_local.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_site_local - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is site local. -

-
bool is_site_local() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_unspecified.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_unspecified.html deleted file mode 100644 index 67103b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_unspecified.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_unspecified - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is unspecified. -

-
bool is_unspecified() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html deleted file mode 100644 index 8ecf351..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_compatible.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_v4_compatible - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - No replacement.) Determine whether the address is an IPv4-compatible address. -

-
bool is_v4_compatible() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html deleted file mode 100644 index 12dfdf4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/is_v4_mapped.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::is_v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the address is a mapped IPv4 address. -

-
bool is_v4_mapped() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/loopback.html deleted file mode 100644 index a22f74b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/loopback.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - object that represents the loopback address. -

-
static address_v6 loopback();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6.html deleted file mode 100644 index 3b9d83b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -ip::address_v6::make_address_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv6 address from raw bytes and scope ID. -

-
address_v6 make_address_v6(
-    const address_v6::bytes_type & bytes,
-    unsigned long scope_id = 0);
-  » more...
-
-

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const char * str);
-  » more...
-
-address_v6 make_address_v6(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-

- Createan IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const std::string & str);
-  » more...
-
-address_v6 make_address_v6(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-address_v6 make_address_v6(
-    string_view str);
-  » more...
-
-address_v6 make_address_v6(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
address_v6 make_address_v6(
-    v4_mapped_t ,
-    const address_v4 & v4_addr);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html deleted file mode 100644 index 0a38a2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (1 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from raw bytes and scope ID. -

-
address_v6 make_address_v6(
-    const address_v6::bytes_type & bytes,
-    unsigned long scope_id = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html deleted file mode 100644 index 4d96256..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::make_address_v6 (2 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html deleted file mode 100644 index c52ba5a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (3 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html deleted file mode 100644 index 953135a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::make_address_v6 (4 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Createan IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html deleted file mode 100644 index cec368c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload5.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (5 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html deleted file mode 100644 index 2ad7afb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::make_address_v6 (6 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html deleted file mode 100644 index 16ca491..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload7.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (7 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 address from an IP address string. -

-
address_v6 make_address_v6(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html deleted file mode 100644 index 88ee66b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_address_v6/overload8.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::make_address_v6 (8 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
address_v6 make_address_v6(
-    v4_mapped_t ,
-    const address_v4 & v4_addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_network_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_network_v6.html deleted file mode 100644 index a3e70bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/make_network_v6.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v6::make_network_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv6 network from an address and prefix length. -

-
network_v6 make_network_v6(
-    const address_v6 & addr,
-    unsigned short prefix_len);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq_.html deleted file mode 100644 index 222df54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another address. -

-
address_v6 & operator=(
-    const address_v6 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html deleted file mode 100644 index f98ef91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for equality. -

-
friend bool operator==(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt_.html deleted file mode 100644 index c41150f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html deleted file mode 100644 index 712b996..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator>=(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt_.html deleted file mode 100644 index 349455e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html deleted file mode 100644 index f371084..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - addresses for ordering. -

-
friend bool operator<=(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html deleted file mode 100644 index 8ef5e5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::address_v6::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address_v6 & addr);
-  » more...
-
-

- Output a network as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const network_v6 & net);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html deleted file mode 100644 index 40c034a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::address_v6::operator<< (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Output an address as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const address_v6 & addr);
-
-

- Used to output a human-readable string for a specified address. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
addr
-

- The address to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html deleted file mode 100644 index 3eec043..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_lt__lt_/overload2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::address_v6::operator<< (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Output a network as a string. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const network_v6 & net);
-
-

- Used to output a human-readable string for a specified network. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
net
-

- The network to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html deleted file mode 100644 index 9a37011..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::address_v6::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two addresses for inequality. -

-
friend bool operator!=(
-    const address_v6 & a1,
-    const address_v6 & a2);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id.html deleted file mode 100644 index f3713c6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::address_v6::scope_id - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The scope ID - of the address. -

-
unsigned long scope_id() const;
-  » more...
-
-void scope_id(
-    unsigned long id);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html deleted file mode 100644 index c475ccc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::address_v6::scope_id (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The scope ID of the address. -

-
unsigned long scope_id() const;
-
-

- Returns the scope ID associated with the IPv6 address. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html deleted file mode 100644 index b942e09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/scope_id/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::address_v6::scope_id (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The scope ID of the address. -

-
void scope_id(
-    unsigned long id);
-
-

- Modifies the scope ID associated with the IPv6 address. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_bytes.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_bytes.html deleted file mode 100644 index 40a2f33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_bytes.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::to_bytes - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - in bytes, in network byte order. -

-
bytes_type to_bytes() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string.html deleted file mode 100644 index 07fa278..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::address_v6::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the address - as a string. -

-
std::string to_string() const;
-  » more...
-
-

- (Deprecated: Use other overload.) Get the address as a string. -

-
std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html deleted file mode 100644 index 1f24767..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::address_v6::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the address as a string. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html deleted file mode 100644 index f6d1a22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_string/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::address_v6::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use other overload.) Get the address as a string. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_v4.html deleted file mode 100644 index 3986fb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/to_v4.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::to_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: Use - make_address_v4().) Converts an IPv4-mapped or IPv4-compatible - address to an IPv4 address. -

-
address_v4 to_v4() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_compatible.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_compatible.html deleted file mode 100644 index 8cd66e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_compatible.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::v4_compatible - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - No replacement.) Create an IPv4-compatible IPv6 address. -

-
static address_v6 v4_compatible(
-    const address_v4 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_mapped.html deleted file mode 100644 index 89cb666..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6/v4_mapped.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::address_v6::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use make_address_v6().) Create an IPv4-mapped IPv6 address. -

-
static address_v6 v4_mapped(
-    const address_v4 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_iterator.html deleted file mode 100644 index 15802bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_iterator.html +++ /dev/null @@ -1,297 +0,0 @@ - - - -ip::address_v6_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An input iterator - that can be used for traversing IPv6 addresses. -

-
typedef basic_address_iterator< address_v6 > address_v6_iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address.
-
Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_range.html b/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_range.html deleted file mode 100644 index 0dbab84..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__address_v6_range.html +++ /dev/null @@ -1,195 +0,0 @@ - - - -ip::address_v6_range - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Represents a range - of IPv6 addresses. -

-
typedef basic_address_range< address_v6 > address_v6_range;
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- iterator -

-
-

- The type of an iterator that points into the range. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_range -

-
-

- Construct an empty range.

Construct an range that - represents the given range of addresses.

Copy constructor. -

-
-

- begin -

-
-

- Obtain an iterator that points to the start of the range. -

-
-

- empty -

-
-

- Determine whether the range is empty. -

-
-

- end -

-
-

- Obtain an iterator that points to the end of the range. -

-
-

- find -

-
-

- Find an address in the range. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast.html b/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast.html deleted file mode 100644 index 8943366..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -ip::bad_address_cast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Thrown to indicate a failed address conversion. -

-
class bad_address_cast
-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bad_address_cast -

-
-

- Default constructor. -

-
-

- what -

-
-

- Get the message associated with the exception. -

-
-

- ~bad_address_cast -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/ip/bad_address_cast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html b/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html deleted file mode 100644 index 9a76d42..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/_bad_address_cast.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::bad_address_cast::~bad_address_cast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~bad_address_cast();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html b/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html deleted file mode 100644 index 23393a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/bad_address_cast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::bad_address_cast::bad_address_cast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
bad_address_cast();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/what.html b/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/what.html deleted file mode 100644 index 8d574e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__bad_address_cast/what.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::bad_address_cast::what - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - message associated with the exception. -

-
virtual const char * what() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html deleted file mode 100644 index 6d88ab6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An input iterator that can be used for traversing IPv4 addresses. -

-
template<>
-class basic_address_iterator< address_v4 >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address.
-
Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html deleted file mode 100644 index 078c7fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::basic_address_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator that points to the specified address. -

-
basic_address_iterator(
-    const address_v4 & addr);
-  » more...
-
-

- Copy constructor. -

-
basic_address_iterator(
-    const basic_address_iterator & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html deleted file mode 100644 index f1d8d9b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::basic_address_iterator (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an iterator that points to the specified address. -

-
basic_address_iterator(
-    const address_v4 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html deleted file mode 100644 index 7a0017e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::basic_address_iterator (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_address_iterator(
-    const basic_address_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html deleted file mode 100644 index 9f212fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Distance between two iterators. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html deleted file mode 100644 index d664000..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Denotes that the iterator satisfies the input iterator requirements. -

-
typedef std::input_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html deleted file mode 100644 index c7185e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference the iterator. -

-
const address_v4 & operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html deleted file mode 100644 index c8744fc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference the iterator. -

-
const address_v4 * operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html deleted file mode 100644 index 6a4d17e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
basic_address_iterator & operator=(
-    const basic_address_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html deleted file mode 100644 index b5e7c75..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two addresses for equality. -

-
friend bool operator==(
-    const basic_address_iterator & a,
-    const basic_address_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html deleted file mode 100644 index e160b58..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator-- - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Pre-decrement operator. -

-
basic_address_iterator & operator--();
-  » more...
-
-

- Post-decrement operator. -

-
basic_address_iterator operator--(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html deleted file mode 100644 index ec52adf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator-- (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Pre-decrement operator. -

-
basic_address_iterator & operator--();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html deleted file mode 100644 index a643cd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator-- (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Post-decrement operator. -

-
basic_address_iterator operator--(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html deleted file mode 100644 index d60f497..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two addresses for inequality. -

-
friend bool operator!=(
-    const basic_address_iterator & a,
-    const basic_address_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html deleted file mode 100644 index 4fa0df8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Pre-increment operator. -

-
basic_address_iterator & operator++();
-  » more...
-
-

- Post-increment operator. -

-
basic_address_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html deleted file mode 100644 index 96baa18..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Pre-increment operator. -

-
basic_address_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html deleted file mode 100644 index e9fe157..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Post-increment operator. -

-
basic_address_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html deleted file mode 100644 index 25bdea4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a pointer to an element pointed to by the iterator. -

-
typedef const address_v4 * pointer;
-
-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html deleted file mode 100644 index bc73ee6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html +++ /dev/null @@ -1,532 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a reference to an element pointed to by the - iterator. -

-
typedef const address_v4 & reference;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-

- uint_type -

-
-

- The type used to represent an address as an unsigned integer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v4 -

-
-

- Default constructor.

Construct an address from - raw bytes.

Construct an address from an unsigned - integer in host byte order.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- broadcast -

-
-

- Obtain an address object that represents the broadcast address. -

(Deprecated: Use network_v4 class.) Obtain an address - object that represents the broadcast address that corresponds - to the specified address and netmask. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v4().) Create an address from an - IP address string in dotted decimal form. -

-
-

- is_class_a -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class A address. -

-
-

- is_class_b -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class B address. -

-
-

- is_class_c -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class C address. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- netmask -

-
-

- (Deprecated: Use network_v4 class.) Obtain the netmask that corresponds - to the address, based on its address class. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string in dotted decimal format.
-
(Deprecated: Use other overload.) Get the address as a - string in dotted decimal format. -

-
-

- to_uint -

-
-

- Get the address as an unsigned integer in host byte order. -

-
-

- to_ulong -

-
-

- Get the address as an unsigned long in host byte order. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v4 -

-
-

- Create an IPv4 address from raw bytes in network order. -

-

- Create an IPv4 address from an unsigned integer in host byte - order. -

-

- Create an IPv4 address from an IP address string in dotted decimal - form. -

-

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
-

- make_network_v4 -

-
-

- Create an IPv4 network from an address and prefix length. -

-

- Create an IPv4 network from an address and netmask. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v4 - class provides the ability to use and manipulate IP version 4 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html deleted file mode 100644 index bfe1b82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html +++ /dev/null @@ -1,531 +0,0 @@ - - - -ip::basic_address_iterator< address_v4 >::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of the elements pointed to by the iterator. -

-
typedef address_v4 value_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-

- uint_type -

-
-

- The type used to represent an address as an unsigned integer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v4 -

-
-

- Default constructor.

Construct an address from - raw bytes.

Construct an address from an unsigned - integer in host byte order.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- broadcast -

-
-

- Obtain an address object that represents the broadcast address. -

(Deprecated: Use network_v4 class.) Obtain an address - object that represents the broadcast address that corresponds - to the specified address and netmask. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v4().) Create an address from an - IP address string in dotted decimal form. -

-
-

- is_class_a -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class A address. -

-
-

- is_class_b -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class B address. -

-
-

- is_class_c -

-
-

- (Deprecated: Use network_v4 class.) Determine whether the address - is a class C address. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- netmask -

-
-

- (Deprecated: Use network_v4 class.) Obtain the netmask that corresponds - to the address, based on its address class. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string in dotted decimal format.
-
(Deprecated: Use other overload.) Get the address as a - string in dotted decimal format. -

-
-

- to_uint -

-
-

- Get the address as an unsigned integer in host byte order. -

-
-

- to_ulong -

-
-

- Get the address as an unsigned long in host byte order. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v4 -

-
-

- Create an IPv4 address from raw bytes in network order. -

-

- Create an IPv4 address from an unsigned integer in host byte - order. -

-

- Create an IPv4 address from an IP address string in dotted decimal - form. -

-

- Create an IPv4 address from a IPv4-mapped IPv6 address. -

-
-

- make_network_v4 -

-
-

- Create an IPv4 network from an address and prefix length. -

-

- Create an IPv4 network from an address and netmask. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v4 - class provides the ability to use and manipulate IP version 4 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html deleted file mode 100644 index 0079a5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An input iterator that can be used for traversing IPv6 addresses. -

-
template<>
-class basic_address_iterator< address_v6 >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address.
-
Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html deleted file mode 100644 index 9aa3425..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::basic_address_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an iterator that points to the specified address. -

-
basic_address_iterator(
-    const address_v6 & addr);
-  » more...
-
-

- Copy constructor. -

-
basic_address_iterator(
-    const basic_address_iterator & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html deleted file mode 100644 index 1df8740..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::basic_address_iterator (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an iterator that points to the specified address. -

-
basic_address_iterator(
-    const address_v6 & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html deleted file mode 100644 index 0cde8b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::basic_address_iterator (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_address_iterator(
-    const basic_address_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html deleted file mode 100644 index 880a001..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Distance between two iterators. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html deleted file mode 100644 index b5581b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Denotes that the iterator satisfies the input iterator requirements. -

-
typedef std::input_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html deleted file mode 100644 index eedb9df..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference the iterator. -

-
const address_v6 & operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html deleted file mode 100644 index 62f1a55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference the iterator. -

-
const address_v6 * operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html deleted file mode 100644 index 576af78..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
basic_address_iterator & operator=(
-    const basic_address_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html deleted file mode 100644 index 5fe8013..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two addresses for equality. -

-
friend bool operator==(
-    const basic_address_iterator & a,
-    const basic_address_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html deleted file mode 100644 index 75ae6b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator-- - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Pre-decrement operator. -

-
basic_address_iterator & operator--();
-  » more...
-
-

- Post-decrement operator. -

-
basic_address_iterator operator--(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html deleted file mode 100644 index 453cb41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator-- (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Pre-decrement operator. -

-
basic_address_iterator & operator--();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html deleted file mode 100644 index 7d29024..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator-- (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Post-decrement operator. -

-
basic_address_iterator operator--(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html deleted file mode 100644 index 098e660..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two addresses for inequality. -

-
friend bool operator!=(
-    const basic_address_iterator & a,
-    const basic_address_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html deleted file mode 100644 index c8c664d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Pre-increment operator. -

-
basic_address_iterator & operator++();
-  » more...
-
-

- Post-increment operator. -

-
basic_address_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html deleted file mode 100644 index 46deed1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Pre-increment operator. -

-
basic_address_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html deleted file mode 100644 index 1d65bee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Post-increment operator. -

-
basic_address_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html deleted file mode 100644 index faad8ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a pointer to an element pointed to by the iterator. -

-
typedef const address_v6 * pointer;
-
-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html deleted file mode 100644 index 618fd46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html +++ /dev/null @@ -1,580 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a reference to an element pointed to by the - iterator. -

-
typedef const address_v6 & reference;
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v6 -

-
-

- Default constructor.

Construct an address from - raw bytes and scope ID.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv6 address from - an IP address string. -

-
-

- is_link_local -

-
-

- Determine whether the address is link local. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_multicast_global -

-
-

- Determine whether the address is a global multicast address. -

-
-

- is_multicast_link_local -

-
-

- Determine whether the address is a link-local multicast address. -

-
-

- is_multicast_node_local -

-
-

- Determine whether the address is a node-local multicast address. -

-
-

- is_multicast_org_local -

-
-

- Determine whether the address is a org-local multicast address. -

-
-

- is_multicast_site_local -

-
-

- Determine whether the address is a site-local multicast address. -

-
-

- is_site_local -

-
-

- Determine whether the address is site local. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- is_v4_compatible -

-
-

- (Deprecated: No replacement.) Determine whether the address is - an IPv4-compatible address. -

-
-

- is_v4_mapped -

-
-

- Determine whether the address is a mapped IPv4 address. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- scope_id -

-
-

- The scope ID of the address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string.

(Deprecated: Use other - overload.) Get the address as a string. -

-
-

- to_v4 -

-
-

- (Deprecated: Use make_address_v4().) Converts an IPv4-mapped - or IPv4-compatible address to an IPv4 address. -

-
-

- v4_compatible -

-
-

- (Deprecated: No replacement.) Create an IPv4-compatible IPv6 - address. -

-
-

- v4_mapped -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv4-mapped IPv6 - address. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v6 -

-
-

- Create an IPv6 address from raw bytes and scope ID. -

-

- Create an IPv6 address from an IP address string. -

-

- Createan IPv6 address from an IP address string. -

-

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
-

- make_network_v6 -

-
-

- Create an IPv6 network from an address and prefix length. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v6 - class provides the ability to use and manipulate IP version 6 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html deleted file mode 100644 index f9012be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html +++ /dev/null @@ -1,579 +0,0 @@ - - - -ip::basic_address_iterator< address_v6 >::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of the elements pointed to by the iterator. -

-
typedef address_v6 value_type;
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_type -

-
-

- The type used to represent an address as an array of bytes. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_v6 -

-
-

- Default constructor.

Construct an address from - raw bytes and scope ID.

Copy constructor. -

-
-

- any -

-
-

- Obtain an address object that represents any address. -

-
-

- from_string -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv6 address from - an IP address string. -

-
-

- is_link_local -

-
-

- Determine whether the address is link local. -

-
-

- is_loopback -

-
-

- Determine whether the address is a loopback address. -

-
-

- is_multicast -

-
-

- Determine whether the address is a multicast address. -

-
-

- is_multicast_global -

-
-

- Determine whether the address is a global multicast address. -

-
-

- is_multicast_link_local -

-
-

- Determine whether the address is a link-local multicast address. -

-
-

- is_multicast_node_local -

-
-

- Determine whether the address is a node-local multicast address. -

-
-

- is_multicast_org_local -

-
-

- Determine whether the address is a org-local multicast address. -

-
-

- is_multicast_site_local -

-
-

- Determine whether the address is a site-local multicast address. -

-
-

- is_site_local -

-
-

- Determine whether the address is site local. -

-
-

- is_unspecified -

-
-

- Determine whether the address is unspecified. -

-
-

- is_v4_compatible -

-
-

- (Deprecated: No replacement.) Determine whether the address is - an IPv4-compatible address. -

-
-

- is_v4_mapped -

-
-

- Determine whether the address is a mapped IPv4 address. -

-
-

- loopback -

-
-

- Obtain an address object that represents the loopback address. -

-
-

- operator= -

-
-

- Assign from another address. -

-
-

- scope_id -

-
-

- The scope ID of the address. -

-
-

- to_bytes -

-
-

- Get the address in bytes, in network byte order. -

-
-

- to_string -

-
-

- Get the address as a string.

(Deprecated: Use other - overload.) Get the address as a string. -

-
-

- to_v4 -

-
-

- (Deprecated: Use make_address_v4().) Converts an IPv4-mapped - or IPv4-compatible address to an IPv4 address. -

-
-

- v4_compatible -

-
-

- (Deprecated: No replacement.) Create an IPv4-compatible IPv6 - address. -

-
-

- v4_mapped -

-
-

- (Deprecated: Use make_address_v6().) Create an IPv4-mapped IPv6 - address. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator< -

-
-

- Compare addresses for ordering. -

-
-

- operator<= -

-
-

- Compare addresses for ordering. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- operator> -

-
-

- Compare addresses for ordering. -

-
-

- operator>= -

-
-

- Compare addresses for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_address_v6 -

-
-

- Create an IPv6 address from raw bytes and scope ID. -

-

- Create an IPv6 address from an IP address string. -

-

- Createan IPv6 address from an IP address string. -

-

- Create an IPv4-mapped IPv6 address from an IPv4 address. -

-
-

- make_network_v6 -

-
-

- Create an IPv6 network from an address and prefix length. -

-
-

- operator<< -

-
-

- Output an address as a string. -

-

- Output a network as a string. -

-
-

- The ip::address_v6 - class provides the ability to use and manipulate IP version 6 addresses. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html deleted file mode 100644 index 530d8ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_.html +++ /dev/null @@ -1,208 +0,0 @@ - - - -ip::basic_address_range< address_v4 > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Represents a range of IPv4 addresses. -

-
template<>
-class basic_address_range< address_v4 >
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- iterator -

-
-

- The type of an iterator that points into the range. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_range -

-
-

- Construct an empty range.

Construct an range that - represents the given range of addresses.

Copy constructor. -

-
-

- begin -

-
-

- Obtain an iterator that points to the start of the range. -

-
-

- empty -

-
-

- Determine whether the range is empty. -

-
-

- end -

-
-

- Obtain an iterator that points to the end of the range. -

-
-

- find -

-
-

- Find an address in the range. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-

- size -

-
-

- Return the size of the range. -

-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html deleted file mode 100644 index 7d1d48b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::basic_address_range - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an empty range. -

-
basic_address_range();
-  » more...
-
-

- Construct an range that represents the given range of addresses. -

-
explicit basic_address_range(
-    const iterator & first,
-    const iterator & last);
-  » more...
-
-

- Copy constructor. -

-
basic_address_range(
-    const basic_address_range & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html deleted file mode 100644 index e159e62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::basic_address_range (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty range. -

-
basic_address_range();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html deleted file mode 100644 index 22f4f12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::basic_address_range (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an range that represents the given range of addresses. -

-
basic_address_range(
-    const iterator & first,
-    const iterator & last);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html deleted file mode 100644 index e61d853..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::basic_address_range (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_address_range(
-    const basic_address_range & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html deleted file mode 100644 index c47bdf9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an iterator that points to the start of the range. -

-
iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html deleted file mode 100644 index 55919e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::empty - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether the range is empty. -

-
bool empty() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html deleted file mode 100644 index bddf0a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an iterator that points to the end of the range. -

-
iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html deleted file mode 100644 index 3ccad31..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::find - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Find an address in the range. -

-
iterator find(
-    const address_v4 & addr) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html deleted file mode 100644 index 1c79fd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of an iterator that points into the range. -

-
typedef basic_address_iterator< address_v4 > iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address. -

Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v4_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html deleted file mode 100644 index d39fec3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
basic_address_range & operator=(
-    const basic_address_range & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html deleted file mode 100644 index f6a8593..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v4 >::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return the size of the range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html deleted file mode 100644 index a714a63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_.html +++ /dev/null @@ -1,196 +0,0 @@ - - - -ip::basic_address_range< address_v6 > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Represents a range of IPv6 addresses. -

-
template<>
-class basic_address_range< address_v6 >
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- iterator -

-
-

- The type of an iterator that points into the range. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_range -

-
-

- Construct an empty range.

Construct an range that - represents the given range of addresses.

Copy constructor. -

-
-

- begin -

-
-

- Obtain an iterator that points to the start of the range. -

-
-

- empty -

-
-

- Determine whether the range is empty. -

-
-

- end -

-
-

- Obtain an iterator that points to the end of the range. -

-
-

- find -

-
-

- Find an address in the range. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html deleted file mode 100644 index 5b89f69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::basic_address_range - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct an empty range. -

-
basic_address_range();
-  » more...
-
-

- Construct an range that represents the given range of addresses. -

-
explicit basic_address_range(
-    const iterator & first,
-    const iterator & last);
-  » more...
-
-

- Copy constructor. -

-
basic_address_range(
-    const basic_address_range & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html deleted file mode 100644 index 2c776ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::basic_address_range (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty range. -

-
basic_address_range();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html deleted file mode 100644 index cdf73f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::basic_address_range (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an range that represents the given range of addresses. -

-
basic_address_range(
-    const iterator & first,
-    const iterator & last);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html deleted file mode 100644 index c89085f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::basic_address_range (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_address_range(
-    const basic_address_range & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html deleted file mode 100644 index d921123..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an iterator that points to the start of the range. -

-
iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html deleted file mode 100644 index 983ad51..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::empty - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether the range is empty. -

-
bool empty() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html deleted file mode 100644 index 3e0e891..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an iterator that points to the end of the range. -

-
iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html deleted file mode 100644 index 6566b93..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::find - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Find an address in the range. -

-
iterator find(
-    const address_v6 & addr) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html deleted file mode 100644 index 05b8342..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of an iterator that points into the range. -

-
typedef basic_address_iterator< address_v6 > iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- Distance between two iterators. -

-
-

- iterator_category -

-
-

- Denotes that the iterator satisfies the input iterator requirements. -

-
-

- pointer -

-
-

- The type of a pointer to an element pointed to by the iterator. -

-
-

- reference -

-
-

- The type of a reference to an element pointed to by the iterator. -

-
-

- value_type -

-
-

- The type of the elements pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_address_iterator -

-
-

- Construct an iterator that points to the specified address. -

Copy constructor. -

-
-

- operator * -

-
-

- Dereference the iterator. -

-
-

- operator++ -

-
-

- Pre-increment operator.

Post-increment operator. -

-
-

- operator-- -

-
-

- Pre-decrement operator.

Post-decrement operator. -

-
-

- operator-> -

-
-

- Dereference the iterator. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two addresses for inequality. -

-
-

- operator== -

-
-

- Compare two addresses for equality. -

-
-

- In addition to satisfying the input iterator requirements, this iterator - also supports decrement. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/address_v6_range.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html deleted file mode 100644 index 4750cf7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_address_range< address_v6 >::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
basic_address_range & operator=(
-    const basic_address_range & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint.html deleted file mode 100644 index 0d34878..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint.html +++ /dev/null @@ -1,394 +0,0 @@ - - - -ip::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Describes an endpoint for a version-independent IP socket. -

-
template<
-    typename InternetProtocol>
-class basic_endpoint
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on the - underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Get the IP address associated with the endpoint.

- Set the IP address associated with the endpoint. -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - a port number, specified in the host's byte order. The IP address - will be the any address (i.e. INADDR_ANY or in6addr_any). This - constructor would typically be used for accepting new connections. -

Construct an endpoint using a port number and an - IP address. This constructor may be used for accepting connections - on a specific interface or for making a connection to a remote - endpoint.

Copy constructor.

Move constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint.

Move-assign from another - endpoint. -

-
-

- port -

-
-

- Get the port associated with the endpoint. The port number is always - in the host's byte order.

Set the port associated - with the endpoint. The port number is always in the host's byte - order. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The ip::basic_endpoint - class template describes an endpoint that may be associated with a particular - socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address.html deleted file mode 100644 index 4db99b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_endpoint::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - IP address associated with the endpoint. -

-
asio::ip::address address() const;
-  » more...
-
-

- Set the IP address associated with the endpoint. -

-
void address(
-    const asio::ip::address & addr);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html deleted file mode 100644 index 3e3653e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_endpoint::address (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the IP address associated with the endpoint. -

-
asio::ip::address address() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html deleted file mode 100644 index 83552a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/address/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::address (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the IP address associated with the endpoint. -

-
void address(
-    const asio::ip::address & addr);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html deleted file mode 100644 index 51246b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
basic_endpoint();
-  » more...
-
-

- Construct an endpoint using a port number, specified in the host's byte - order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). - This constructor would typically be used for accepting new connections. -

-
basic_endpoint(
-    const InternetProtocol & internet_protocol,
-    unsigned short port_num);
-  » more...
-
-

- Construct an endpoint using a port number and an IP address. This constructor - may be used for accepting connections on a specific interface or for making - a connection to a remote endpoint. -

-
basic_endpoint(
-    const asio::ip::address & addr,
-    unsigned short port_num);
-  » more...
-
-

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-  » more...
-
-

- Move constructor. -

-
basic_endpoint(
-    basic_endpoint && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html deleted file mode 100644 index 3e8d03a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (1 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
basic_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html deleted file mode 100644 index 03c35b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (2 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint using a port number, specified in the host's byte - order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). - This constructor would typically be used for accepting new connections. -

-
basic_endpoint(
-    const InternetProtocol & internet_protocol,
-    unsigned short port_num);
-
-
- - Examples -
-

- To initialise an IPv4 TCP endpoint for port 1234, use: -

-
asio::ip::tcp::endpoint ep(asio::ip::tcp::v4(), 1234);
-
-

- To specify an IPv6 UDP endpoint for port 9876, use: -

-
asio::ip::udp::endpoint ep(asio::ip::udp::v6(), 9876);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html deleted file mode 100644 index 963289c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (3 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint using a port number and an IP address. This constructor - may be used for accepting connections on a specific interface or for - making a connection to a remote endpoint. -

-
basic_endpoint(
-    const asio::ip::address & addr,
-    unsigned short port_num);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html deleted file mode 100644 index f11aa22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (4 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html deleted file mode 100644 index 70cab25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::basic_endpoint (5 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
basic_endpoint(
-    basic_endpoint && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/capacity.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/capacity.html deleted file mode 100644 index dccd694..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/capacity.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the capacity of the endpoint in the native type. -

-
std::size_t capacity() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data.html deleted file mode 100644 index f827048..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_endpoint::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the underlying - endpoint in the native type. -

-
data_type * data();
-  » more...
-
-const data_type * data() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html deleted file mode 100644 index 28157cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_endpoint::data (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
data_type * data();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html deleted file mode 100644 index 6abcd98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_endpoint::data (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
const data_type * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data_type.html deleted file mode 100644 index 806cded..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/data_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::basic_endpoint::data_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the endpoint structure. This type is dependent on the underlying - implementation of the socket layer. -

-
typedef implementation_defined data_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html deleted file mode 100644 index c9c05f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_endpoint::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another endpoint. -

-
basic_endpoint & operator=(
-    const basic_endpoint & other);
-  » more...
-
-

- Move-assign from another endpoint. -

-
basic_endpoint & operator=(
-    basic_endpoint && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html deleted file mode 100644 index dd8ba8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign from another endpoint. -

-
basic_endpoint & operator=(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html deleted file mode 100644 index 7a6fb6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assign from another endpoint. -

-
basic_endpoint & operator=(
-    basic_endpoint && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html deleted file mode 100644 index 2c756a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for equality. -

-
friend bool operator==(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html deleted file mode 100644 index d4b70d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html deleted file mode 100644 index 83347e0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>=(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html deleted file mode 100644 index e3ea3a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html deleted file mode 100644 index 015dc55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<=(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html deleted file mode 100644 index 8526525..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_lt__lt_.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ip::basic_endpoint::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an endpoint as a string. -

-
std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const basic_endpoint< InternetProtocol > & endpoint);
-
-

- Used to output a human-readable string for a specified endpoint. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
endpoint
-

- The endpoint to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html deleted file mode 100644 index 130897f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_endpoint::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for inequality. -

-
friend bool operator!=(
-    const basic_endpoint< InternetProtocol > & e1,
-    const basic_endpoint< InternetProtocol > & e2);
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port.html deleted file mode 100644 index 8832845..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_endpoint::port - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the port - associated with the endpoint. The port number is always in the host's byte - order. -

-
unsigned short port() const;
-  » more...
-
-

- Set the port associated with the endpoint. The port number is always in - the host's byte order. -

-
void port(
-    unsigned short port_num);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html deleted file mode 100644 index c915705..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::port (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the port associated with the endpoint. The port number is always - in the host's byte order. -

-
unsigned short port() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html deleted file mode 100644 index e215a35..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/port/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_endpoint::port (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the port associated with the endpoint. The port number is always - in the host's byte order. -

-
void port(
-    unsigned short port_num);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol.html deleted file mode 100644 index b0d1586..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol associated with the endpoint. -

-
protocol_type protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html deleted file mode 100644 index 0a375a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_endpoint::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/resize.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/resize.html deleted file mode 100644 index 57b4b55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/resize.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_endpoint::resize - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set the - underlying size of the endpoint in the native type. -

-
void resize(
-    std::size_t new_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/size.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/size.html deleted file mode 100644 index 236aa63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_endpoint/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_endpoint::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the underlying - size of the endpoint in the native type. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver.html deleted file mode 100644 index e509149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver.html +++ /dev/null @@ -1,436 +0,0 @@ - - - -ip::basic_resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides endpoint resolution functionality. -

-
template<
-    typename InternetProtocol>
-class basic_resolver :
-  public ip::resolver_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- iterator -

-
-

- (Deprecated.) The iterator type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- query -

-
-

- (Deprecated.) The query type. -

-
-

- results_type -

-
-

- The results type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list - of entries.

Asynchronously perform forward resolution - of a query to a list of entries.

Asynchronously perform - reverse resolution of an endpoint to a list of entries. -

-
-

- basic_resolver -

-
-

- Constructor.

Move-construct a basic_resolver from - another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the resolver. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_resolver from another. -

-
-

- resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries.
-
Perform forward resolution of a query to a list of entries. -

Perform reverse resolution of an endpoint to a list - of entries. -

-
-

- ~basic_resolver -

-
-

- Destroys the resolver. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is configured - for the system. Only return IPv6 addresses if a non-loopback IPv6 - address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a port - number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver - class template provides the ability to resolve a query to a list of endpoints. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html deleted file mode 100644 index 13bd862..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/_basic_resolver.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver::~basic_resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the resolver. -

-
~basic_resolver();
-
-

- This function destroys the resolver, cancelling any outstanding asynchronous - wait operations associated with the resolver as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/address_configured.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/address_configured.html deleted file mode 100644 index aa1c7d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/address_configured.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::basic_resolver::address_configured - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Only - return IPv4 addresses if a non-loopback IPv4 address is configured for - the system. Only return IPv6 addresses if a non-loopback IPv6 address is - configured for the system. -

-
static const flags address_configured = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/all_matching.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/all_matching.html deleted file mode 100644 index c23eace..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/all_matching.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver::all_matching - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
static const flags all_matching = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html deleted file mode 100644 index 4c11890..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -ip::basic_resolver::async_resolve - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use overload with separate host and service parameters.) Asynchronously - perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const query & q,
-    ResolveHandler && handler);
-  » more...
-
-

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    string_view host,
-    string_view service,
-    ResolveHandler && handler);
-  » more...
-
-template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    ResolveHandler && handler);
-  » more...
-
-template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    ResolveHandler && handler);
-  » more...
-
-template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    ResolveHandler && handler);
-  » more...
-
-

- Asynchronously perform reverse resolution of an endpoint to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const endpoint_type & e,
-    ResolveHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html deleted file mode 100644 index c77e324..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -ip::basic_resolver::async_resolve (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const query & q,
-    ResolveHandler && handler);
-
-

- This function is used to asynchronously resolve a query into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
q
-

- A query object that determines what endpoints will be returned. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html deleted file mode 100644 index b2ee4fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -ip::basic_resolver::async_resolve (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    string_view host,
-    string_view service,
-    ResolveHandler && handler);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html deleted file mode 100644 index 2fbfeed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload3.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -ip::basic_resolver::async_resolve (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    ResolveHandler && handler);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html deleted file mode 100644 index 0554961..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload4.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -ip::basic_resolver::async_resolve (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    ResolveHandler && handler);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html deleted file mode 100644 index 493a57a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload5.html +++ /dev/null @@ -1,127 +0,0 @@ - - - -ip::basic_resolver::async_resolve (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform forward resolution of a query to a list of entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    ResolveHandler && handler);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html deleted file mode 100644 index ee53a19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/async_resolve/overload6.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -ip::basic_resolver::async_resolve (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Asynchronously perform reverse resolution of an endpoint to a list of - entries. -

-
template<
-    typename ResolveHandler>
-DEDUCED async_resolve(
-    const endpoint_type & e,
-    ResolveHandler && handler);
-
-

- This function is used to asynchronously resolve an endpoint into a list - of endpoint entries. -

-
- - Parameters -
-
-

-
-
e
-

- An endpoint object that determines what endpoints will be returned. -

-
handler
-
-

- The handler to be called when the resolve operation completes. - Copies will be made of the handler as required. The function signature - of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  resolver::results_type results // Resolved endpoints as a range.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-

- A successful resolve operation is guaranteed to pass a non-empty range - to the handler. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html deleted file mode 100644 index 30d3b54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_resolver::basic_resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
explicit basic_resolver(
-    asio::io_context & io_context);
-  » more...
-
-

- Move-construct a ip::basic_resolver - from another. -

-
basic_resolver(
-    basic_resolver && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html deleted file mode 100644 index d8ca9bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -ip::basic_resolver::basic_resolver (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
basic_resolver(
-    asio::io_context & io_context);
-
-

- This constructor creates a ip::basic_resolver. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the resolver will use to dispatch handlers for any - asynchronous operations performed on the resolver. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html deleted file mode 100644 index 1a6acc4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -ip::basic_resolver::basic_resolver (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a ip::basic_resolver - from another. -

-
basic_resolver(
-    basic_resolver && other);
-
-

- This constructor moves a resolver from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other ip::basic_resolver - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the basic_resolver(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/cancel.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/cancel.html deleted file mode 100644 index 3903b2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::basic_resolver::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - any asynchronous operations that are waiting on the resolver. -

-
void cancel();
-
-

- This function forces the completion of any pending asynchronous operations - on the host resolver. The handler for each cancelled operation will be - invoked with the asio::error::operation_aborted error code. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html deleted file mode 100644 index 65eafdd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/canonical_name.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver::canonical_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Determine - the canonical name of the host specified in the query. -

-
static const flags canonical_name = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html deleted file mode 100644 index fc3efac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type. -

-
typedef InternetProtocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/executor_type.html deleted file mode 100644 index 11d5732..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -ip::basic_resolver::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/flags.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/flags.html deleted file mode 100644 index 5365d8f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::basic_resolver::flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -A bitmask - type (C++ Std [lib.bitmask.types]). -

-
typedef unspecified flags;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_executor.html deleted file mode 100644 index a1e340b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_context.html deleted file mode 100644 index 037a334..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -ip::basic_resolver::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_service.html deleted file mode 100644 index 774e991..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -ip::basic_resolver::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/iterator.html deleted file mode 100644 index 7dbc2ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/iterator.html +++ /dev/null @@ -1,389 +0,0 @@ - - - -ip::basic_resolver::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated.) - The iterator type. -

-
typedef basic_resolver_iterator< InternetProtocol > iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_iterator -

-
-

- Default constructor creates an end iterator.

Copy - constructor.

Move constructor. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator - (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_iterator - class template is used to define iterators over the results returned by - a resolver. -

-

- The iterator's value_type, obtained when the iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html deleted file mode 100644 index 0844c0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_host.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver::numeric_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Host - name should be treated as a numeric string defining an IPv4 or IPv6 address - and no name resolution should be attempted. -

-
static const flags numeric_host = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html deleted file mode 100644 index 41cfb68..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/numeric_service.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver::numeric_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Service - name should be treated as a numeric string defining a port number and no - name resolution should be attempted. -

-
static const flags numeric_service = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html deleted file mode 100644 index 3b32e98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -ip::basic_resolver::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a ip::basic_resolver - from another. -

-
basic_resolver & operator=(
-    basic_resolver && other);
-
-

- This assignment operator moves a resolver from one object to another. Cancels - any outstanding asynchronous operations associated with the target object. -

-
- - Parameters -
-
-

-
-
other
-

- The other ip::basic_resolver - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the basic_resolver(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/passive.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/passive.html deleted file mode 100644 index 71412d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/passive.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver::passive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Indicate - that returned endpoint is intended for use as a locally bound socket endpoint. -

-
static const flags passive = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html deleted file mode 100644 index ccfbe0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/query.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/query.html deleted file mode 100644 index 8fd1757..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/query.html +++ /dev/null @@ -1,307 +0,0 @@ - - - -ip::basic_resolver::query - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated.) - The query type. -

-
typedef basic_resolver_query< InternetProtocol > query;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint query. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_query -

-
-

- Construct with specified service name for any protocol.
-
Construct with specified service name for a given protocol. -

Construct with specified host name and service - name for any protocol.

Construct with specified - host name and service name for a given protocol. -

-
-

- hints -

-
-

- Get the hints associated with the query. -

-
-

- host_name -

-
-

- Get the host name associated with the query. -

-
-

- service_name -

-
-

- Get the service name associated with the query. -

-
-
- - Data Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is - configured for the system. Only return IPv6 addresses if a non-loopback - IPv6 address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a - port number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver_query - class template describes a query that can be passed to a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve.html deleted file mode 100644 index 683b211..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -ip::basic_resolver::resolve - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use overload with separate host and service parameters.) Perform forward - resolution of a query to a list of entries. -

-
results_type resolve(
-    const query & q);
-  » more...
-
-results_type resolve(
-    const query & q,
-    asio::error_code & ec);
-  » more...
-
-

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service);
-  » more...
-
-results_type resolve(
-    string_view host,
-    string_view service,
-    asio::error_code & ec);
-  » more...
-
-results_type resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags);
-  » more...
-
-results_type resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    asio::error_code & ec);
-  » more...
-
-results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service);
-  » more...
-
-results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    asio::error_code & ec);
-  » more...
-
-results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags);
-  » more...
-
-results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    asio::error_code & ec);
-  » more...
-
-

- Perform reverse resolution of an endpoint to a list of entries. -

-
results_type resolve(
-    const endpoint_type & e);
-  » more...
-
-results_type resolve(
-    const endpoint_type & e,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html deleted file mode 100644 index 8a196d4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ip::basic_resolver::resolve (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const query & q);
-
-

- This function is used to resolve a query into a list of endpoint entries. -

-
- - Parameters -
-
-

-
-
q
-

- A query object that determines what endpoints will be returned. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html deleted file mode 100644 index 98d43fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload10.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -ip::basic_resolver::resolve (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    asio::error_code & ec);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html deleted file mode 100644 index 3cc43ce..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload11.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ip::basic_resolver::resolve (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform reverse resolution of an endpoint to a list of entries. -

-
results_type resolve(
-    const endpoint_type & e);
-
-

- This function is used to resolve an endpoint into a list of endpoint - entries. -

-
- - Parameters -
-
-

-
-
e
-

- An endpoint object that determines what endpoints will be returned. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html deleted file mode 100644 index e2722cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload12.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::basic_resolver::resolve (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform reverse resolution of an endpoint to a list of entries. -

-
results_type resolve(
-    const endpoint_type & e,
-    asio::error_code & ec);
-
-

- This function is used to resolve an endpoint into a list of endpoint - entries. -

-
- - Parameters -
-
-

-
-
e
-

- An endpoint object that determines what endpoints will be returned. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html deleted file mode 100644 index 4b827e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ip::basic_resolver::resolve (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const query & q,
-    asio::error_code & ec);
-
-

- This function is used to resolve a query into a list of endpoint entries. -

-
- - Parameters -
-
-

-
-
q
-

- A query object that determines what endpoints will be returned. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html deleted file mode 100644 index a5ae26f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload3.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -ip::basic_resolver::resolve (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html deleted file mode 100644 index c8a60f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload4.html +++ /dev/null @@ -1,104 +0,0 @@ - - - -ip::basic_resolver::resolve (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service,
-    asio::error_code & ec);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html deleted file mode 100644 index c862861..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload5.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -ip::basic_resolver::resolve (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html deleted file mode 100644 index 5d4587d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload6.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -ip::basic_resolver::resolve (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags,
-    asio::error_code & ec);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html deleted file mode 100644 index db46176..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload7.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -ip::basic_resolver::resolve (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html deleted file mode 100644 index 1f06c0e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload8.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -ip::basic_resolver::resolve (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    asio::error_code & ec);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. An empty range - is returned if an error occurs. A successful call to this function is - guaranteed to return a non-empty range. -

-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html deleted file mode 100644 index b4f95d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/resolve/overload9.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -ip::basic_resolver::resolve (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform forward resolution of a query to a list of entries. -

-
results_type resolve(
-    const protocol_type & protocol,
-    string_view host,
-    string_view service,
-    resolver_base::flags resolve_flags);
-
-

- This function is used to resolve host and service names into a list of - endpoint entries. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
-
-
- - Return - Value -
-

- A range object representing the list of endpoint entries. A successful - call to this function is guaranteed to return a non-empty range. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/results_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/results_type.html deleted file mode 100644 index 02e3571..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/results_type.html +++ /dev/null @@ -1,567 +0,0 @@ - - - -ip::basic_resolver::results_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - results type. -

-
typedef basic_resolver_results< InternetProtocol > results_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- The type of an iterator into the range. -

-
-

- const_reference -

-
-

- The type of a const reference to a value in the range. -

-
-

- difference_type -

-
-

- Type used to represent the distance between two iterators in - the range. -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the results. -

-
-

- iterator -

-
-

- The type of an iterator into the range. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- protocol_type -

-
-

- The protocol type associated with the results. -

-
-

- reference -

-
-

- The type of a non-const reference to a value in the range. -

-
-

- size_type -

-
-

- Type used to represent a count of the elements in the range. -

-
-

- value_type -

-
-

- The type of a value in the results range. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_results -

-
-

- Default constructor creates an empty range.

Copy - constructor.

Move constructor. -

-
-

- begin -

-
-

- Obtain a begin iterator for the results range. -

-
-

- cbegin -

-
-

- Obtain a begin iterator for the results range. -

-
-

- cend -

-
-

- Obtain an end iterator for the results range. -

-
-

- empty -

-
-

- Determine whether the results range is empty. -

-
-

- end -

-
-

- Obtain an end iterator for the results range. -

-
-

- max_size -

-
-

- Get the maximum number of entries permitted in a results range. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator - (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-

- size -

-
-

- Get the number of entries in the results range. -

-
-

- swap -

-
-

- Swap the results range with another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_results - class template is used to define a range over the results returned by a - resolver. -

-

- The iterator's value_type, obtained when a results iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Remarks -
-

- For backward compatibility, ip::basic_resolver_results - is derived from ip::basic_resolver_iterator. - This derivation is deprecated. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html deleted file mode 100644 index 0729d14..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver/v4_mapped.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - the query protocol family is specified as IPv6, return IPv4-mapped IPv6 - addresses on finding no IPv6 addresses. -

-
static const flags v4_mapped = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry.html deleted file mode 100644 index ab5349e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry.html +++ /dev/null @@ -1,201 +0,0 @@ - - - -ip::basic_resolver_entry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An entry produced by a resolver. -

-
template<
-    typename InternetProtocol>
-class basic_resolver_entry
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_entry.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html deleted file mode 100644 index 53f8ff0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_entry::basic_resolver_entry - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
basic_resolver_entry();
-  » more...
-
-

- Construct with specified endpoint, host name and service name. -

-
basic_resolver_entry(
-    const endpoint_type & ep,
-    string_view host,
-    string_view service);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html deleted file mode 100644 index e6a75b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_entry::basic_resolver_entry (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
basic_resolver_entry();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html deleted file mode 100644 index 3767714..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_entry::basic_resolver_entry (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified endpoint, host name and service name. -

-
basic_resolver_entry(
-    const endpoint_type & ep,
-    string_view host,
-    string_view service);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html deleted file mode 100644 index 863a899..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_entry::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the endpoint associated with the entry. -

-
endpoint_type endpoint() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html deleted file mode 100644 index fe219dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_entry::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type associated with the endpoint entry. -

-
typedef InternetProtocol::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_entry.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html deleted file mode 100644 index ee28c79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ip::basic_resolver_entry::host_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the host name associated with the entry. -

-
std::string host_name() const;
-  » more...
-
-template<
-    class Allocator>
-std::basic_string< char, std::char_traits< char >, Allocator > host_name(
-    const Allocator & alloc = Allocator()) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html deleted file mode 100644 index a95c44f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_entry::host_name (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the host name associated with the entry. -

-
std::string host_name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html deleted file mode 100644 index e4f8d01..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/host_name/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_entry::host_name (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the host name associated with the entry. -

-
template<
-    class Allocator>
-std::basic_string< char, std::char_traits< char >, Allocator > host_name(
-    const Allocator & alloc = Allocator()) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html deleted file mode 100644 index c4f8f22..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_entry::operator endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Convert to the endpoint associated - with the entry. -

-
operator endpoint_type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html deleted file mode 100644 index 90cc810..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_entry::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint entry. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_entry.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html deleted file mode 100644 index 7c4e545..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ip::basic_resolver_entry::service_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the service name associated with the entry. -

-
std::string service_name() const;
-  » more...
-
-template<
-    class Allocator>
-std::basic_string< char, std::char_traits< char >, Allocator > service_name(
-    const Allocator & alloc = Allocator()) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html deleted file mode 100644 index a6feb2c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_entry::service_name (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the service name associated with the entry. -

-
std::string service_name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html deleted file mode 100644 index 658351d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_entry/service_name/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_entry::service_name (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the service name associated with the entry. -

-
template<
-    class Allocator>
-std::basic_string< char, std::char_traits< char >, Allocator > service_name(
-    const Allocator & alloc = Allocator()) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator.html deleted file mode 100644 index 8719d4d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator.html +++ /dev/null @@ -1,387 +0,0 @@ - - - -ip::basic_resolver_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An iterator over the entries produced by a resolver. -

-
template<
-    typename InternetProtocol>
-class basic_resolver_iterator
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_iterator -

-
-

- Default constructor creates an end iterator.

Copy - constructor.

Move constructor. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_iterator - class template is used to define iterators over the results returned by a - resolver. -

-

- The iterator's value_type, obtained when the iterator is dereferenced, is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html deleted file mode 100644 index 22479ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -ip::basic_resolver_iterator::basic_resolver_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor creates an end iterator. -

-
basic_resolver_iterator();
-  » more...
-
-

- Copy constructor. -

-
basic_resolver_iterator(
-    const basic_resolver_iterator & other);
-  » more...
-
-

- Move constructor. -

-
basic_resolver_iterator(
-    basic_resolver_iterator && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html deleted file mode 100644 index b6bf22a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_iterator::basic_resolver_iterator (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor creates an end iterator. -

-
basic_resolver_iterator();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html deleted file mode 100644 index 20735bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::basic_resolver_iterator (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_resolver_iterator(
-    const basic_resolver_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html deleted file mode 100644 index 3d683ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::basic_resolver_iterator (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
basic_resolver_iterator(
-    basic_resolver_iterator && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html deleted file mode 100644 index cf30f96..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/dereference.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ip::basic_resolver_iterator::dereference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const basic_resolver_entry< InternetProtocol > & dereference() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html deleted file mode 100644 index cdac87d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_iterator::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type used for the distance between two iterators. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html deleted file mode 100644 index cef31f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/equal.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_iterator::equal - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
bool equal(
-    const basic_resolver_iterator & other) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html deleted file mode 100644 index 67ed739..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/increment.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ip::basic_resolver_iterator::increment - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void increment();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html deleted file mode 100644 index 266715e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/index_.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ip::basic_resolver_iterator::index_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
std::size_t index_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html deleted file mode 100644 index 9719371..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/iterator_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_iterator::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - iterator category. -

-
typedef std::forward_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html deleted file mode 100644 index a0ac57b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator__star_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_iterator::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference - an iterator. -

-
const basic_resolver_entry< InternetProtocol > & operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html deleted file mode 100644 index e60fd5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_arrow_.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Dereference - an iterator. -

-
const basic_resolver_entry< InternetProtocol > * operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html deleted file mode 100644 index 9c313f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_resolver_iterator::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment - operator. -

-
basic_resolver_iterator & operator=(
-    const basic_resolver_iterator & other);
-  » more...
-
-

- Move-assignment operator. -

-
basic_resolver_iterator & operator=(
-    basic_resolver_iterator && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html deleted file mode 100644 index 51d9d2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator. -

-
basic_resolver_iterator & operator=(
-    const basic_resolver_iterator & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html deleted file mode 100644 index 774d57f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assignment operator. -

-
basic_resolver_iterator & operator=(
-    basic_resolver_iterator && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html deleted file mode 100644 index fd50dbb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_resolver_iterator::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for equality. -

-
friend bool operator==(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html deleted file mode 100644 index b73eac9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::basic_resolver_iterator::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for inequality. -

-
friend bool operator!=(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html deleted file mode 100644 index 49c98dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_resolver_iterator::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Increment - operator (prefix). -

-
basic_resolver_iterator & operator++();
-  » more...
-
-

- Increment operator (postfix). -

-
basic_resolver_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html deleted file mode 100644 index d465bbd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_iterator::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Increment operator (prefix). -

-
basic_resolver_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html deleted file mode 100644 index d16263a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_iterator::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Increment operator (postfix). -

-
basic_resolver_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html deleted file mode 100644 index 5c4da9f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/pointer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_iterator::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the result of applying operator->() to the iterator. -

-
typedef const basic_resolver_entry< InternetProtocol > * pointer;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html deleted file mode 100644 index 99e2b32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/reference.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_iterator::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the result of applying operator*() to the iterator. -

-
typedef const basic_resolver_entry< InternetProtocol > & reference;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html deleted file mode 100644 index c70674c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/value_type.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_iterator::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the value pointed to by the iterator. -

-
typedef basic_resolver_entry< InternetProtocol > value_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_iterator.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html deleted file mode 100644 index eea7b0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_iterator/values_.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ip::basic_resolver_iterator::values_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
values_ptr_type values_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query.html deleted file mode 100644 index 8276963..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query.html +++ /dev/null @@ -1,307 +0,0 @@ - - - -ip::basic_resolver_query - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An query to be passed to a resolver. -

-
template<
-    typename InternetProtocol>
-class basic_resolver_query :
-  public ip::resolver_query_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint query. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_query -

-
-

- Construct with specified service name for any protocol.
-
Construct with specified service name for a given protocol. -

Construct with specified host name and service name - for any protocol.

Construct with specified host name - and service name for a given protocol. -

-
-

- hints -

-
-

- Get the hints associated with the query. -

-
-

- host_name -

-
-

- Get the host name associated with the query. -

-
-

- service_name -

-
-

- Get the service name associated with the query. -

-
-
- - Data Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is configured - for the system. Only return IPv6 addresses if a non-loopback IPv6 - address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a port - number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver_query - class template describes a query that can be passed to a resolver. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_query.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html deleted file mode 100644 index b854b7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/address_configured.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::basic_resolver_query::address_configured - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Only - return IPv4 addresses if a non-loopback IPv4 address is configured for - the system. Only return IPv6 addresses if a non-loopback IPv6 address is - configured for the system. -

-
static const flags address_configured = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html deleted file mode 100644 index 0c1d90d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/all_matching.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_query::all_matching - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
static const flags all_matching = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html deleted file mode 100644 index 874db62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - with specified service name for any protocol. -

-
basic_resolver_query(
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = passive|address_configured);
-  » more...
-
-

- Construct with specified service name for a given protocol. -

-
basic_resolver_query(
-    const protocol_type & protocol,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = passive|address_configured);
-  » more...
-
-

- Construct with specified host name and service name for any protocol. -

-
basic_resolver_query(
-    const std::string & host,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = address_configured);
-  » more...
-
-

- Construct with specified host name and service name for a given protocol. -

-
basic_resolver_query(
-    const protocol_type & protocol,
-    const std::string & host,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = address_configured);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html deleted file mode 100644 index 7d9455b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified service name for any protocol. -

-
basic_resolver_query(
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = passive|address_configured);
-
-

- This constructor is typically used to perform name resolution for local - service binding. -

-
- - Parameters -
-
-

-
-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for local service binding. -

-
-
-
- - Remarks -
-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html deleted file mode 100644 index ffd103f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified service name for a given protocol. -

-
basic_resolver_query(
-    const protocol_type & protocol,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = passive|address_configured);
-
-

- This constructor is typically used to perform name resolution for local - service binding with a specific protocol version. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for local service binding. -

-
-
-
- - Remarks -
-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html deleted file mode 100644 index 449bab7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified host name and service name for any protocol. -

-
basic_resolver_query(
-    const std::string & host,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = address_configured);
-
-

- This constructor is typically used to perform name resolution for communication - with remote hosts. -

-
- - Parameters -
-
-

-
-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html deleted file mode 100644 index 15baab5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html +++ /dev/null @@ -1,101 +0,0 @@ - - - -ip::basic_resolver_query::basic_resolver_query (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with specified host name and service name for a given protocol. -

-
basic_resolver_query(
-    const protocol_type & protocol,
-    const std::string & host,
-    const std::string & service,
-    resolver_query_base::flags resolve_flags = address_configured);
-
-

- This constructor is typically used to perform name resolution for communication - with remote hosts. -

-
- - Parameters -
-
-

-
-
protocol
-

- A protocol object, normally representing either the IPv4 or IPv6 - version of an internet protocol. -

-
host
-

- A string identifying a location. May be a descriptive name or a - numeric address string. If an empty string and the passive flag - has been specified, the resolved endpoints are suitable for local - service binding. If an empty string and passive is not specified, - the resolved endpoints will use the loopback address. -

-
service
-

- A string identifying the requested service. This may be a descriptive - name or a numeric string corresponding to a port number. May be - an empty string, in which case all resolved endpoints will have - a port number of 0. -

-
resolve_flags
-

- A set of flags that determine how name resolution should be performed. - The default flags are suitable for communication with remote hosts. -

-
-
-
- - Remarks -
-

- On POSIX systems, host names may be locally defined in the file /etc/hosts. - On Windows, host names may be defined in the file c:\windows\system32\drivers\etc\hosts. - Remote host name resolution is performed using DNS. Operating systems - may use additional locations when resolving host names (such as NETBIOS - names on Windows). -

-

- On POSIX systems, service names are typically defined in the file /etc/services. - On Windows, service names may be found in the file c:\windows\system32\drivers\etc\services. - Operating systems may use additional locations when resolving service - names. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html deleted file mode 100644 index 85e57dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/canonical_name.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_query::canonical_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Determine - the canonical name of the host specified in the query. -

-
static const flags canonical_name = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/flags.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/flags.html deleted file mode 100644 index 6e1ad01..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::basic_resolver_query::flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -A - bitmask type (C++ Std [lib.bitmask.types]). -

-
typedef unspecified flags;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_query.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/hints.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/hints.html deleted file mode 100644 index 1c33129..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/hints.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_query::hints - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the hints associated with the query. -

-
const asio::detail::addrinfo_type & hints() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html deleted file mode 100644 index 8cc779d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/host_name.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_query::host_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the host name associated with the query. -

-
std::string host_name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html deleted file mode 100644 index 26f187a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_host.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver_query::numeric_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Host - name should be treated as a numeric string defining an IPv4 or IPv6 address - and no name resolution should be attempted. -

-
static const flags numeric_host = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html deleted file mode 100644 index e3184f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/numeric_service.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver_query::numeric_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Service - name should be treated as a numeric string defining a port number and no - name resolution should be attempted. -

-
static const flags numeric_service = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/passive.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/passive.html deleted file mode 100644 index c6b9953..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/passive.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_query::passive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Indicate - that returned endpoint is intended for use as a locally bound socket endpoint. -

-
static const flags passive = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html deleted file mode 100644 index 62d862d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_query::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint query. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_query.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html deleted file mode 100644 index 33b2886..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/service_name.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_query::service_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the service name associated with the query. -

-
std::string service_name() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html deleted file mode 100644 index 98f0277..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_query/v4_mapped.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver_query::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - the query protocol family is specified as IPv6, return IPv4-mapped IPv6 - addresses on finding no IPv6 addresses. -

-
static const flags v4_mapped = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results.html deleted file mode 100644 index e502952..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results.html +++ /dev/null @@ -1,566 +0,0 @@ - - - -ip::basic_resolver_results - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A range of entries produced by a resolver. -

-
template<
-    typename InternetProtocol>
-class basic_resolver_results :
-  public ip::basic_resolver_iterator< InternetProtocol >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- The type of an iterator into the range. -

-
-

- const_reference -

-
-

- The type of a const reference to a value in the range. -

-
-

- difference_type -

-
-

- Type used to represent the distance between two iterators in the - range. -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the results. -

-
-

- iterator -

-
-

- The type of an iterator into the range. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- protocol_type -

-
-

- The protocol type associated with the results. -

-
-

- reference -

-
-

- The type of a non-const reference to a value in the range. -

-
-

- size_type -

-
-

- Type used to represent a count of the elements in the range. -

-
-

- value_type -

-
-

- The type of a value in the results range. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_results -

-
-

- Default constructor creates an empty range.

Copy - constructor.

Move constructor. -

-
-

- begin -

-
-

- Obtain a begin iterator for the results range. -

-
-

- cbegin -

-
-

- Obtain a begin iterator for the results range. -

-
-

- cend -

-
-

- Obtain an end iterator for the results range. -

-
-

- empty -

-
-

- Determine whether the results range is empty. -

-
-

- end -

-
-

- Obtain an end iterator for the results range. -

-
-

- max_size -

-
-

- Get the maximum number of entries permitted in a results range. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-

- size -

-
-

- Get the number of entries in the results range. -

-
-

- swap -

-
-

- Swap the results range with another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_results - class template is used to define a range over the results returned by a resolver. -

-

- The iterator's value_type, obtained when a results iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Remarks -
-

- For backward compatibility, ip::basic_resolver_results - is derived from ip::basic_resolver_iterator. - This derivation is deprecated. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html deleted file mode 100644 index b90aea1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -ip::basic_resolver_results::basic_resolver_results - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor creates an empty range. -

-
basic_resolver_results();
-  » more...
-
-

- Copy constructor. -

-
basic_resolver_results(
-    const basic_resolver_results & other);
-  » more...
-
-

- Move constructor. -

-
basic_resolver_results(
-    basic_resolver_results && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html deleted file mode 100644 index 255161f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::basic_resolver_results::basic_resolver_results (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor creates an empty range. -

-
basic_resolver_results();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html deleted file mode 100644 index 7c37975..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::basic_resolver_results (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_resolver_results(
-    const basic_resolver_results & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html deleted file mode 100644 index a51b214..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::basic_resolver_results (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
basic_resolver_results(
-    basic_resolver_results && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/begin.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/begin.html deleted file mode 100644 index e96b286..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - a begin iterator for the results range. -

-
const_iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html deleted file mode 100644 index c166aaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cbegin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::cbegin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - a begin iterator for the results range. -

-
const_iterator cbegin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cend.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cend.html deleted file mode 100644 index 14bdfcf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/cend.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::cend - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an end iterator for the results range. -

-
const_iterator cend() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html deleted file mode 100644 index be0a922..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_iterator.html +++ /dev/null @@ -1,389 +0,0 @@ - - - -ip::basic_resolver_results::const_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an iterator into the range. -

-
typedef basic_resolver_iterator< protocol_type > const_iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_iterator -

-
-

- Default constructor creates an end iterator.

Copy - constructor.

Move constructor. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator - (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_iterator - class template is used to define iterators over the results returned by - a resolver. -

-

- The iterator's value_type, obtained when the iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html deleted file mode 100644 index e4664ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/const_reference.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_results::const_reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a const reference to a value in the range. -

-
typedef const value_type & const_reference;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html deleted file mode 100644 index 3c4ac37..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/dereference.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::dereference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
const basic_resolver_entry< InternetProtocol > & dereference() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html deleted file mode 100644 index 0a5d400..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/difference_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_results::difference_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Type - used to represent the distance between two iterators in the range. -

-
typedef std::ptrdiff_t difference_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/empty.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/empty.html deleted file mode 100644 index cf433e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/empty.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::empty - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the results range is empty. -

-
bool empty() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/end.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/end.html deleted file mode 100644 index 71e9d8d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an end iterator for the results range. -

-
const_iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html deleted file mode 100644 index d2eabfa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/endpoint_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_results::endpoint_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - endpoint type associated with the results. -

-
typedef protocol_type::endpoint endpoint_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/equal.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/equal.html deleted file mode 100644 index dd4853b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/equal.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_results::equal - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
bool equal(
-    const basic_resolver_iterator & other) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/increment.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/increment.html deleted file mode 100644 index 28fad50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/increment.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::increment - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
void increment();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/index_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/index_.html deleted file mode 100644 index ca6812a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/index_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::index_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
std::size_t index_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html deleted file mode 100644 index e15af98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator.html +++ /dev/null @@ -1,389 +0,0 @@ - - - -ip::basic_resolver_results::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of an iterator into the range. -

-
typedef const_iterator iterator;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- difference_type -

-
-

- The type used for the distance between two iterators. -

-
-

- iterator_category -

-
-

- The iterator category. -

-
-

- pointer -

-
-

- The type of the result of applying operator->() to the iterator. -

-
-

- reference -

-
-

- The type of the result of applying operator*() to the iterator. -

-
-

- value_type -

-
-

- The type of the value pointed to by the iterator. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_iterator -

-
-

- Default constructor creates an end iterator.

Copy - constructor.

Move constructor. -

-
-

- operator * -

-
-

- Dereference an iterator. -

-
-

- operator++ -

-
-

- Increment operator (prefix).

Increment operator - (postfix). -

-
-

- operator-> -

-
-

- Dereference an iterator. -

-
-

- operator= -

-
-

- Assignment operator.

Move-assignment operator. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- dereference -

-
-
-

- equal -

-
-
-

- increment -

-
-
-
- - Protected - Data Members -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- index_ -

-
-
-

- values_ -

-
-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Test two iterators for inequality. -

-
-

- operator== -

-
-

- Test two iterators for equality. -

-
-

- The ip::basic_resolver_iterator - class template is used to define iterators over the results returned by - a resolver. -

-

- The iterator's value_type, obtained when the iterator is dereferenced, - is: -

-
const basic_resolver_entry<InternetProtocol>
-
-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html deleted file mode 100644 index 8275653..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/iterator_category.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::basic_resolver_results::iterator_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -The - iterator category. -

-
typedef std::forward_iterator_tag iterator_category;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html deleted file mode 100644 index 0ab33a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/max_size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::max_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the maximum number of entries permitted in a results range. -

-
size_type max_size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html deleted file mode 100644 index c8db420..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator__star_.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::basic_resolver_results::operator * - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -Dereference - an iterator. -

-
const basic_resolver_entry< InternetProtocol > & operator *() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html deleted file mode 100644 index 15fd92c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_arrow_.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_results::operator-> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -Dereference - an iterator. -

-
const basic_resolver_entry< InternetProtocol > * operator->() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html deleted file mode 100644 index cf7fb53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ip::basic_resolver_results::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment - operator. -

-
basic_resolver_results & operator=(
-    const basic_resolver_results & other);
-  » more...
-
-

- Move-assignment operator. -

-
basic_resolver_results & operator=(
-    basic_resolver_results && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html deleted file mode 100644 index 56e45c8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::operator= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator. -

-
basic_resolver_results & operator=(
-    const basic_resolver_results & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html deleted file mode 100644 index 14059e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::operator= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-assignment operator. -

-
basic_resolver_results & operator=(
-    basic_resolver_results && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html deleted file mode 100644 index 8a5e427..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_resolver_results::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for equality. -

-
friend bool operator==(
-    const basic_resolver_results & a,
-    const basic_resolver_results & b);
-  » more...
-
-friend bool operator==(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html deleted file mode 100644 index 38bd935..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::basic_resolver_results::operator== (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Test two iterators for equality. -

-
friend bool operator==(
-    const basic_resolver_results & a,
-    const basic_resolver_results & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html deleted file mode 100644 index d38729b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -ip::basic_resolver_results::operator== (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- Test two iterators for equality. -

-
friend bool operator==(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html deleted file mode 100644 index 072aeef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_resolver_results::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - two iterators for inequality. -

-
friend bool operator!=(
-    const basic_resolver_results & a,
-    const basic_resolver_results & b);
-  » more...
-
-friend bool operator!=(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html deleted file mode 100644 index 03ed72b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ip::basic_resolver_results::operator!= (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Test two iterators for inequality. -

-
friend bool operator!=(
-    const basic_resolver_results & a,
-    const basic_resolver_results & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html deleted file mode 100644 index 678a933..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -ip::basic_resolver_results::operator!= (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- Test two iterators for inequality. -

-
friend bool operator!=(
-    const basic_resolver_iterator & a,
-    const basic_resolver_iterator & b);
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html deleted file mode 100644 index bde09b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ip::basic_resolver_results::operator++ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Increment - operator (prefix). -

-
basic_resolver_iterator & operator++();
-  » more...
-
-

- Increment operator (postfix). -

-
basic_resolver_iterator operator++(
-    int );
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html deleted file mode 100644 index 72d785c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::basic_resolver_results::operator++ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- Increment operator (prefix). -

-
basic_resolver_iterator & operator++();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html deleted file mode 100644 index 525026d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::basic_resolver_results::operator++ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- Increment operator (postfix). -

-
basic_resolver_iterator operator++(
-    int );
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html deleted file mode 100644 index 8a98334..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/pointer.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::basic_resolver_results::pointer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -The - type of the result of applying operator->() to the iterator. -

-
typedef const basic_resolver_entry< InternetProtocol > * pointer;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html deleted file mode 100644 index ddcd768..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_results::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the results. -

-
typedef InternetProtocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/reference.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/reference.html deleted file mode 100644 index dc7f46e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/reference.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_results::reference - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a non-const reference to a value in the range. -

-
typedef value_type & reference;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size.html deleted file mode 100644 index 22c4f67..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::basic_resolver_results::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the number of entries in the results range. -

-
size_type size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html deleted file mode 100644 index c170134..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/size_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::basic_resolver_results::size_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Type - used to represent a count of the elements in the range. -

-
typedef std::size_t size_type;
-
-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/swap.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/swap.html deleted file mode 100644 index cc6e606..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/swap.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::swap - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Swap - the results range with another. -

-
void swap(
-    basic_resolver_results & that);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html deleted file mode 100644 index f19ef56..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/value_type.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -ip::basic_resolver_results::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a value in the results range. -

-
typedef basic_resolver_entry< protocol_type > value_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type associated with the endpoint entry. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint entry. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_resolver_entry -

-
-

- Default constructor.

Construct with specified endpoint, - host name and service name. -

-
-

- endpoint -

-
-

- Get the endpoint associated with the entry. -

-
-

- host_name -

-
-

- Get the host name associated with the entry. -

-
-

- operator endpoint_type -

-
-

- Convert to the endpoint associated with the entry. -

-
-

- service_name -

-
-

- Get the service name associated with the entry. -

-
-

- The ip::basic_resolver_entry - class template describes an entry as returned by a resolver. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/basic_resolver_results.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/values_.html b/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/values_.html deleted file mode 100644 index 79c5156..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__basic_resolver_results/values_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::basic_resolver_results::values_ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::basic_resolver. -

-

- -

-
values_ptr_type values_;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__host_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__host_name.html deleted file mode 100644 index a27f4cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__host_name.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -ip::host_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the current host name. -

-
std::string host_name();
-  » more...
-
-std::string host_name(
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/ip/host_name.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload1.html deleted file mode 100644 index c7e5ae8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::host_name (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the current host name. -

-
std::string host_name();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload2.html deleted file mode 100644 index 6809639..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__host_name/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::host_name (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the current host name. -

-
std::string host_name(
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp.html deleted file mode 100644 index 2e08318..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp.html +++ /dev/null @@ -1,259 +0,0 @@ - - - -ip::icmp - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for ICMP. -

-
class icmp
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of a ICMP endpoint. -

-
-

- resolver -

-
-

- The ICMP resolver type. -

-
-

- socket -

-
-

- The ICMP socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- v4 -

-
-

- Construct to represent the IPv4 ICMP protocol. -

-
-

- v6 -

-
-

- Construct to represent the IPv6 ICMP protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The ip::icmp - class contains flags necessary for ICMP sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/endpoint.html deleted file mode 100644 index 8d87099..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/endpoint.html +++ /dev/null @@ -1,393 +0,0 @@ - - - -ip::icmp::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a ICMP endpoint. -

-
typedef basic_endpoint< icmp > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Get the IP address associated with the endpoint.

- Set the IP address associated with the endpoint. -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - a port number, specified in the host's byte order. The IP address - will be the any address (i.e. INADDR_ANY or in6addr_any). This - constructor would typically be used for accepting new connections. -

Construct an endpoint using a port number and an - IP address. This constructor may be used for accepting connections - on a specific interface or for making a connection to a remote - endpoint.

Copy constructor.

Move - constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint.

Move-assign from - another endpoint. -

-
-

- port -

-
-

- Get the port associated with the endpoint. The port number is - always in the host's byte order.

Set the port associated - with the endpoint. The port number is always in the host's byte - order. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The ip::basic_endpoint - class template describes an endpoint that may be associated with a particular - socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/family.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/family.html deleted file mode 100644 index c493dd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the - protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html deleted file mode 100644 index 5fc3df8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::icmp::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for equality. -

-
friend bool operator==(
-    const icmp & p1,
-    const icmp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html deleted file mode 100644 index 59372be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::icmp::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two - protocols for inequality. -

-
friend bool operator!=(
-    const icmp & p1,
-    const icmp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/protocol.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/protocol.html deleted file mode 100644 index 4f9e1e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for - the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/resolver.html deleted file mode 100644 index dd7d8dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/resolver.html +++ /dev/null @@ -1,434 +0,0 @@ - - - -ip::icmp::resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The ICMP resolver type. -

-
typedef basic_resolver< icmp > resolver;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- iterator -

-
-

- (Deprecated.) The iterator type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- query -

-
-

- (Deprecated.) The query type. -

-
-

- results_type -

-
-

- The results type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list - of entries.

Asynchronously perform forward resolution - of a query to a list of entries.

Asynchronously - perform reverse resolution of an endpoint to a list of entries. -

-
-

- basic_resolver -

-
-

- Constructor.

Move-construct a basic_resolver from - another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the resolver. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_resolver from another. -

-
-

- resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

Perform forward resolution of a query to a list - of entries.

Perform reverse resolution of an endpoint - to a list of entries. -

-
-

- ~basic_resolver -

-
-

- Destroys the resolver. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is - configured for the system. Only return IPv6 addresses if a non-loopback - IPv6 address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a - port number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver - class template provides the ability to resolve a query to a list of endpoints. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/socket.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/socket.html deleted file mode 100644 index b72f416..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/socket.html +++ /dev/null @@ -1,929 +0,0 @@ - - - -ip::icmp::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The ICMP socket type. -

-
typedef basic_raw_socket< icmp > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_raw_socket -

-
-

- Construct a basic_raw_socket without opening it.

- Construct and open a basic_raw_socket.

Construct - a basic_raw_socket, opening it and binding it to the given local - endpoint.

Construct a basic_raw_socket on an existing - native socket.

Move-construct a basic_raw_socket - from another.

Move-construct a basic_raw_socket - from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_raw_socket from another.

Move-assign - a basic_raw_socket from a socket of another protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive raw data with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send raw data to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_raw_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_raw_socket - class template provides asynchronous and blocking raw-oriented socket functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/icmp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/type.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/type.html deleted file mode 100644 index 7731c71..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the type - of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v4.html deleted file mode 100644 index 7de40ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv4 ICMP - protocol. -

-
static icmp v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v6.html deleted file mode 100644 index f809478..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__icmp/v6.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::icmp::v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv6 ICMP - protocol. -

-
static icmp v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__enable_loopback.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__enable_loopback.html deleted file mode 100644 index a4c5fa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__enable_loopback.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -ip::multicast::enable_loopback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option determining whether outgoing multicast packets will be received on - the same socket if it is a member of the multicast group. -

-
typedef implementation_defined enable_loopback;
-
-

- Implements the IPPROTO_IP/IP_MULTICAST_LOOP socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::multicast::enable_loopback option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::multicast::enable_loopback option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__hops.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__hops.html deleted file mode 100644 index 128b9b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__hops.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::multicast::hops - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option for time-to-live - associated with outgoing multicast packets. -

-
typedef implementation_defined hops;
-
-

- Implements the IPPROTO_IP/IP_MULTICAST_TTL socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::multicast::hops option(4);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::multicast::hops option;
-socket.get_option(option);
-int ttl = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__join_group.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__join_group.html deleted file mode 100644 index 5d2d6b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__join_group.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -ip::multicast::join_group - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option - to join a multicast group on a specified interface. -

-
typedef implementation_defined join_group;
-
-

- Implements the IPPROTO_IP/IP_ADD_MEMBERSHIP socket option. -

-
- - Examples -
-

- Setting the option to join a multicast group: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::address multicast_address =
-  asio::ip::address::from_string("225.0.0.1");
-asio::ip::multicast::join_group option(multicast_address);
-socket.set_option(option);
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__leave_group.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__leave_group.html deleted file mode 100644 index ad4f4b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__leave_group.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -ip::multicast::leave_group - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option to leave a multicast group on a specified interface. -

-
typedef implementation_defined leave_group;
-
-

- Implements the IPPROTO_IP/IP_DROP_MEMBERSHIP socket option. -

-
- - Examples -
-

- Setting the option to leave a multicast group: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::address multicast_address =
-  asio::ip::address::from_string("225.0.0.1");
-asio::ip::multicast::leave_group option(multicast_address);
-socket.set_option(option);
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__outbound_interface.html b/Sources/Vendor/asio/doc/asio/reference/ip__multicast__outbound_interface.html deleted file mode 100644 index 1c1d424..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__multicast__outbound_interface.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -ip::multicast::outbound_interface - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for local interface to use for outgoing multicast packets. -

-
typedef implementation_defined outbound_interface;
-
-

- Implements the IPPROTO_IP/IP_MULTICAST_IF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::address_v4 local_interface =
-  asio::ip::address_v4::from_string("1.2.3.4");
-asio::ip::multicast::outbound_interface option(local_interface);
-socket.set_option(option);
-
-
- - Requirements -
-

- Header: asio/ip/multicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4.html deleted file mode 100644 index 29ddbc2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4.html +++ /dev/null @@ -1,326 +0,0 @@ - - - -ip::network_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Represents an IPv4 network. -

-
class network_v4
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Obtain the address object specified when the network object was - created. -

-
-

- broadcast -

-
-

- Obtain an address object that represents the network's broadcast - address. -

-
-

- canonical -

-
-

- Obtain the true network address, omitting any host bits. -

-
-

- hosts -

-
-

- Obtain an address range corresponding to the hosts in the network. -

-
-

- is_host -

-
-

- Test if network is a valid host address. -

-
-

- is_subnet_of -

-
-

- Test if a network is a real subnet of another network. -

-
-

- netmask -

-
-

- Obtain the netmask that was specified when the network object was - created. -

-
-

- network -

-
-

- Obtain an address object that represents the network address. -

-
-

- network_v4 -

-
-

- Default constructor.

Construct a network based on - the specified address and prefix length.

Construct - network based on the specified address and netmask.

- Copy constructor. -

-
-

- operator= -

-
-

- Assign from another network. -

-
-

- prefix_length -

-
-

- Obtain the prefix length that was specified when the network object - was created. -

-
-

- to_string -

-
-

- Get the network as an address in dotted decimal format. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two networks for inequality. -

-
-

- operator== -

-
-

- Compare two networks for equality. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_network_v4 -

-
-

- Create an IPv4 network from a string containing IP address and - prefix length. -

-
-

- The ip::network_v4 - class provides the ability to use and manipulate IP version 4 networks. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/network_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/address.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/address.html deleted file mode 100644 index 16d0d4a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/address.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the address - object specified when the network object was created. -

-
address_v4 address() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/broadcast.html deleted file mode 100644 index 02326fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/broadcast.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an - address object that represents the network's broadcast address. -

-
address_v4 broadcast() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/canonical.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/canonical.html deleted file mode 100644 index abe1881..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/canonical.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::canonical - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the - true network address, omitting any host bits. -

-
network_v4 canonical() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/hosts.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/hosts.html deleted file mode 100644 index 2d52220..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/hosts.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::hosts - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - range corresponding to the hosts in the network. -

-
address_v4_range hosts() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_host.html deleted file mode 100644 index 842dbfd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_host.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::is_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test if network - is a valid host address. -

-
bool is_host() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html deleted file mode 100644 index a071612..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/is_subnet_of.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::is_subnet_of - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - if a network is a real subnet of another network. -

-
bool is_subnet_of(
-    const network_v4 & other) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4.html deleted file mode 100644 index 4e407d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -ip::network_v4::make_network_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv4 network from a string containing IP address and prefix length. -

-
network_v4 make_network_v4(
-    const char * str);
-  » more...
-
-network_v4 make_network_v4(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-network_v4 make_network_v4(
-    const std::string & str);
-  » more...
-
-network_v4 make_network_v4(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-network_v4 make_network_v4(
-    string_view str);
-  » more...
-
-network_v4 make_network_v4(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html deleted file mode 100644 index 9d2506c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::make_network_v4 (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html deleted file mode 100644 index def44c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v4::make_network_v4 (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html deleted file mode 100644 index 31aaffc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::make_network_v4 (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html deleted file mode 100644 index 1b7dd5d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v4::make_network_v4 (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html deleted file mode 100644 index 66b3c15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload5.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::make_network_v4 (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html deleted file mode 100644 index 58b01b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/make_network_v4/overload6.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v4::make_network_v4 (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv4 network from a string containing IP address and prefix - length. -

-
network_v4 make_network_v4(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/netmask.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/netmask.html deleted file mode 100644 index d1721f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/netmask.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::netmask - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the netmask - that was specified when the network object was created. -

-
address_v4 netmask() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network.html deleted file mode 100644 index 7457af8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::network - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - object that represents the network address. -

-
address_v4 network() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4.html deleted file mode 100644 index f302dcb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -ip::network_v4::network_v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
network_v4();
-  » more...
-
-

- Construct a network based on the specified address and prefix length. -

-
network_v4(
-    const address_v4 & addr,
-    unsigned short prefix_len);
-  » more...
-
-

- Construct network based on the specified address and netmask. -

-
network_v4(
-    const address_v4 & addr,
-    const address_v4 & mask);
-  » more...
-
-

- Copy constructor. -

-
network_v4(
-    const network_v4 & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html deleted file mode 100644 index 2c4ff9b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::network_v4::network_v4 (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
network_v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html deleted file mode 100644 index ff52d32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::network_v4 (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a network based on the specified address and prefix length. -

-
network_v4(
-    const address_v4 & addr,
-    unsigned short prefix_len);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html deleted file mode 100644 index 33fea9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::network_v4 (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct network based on the specified address and netmask. -

-
network_v4(
-    const address_v4 & addr,
-    const address_v4 & mask);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html deleted file mode 100644 index 5990906..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/network_v4/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::network_v4 (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
network_v4(
-    const network_v4 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq_.html deleted file mode 100644 index e1174d3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v4::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another network. -

-
network_v4 & operator=(
-    const network_v4 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html deleted file mode 100644 index d7a4012..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::network_v4::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two networks for equality. -

-
friend bool operator==(
-    const network_v4 & a,
-    const network_v4 & b);
-
-
- - Requirements -
-

- Header: asio/ip/network_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html deleted file mode 100644 index c64f820..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::network_v4::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two networks for inequality. -

-
friend bool operator!=(
-    const network_v4 & a,
-    const network_v4 & b);
-
-
- - Requirements -
-

- Header: asio/ip/network_v4.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/prefix_length.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/prefix_length.html deleted file mode 100644 index ad73cd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/prefix_length.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::prefix_length - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the prefix length that was specified when the network object was created. -

-
unsigned short prefix_length() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string.html deleted file mode 100644 index 2fb80ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::network_v4::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the network - as an address in dotted decimal format. -

-
std::string to_string() const;
-  » more...
-
-std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html deleted file mode 100644 index efdcf86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::network_v4::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the network as an address in dotted decimal format. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html deleted file mode 100644 index 1a29e2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v4/to_string/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v4::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the network as an address in dotted decimal format. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6.html deleted file mode 100644 index 3c07aa6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6.html +++ /dev/null @@ -1,298 +0,0 @@ - - - -ip::network_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Represents an IPv6 network. -

-
class network_v6
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Obtain the address object specified when the network object was - created. -

-
-

- canonical -

-
-

- Obtain the true network address, omitting any host bits. -

-
-

- hosts -

-
-

- Obtain an address range corresponding to the hosts in the network. -

-
-

- is_host -

-
-

- Test if network is a valid host address. -

-
-

- is_subnet_of -

-
-

- Test if a network is a real subnet of another network. -

-
-

- network -

-
-

- Obtain an address object that represents the network address. -

-
-

- network_v6 -

-
-

- Default constructor.

Construct a network based on - the specified address and prefix length.

Copy constructor. -

-
-

- operator= -

-
-

- Assign from another network. -

-
-

- prefix_length -

-
-

- Obtain the prefix length that was specified when the network object - was created. -

-
-

- to_string -

-
-

- Get the network as an address in dotted decimal format. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two networks for inequality. -

-
-

- operator== -

-
-

- Compare two networks for equality. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- make_network_v6 -

-
-

- Create an IPv6 network from a string containing IP address and - prefix length. -

-
-

- The ip::network_v6 - class provides the ability to use and manipulate IP version 6 networks. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/network_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/address.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/address.html deleted file mode 100644 index 0b40eec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/address.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the address - object specified when the network object was created. -

-
address_v6 address() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/canonical.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/canonical.html deleted file mode 100644 index 5fd25a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/canonical.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::canonical - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the - true network address, omitting any host bits. -

-
network_v6 canonical() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/hosts.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/hosts.html deleted file mode 100644 index 562ac88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/hosts.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::hosts - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - range corresponding to the hosts in the network. -

-
address_v6_range hosts() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_host.html deleted file mode 100644 index 6c6d662..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_host.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::is_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test if network - is a valid host address. -

-
bool is_host() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html deleted file mode 100644 index 50a75dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/is_subnet_of.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::is_subnet_of - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test - if a network is a real subnet of another network. -

-
bool is_subnet_of(
-    const network_v6 & other) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6.html deleted file mode 100644 index 48abb1a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -ip::network_v6::make_network_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - an IPv6 network from a string containing IP address and prefix length. -

-
network_v6 make_network_v6(
-    const char * str);
-  » more...
-
-network_v6 make_network_v6(
-    const char * str,
-    asio::error_code & ec);
-  » more...
-
-network_v6 make_network_v6(
-    const std::string & str);
-  » more...
-
-network_v6 make_network_v6(
-    const std::string & str,
-    asio::error_code & ec);
-  » more...
-
-network_v6 make_network_v6(
-    string_view str);
-  » more...
-
-network_v6 make_network_v6(
-    string_view str,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html deleted file mode 100644 index 6ac0d20..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::make_network_v6 (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    const char * str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html deleted file mode 100644 index d242124..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload2.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v6::make_network_v6 (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    const char * str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html deleted file mode 100644 index 0df90c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload3.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::make_network_v6 (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    const std::string & str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html deleted file mode 100644 index 2bf8cdd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload4.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v6::make_network_v6 (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    const std::string & str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html deleted file mode 100644 index 5304e7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload5.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::make_network_v6 (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    string_view str);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html deleted file mode 100644 index 3e8acaa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/make_network_v6/overload6.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::network_v6::make_network_v6 (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an IPv6 network from a string containing IP address and prefix - length. -

-
network_v6 make_network_v6(
-    string_view str,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network.html deleted file mode 100644 index 78122c0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::network - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an address - object that represents the network address. -

-
address_v6 network() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6.html deleted file mode 100644 index 8d9ffae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ip::network_v6::network_v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
network_v6();
-  » more...
-
-

- Construct a network based on the specified address and prefix length. -

-
network_v6(
-    const address_v6 & addr,
-    unsigned short prefix_len);
-  » more...
-
-

- Copy constructor. -

-
network_v6(
-    const network_v6 & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html deleted file mode 100644 index 9ded8b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::network_v6::network_v6 (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
network_v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html deleted file mode 100644 index a9deded..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::network_v6 (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a network based on the specified address and prefix length. -

-
network_v6(
-    const address_v6 & addr,
-    unsigned short prefix_len);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html deleted file mode 100644 index ccb1811..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/network_v6/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::network_v6 (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
network_v6(
-    const network_v6 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq_.html deleted file mode 100644 index 367d72b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::network_v6::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another network. -

-
network_v6 & operator=(
-    const network_v6 & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html deleted file mode 100644 index 99b6b2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::network_v6::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two networks for equality. -

-
friend bool operator==(
-    const network_v6 & a,
-    const network_v6 & b);
-
-
- - Requirements -
-

- Header: asio/ip/network_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html deleted file mode 100644 index 71dc178..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::network_v6::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two networks for inequality. -

-
friend bool operator!=(
-    const network_v6 & a,
-    const network_v6 & b);
-
-
- - Requirements -
-

- Header: asio/ip/network_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/prefix_length.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/prefix_length.html deleted file mode 100644 index c5928f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/prefix_length.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::prefix_length - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the prefix length that was specified when the network object was created. -

-
unsigned short prefix_length() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string.html deleted file mode 100644 index ca8fec4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::network_v6::to_string - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the network - as an address in dotted decimal format. -

-
std::string to_string() const;
-  » more...
-
-std::string to_string(
-    asio::error_code & ec) const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html deleted file mode 100644 index 66f08b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::network_v6::to_string (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the network as an address in dotted decimal format. -

-
std::string to_string() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html deleted file mode 100644 index d2555f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__network_v6/to_string/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::network_v6::to_string (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the network as an address in dotted decimal format. -

-
std::string to_string(
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base.html deleted file mode 100644 index 66f64be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base.html +++ /dev/null @@ -1,237 +0,0 @@ - - - -ip::resolver_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The ip::resolver_base - class is used as a base for the ip::basic_resolver - class templates to provide a common place to define the flag constants. -

-
class resolver_base
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~resolver_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is configured - for the system. Only return IPv6 addresses if a non-loopback IPv6 - address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a port - number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-
- - Requirements -
-

- Header: asio/ip/resolver_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html deleted file mode 100644 index 23a8605..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/_resolver_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_base::~resolver_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~resolver_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/address_configured.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/address_configured.html deleted file mode 100644 index 6b426b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/address_configured.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ip::resolver_base::address_configured - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Only - return IPv4 addresses if a non-loopback IPv4 address is configured for - the system. Only return IPv6 addresses if a non-loopback IPv6 address is - configured for the system. -

-
static const flags address_configured = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/all_matching.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/all_matching.html deleted file mode 100644 index 7f4ef6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/all_matching.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_base::all_matching - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If - used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
static const flags all_matching = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/canonical_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/canonical_name.html deleted file mode 100644 index fc928ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/canonical_name.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_base::canonical_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - the canonical name of the host specified in the query. -

-
static const flags canonical_name = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/flags.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/flags.html deleted file mode 100644 index 484be4f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/flags.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ip::resolver_base::flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A bitmask type - (C++ Std [lib.bitmask.types]). -

-
typedef unspecified flags;
-
-
- - Requirements -
-

- Header: asio/ip/resolver_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_host.html deleted file mode 100644 index 2cf0f90..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_host.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::resolver_base::numeric_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Host - name should be treated as a numeric string defining an IPv4 or IPv6 address - and no name resolution should be attempted. -

-
static const flags numeric_host = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_service.html deleted file mode 100644 index e6db84e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/numeric_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::resolver_base::numeric_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Service - name should be treated as a numeric string defining a port number and no - name resolution should be attempted. -

-
static const flags numeric_service = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/passive.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/passive.html deleted file mode 100644 index 3002a15..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/passive.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_base::passive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Indicate - that returned endpoint is intended for use as a locally bound socket endpoint. -

-
static const flags passive = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html deleted file mode 100644 index 03bc2a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_base/v4_mapped.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ip::resolver_base::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -If - the query protocol family is specified as IPv6, return IPv4-mapped IPv6 - addresses on finding no IPv6 addresses. -

-
static const flags v4_mapped = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base.html deleted file mode 100644 index b933d0f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base.html +++ /dev/null @@ -1,238 +0,0 @@ - - - -ip::resolver_query_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The ip::resolver_query_base - class is used as a base for the ip::basic_resolver_query - class templates to provide a common place to define the flag constants. -

-
class resolver_query_base :
-  public ip::resolver_base
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~resolver_query_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is configured - for the system. Only return IPv6 addresses if a non-loopback IPv6 - address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a port - number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-
- - Requirements -
-

- Header: asio/ip/resolver_query_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html deleted file mode 100644 index 747591c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::resolver_query_base::~resolver_query_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~resolver_query_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html deleted file mode 100644 index e5af38e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/address_configured.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ip::resolver_query_base::address_configured - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Only - return IPv4 addresses if a non-loopback IPv4 address is configured for - the system. Only return IPv6 addresses if a non-loopback IPv6 address is - configured for the system. -

-
static const flags address_configured = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html deleted file mode 100644 index 8b89f49..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/all_matching.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::resolver_query_base::all_matching - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
static const flags all_matching = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html deleted file mode 100644 index a1dff0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/canonical_name.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::resolver_query_base::canonical_name - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Determine - the canonical name of the host specified in the query. -

-
static const flags canonical_name = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/flags.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/flags.html deleted file mode 100644 index f4c9f85..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/flags.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -ip::resolver_query_base::flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -A - bitmask type (C++ Std [lib.bitmask.types]). -

-
typedef unspecified flags;
-
-
- - Requirements -
-

- Header: asio/ip/resolver_query_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html deleted file mode 100644 index 73f41c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_host.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::resolver_query_base::numeric_host - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Host - name should be treated as a numeric string defining an IPv4 or IPv6 address - and no name resolution should be attempted. -

-
static const flags numeric_host = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html deleted file mode 100644 index 837e568..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/numeric_service.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::resolver_query_base::numeric_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Service - name should be treated as a numeric string defining a port number and no - name resolution should be attempted. -

-
static const flags numeric_service = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/passive.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/passive.html deleted file mode 100644 index 2a81860..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/passive.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -ip::resolver_query_base::passive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -Indicate - that returned endpoint is intended for use as a locally bound socket endpoint. -

-
static const flags passive = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html b/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html deleted file mode 100644 index 329877a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__resolver_query_base/v4_mapped.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ip::resolver_query_base::v4_mapped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from ip::resolver_base. -

-

- -If - the query protocol family is specified as IPv6, return IPv4-mapped IPv6 - addresses on finding no IPv6 addresses. -

-
static const flags v4_mapped = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp.html deleted file mode 100644 index 0c8551d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp.html +++ /dev/null @@ -1,295 +0,0 @@ - - - -ip::tcp - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for TCP. -

-
class tcp
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- acceptor -

-
-

- The TCP acceptor type. -

-
-

- endpoint -

-
-

- The type of a TCP endpoint. -

-
-

- iostream -

-
-

- The TCP iostream type. -

-
-

- no_delay -

-
-

- Socket option for disabling the Nagle algorithm. -

-
-

- resolver -

-
-

- The TCP resolver type. -

-
-

- socket -

-
-

- The TCP socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- v4 -

-
-

- Construct to represent the IPv4 TCP protocol. -

-
-

- v6 -

-
-

- Construct to represent the IPv6 TCP protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The ip::tcp class - contains flags necessary for TCP sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/acceptor.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/acceptor.html deleted file mode 100644 index 3301481..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/acceptor.html +++ /dev/null @@ -1,789 +0,0 @@ - - - -ip::tcp::acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The TCP acceptor type. -

-
typedef basic_socket_acceptor< tcp > acceptor;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of an acceptor. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- accept -

-
-

- Accept a new connection.

Accept a new connection - and obtain the endpoint of the peer. -

-
-

- assign -

-
-

- Assigns an existing native acceptor to the acceptor. -

-
-

- async_accept -

-
-

- Start an asynchronous accept. -

-
-

- async_wait -

-
-

- Asynchronously wait for the acceptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- basic_socket_acceptor -

-
-

- Construct an acceptor without opening it.

Construct - an open acceptor.

Construct an acceptor opened - on the given endpoint.

Construct a basic_socket_acceptor - on an existing native acceptor.

Move-construct - a basic_socket_acceptor from another.

Move-construct - a basic_socket_acceptor from an acceptor of another protocol - type. -

-
-

- bind -

-
-

- Bind the acceptor to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the acceptor. -

-
-

- close -

-
-

- Close the acceptor. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the acceptor. -

-
-

- io_control -

-
-

- Perform an IO control command on the acceptor. -

-
-

- is_open -

-
-

- Determine whether the acceptor is open. -

-
-

- listen -

-
-

- Place the acceptor into the state where it will listen for new - connections. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the acceptor. -

-
-

- native_handle -

-
-

- Get the native acceptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native acceptor implementation. -

Sets the non-blocking mode of the native acceptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the acceptor.

Sets - the non-blocking mode of the acceptor. -

-
-

- open -

-
-

- Open the acceptor using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_acceptor from another.

- Move-assign a basic_socket_acceptor from an acceptor of another - protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native acceptor. -

-
-

- set_option -

-
-

- Set an option on the acceptor. -

-
-

- wait -

-
-

- Wait for the acceptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_socket_acceptor -

-
-

- Destroys the acceptor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket_acceptor - class template is used for accepting new socket connections. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- Opening a socket acceptor with the SO_REUSEADDR option enabled: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port);
-acceptor.open(endpoint.protocol());
-acceptor.set_option(asio::ip::tcp::acceptor::reuse_address(true));
-acceptor.bind(endpoint);
-acceptor.listen();
-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/endpoint.html deleted file mode 100644 index c34c830..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/endpoint.html +++ /dev/null @@ -1,394 +0,0 @@ - - - -ip::tcp::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a TCP endpoint. -

-
typedef basic_endpoint< tcp > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Get the IP address associated with the endpoint.

- Set the IP address associated with the endpoint. -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - a port number, specified in the host's byte order. The IP address - will be the any address (i.e. INADDR_ANY or in6addr_any). This - constructor would typically be used for accepting new connections. -

Construct an endpoint using a port number and an - IP address. This constructor may be used for accepting connections - on a specific interface or for making a connection to a remote - endpoint.

Copy constructor.

Move - constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint.

Move-assign from - another endpoint. -

-
-

- port -

-
-

- Get the port associated with the endpoint. The port number is - always in the host's byte order.

Set the port associated - with the endpoint. The port number is always in the host's byte - order. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The ip::basic_endpoint - class template describes an endpoint that may be associated with a particular - socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/family.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/family.html deleted file mode 100644 index 08a7ba6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::tcp::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the - protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/iostream.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/iostream.html deleted file mode 100644 index 1bbece3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/iostream.html +++ /dev/null @@ -1,326 +0,0 @@ - - - -ip::tcp::iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The TCP iostream type. -

-
typedef basic_socket_iostream< tcp > iostream;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_iostream -

-
-

- Construct a basic_socket_iostream without establishing a connection. -

Construct a basic_socket_iostream from the supplied - socket.

Move-construct a basic_socket_iostream - from another.

Establish a connection to an endpoint - corresponding to a resolver query. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection to an endpoint corresponding to a resolver - query. -

-
-

- error -

-
-

- Get the last error associated with the stream. -

-
-

- expires_after -

-
-

- Set the stream's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time as an - absolute time.

Set the stream's expiry time as - an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time relative - to now.

(Deprecated: Use expires_after().) Set - the stream's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_iostream from another. -

-
-

- rdbuf -

-
-

- Return a pointer to the underlying streambuf. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/no_delay.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/no_delay.html deleted file mode 100644 index 0747e7a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/no_delay.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::tcp::no_delay - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option for disabling - the Nagle algorithm. -

-
typedef implementation_defined no_delay;
-
-

- Implements the IPPROTO_TCP/TCP_NODELAY socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::tcp::no_delay option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html deleted file mode 100644 index bf0c5f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::tcp::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for equality. -

-
friend bool operator==(
-    const tcp & p1,
-    const tcp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html deleted file mode 100644 index fd9d0bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::tcp::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for inequality. -

-
friend bool operator!=(
-    const tcp & p1,
-    const tcp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/protocol.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/protocol.html deleted file mode 100644 index a0a5332..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::tcp::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for - the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/resolver.html deleted file mode 100644 index 062d0c0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/resolver.html +++ /dev/null @@ -1,434 +0,0 @@ - - - -ip::tcp::resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The TCP resolver type. -

-
typedef basic_resolver< tcp > resolver;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- iterator -

-
-

- (Deprecated.) The iterator type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- query -

-
-

- (Deprecated.) The query type. -

-
-

- results_type -

-
-

- The results type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list - of entries.

Asynchronously perform forward resolution - of a query to a list of entries.

Asynchronously - perform reverse resolution of an endpoint to a list of entries. -

-
-

- basic_resolver -

-
-

- Constructor.

Move-construct a basic_resolver from - another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the resolver. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_resolver from another. -

-
-

- resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

Perform forward resolution of a query to a list - of entries.

Perform reverse resolution of an endpoint - to a list of entries. -

-
-

- ~basic_resolver -

-
-

- Destroys the resolver. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is - configured for the system. Only return IPv6 addresses if a non-loopback - IPv6 address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a - port number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver - class template provides the ability to resolve a query to a list of endpoints. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/socket.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/socket.html deleted file mode 100644 index b7d7e34..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/socket.html +++ /dev/null @@ -1,932 +0,0 @@ - - - -ip::tcp::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The TCP socket type. -

-
typedef basic_stream_socket< tcp > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_stream_socket -

-
-

- Construct a basic_stream_socket without opening it.

- Construct and open a basic_stream_socket.

Construct - a basic_stream_socket, opening it and binding it to the given - local endpoint.

Construct a basic_stream_socket - on an existing native socket.

Move-construct a - basic_stream_socket from another.

Move-construct - a basic_stream_socket from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_stream_socket from another.

- Move-assign a basic_stream_socket from a socket of another protocol - type. -

-
-

- read_some -

-
-

- Read some data from the socket. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the socket. -

-
-

- ~basic_stream_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_stream_socket - class template provides asynchronous and blocking stream-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/tcp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/type.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/type.html deleted file mode 100644 index a77432e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::tcp::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the type - of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v4.html deleted file mode 100644 index fba103e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v4.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::tcp::v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv4 TCP protocol. -

-
static tcp v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v6.html deleted file mode 100644 index 2f0b589..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__tcp/v6.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::tcp::v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv6 TCP protocol. -

-
static tcp v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp.html deleted file mode 100644 index 30a22f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp.html +++ /dev/null @@ -1,259 +0,0 @@ - - - -ip::udp - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for UDP. -

-
class udp
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of a UDP endpoint. -

-
-

- resolver -

-
-

- The UDP resolver type. -

-
-

- socket -

-
-

- The UDP socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- v4 -

-
-

- Construct to represent the IPv4 UDP protocol. -

-
-

- v6 -

-
-

- Construct to represent the IPv6 UDP protocol. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two protocols for inequality. -

-
-

- operator== -

-
-

- Compare two protocols for equality. -

-
-

- The ip::udp class - contains flags necessary for UDP sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/endpoint.html deleted file mode 100644 index 7a99267..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/endpoint.html +++ /dev/null @@ -1,394 +0,0 @@ - - - -ip::udp::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type of a UDP endpoint. -

-
typedef basic_endpoint< udp > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address -

-
-

- Get the IP address associated with the endpoint.

- Set the IP address associated with the endpoint. -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - a port number, specified in the host's byte order. The IP address - will be the any address (i.e. INADDR_ANY or in6addr_any). This - constructor would typically be used for accepting new connections. -

Construct an endpoint using a port number and an - IP address. This constructor may be used for accepting connections - on a specific interface or for making a connection to a remote - endpoint.

Copy constructor.

Move - constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint.

Move-assign from - another endpoint. -

-
-

- port -

-
-

- Get the port associated with the endpoint. The port number is - always in the host's byte order.

Set the port associated - with the endpoint. The port number is always in the host's byte - order. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The ip::basic_endpoint - class template describes an endpoint that may be associated with a particular - socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/family.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/family.html deleted file mode 100644 index 34657b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::udp::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the - protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html deleted file mode 100644 index 25a06d5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::udp::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for equality. -

-
friend bool operator==(
-    const udp & p1,
-    const udp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_not__eq_.html deleted file mode 100644 index 5267e61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ip::udp::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two protocols - for inequality. -

-
friend bool operator!=(
-    const udp & p1,
-    const udp & p2);
-
-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/protocol.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/protocol.html deleted file mode 100644 index 7cc1ba1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::udp::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for - the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/resolver.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/resolver.html deleted file mode 100644 index 70912bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/resolver.html +++ /dev/null @@ -1,434 +0,0 @@ - - - -ip::udp::resolver - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The UDP resolver type. -

-
typedef basic_resolver< udp > resolver;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- flags -

-
-

- A bitmask type (C++ Std [lib.bitmask.types]). -

-
-

- iterator -

-
-

- (Deprecated.) The iterator type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- query -

-
-

- (Deprecated.) The query type. -

-
-

- results_type -

-
-

- The results type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Asynchronously perform forward resolution of a query to a list - of entries.

Asynchronously perform forward resolution - of a query to a list of entries.

Asynchronously - perform reverse resolution of an endpoint to a list of entries. -

-
-

- basic_resolver -

-
-

- Constructor.

Move-construct a basic_resolver from - another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the resolver. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_resolver from another. -

-
-

- resolve -

-
-

- (Deprecated: Use overload with separate host and service parameters.) - Perform forward resolution of a query to a list of entries. -

Perform forward resolution of a query to a list - of entries.

Perform reverse resolution of an endpoint - to a list of entries. -

-
-

- ~basic_resolver -

-
-

- Destroys the resolver. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- address_configured -

-
-

- Only return IPv4 addresses if a non-loopback IPv4 address is - configured for the system. Only return IPv6 addresses if a non-loopback - IPv6 address is configured for the system. -

-
-

- all_matching -

-
-

- If used with v4_mapped, return all matching IPv6 and IPv4 addresses. -

-
-

- canonical_name -

-
-

- Determine the canonical name of the host specified in the query. -

-
-

- numeric_host -

-
-

- Host name should be treated as a numeric string defining an IPv4 - or IPv6 address and no name resolution should be attempted. -

-
-

- numeric_service -

-
-

- Service name should be treated as a numeric string defining a - port number and no name resolution should be attempted. -

-
-

- passive -

-
-

- Indicate that returned endpoint is intended for use as a locally - bound socket endpoint. -

-
-

- v4_mapped -

-
-

- If the query protocol family is specified as IPv6, return IPv4-mapped - IPv6 addresses on finding no IPv6 addresses. -

-
-

- The ip::basic_resolver - class template provides the ability to resolve a query to a list of endpoints. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/socket.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/socket.html deleted file mode 100644 index 552a638..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/socket.html +++ /dev/null @@ -1,931 +0,0 @@ - - - -ip::udp::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The UDP socket type. -

-
typedef basic_datagram_socket< udp > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_datagram_socket -

-
-

- Construct a basic_datagram_socket without opening it.
-
Construct and open a basic_datagram_socket.

- Construct a basic_datagram_socket, opening it and binding it - to the given local endpoint.

Construct a basic_datagram_socket - on an existing native socket.

Move-construct a - basic_datagram_socket from another.

Move-construct - a basic_datagram_socket from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_datagram_socket from another.

- Move-assign a basic_datagram_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive a datagram with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send a datagram to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_datagram_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_datagram_socket - class template provides asynchronous and blocking datagram-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/ip/udp.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/type.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/type.html deleted file mode 100644 index e89f0ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ip::udp::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain an identifier for the type - of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/v4.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/v4.html deleted file mode 100644 index 5640fd7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/v4.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::udp::v4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv4 UDP protocol. -

-
static udp v4();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__udp/v6.html b/Sources/Vendor/asio/doc/asio/reference/ip__udp/v6.html deleted file mode 100644 index b56d7f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__udp/v6.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ip::udp::v6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct to represent the IPv6 UDP protocol. -

-
static udp v6();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__unicast__hops.html b/Sources/Vendor/asio/doc/asio/reference/ip__unicast__hops.html deleted file mode 100644 index 122b194..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__unicast__hops.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::unicast::hops - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option for time-to-live - associated with outgoing unicast packets. -

-
typedef implementation_defined hops;
-
-

- Implements the IPPROTO_IP/IP_UNICAST_TTL socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::unicast::hops option(4);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::ip::unicast::hops option;
-socket.get_option(option);
-int ttl = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/unicast.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__v4_mapped_t.html b/Sources/Vendor/asio/doc/asio/reference/ip__v4_mapped_t.html deleted file mode 100644 index c293073..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__v4_mapped_t.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -ip::v4_mapped_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Tag type used for distinguishing - overloads that deal in IPv4-mapped IPv6 addresses. -

-
enum v4_mapped_t
-
-

- -

-
- - Values -
-
-

-
-
v4_mapped
-
-
-
-
- - Requirements -
-

- Header: asio/ip/address_v6.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ip__v6_only.html b/Sources/Vendor/asio/doc/asio/reference/ip__v6_only.html deleted file mode 100644 index f3562e2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ip__v6_only.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ip::v6_only - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option for determining whether - an IPv6 socket supports IPv6 communication only. -

-
typedef implementation_defined v6_only;
-
-

- Implements the IPPROTO_IPV6/IP_V6ONLY socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::v6_only option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::ip::v6_only option;
-socket.get_option(option);
-bool v6_only = option.value();
-
-
- - Requirements -
-

- Header: asio/ip/v6_only.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_const_buffer_sequence.html b/Sources/Vendor/asio/doc/asio/reference/is_const_buffer_sequence.html deleted file mode 100644 index 5ca9463..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_const_buffer_sequence.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -is_const_buffer_sequence - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Trait to determine whether a type satisfies the ConstBufferSequence requirements. -

-
template<
-    typename T>
-struct is_const_buffer_sequence
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_dynamic_buffer.html b/Sources/Vendor/asio/doc/asio/reference/is_dynamic_buffer.html deleted file mode 100644 index 977de3a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_dynamic_buffer.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -is_dynamic_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Trait to determine whether a type satisfies the DynamicBuffer requirements. -

-
template<
-    typename T>
-struct is_dynamic_buffer
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence.html b/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence.html deleted file mode 100644 index cebea0c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -is_endpoint_sequence - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Type trait used to determine whether a type is an endpoint sequence that - can be used with with connect and async_connect. -

-
template<
-    typename T>
-struct is_endpoint_sequence
-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- value -

-
-

- The value member is true if the type may be used as an endpoint - sequence. -

-
-
- - Requirements -
-

- Header: asio/connect.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence/value.html b/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence/value.html deleted file mode 100644 index d3245d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_endpoint_sequence/value.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -is_endpoint_sequence::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The value - member is true if the type may be used as an endpoint sequence. -

-
static const bool value;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_executor.html b/Sources/Vendor/asio/doc/asio/reference/is_executor.html deleted file mode 100644 index 9a1f55d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_executor.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -is_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The is_executor - trait detects whether a type T meets the Executor type requirements. -

-
template<
-    typename T>
-struct is_executor
-
-

- Class template is_executor is a UnaryTypeTrait that is derived - from true_type if the type T meets the syntactic - requirements for Executor, otherwise false_type. -

-
- - Requirements -
-

- Header: asio/is_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_match_condition.html b/Sources/Vendor/asio/doc/asio/reference/is_match_condition.html deleted file mode 100644 index fcdaf66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_match_condition.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -is_match_condition - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Type trait used to determine whether a type can be used as a match condition - function with read_until and async_read_until. -

-
template<
-    typename T>
-struct is_match_condition
-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- value -

-
-

- The value member is true if the type may be used as a match condition. -

-
-
- - Requirements -
-

- Header: asio/read_until.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_match_condition/value.html b/Sources/Vendor/asio/doc/asio/reference/is_match_condition/value.html deleted file mode 100644 index a747387..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_match_condition/value.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -is_match_condition::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The value - member is true if the type may be used as a match condition. -

-
static const bool value;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_mutable_buffer_sequence.html b/Sources/Vendor/asio/doc/asio/reference/is_mutable_buffer_sequence.html deleted file mode 100644 index 4e75ded..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_mutable_buffer_sequence.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -is_mutable_buffer_sequence - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Trait to determine whether a type satisfies the MutableBufferSequence requirements. -

-
template<
-    typename T>
-struct is_mutable_buffer_sequence
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_read_buffered.html b/Sources/Vendor/asio/doc/asio/reference/is_read_buffered.html deleted file mode 100644 index b362b6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_read_buffered.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -is_read_buffered - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The is_read_buffered - class is a traits class that may be used to determine whether a stream type - supports buffering of read data. -

-
template<
-    typename Stream>
-class is_read_buffered
-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- value -

-
-

- The value member is true only if the Stream type supports buffering - of read data. -

-
-
- - Requirements -
-

- Header: asio/is_read_buffered.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_read_buffered/value.html b/Sources/Vendor/asio/doc/asio/reference/is_read_buffered/value.html deleted file mode 100644 index f805289..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_read_buffered/value.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -is_read_buffered::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The value member - is true only if the Stream type supports buffering of read data. -

-
static const bool value;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_write_buffered.html b/Sources/Vendor/asio/doc/asio/reference/is_write_buffered.html deleted file mode 100644 index b2326e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_write_buffered.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -is_write_buffered - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The is_write_buffered - class is a traits class that may be used to determine whether a stream type - supports buffering of written data. -

-
template<
-    typename Stream>
-class is_write_buffered
-
-
- - Data - Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- value -

-
-

- The value member is true only if the Stream type supports buffering - of written data. -

-
-
- - Requirements -
-

- Header: asio/is_write_buffered.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/is_write_buffered/value.html b/Sources/Vendor/asio/doc/asio/reference/is_write_buffered/value.html deleted file mode 100644 index b5c01fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/is_write_buffered/value.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -is_write_buffered::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The value member - is true only if the Stream type supports buffering of written data. -

-
static const bool value;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint.html deleted file mode 100644 index bc55bdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint.html +++ /dev/null @@ -1,371 +0,0 @@ - - - -local::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Describes an endpoint for a UNIX socket. -

-
template<
-    typename Protocol>
-class basic_endpoint
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on the - underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - the specified path name.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- path -

-
-

- Get the path associated with the endpoint.

Set the - path associated with the endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The local::basic_endpoint - class template describes an endpoint that may be associated with a particular - UNIX socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html deleted file mode 100644 index a65ba1a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default - constructor. -

-
basic_endpoint();
-  » more...
-
-

- Construct an endpoint using the specified path name. -

-
basic_endpoint(
-    const char * path_name);
-  » more...
-
-basic_endpoint(
-    const std::string & path_name);
-  » more...
-
-

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html deleted file mode 100644 index 629e250..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
basic_endpoint();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html deleted file mode 100644 index 9983988..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint using the specified path name. -

-
basic_endpoint(
-    const char * path_name);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html deleted file mode 100644 index a7c24ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an endpoint using the specified path name. -

-
basic_endpoint(
-    const std::string & path_name);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html deleted file mode 100644 index 486a171..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/basic_endpoint/overload4.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::basic_endpoint (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
basic_endpoint(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/capacity.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/capacity.html deleted file mode 100644 index f470ef4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/capacity.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::capacity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the capacity of the endpoint in the native type. -

-
std::size_t capacity() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data.html deleted file mode 100644 index e43abd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -local::basic_endpoint::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - underlying endpoint in the native type. -

-
data_type * data();
-  » more...
-
-const data_type * data() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html deleted file mode 100644 index 43a820b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -local::basic_endpoint::data (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
data_type * data();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html deleted file mode 100644 index 6be0120..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -local::basic_endpoint::data (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the underlying endpoint in the native type. -

-
const data_type * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data_type.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data_type.html deleted file mode 100644 index 3995467..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/data_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -local::basic_endpoint::data_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the endpoint structure. This type is dependent on the underlying - implementation of the socket layer. -

-
typedef implementation_defined data_type;
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html deleted file mode 100644 index 4bcd071..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -local::basic_endpoint::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - from another endpoint. -

-
basic_endpoint & operator=(
-    const basic_endpoint & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html deleted file mode 100644 index 170848b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_eq__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for equality. -

-
friend bool operator==(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html deleted file mode 100644 index aa83117..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator> - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html deleted file mode 100644 index 5292ff1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_gt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator>= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator>=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html deleted file mode 100644 index d48d7c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html deleted file mode 100644 index 8e29553..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator<= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - endpoints for ordering. -

-
friend bool operator<=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html deleted file mode 100644 index 81e8d6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_lt__lt_.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -local::basic_endpoint::operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output - an endpoint as a string. -

-
std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const basic_endpoint< Protocol > & endpoint);
-
-

- Used to output a human-readable string for a specified endpoint. -

-
- - Parameters -
-
-

-
-
os
-

- The output stream to which the string will be written. -

-
endpoint
-

- The endpoint to be written. -

-
-
-
- - Return - Value -
-

- The output stream. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html deleted file mode 100644 index 9be98ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/operator_not__eq_.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two endpoints for inequality. -

-
friend bool operator!=(
-    const basic_endpoint< Protocol > & e1,
-    const basic_endpoint< Protocol > & e2);
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path.html deleted file mode 100644 index 68dccd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -local::basic_endpoint::path - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - path associated with the endpoint. -

-
std::string path() const;
-  » more...
-
-

- Set the path associated with the endpoint. -

-
void path(
-    const char * p);
-  » more...
-
-void path(
-    const std::string & p);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html deleted file mode 100644 index 21100b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -local::basic_endpoint::path (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the path associated with the endpoint. -

-
std::string path() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html deleted file mode 100644 index 25f6afb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::path (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the path associated with the endpoint. -

-
void path(
-    const char * p);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html deleted file mode 100644 index 44c27a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/path/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::path (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the path associated with the endpoint. -

-
void path(
-    const std::string & p);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol.html deleted file mode 100644 index 1d39daf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol associated with the endpoint. -

-
protocol_type protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html deleted file mode 100644 index a83ef57..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/protocol_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -local::basic_endpoint::protocol_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - protocol type associated with the endpoint. -

-
typedef Protocol protocol_type;
-
-
- - Requirements -
-

- Header: asio/local/basic_endpoint.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/resize.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/resize.html deleted file mode 100644 index e684afd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/resize.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -local::basic_endpoint::resize - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the underlying size of the endpoint in the native type. -

-
void resize(
-    std::size_t new_size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/size.html b/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/size.html deleted file mode 100644 index ffcb2b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__basic_endpoint/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::basic_endpoint::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - underlying size of the endpoint in the native type. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair.html b/Sources/Vendor/asio/doc/asio/reference/local__connect_pair.html deleted file mode 100644 index 37a8810..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -local::connect_pair - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create a pair of connected - sockets. -

-
template<
-    typename Protocol>
-void connect_pair(
-    basic_socket< Protocol > & socket1,
-    basic_socket< Protocol > & socket2);
-  » more...
-
-template<
-    typename Protocol>
-void connect_pair(
-    basic_socket< Protocol > & socket1,
-    basic_socket< Protocol > & socket2,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/local/connect_pair.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload1.html b/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload1.html deleted file mode 100644 index 24e383b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -local::connect_pair (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a pair of connected sockets. -

-
template<
-    typename Protocol>
-void connect_pair(
-    basic_socket< Protocol > & socket1,
-    basic_socket< Protocol > & socket2);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload2.html b/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload2.html deleted file mode 100644 index cebe9ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__connect_pair/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -local::connect_pair (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a pair of connected sockets. -

-
template<
-    typename Protocol>
-void connect_pair(
-    basic_socket< Protocol > & socket1,
-    basic_socket< Protocol > & socket2,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol.html deleted file mode 100644 index 5d4c5cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -local::datagram_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for datagram-oriented UNIX sockets. -

-
class datagram_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- endpoint -

-
-

- The type of a UNIX domain endpoint. -

-
-

- socket -

-
-

- The UNIX domain socket type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- The local::datagram_protocol - class contains flags necessary for datagram-oriented UNIX domain sockets. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/local/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/endpoint.html deleted file mode 100644 index 5d1f271..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/endpoint.html +++ /dev/null @@ -1,372 +0,0 @@ - - - -local::datagram_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a UNIX domain endpoint. -

-
typedef basic_endpoint< datagram_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - the specified path name.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- path -

-
-

- Get the path associated with the endpoint.

Set - the path associated with the endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The local::basic_endpoint - class template describes an endpoint that may be associated with a particular - UNIX socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/family.html deleted file mode 100644 index 705deb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::datagram_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/protocol.html deleted file mode 100644 index 219ca48..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::datagram_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/socket.html deleted file mode 100644 index d3c65db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/socket.html +++ /dev/null @@ -1,932 +0,0 @@ - - - -local::datagram_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - UNIX domain socket type. -

-
typedef basic_datagram_socket< datagram_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_receive -

-
-

- Start an asynchronous receive on a connected socket. -

-
-

- async_receive_from -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send on a connected socket. -

-
-

- async_send_to -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_datagram_socket -

-
-

- Construct a basic_datagram_socket without opening it.
-
Construct and open a basic_datagram_socket.

- Construct a basic_datagram_socket, opening it and binding it - to the given local endpoint.

Construct a basic_datagram_socket - on an existing native socket.

Move-construct a - basic_datagram_socket from another.

Move-construct - a basic_datagram_socket from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_datagram_socket from another.

- Move-assign a basic_datagram_socket from a socket of another - protocol type. -

-
-

- receive -

-
-

- Receive some data on a connected socket. -

-
-

- receive_from -

-
-

- Receive a datagram with the endpoint of the sender. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on a connected socket. -

-
-

- send_to -

-
-

- Send a datagram to the specified endpoint. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_datagram_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_datagram_socket - class template provides asynchronous and blocking datagram-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/datagram_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/type.html deleted file mode 100644 index af59909..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__datagram_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::datagram_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol.html deleted file mode 100644 index f55c9f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol.html +++ /dev/null @@ -1,198 +0,0 @@ - - - -local::stream_protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Encapsulates the flags needed for stream-oriented UNIX sockets. -

-
class stream_protocol
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- acceptor -

-
-

- The UNIX domain acceptor type. -

-
-

- endpoint -

-
-

- The type of a UNIX domain endpoint. -

-
-

- iostream -

-
-

- The UNIX domain iostream type. -

-
-

- socket -

-
-

- The UNIX domain socket type. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- family -

-
-

- Obtain an identifier for the protocol family. -

-
-

- protocol -

-
-

- Obtain an identifier for the protocol. -

-
-

- type -

-
-

- Obtain an identifier for the type of the protocol. -

-
-

- The local::stream_protocol - class contains flags necessary for stream-oriented UNIX domain sockets. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Safe. -

-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/acceptor.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/acceptor.html deleted file mode 100644 index 05e4908..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/acceptor.html +++ /dev/null @@ -1,790 +0,0 @@ - - - -local::stream_protocol::acceptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - UNIX domain acceptor type. -

-
typedef basic_socket_acceptor< stream_protocol > acceptor;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of an acceptor. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- accept -

-
-

- Accept a new connection.

Accept a new connection - and obtain the endpoint of the peer. -

-
-

- assign -

-
-

- Assigns an existing native acceptor to the acceptor. -

-
-

- async_accept -

-
-

- Start an asynchronous accept. -

-
-

- async_wait -

-
-

- Asynchronously wait for the acceptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- basic_socket_acceptor -

-
-

- Construct an acceptor without opening it.

Construct - an open acceptor.

Construct an acceptor opened - on the given endpoint.

Construct a basic_socket_acceptor - on an existing native acceptor.

Move-construct - a basic_socket_acceptor from another.

Move-construct - a basic_socket_acceptor from an acceptor of another protocol - type. -

-
-

- bind -

-
-

- Bind the acceptor to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the acceptor. -

-
-

- close -

-
-

- Close the acceptor. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the acceptor. -

-
-

- io_control -

-
-

- Perform an IO control command on the acceptor. -

-
-

- is_open -

-
-

- Determine whether the acceptor is open. -

-
-

- listen -

-
-

- Place the acceptor into the state where it will listen for new - connections. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the acceptor. -

-
-

- native_handle -

-
-

- Get the native acceptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native acceptor implementation. -

Sets the non-blocking mode of the native acceptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the acceptor.

Sets - the non-blocking mode of the acceptor. -

-
-

- open -

-
-

- Open the acceptor using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_acceptor from another.

- Move-assign a basic_socket_acceptor from an acceptor of another - protocol type. -

-
-

- release -

-
-

- Release ownership of the underlying native acceptor. -

-
-

- set_option -

-
-

- Set an option on the acceptor. -

-
-

- wait -

-
-

- Wait for the acceptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- ~basic_socket_acceptor -

-
-

- Destroys the acceptor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_socket_acceptor - class template is used for accepting new socket connections. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- Opening a socket acceptor with the SO_REUSEADDR option enabled: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port);
-acceptor.open(endpoint.protocol());
-acceptor.set_option(asio::ip::tcp::acceptor::reuse_address(true));
-acceptor.bind(endpoint);
-acceptor.listen();
-
-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/endpoint.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/endpoint.html deleted file mode 100644 index 7b7e798..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/endpoint.html +++ /dev/null @@ -1,372 +0,0 @@ - - - -local::stream_protocol::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of a UNIX domain endpoint. -

-
typedef basic_endpoint< stream_protocol > endpoint;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data_type -

-
-

- The type of the endpoint structure. This type is dependent on - the underlying implementation of the socket layer. -

-
-

- protocol_type -

-
-

- The protocol type associated with the endpoint. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_endpoint -

-
-

- Default constructor.

Construct an endpoint using - the specified path name.

Copy constructor. -

-
-

- capacity -

-
-

- Get the capacity of the endpoint in the native type. -

-
-

- data -

-
-

- Get the underlying endpoint in the native type. -

-
-

- operator= -

-
-

- Assign from another endpoint. -

-
-

- path -

-
-

- Get the path associated with the endpoint.

Set - the path associated with the endpoint. -

-
-

- protocol -

-
-

- The protocol associated with the endpoint. -

-
-

- resize -

-
-

- Set the underlying size of the endpoint in the native type. -

-
-

- size -

-
-

- Get the underlying size of the endpoint in the native type. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two endpoints for inequality. -

-
-

- operator< -

-
-

- Compare endpoints for ordering. -

-
-

- operator<= -

-
-

- Compare endpoints for ordering. -

-
-

- operator== -

-
-

- Compare two endpoints for equality. -

-
-

- operator> -

-
-

- Compare endpoints for ordering. -

-
-

- operator>= -

-
-

- Compare endpoints for ordering. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator<< -

-
-

- Output an endpoint as a string. -

-
-

- The local::basic_endpoint - class template describes an endpoint that may be associated with a particular - UNIX socket. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/family.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/family.html deleted file mode 100644 index 8d80ad5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/family.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::stream_protocol::family - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol family. -

-
int family() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/iostream.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/iostream.html deleted file mode 100644 index 8e9a948..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/iostream.html +++ /dev/null @@ -1,327 +0,0 @@ - - - -local::stream_protocol::iostream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - UNIX domain iostream type. -

-
typedef basic_socket_iostream< stream_protocol > iostream;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type. -

-
-

- duration_type -

-
-

- (Deprecated: Use duration.) The duration type. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- time_point -

-
-

- The time type. -

-
-

- time_type -

-
-

- (Deprecated: Use time_point.) The time type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_socket_iostream -

-
-

- Construct a basic_socket_iostream without establishing a connection. -

Construct a basic_socket_iostream from the supplied - socket.

Move-construct a basic_socket_iostream - from another.

Establish a connection to an endpoint - corresponding to a resolver query. -

-
-

- close -

-
-

- Close the connection. -

-
-

- connect -

-
-

- Establish a connection to an endpoint corresponding to a resolver - query. -

-
-

- error -

-
-

- Get the last error associated with the stream. -

-
-

- expires_after -

-
-

- Set the stream's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time as an - absolute time.

Set the stream's expiry time as - an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the stream's expiry time relative - to now.

(Deprecated: Use expires_after().) Set - the stream's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the stream's expiry time as an absolute time. -

-
-

- operator= -

-
-

- Move-assign a basic_socket_iostream from another. -

-
-

- rdbuf -

-
-

- Return a pointer to the underlying streambuf. -

-
-

- socket -

-
-

- Get a reference to the underlying socket. -

-
-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/protocol.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/protocol.html deleted file mode 100644 index ce01563..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/protocol.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::stream_protocol::protocol - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the protocol. -

-
int protocol() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/socket.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/socket.html deleted file mode 100644 index 5e0b8d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/socket.html +++ /dev/null @@ -1,933 +0,0 @@ - - - -local::stream_protocol::socket - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - UNIX domain socket type. -

-
typedef basic_stream_socket< stream_protocol > socket;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- endpoint_type -

-
-

- The endpoint type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close - if unsent data is present. -

-
-

- lowest_layer_type -

-
-

- A basic_socket is always the lowest layer. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive - operations. -

-
-

- native_handle_type -

-
-

- The native representation of a socket. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- protocol_type -

-
-

- The protocol type. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native socket to the socket. -

-
-

- async_connect -

-
-

- Start an asynchronous connect. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_receive -

-
-

- Start an asynchronous receive. -

-
-

- async_send -

-
-

- Start an asynchronous send. -

-
-

- async_wait -

-
-

- Asynchronously wait for the socket to become ready to read, ready - to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- at_mark -

-
-

- Determine whether the socket is at the out-of-band data mark. -

-
-

- available -

-
-

- Determine the number of bytes available for reading. -

-
-

- basic_stream_socket -

-
-

- Construct a basic_stream_socket without opening it.

- Construct and open a basic_stream_socket.

Construct - a basic_stream_socket, opening it and binding it to the given - local endpoint.

Construct a basic_stream_socket - on an existing native socket.

Move-construct a - basic_stream_socket from another.

Move-construct - a basic_stream_socket from a socket of another protocol type. -

-
-

- bind -

-
-

- Bind the socket to the given local endpoint. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the socket. -

-
-

- close -

-
-

- Close the socket. -

-
-

- connect -

-
-

- Connect the socket to the specified endpoint. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the socket. -

-
-

- io_control -

-
-

- Perform an IO control command on the socket. -

-
-

- is_open -

-
-

- Determine whether the socket is open. -

-
-

- local_endpoint -

-
-

- Get the local endpoint of the socket. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native socket representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native socket implementation. -

Sets the non-blocking mode of the native socket - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the socket.

Sets - the non-blocking mode of the socket. -

-
-

- open -

-
-

- Open the socket using the specified protocol. -

-
-

- operator= -

-
-

- Move-assign a basic_stream_socket from another.

- Move-assign a basic_stream_socket from a socket of another protocol - type. -

-
-

- read_some -

-
-

- Read some data from the socket. -

-
-

- receive -

-
-

- Receive some data on the socket.

Receive some data - on a connected socket. -

-
-

- release -

-
-

- Release ownership of the underlying native socket. -

-
-

- remote_endpoint -

-
-

- Get the remote endpoint of the socket. -

-
-

- send -

-
-

- Send some data on the socket. -

-
-

- set_option -

-
-

- Set an option on the socket. -

-
-

- shutdown -

-
-

- Disable sends or receives on the socket. -

-
-

- wait -

-
-

- Wait for the socket to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the socket. -

-
-

- ~basic_stream_socket -

-
-

- Destroys the socket. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length - of the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-

- The basic_stream_socket - class template provides asynchronous and blocking stream-oriented socket - functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/local/stream_protocol.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/type.html b/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/type.html deleted file mode 100644 index 275c53e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/local__stream_protocol/type.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -local::stream_protocol::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an identifier for the type of the protocol. -

-
int type() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard.html deleted file mode 100644 index e62a1af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -make_work_guard - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create an executor_work_guard - object. -

-
template<
-    typename Executor>
-executor_work_guard< Executor > make_work_guard(
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename ExecutionContext>
-executor_work_guard< typename ExecutionContext::executor_type > make_work_guard(
-    ExecutionContext & ctx,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-template<
-    typename T>
-executor_work_guard< typename associated_executor< T >::type > make_work_guard(
-    const T & t,
-    typename enable_if<!is_executor< T >::value &&!is_convertible< T &, execution_context & >::value >::type *  = 0);
-  » more...
-
-template<
-    typename T,
-    typename Executor>
-executor_work_guard< typename associated_executor< T, Executor >::type > make_work_guard(
-    const T & t,
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename T,
-    typename ExecutionContext>
-executor_work_guard< typename associated_executor< T, typename ExecutionContext::executor_type >::type > make_work_guard(
-    const T & t,
-    ExecutionContext & ctx,
-    typename enable_if<!is_executor< T >::value &&!is_convertible< T &, execution_context & >::value &&is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/executor_work_guard.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload1.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload1.html deleted file mode 100644 index a44f61c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -make_work_guard (1 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename Executor>
-executor_work_guard< Executor > make_work_guard(
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload2.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload2.html deleted file mode 100644 index 1a602ab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -make_work_guard (2 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename ExecutionContext>
-executor_work_guard< typename ExecutionContext::executor_type > make_work_guard(
-    ExecutionContext & ctx,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload3.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload3.html deleted file mode 100644 index 1473ceb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload3.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -make_work_guard (3 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename T>
-executor_work_guard< typename associated_executor< T >::type > make_work_guard(
-    const T & t,
-    typename enable_if<!is_executor< T >::value &&!is_convertible< T &, execution_context & >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload4.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload4.html deleted file mode 100644 index d037514..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload4.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -make_work_guard (4 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename T,
-    typename Executor>
-executor_work_guard< typename associated_executor< T, Executor >::type > make_work_guard(
-    const T & t,
-    const Executor & ex,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload5.html b/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload5.html deleted file mode 100644 index 270e799..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/make_work_guard/overload5.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -make_work_guard (5 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create an executor_work_guard - object. -

-
template<
-    typename T,
-    typename ExecutionContext>
-executor_work_guard< typename associated_executor< T, typename ExecutionContext::executor_type >::type > make_work_guard(
-    const T & t,
-    ExecutionContext & ctx,
-    typename enable_if<!is_executor< T >::value &&!is_convertible< T &, execution_context & >::value &&is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer.html deleted file mode 100644 index f552ae1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer.html +++ /dev/null @@ -1,183 +0,0 @@ - - - -mutable_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Holds a buffer that can be modified. -

-
class mutable_buffer
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start of - another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. It - does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() and - size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/data.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/data.html deleted file mode 100644 index 3289dc9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/data.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffer::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a pointer to the - beginning of the memory range. -

-
void * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html deleted file mode 100644 index 9341a52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -mutable_buffer::mutable_buffer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an empty buffer. -

-
mutable_buffer();
-  » more...
-
-

- Construct a buffer to represent a given memory range. -

-
mutable_buffer(
-    void * data,
-    std::size_t size);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html deleted file mode 100644 index a5838cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -mutable_buffer::mutable_buffer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty buffer. -

-
mutable_buffer();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html deleted file mode 100644 index f64ebeb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/mutable_buffer/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffer::mutable_buffer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a buffer to represent a given memory range. -

-
mutable_buffer(
-    void * data,
-    std::size_t size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_.html deleted file mode 100644 index bdc13e8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -mutable_buffer::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    const mutable_buffer & b,
-    std::size_t n);
-  » more...
-
-mutable_buffer operator+(
-    std::size_t n,
-    const mutable_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html deleted file mode 100644 index b082dbc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffer::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    const mutable_buffer & b,
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html deleted file mode 100644 index ee7160b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus_/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffer::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Create a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    std::size_t n,
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html deleted file mode 100644 index 8be95a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/operator_plus__eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffer::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move - the start of the buffer by the specified number of bytes. -

-
mutable_buffer & operator+=(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/size.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/size.html deleted file mode 100644 index 1625854..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffer/size.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffer::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the size of the - memory range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1.html deleted file mode 100644 index ff1e489..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1.html +++ /dev/null @@ -1,236 +0,0 @@ - - - -mutable_buffers_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use mutable_buffer.) - Adapts a single modifiable buffer so that it meets the requirements of the - MutableBufferSequence concept. -

-
class mutable_buffers_1 :
-  public mutable_buffer
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- A random-access iterator type that may be used to read elements. -

-
-

- value_type -

-
-

- The type for each element in the list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- begin -

-
-

- Get a random-access iterator to the first element. -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- end -

-
-

- Get a random-access iterator for one past the last element. -

-
-

- mutable_buffers_1 -

-
-

- Construct to represent a given memory range.

Construct - to represent a single modifiable buffer. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start of - another. -

-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/begin.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/begin.html deleted file mode 100644 index 0ed64d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffers_1::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access - iterator to the first element. -

-
const_iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html deleted file mode 100644 index 4681d39..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/const_iterator.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -mutable_buffers_1::const_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - random-access iterator type that may be used to read elements. -

-
typedef const mutable_buffer * const_iterator;
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/data.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/data.html deleted file mode 100644 index 786aa24..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/data.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -mutable_buffers_1::data - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- -Get a pointer - to the beginning of the memory range. -

-
void * data() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/end.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/end.html deleted file mode 100644 index d2c97f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffers_1::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access - iterator for one past the last element. -

-
const_iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html deleted file mode 100644 index 2c076e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -mutable_buffers_1::mutable_buffers_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - to represent a given memory range. -

-
mutable_buffers_1(
-    void * data,
-    std::size_t size);
-  » more...
-
-

- Construct to represent a single modifiable buffer. -

-
explicit mutable_buffers_1(
-    const mutable_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html deleted file mode 100644 index b9319b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -mutable_buffers_1::mutable_buffers_1 (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct to represent a given memory range. -

-
mutable_buffers_1(
-    void * data,
-    std::size_t size);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html deleted file mode 100644 index 6fade54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -mutable_buffers_1::mutable_buffers_1 (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct to represent a single modifiable buffer. -

-
mutable_buffers_1(
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html deleted file mode 100644 index 25bee34..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -mutable_buffers_1::operator+ - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Create - a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    const mutable_buffer & b,
-    std::size_t n);
-  » more...
-
-mutable_buffer operator+(
-    std::size_t n,
-    const mutable_buffer & b);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html deleted file mode 100644 index 389bdbb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload1.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -mutable_buffers_1::operator+ (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- Create a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    const mutable_buffer & b,
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html deleted file mode 100644 index 67757c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus_/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -mutable_buffers_1::operator+ (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- Create a new modifiable buffer that is offset from the start of another. -

-
mutable_buffer operator+(
-    std::size_t n,
-    const mutable_buffer & b);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html deleted file mode 100644 index 1fc48cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/operator_plus__eq_.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -mutable_buffers_1::operator+= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- -Move - the start of the buffer by the specified number of bytes. -

-
mutable_buffer & operator+=(
-    std::size_t n);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/size.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/size.html deleted file mode 100644 index 99f4232..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/size.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -mutable_buffers_1::size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from mutable_buffer. -

-

- -Get the size - of the memory range. -

-
std::size_t size() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/value_type.html b/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/value_type.html deleted file mode 100644 index 1eb340c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/mutable_buffers_1/value_type.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -mutable_buffers_1::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type for each element in the list of buffers. -

-
typedef mutable_buffer value_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start - of another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers.html deleted file mode 100644 index 3223a19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers.html +++ /dev/null @@ -1,150 +0,0 @@ - - - -null_buffers - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- (Deprecated: Use the socket/descriptor wait() and async_wait() member functions.) - An implementation of both the ConstBufferSequence and MutableBufferSequence - concepts to represent a null buffer sequence. -

-
class null_buffers
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_iterator -

-
-

- A random-access iterator type that may be used to read elements. -

-
-

- value_type -

-
-

- The type for each element in the list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- begin -

-
-

- Get a random-access iterator to the first element. -

-
-

- end -

-
-

- Get a random-access iterator for one past the last element. -

-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers/begin.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers/begin.html deleted file mode 100644 index 555443c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers/begin.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -null_buffers::begin - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access iterator - to the first element. -

-
const_iterator begin() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers/const_iterator.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers/const_iterator.html deleted file mode 100644 index ad0b996..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers/const_iterator.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -null_buffers::const_iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A random-access - iterator type that may be used to read elements. -

-
typedef const mutable_buffer * const_iterator;
-
-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers/end.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers/end.html deleted file mode 100644 index 119d9b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers/end.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -null_buffers::end - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a random-access iterator - for one past the last element. -

-
const_iterator end() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/null_buffers/value_type.html b/Sources/Vendor/asio/doc/asio/reference/null_buffers/value_type.html deleted file mode 100644 index 6967fa3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/null_buffers/value_type.html +++ /dev/null @@ -1,185 +0,0 @@ - - - -null_buffers::value_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type for - each element in the list of buffers. -

-
typedef mutable_buffer value_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- data -

-
-

- Get a pointer to the beginning of the memory range. -

-
-

- mutable_buffer -

-
-

- Construct an empty buffer.

Construct a buffer to - represent a given memory range. -

-
-

- operator+= -

-
-

- Move the start of the buffer by the specified number of bytes. -

-
-

- size -

-
-

- Get the size of the memory range. -

-
-
- - Related - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator+ -

-
-

- Create a new modifiable buffer that is offset from the start - of another. -

-
-

- The mutable_buffer - class provides a safe representation of a buffer that can be modified. - It does not own the underlying data, and so is cheap to copy or assign. -

-
- - Accessing - Buffer Contents -
-

- The contents of a buffer may be accessed using the data() - and size() member functions: -

-
asio::mutable_buffer b1 = ...;
-std::size_t s1 = b1.size();
-unsigned char* p1 = static_cast<unsigned char*>(b1.data());
-
-

- The data() member function permits violations of type safety, - so uses of it in application code should be carefully considered. -

-
- - Requirements -
-

- Header: asio/buffer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/operator_lt__lt_.html b/Sources/Vendor/asio/doc/asio/reference/operator_lt__lt_.html deleted file mode 100644 index f7e0123..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/operator_lt__lt_.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -operator<< - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Output an error code. -

-
template<
-    typename Elem,
-    typename Traits>
-std::basic_ostream< Elem, Traits > & operator<<(
-    std::basic_ostream< Elem, Traits > & os,
-    const error_code & ec);
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__bytes_transferred.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__bytes_transferred.html deleted file mode 100644 index 7552cc5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__bytes_transferred.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -placeholders::bytes_transferred - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An - argument placeholder, for use with boost::bind(), that corresponds to the - bytes_transferred argument of a handler for asynchronous functions such as - asio::basic_stream_socket::async_write_some or asio::async_write. -

-
unspecified bytes_transferred;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__endpoint.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__endpoint.html deleted file mode 100644 index cb274d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__endpoint.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::endpoint - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument placeholder, - for use with boost::bind(), that corresponds to the results argument of a - handler for asynchronous functions such as asio::async_connect. -

-
unspecified endpoint;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__error.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__error.html deleted file mode 100644 index b339f2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__error.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument placeholder, - for use with boost::bind(), that corresponds to the error argument of a handler - for any of the asynchronous functions. -

-
unspecified error;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__iterator.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__iterator.html deleted file mode 100644 index 43d3031..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__iterator.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::iterator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument placeholder, - for use with boost::bind(), that corresponds to the iterator argument of - a handler for asynchronous functions such as asio::async_connect. -

-
unspecified iterator;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__results.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__results.html deleted file mode 100644 index c338dcf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__results.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::results - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument placeholder, - for use with boost::bind(), that corresponds to the results argument of a - handler for asynchronous functions such as asio::basic_resolver::async_resolve. -

-
unspecified results;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/placeholders__signal_number.html b/Sources/Vendor/asio/doc/asio/reference/placeholders__signal_number.html deleted file mode 100644 index e7fff5c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/placeholders__signal_number.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -placeholders::signal_number - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An argument - placeholder, for use with boost::bind(), that corresponds to the signal_number - argument of a handler for asynchronous functions such as asio::signal_set::async_wait. -

-
unspecified signal_number;
-
-
- - Requirements -
-

- Header: asio/placeholders.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor.html deleted file mode 100644 index 5b58fe5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor.html +++ /dev/null @@ -1,426 +0,0 @@ - - - -posix::descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides POSIX descriptor functionality. -

-
class descriptor :
-  public posix::descriptor_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A descriptor is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a descriptor. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native descriptor to the descriptor. -

-
-

- async_wait -

-
-

- Asynchronously wait for the descriptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the descriptor. -

-
-

- close -

-
-

- Close the descriptor. -

-
-

- descriptor -

-
-

- Construct a descriptor without opening it.

Construct - a descriptor on an existing native descriptor.

Move-construct - a descriptor from another. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- io_control -

-
-

- Perform an IO control command on the descriptor. -

-
-

- is_open -

-
-

- Determine whether the descriptor is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native descriptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native descriptor implementation. -

Sets the non-blocking mode of the native descriptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the descriptor.

Sets - the non-blocking mode of the descriptor. -

-
-

- operator= -

-
-

- Move-assign a descriptor from another. -

-
-

- release -

-
-

- Release ownership of the native descriptor implementation. -

-
-

- wait -

-
-

- Wait for the descriptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~descriptor -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The posix::descriptor - class template provides the ability to wrap a POSIX descriptor. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/_descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/_descriptor.html deleted file mode 100644 index 6e839aa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/_descriptor.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -posix::descriptor::~descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~descriptor();
-
-

- This function destroys the descriptor, cancelling any outstanding asynchronous - wait operations associated with the descriptor as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign.html deleted file mode 100644 index a06898e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -posix::descriptor::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign an - existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor);
-  » more...
-
-void assign(
-    const native_handle_type & native_descriptor,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload1.html deleted file mode 100644 index b9e68cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -posix::descriptor::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload2.html deleted file mode 100644 index cd001b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/assign/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -posix::descriptor::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/async_wait.html deleted file mode 100644 index ad20e7a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/async_wait.html +++ /dev/null @@ -1,103 +0,0 @@ - - - -posix::descriptor::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Asynchronously - wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a descriptor - to enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::posix::stream_descriptor descriptor(io_context);
-...
-descriptor.async_wait(
-    asio::posix::stream_descriptor::wait_read,
-    wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/bytes_readable.html deleted file mode 100644 index f59fbec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/bytes_readable.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -posix::descriptor::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::descriptor_base::bytes_readable command(true);
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel.html deleted file mode 100644 index 63d94e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -posix::descriptor::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all - asynchronous operations associated with the descriptor. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload1.html deleted file mode 100644 index 6c899ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -posix::descriptor::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the descriptor. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload2.html deleted file mode 100644 index c51ce1f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::descriptor::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the descriptor. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close.html deleted file mode 100644 index 712f08d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -posix::descriptor::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the descriptor. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload1.html deleted file mode 100644 index 6412c6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::descriptor::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the descriptor. -

-
void close();
-
-

- This function is used to close the descriptor. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload2.html deleted file mode 100644 index dafb6fc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/close/overload2.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -posix::descriptor::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the descriptor. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the descriptor. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor.html deleted file mode 100644 index a479f79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -posix::descriptor::descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a descriptor without opening it. -

-
explicit descriptor(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a descriptor on an existing native descriptor. -

-
descriptor(
-    asio::io_context & io_context,
-    const native_handle_type & native_descriptor);
-  » more...
-
-

- Move-construct a descriptor from another. -

-
descriptor(
-    descriptor && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload1.html deleted file mode 100644 index 6d422db..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::descriptor::descriptor (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a descriptor without opening it. -

-
descriptor(
-    asio::io_context & io_context);
-
-

- This constructor creates a descriptor without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the descriptor will use to dispatch handlers for any - asynchronous operations performed on the descriptor. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload2.html deleted file mode 100644 index cb2dd34..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -posix::descriptor::descriptor (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a descriptor on an existing native descriptor. -

-
descriptor(
-    asio::io_context & io_context,
-    const native_handle_type & native_descriptor);
-
-

- This constructor creates a descriptor object to hold an existing native - descriptor. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the descriptor will use to dispatch handlers for any - asynchronous operations performed on the descriptor. -

-
native_descriptor
-

- A native descriptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload3.html deleted file mode 100644 index 1f06e9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/descriptor/overload3.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -posix::descriptor::descriptor (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a descriptor from another. -

-
descriptor(
-    descriptor && other);
-
-

- This constructor moves a descriptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other descriptor object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the descriptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/executor_type.html deleted file mode 100644 index 317ed49..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -posix::descriptor::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_executor.html deleted file mode 100644 index 262d41d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -posix::descriptor::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_context.html deleted file mode 100644 index c00d01b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -posix::descriptor::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_service.html deleted file mode 100644 index 45b42bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -posix::descriptor::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control.html deleted file mode 100644 index 99ed255..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -posix::descriptor::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload1.html deleted file mode 100644 index 8700256..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -posix::descriptor::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the descriptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the descriptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::posix::stream_descriptor::bytes_readable command;
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload2.html deleted file mode 100644 index 026c03c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/io_control/overload2.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -posix::descriptor::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the descriptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the descriptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::posix::stream_descriptor::bytes_readable command;
-asio::error_code ec;
-descriptor.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/is_open.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/is_open.html deleted file mode 100644 index c4fb4c0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -posix::descriptor::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the descriptor is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer.html deleted file mode 100644 index 2bd7662..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -posix::descriptor::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload1.html deleted file mode 100644 index bd365e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::descriptor::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a descriptor cannot contain any further layers, it simply returns - a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload2.html deleted file mode 100644 index bcd8ce2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::descriptor::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a descriptor cannot contain any further layers, it simply - returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer_type.html deleted file mode 100644 index 4c916d7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/lowest_layer_type.html +++ /dev/null @@ -1,427 +0,0 @@ - - - -posix::descriptor::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - descriptor is always the lowest layer. -

-
typedef descriptor lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A descriptor is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a descriptor. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native descriptor to the descriptor. -

-
-

- async_wait -

-
-

- Asynchronously wait for the descriptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the descriptor. -

-
-

- close -

-
-

- Close the descriptor. -

-
-

- descriptor -

-
-

- Construct a descriptor without opening it.

Construct - a descriptor on an existing native descriptor.

- Move-construct a descriptor from another. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- io_control -

-
-

- Perform an IO control command on the descriptor. -

-
-

- is_open -

-
-

- Determine whether the descriptor is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native descriptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native descriptor implementation. -

Sets the non-blocking mode of the native descriptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the descriptor.

Sets - the non-blocking mode of the descriptor. -

-
-

- operator= -

-
-

- Move-assign a descriptor from another. -

-
-

- release -

-
-

- Release ownership of the native descriptor implementation. -

-
-

- wait -

-
-

- Wait for the descriptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~descriptor -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The posix::descriptor - class template provides the ability to wrap a POSIX descriptor. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle.html deleted file mode 100644 index 5c6e956..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -posix::descriptor::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the native descriptor representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - descriptor. This is intended to allow access to native descriptor functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle_type.html deleted file mode 100644 index c19a1c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -posix::descriptor::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a descriptor. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/posix/descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking.html deleted file mode 100644 index 5b3d1ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::descriptor::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native descriptor implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload1.html deleted file mode 100644 index 51f0f6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -posix::descriptor::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the native descriptor implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native descriptor. This mode has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying descriptor is in non-blocking mode - and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the descriptor object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native descriptor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload2.html deleted file mode 100644 index c4d67c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -posix::descriptor::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native descriptor. It has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying descriptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload3.html deleted file mode 100644 index ff686d7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/native_non_blocking/overload3.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -posix::descriptor::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native descriptor. It has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying descriptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking.html deleted file mode 100644 index 8545920..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::descriptor::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the descriptor. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload1.html deleted file mode 100644 index 39d99f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::descriptor::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Gets the non-blocking mode of the descriptor. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the descriptor's synchronous operations will fail - with asio::error::would_block if they are unable to perform - the requested operation immediately. If false, synchronous - operations will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload2.html deleted file mode 100644 index 9c7668d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -posix::descriptor::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the descriptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload3.html deleted file mode 100644 index 4b62fad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/non_blocking/overload3.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -posix::descriptor::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the descriptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/operator_eq_.html deleted file mode 100644 index 016b09b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/operator_eq_.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -posix::descriptor::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a descriptor from another. -

-
descriptor & operator=(
-    descriptor && other);
-
-

- This assignment operator moves a descriptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other descriptor object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the descriptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/release.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/release.html deleted file mode 100644 index 6d7ec13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/release.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -posix::descriptor::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the native descriptor implementation. -

-
native_handle_type release();
-
-

- This function may be used to obtain the underlying representation of the - descriptor. After calling this function, is_open() returns - false. The caller is responsible for closing the descriptor. -

-

- All outstanding asynchronous read or write operations will finish immediately, - and the handlers for cancelled operations will be passed the asio::error::operation_aborted - error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait.html deleted file mode 100644 index 02bfd97..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -posix::descriptor::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for the - descriptor to become ready to read, ready to write, or to have pending - error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload1.html deleted file mode 100644 index 461c478..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -posix::descriptor::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a descriptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
-
-
- - Example -
-

- Waiting for a descriptor to become readable. -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-descriptor.wait(asio::posix::stream_descriptor::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload2.html deleted file mode 100644 index 756f388..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait/overload2.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -posix::descriptor::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a descriptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a descriptor to become readable. -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::error_code ec;
-descriptor.wait(asio::posix::stream_descriptor::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait_type.html deleted file mode 100644 index 9c90a9b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor/wait_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -posix::descriptor::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a descriptor to become ready to read. -

-
wait_write
-

- Wait for a descriptor to become ready to write. -

-
wait_error
-

- Wait for a descriptor to have error conditions pending. -

-
-
-

- For use with descriptor::wait() and descriptor::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base.html deleted file mode 100644 index a368935..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -posix::descriptor_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The posix::descriptor_base - class is used as a base for the descriptor class as a place to define the - associated IO control commands. -

-
class descriptor_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~descriptor_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Requirements -
-

- Header: asio/posix/descriptor_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html deleted file mode 100644 index e1ced84..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/_descriptor_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -posix::descriptor_base::~descriptor_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~descriptor_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html deleted file mode 100644 index 94dcae2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/bytes_readable.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -posix::descriptor_base::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::descriptor_base::bytes_readable command(true);
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/posix/descriptor_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/wait_type.html deleted file mode 100644 index dfe1509..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__descriptor_base/wait_type.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -posix::descriptor_base::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a descriptor to become ready to read. -

-
wait_write
-

- Wait for a descriptor to become ready to write. -

-
wait_error
-

- Wait for a descriptor to have error conditions pending. -

-
-
-

- For use with descriptor::wait() and descriptor::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor.html deleted file mode 100644 index 7969d2d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor.html +++ /dev/null @@ -1,439 +0,0 @@ - - - -posix::stream_descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides stream-oriented descriptor functionality. -

-
class stream_descriptor :
-  public posix::descriptor
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A descriptor is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a descriptor. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native descriptor to the descriptor. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_wait -

-
-

- Asynchronously wait for the descriptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the descriptor. -

-
-

- close -

-
-

- Close the descriptor. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- io_control -

-
-

- Perform an IO control command on the descriptor. -

-
-

- is_open -

-
-

- Determine whether the descriptor is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native descriptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native descriptor implementation. -

Sets the non-blocking mode of the native descriptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the descriptor.

Sets - the non-blocking mode of the descriptor. -

-
-

- operator= -

-
-

- Move-assign a stream_descriptor from another. -

-
-

- read_some -

-
-

- Read some data from the descriptor. -

-
-

- release -

-
-

- Release ownership of the native descriptor implementation. -

-
-

- stream_descriptor -

-
-

- Construct a stream_descriptor without opening it.

- Construct a stream_descriptor on an existing native descriptor. -

Move-construct a stream_descriptor from another. -

-
-

- wait -

-
-

- Wait for the descriptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-

- write_some -

-
-

- Write some data to the descriptor. -

-
-

- The posix::stream_descriptor - class template provides asynchronous and blocking stream-oriented descriptor - functionality. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign.html deleted file mode 100644 index a1b24f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -posix::stream_descriptor::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor);
-  » more...
-
-void assign(
-    const native_handle_type & native_descriptor,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload1.html deleted file mode 100644 index ef48eee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -posix::stream_descriptor::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Assign an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload2.html deleted file mode 100644 index 251b947..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/assign/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -posix::stream_descriptor::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Assign an existing native descriptor to the descriptor. -

-
void assign(
-    const native_handle_type & native_descriptor,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_read_some.html deleted file mode 100644 index d28e6a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_read_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -posix::stream_descriptor::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the stream descriptor. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
descriptor.async_read_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_wait.html deleted file mode 100644 index a377725..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_wait.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -posix::stream_descriptor::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Asynchronously - wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    wait_type w,
-    WaitHandler && handler);
-
-

- This function is used to perform an asynchronous wait for a descriptor - to enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
handler
-
-

- The handler to be called when the wait operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Example -
-
void wait_handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Wait succeeded.
-  }
-}
-
-...
-
-asio::posix::stream_descriptor descriptor(io_context);
-...
-descriptor.async_wait(
-    asio::posix::stream_descriptor::wait_read,
-    wait_handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_write_some.html deleted file mode 100644 index bbea0cc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/async_write_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -posix::stream_descriptor::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the stream descriptor. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the descriptor. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
descriptor.async_write_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/bytes_readable.html deleted file mode 100644 index 3dd500b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/bytes_readable.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -posix::stream_descriptor::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -IO - control command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::descriptor_base::bytes_readable command(true);
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel.html deleted file mode 100644 index d7d9312..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -posix::stream_descriptor::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the descriptor. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload1.html deleted file mode 100644 index d8caaad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -posix::stream_descriptor::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Cancel all asynchronous operations associated with the descriptor. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload2.html deleted file mode 100644 index 791cff6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/cancel/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -posix::stream_descriptor::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Cancel all asynchronous operations associated with the descriptor. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close.html deleted file mode 100644 index a631710..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -posix::stream_descriptor::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the descriptor. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload1.html deleted file mode 100644 index 03db595..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -posix::stream_descriptor::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Close the descriptor. -

-
void close();
-
-

- This function is used to close the descriptor. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. Note that, even if the function indicates an - error, the underlying descriptor is closed. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload2.html deleted file mode 100644 index dd3a614..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/close/overload2.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -posix::stream_descriptor::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Close the descriptor. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the descriptor. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. Note that, even if - the function indicates an error, the underlying descriptor is closed. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/executor_type.html deleted file mode 100644 index a25d21f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -posix::stream_descriptor::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_executor.html deleted file mode 100644 index ec22ddb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -posix::stream_descriptor::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_context.html deleted file mode 100644 index 7b979da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::stream_descriptor::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_service.html deleted file mode 100644 index 389398d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -posix::stream_descriptor::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control.html deleted file mode 100644 index c18e7fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -posix::stream_descriptor::io_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-  » more...
-
-template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload1.html deleted file mode 100644 index 76b9d73..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload1.html +++ /dev/null @@ -1,90 +0,0 @@ - - - -posix::stream_descriptor::io_control (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Perform an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command);
-
-

- This function is used to execute an IO control command on the descriptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the descriptor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::posix::stream_descriptor::bytes_readable command;
-descriptor.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload2.html deleted file mode 100644 index 17be294..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/io_control/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -posix::stream_descriptor::io_control (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Perform an IO control command on the descriptor. -

-
template<
-    typename IoControlCommand>
-void io_control(
-    IoControlCommand & command,
-    asio::error_code & ec);
-
-

- This function is used to execute an IO control command on the descriptor. -

-
- - Parameters -
-
-

-
-
command
-

- The IO control command to be performed on the descriptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Getting the number of bytes ready to read: -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::posix::stream_descriptor::bytes_readable command;
-asio::error_code ec;
-descriptor.io_control(command, ec);
-if (ec)
-{
-  // An error occurred.
-}
-std::size_t bytes_readable = command.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/is_open.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/is_open.html deleted file mode 100644 index 8f60c4a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -posix::stream_descriptor::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Determine - whether the descriptor is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer.html deleted file mode 100644 index 63b9f91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -posix::stream_descriptor::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload1.html deleted file mode 100644 index 99b52d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -posix::stream_descriptor::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a descriptor cannot contain any further layers, it simply returns - a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload2.html deleted file mode 100644 index 9763bfa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -posix::stream_descriptor::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a descriptor cannot contain any further layers, it simply - returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer_type.html deleted file mode 100644 index 1668b9f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/lowest_layer_type.html +++ /dev/null @@ -1,430 +0,0 @@ - - - -posix::stream_descriptor::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -A - descriptor is always the lowest layer. -

-
typedef descriptor lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read - without blocking. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A descriptor is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a descriptor. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native descriptor to the descriptor. -

-
-

- async_wait -

-
-

- Asynchronously wait for the descriptor to become ready to read, - ready to write, or to have pending error conditions. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the descriptor. -

-
-

- close -

-
-

- Close the descriptor. -

-
-

- descriptor -

-
-

- Construct a descriptor without opening it.

Construct - a descriptor on an existing native descriptor.

- Move-construct a descriptor from another. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- io_control -

-
-

- Perform an IO control command on the descriptor. -

-
-

- is_open -

-
-

- Determine whether the descriptor is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native descriptor representation. -

-
-

- native_non_blocking -

-
-

- Gets the non-blocking mode of the native descriptor implementation. -

Sets the non-blocking mode of the native descriptor - implementation. -

-
-

- non_blocking -

-
-

- Gets the non-blocking mode of the descriptor.

Sets - the non-blocking mode of the descriptor. -

-
-

- operator= -

-
-

- Move-assign a descriptor from another. -

-
-

- release -

-
-

- Release ownership of the native descriptor implementation. -

-
-

- wait -

-
-

- Wait for the descriptor to become ready to read, ready to write, - or to have pending error conditions. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~descriptor -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The posix::descriptor - class template provides the ability to wrap a POSIX descriptor. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle.html deleted file mode 100644 index 369b70e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -posix::stream_descriptor::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Get - the native descriptor representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - descriptor. This is intended to allow access to native descriptor functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle_type.html deleted file mode 100644 index 7416738..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_handle_type.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::stream_descriptor::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -The - native representation of a descriptor. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/posix/stream_descriptor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking.html deleted file mode 100644 index 2d93677..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::stream_descriptor::native_non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the native descriptor implementation. -

-
bool native_non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode);
-  » more...
-
-void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html deleted file mode 100644 index f49ecda..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -posix::stream_descriptor::native_non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Gets the non-blocking mode of the native descriptor implementation. -

-
bool native_non_blocking() const;
-
-

- This function is used to retrieve the non-blocking mode of the underlying - native descriptor. This mode has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Return - Value -
-

- true if the underlying descriptor is in non-blocking mode - and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
- - Remarks -
-

- The current non-blocking mode is cached by the descriptor object. Consequently, - the return value may be incorrect if the non-blocking mode was set directly - on the native descriptor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html deleted file mode 100644 index 6e0430b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -posix::stream_descriptor::native_non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode);
-
-

- This function is used to modify the non-blocking mode of the underlying - native descriptor. It has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying descriptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the mode is false, - but the current value of non_blocking() is true, - this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html deleted file mode 100644 index d9335e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -posix::stream_descriptor::native_non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Sets the non-blocking mode of the native descriptor implementation. -

-
void native_non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-

- This function is used to modify the non-blocking mode of the underlying - native descriptor. It has no effect on the behaviour of the descriptor - object's synchronous operations. -

-
- - Parameters -
-
-

-
-
mode
-

- If true, the underlying descriptor is put into non-blocking - mode and direct system calls may fail with asio::error::would_block - (or the equivalent system error). -

-
ec
-

- Set to indicate what error occurred, if any. If the mode - is false, but the current value of non_blocking() - is true, this function fails with asio::error::invalid_argument, - as the combination does not make sense. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking.html deleted file mode 100644 index e018ced..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::stream_descriptor::non_blocking - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Gets - the non-blocking mode of the descriptor. -

-
bool non_blocking() const;
-  » more...
-
-

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode);
-  » more...
-
-void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload1.html deleted file mode 100644 index 16fb1ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -posix::stream_descriptor::non_blocking (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Gets the non-blocking mode of the descriptor. -

-
bool non_blocking() const;
-
-
- - Return - Value -
-

- true if the descriptor's synchronous operations will fail - with asio::error::would_block if they are unable to perform - the requested operation immediately. If false, synchronous - operations will block until complete. -

-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload2.html deleted file mode 100644 index dadeb3d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload2.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -posix::stream_descriptor::non_blocking (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the descriptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload3.html deleted file mode 100644 index 001ecee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/non_blocking/overload3.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -posix::stream_descriptor::non_blocking (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Sets the non-blocking mode of the descriptor. -

-
void non_blocking(
-    bool mode,
-    asio::error_code & ec);
-
-
- - Parameters -
-
-

-
-
mode
-

- If true, the descriptor's synchronous operations will - fail with asio::error::would_block if they are unable - to perform the requested operation immediately. If false, - synchronous operations will block until complete. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- The non-blocking mode has no effect on the behaviour of asynchronous - operations. Asynchronous operations will never fail with the error asio::error::would_block. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/operator_eq_.html deleted file mode 100644 index 9060d38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -posix::stream_descriptor::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a posix::stream_descriptor - from another. -

-
stream_descriptor & operator=(
-    stream_descriptor && other);
-
-

- This assignment operator moves a stream descriptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other posix::stream_descriptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the stream_descriptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some.html deleted file mode 100644 index ec78c79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -posix::stream_descriptor::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the descriptor. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload1.html deleted file mode 100644 index 51d9b11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -posix::stream_descriptor::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the descriptor. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the stream descriptor. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
descriptor.read_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload2.html deleted file mode 100644 index 9ac5583..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -posix::stream_descriptor::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the descriptor. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the stream descriptor. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/release.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/release.html deleted file mode 100644 index b24022e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/release.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -posix::stream_descriptor::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Release - ownership of the native descriptor implementation. -

-
native_handle_type release();
-
-

- This function may be used to obtain the underlying representation of the - descriptor. After calling this function, is_open() returns - false. The caller is responsible for closing the descriptor. -

-

- All outstanding asynchronous read or write operations will finish immediately, - and the handlers for cancelled operations will be passed the asio::error::operation_aborted - error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor.html deleted file mode 100644 index 98ad7c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -posix::stream_descriptor::stream_descriptor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a posix::stream_descriptor - without opening it. -

-
explicit stream_descriptor(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a posix::stream_descriptor - on an existing native descriptor. -

-
stream_descriptor(
-    asio::io_context & io_context,
-    const native_handle_type & native_descriptor);
-  » more...
-
-

- Move-construct a posix::stream_descriptor - from another. -

-
stream_descriptor(
-    stream_descriptor && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html deleted file mode 100644 index 598f1b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -posix::stream_descriptor::stream_descriptor (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a posix::stream_descriptor - without opening it. -

-
stream_descriptor(
-    asio::io_context & io_context);
-
-

- This constructor creates a stream descriptor without opening it. The - descriptor needs to be opened and then connected or accepted before data - can be sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream descriptor will use to dispatch handlers - for any asynchronous operations performed on the descriptor. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html deleted file mode 100644 index b31e756..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -posix::stream_descriptor::stream_descriptor (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a posix::stream_descriptor - on an existing native descriptor. -

-
stream_descriptor(
-    asio::io_context & io_context,
-    const native_handle_type & native_descriptor);
-
-

- This constructor creates a stream descriptor object to hold an existing - native descriptor. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream descriptor will use to dispatch handlers - for any asynchronous operations performed on the descriptor. -

-
native_descriptor
-

- The new underlying descriptor implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html deleted file mode 100644 index d9bd149..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -posix::stream_descriptor::stream_descriptor (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a posix::stream_descriptor - from another. -

-
stream_descriptor(
-    stream_descriptor && other);
-
-

- This constructor moves a stream descriptor from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other posix::stream_descriptor - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the stream_descriptor(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait.html deleted file mode 100644 index 6dbb227..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -posix::stream_descriptor::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait - for the descriptor to become ready to read, ready to write, or to have - pending error conditions. -

-
void wait(
-    wait_type w);
-  » more...
-
-void wait(
-    wait_type w,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload1.html deleted file mode 100644 index defab95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -posix::stream_descriptor::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w);
-
-

- This function is used to perform a blocking wait for a descriptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
-
-
- - Example -
-

- Waiting for a descriptor to become readable. -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-descriptor.wait(asio::posix::stream_descriptor::wait_read);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload2.html deleted file mode 100644 index d224efa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -posix::stream_descriptor::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- Wait for the descriptor to become ready to read, ready to write, or to - have pending error conditions. -

-
void wait(
-    wait_type w,
-    asio::error_code & ec);
-
-

- This function is used to perform a blocking wait for a descriptor to - enter a ready to read, write or error condition state. -

-
- - Parameters -
-
-

-
-
w
-

- Specifies the desired descriptor state. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Example -
-

- Waiting for a descriptor to become readable. -

-
asio::posix::stream_descriptor descriptor(io_context);
-...
-asio::error_code ec;
-descriptor.wait(asio::posix::stream_descriptor::wait_read, ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait_type.html deleted file mode 100644 index 39d2867..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/wait_type.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -posix::stream_descriptor::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from posix::descriptor. -

-

- -Wait - types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a descriptor to become ready to read. -

-
wait_write
-

- Wait for a descriptor to become ready to write. -

-
wait_error
-

- Wait for a descriptor to have error conditions pending. -

-
-
-

- For use with descriptor::wait() and descriptor::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some.html deleted file mode 100644 index 9cdaf9e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -posix::stream_descriptor::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - some data to the descriptor. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload1.html deleted file mode 100644 index a31586d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -posix::stream_descriptor::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the descriptor. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the stream descriptor. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the descriptor. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
descriptor.write_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload2.html deleted file mode 100644 index 69edb30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/posix__stream_descriptor/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -posix::stream_descriptor::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the descriptor. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the stream descriptor. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the descriptor. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/post.html b/Sources/Vendor/asio/doc/asio/reference/post.html deleted file mode 100644 index 9da9d19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/post.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-post -

-

- -Submits a completion token or function object for - execution. -

-
template<
-    typename CompletionToken>
-DEDUCED post(
-    CompletionToken && token);
-  » more...
-
-template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED post(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED post(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/post.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/post/overload1.html b/Sources/Vendor/asio/doc/asio/reference/post/overload1.html deleted file mode 100644 index f988b97..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/post/overload1.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -post (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename CompletionToken>
-DEDUCED post(
-    CompletionToken && token);
-
-

- This function submits an object for execution using the object's associated - executor. The function object is queued for execution, and is never called - from the current thread prior to returning from post(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex by - performing get_associated_executor(handler). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Performs ex.post(std::move(handler), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/post/overload2.html b/Sources/Vendor/asio/doc/asio/reference/post/overload2.html deleted file mode 100644 index 90bbe19..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/post/overload2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -post (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename Executor,
-    typename CompletionToken>
-DEDUCED post(
-    const Executor & ex,
-    CompletionToken && token,
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-

- This function submits an object for execution using the specified executor. - The function object is queued for execution, and is never called from the - current thread prior to returning from post(). -

-

- This function has the following effects: -

-
    -
  • - Constructs a function object handler of type Handler, - initialized with handler(forward<CompletionToken>(token)). -
  • -
  • - Constructs an object result of type async_result<Handler>, - initializing the object as result(handler). -
  • -
  • - Obtains the handler's associated executor object ex1 by - performing get_associated_executor(handler). -
  • -
  • - Creates a work object w by performing make_work(ex1). -
  • -
  • - Obtains the handler's associated allocator object alloc - by performing get_associated_allocator(handler). -
  • -
  • - Constructs a function object f with a function call operator - that performs ex1.dispatch(std::move(handler), alloc) - followed by w.reset(). -
  • -
  • - Performs Executor(ex).post(std::move(f), alloc). -
  • -
  • - Returns result.get(). -
  • -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/post/overload3.html b/Sources/Vendor/asio/doc/asio/reference/post/overload3.html deleted file mode 100644 index 7bfc670..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/post/overload3.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -post (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Submits a completion token or function object for execution. -

-
template<
-    typename ExecutionContext,
-    typename CompletionToken>
-DEDUCED post(
-    ExecutionContext & ctx,
-    CompletionToken && token,
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-
- - Return - Value -
-

- post(ctx.get_executor(), forward<CompletionToken>(token)). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read.html b/Sources/Vendor/asio/doc/asio/reference/read.html deleted file mode 100644 index 49b3165..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read.html +++ /dev/null @@ -1,176 +0,0 @@ - - - -read - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-read -

-

- -The read function is a composed operation - that reads a certain amount of data from a stream before returning. -

-

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename MutableBufferSequence>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload1.html b/Sources/Vendor/asio/doc/asio/reference/read/overload1.html deleted file mode 100644 index dc23fc9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload1.html +++ /dev/null @@ -1,131 +0,0 @@ - - - -read (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read(s, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload10.html b/Sources/Vendor/asio/doc/asio/reference/read/overload10.html deleted file mode 100644 index 2a49765..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload10.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -read (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, b,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload11.html b/Sources/Vendor/asio/doc/asio/reference/read/overload11.html deleted file mode 100644 index 1f581a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload11.html +++ /dev/null @@ -1,124 +0,0 @@ - - - -read (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload12.html b/Sources/Vendor/asio/doc/asio/reference/read/overload12.html deleted file mode 100644 index 2b56cb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload12.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -read (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload2.html b/Sources/Vendor/asio/doc/asio/reference/read/overload2.html deleted file mode 100644 index 60b31c9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload2.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -read (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read(s, asio::buffer(data, size), ec);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload3.html b/Sources/Vendor/asio/doc/asio/reference/read/overload3.html deleted file mode 100644 index fe3ba6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload3.html +++ /dev/null @@ -1,143 +0,0 @@ - - - -read (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read(s, asio::buffer(data, size),
-    asio::transfer_at_least(32));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload4.html b/Sources/Vendor/asio/doc/asio/reference/read/overload4.html deleted file mode 100644 index 54bb5ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload4.html +++ /dev/null @@ -1,120 +0,0 @@ - - - -read (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_mutable_buffer_sequence< MutableBufferSequence >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the stream. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload5.html b/Sources/Vendor/asio/doc/asio/reference/read/overload5.html deleted file mode 100644 index fb577cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload5.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -read (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload6.html b/Sources/Vendor/asio/doc/asio/reference/read/overload6.html deleted file mode 100644 index 5f558b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload6.html +++ /dev/null @@ -1,105 +0,0 @@ - - - -read (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload7.html b/Sources/Vendor/asio/doc/asio/reference/read/overload7.html deleted file mode 100644 index 0359f8f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload7.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -read (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload8.html b/Sources/Vendor/asio/doc/asio/reference/read/overload8.html deleted file mode 100644 index 94e8308..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload8.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -read (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t read(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The specified dynamic buffer sequence is full (that is, it has reached - maximum size). -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the stream's read_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read/overload9.html b/Sources/Vendor/asio/doc/asio/reference/read/overload9.html deleted file mode 100644 index 2dce8cd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read/overload9.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -read (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data from a stream before returning. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read(
-    SyncReadStream & s,
-    basic_streambuf< Allocator > & b);
-
-

- This function is used to read a certain number of bytes of data from a - stream. The call will block until one of the following conditions is true: -

-
    -
  • - The supplied buffer is full (that is, it has reached maximum size). -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read(
-    s, b,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at.html b/Sources/Vendor/asio/doc/asio/reference/read_at.html deleted file mode 100644 index 1bf62f2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -read_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The read_at function is a composed - operation that reads a certain amount of data at the specified offset before - returning. -

-

- Attempt to read a certain amount of data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read_at.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload1.html deleted file mode 100644 index 23c103f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload1.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -read_at (1 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read_at(d, 42, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read_at(
-    d, 42, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload2.html deleted file mode 100644 index cf2329b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload2.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -read_at (2 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read_at(d, 42,
-    asio::buffer(data, size), ec);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read_at(
-    d, 42, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload3.html deleted file mode 100644 index 92fd04a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -read_at (3 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's read_some_at function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
asio::read_at(d, 42, asio::buffer(data, size),
-    asio::transfer_at_least(32));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload4.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload4.html deleted file mode 100644 index 295505a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload4.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -read_at (4 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename MutableBufferSequence,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
    -
  • - The supplied buffers are full. That is, the bytes transferred is equal - to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. The sum of - the buffer sizes indicates the maximum number of bytes to read from - the device. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's read_some_at function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload5.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload5.html deleted file mode 100644 index e6cd658..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload5.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -read_at (5 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
  • - An error occurred. -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read_at(
-    d, 42, b,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload6.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload6.html deleted file mode 100644 index dbb1bc5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload6.html +++ /dev/null @@ -1,107 +0,0 @@ - - - -read_at (6 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
  • - An error occurred. -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::read_at(
-    d, 42, b,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload7.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload7.html deleted file mode 100644 index de568e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload7.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -read_at (7 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
  • - The completion_condition function object returns 0. -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's read_some_at function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_at/overload8.html b/Sources/Vendor/asio/doc/asio/reference/read_at/overload8.html deleted file mode 100644 index 9c94d76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_at/overload8.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -read_at (8 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Attempt to read a certain amount of data at the specified offset before - returning. -

-
template<
-    typename SyncRandomAccessReadDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t read_at(
-    SyncRandomAccessReadDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to read a certain number of bytes of data from a - random access device at the specified offset. The call will block until - one of the following conditions is true: -

-
  • - The completion_condition function object returns 0. -
-

- This operation is implemented in terms of zero or more calls to the device's - read_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device from which the data is to be read. The type must support - the SyncRandomAccessReadDevice concept. -

-
offset
-

- The offset at which the data will be read. -

-
b
-

- The basic_streambuf - object into which the data will be read. -

-
completion_condition
-
-

- The function object to be called to determine whether the read operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest read_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the read operation is complete. - A non-zero return value indicates the maximum number of bytes to - be read on the next call to the device's read_some_at function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until.html b/Sources/Vendor/asio/doc/asio/reference/read_until.html deleted file mode 100644 index 812302f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until.html +++ /dev/null @@ -1,234 +0,0 @@ - - - -read_until - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The read_until function is - a composed operation that reads data into a dynamic buffer sequence, or into - a streambuf, until it contains a delimiter, matches a regular expression, - or a function object indicates a match. -

-

- Read data into a dynamic buffer sequence until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim,
-    asio::error_code & ec);
-  » more...
-
-

- Read data into a dynamic buffer sequence until some part of the data it contains - matches a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr,
-    asio::error_code & ec);
-  » more...
-
-

- Read data into a dynamic buffer sequence until a function object indicates - a match. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    asio::error_code & ec,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim,
-    asio::error_code & ec);
-  » more...
-
-

- Read data into a streambuf until some part of the data it contains matches - a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr,
-    asio::error_code & ec);
-  » more...
-
-

- Read data into a streambuf until a function object indicates a match. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    asio::error_code & ec,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-  » more...
-
-
- - Requirements -
-

- Header: asio/read_until.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload1.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload1.html deleted file mode 100644 index e3905ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload1.html +++ /dev/null @@ -1,157 +0,0 @@ - - - -read_until (1 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until it contains a specified - delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains the specified delimiter. - The call will block until one of the following conditions is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - the delimiter, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
delim
-

- The delimiter character. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the delimiter. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent read_until - operation to examine. -

-
- - Example -
-

- To read data into a std::string until a newline is encountered: -

-
std::string data;
-std::string n = asio::read_until(s,
-    asio::dynamic_buffer(data), '\n');
-std::string line = data.substr(0, n);
-data.erase(0, n);
-
-

- After the read_until operation completes successfully, the - string data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\n' }
-
-

- After the call to erase, the remaining data is left in the - buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload10.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload10.html deleted file mode 100644 index 2ebcfcd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload10.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -read_until (10 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains the specified delimiter. The call will block - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains the delimiter, - the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
delim
-

- The delimiter character. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - delimiter. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond the delimiter. An application will typically leave that data - in the streambuf for a subsequent read_until operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload11.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload11.html deleted file mode 100644 index 3629524..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload11.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -read_until (11 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains the specified delimiter. The call will block - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains the delimiter, - the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
delim
-

- The delimiter string. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - delimiter. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond the delimiter. An application will typically leave that data - in the streambuf for a subsequent read_until operation to examine. -

-
- - Example -
-

- To read data into a streambuf until a newline is encountered: -

-
asio::streambuf b;
-asio::read_until(s, b, "\r\n");
-std::istream is(&b);
-std::string line;
-std::getline(is, line);
-
-

- After the read_until operation completes successfully, the - buffer b contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c', '\r' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload12.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload12.html deleted file mode 100644 index ec3478d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload12.html +++ /dev/null @@ -1,111 +0,0 @@ - - - -read_until (12 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    string_view delim,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains the specified delimiter. The call will block - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains the delimiter, - the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
delim
-

- The delimiter string. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - delimiter. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond the delimiter. An application will typically leave that data - in the streambuf for a subsequent read_until operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload13.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload13.html deleted file mode 100644 index 858acb4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload13.html +++ /dev/null @@ -1,156 +0,0 @@ - - - -read_until (13 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until some part of the data it contains matches - a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains some data that matches a regular expression. - The call will block until one of the following conditions is true: -

-
    -
  • - A substring of the streambuf's get area matches the regular expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains data that - matches the regular expression, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
expr
-

- The regular expression. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - substring that matches the regular expression. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond that which matched the regular expression. An application will - typically leave that data in the streambuf for a subsequent read_until - operation to examine. -

-
- - Example -
-

- To read data into a streambuf until a CR-LF sequence is encountered: -

-
asio::streambuf b;
-asio::read_until(s, b, boost::regex("\r\n"));
-std::istream is(&b);
-std::string line;
-std::getline(is, line);
-
-

- After the read_until operation completes successfully, the - buffer b contains the data which matched the regular expression: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c', '\r' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload14.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload14.html deleted file mode 100644 index 30218ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload14.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -read_until (14 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until some part of the data it contains matches - a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    const boost::regex & expr,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains some data that matches a regular expression. - The call will block until one of the following conditions is true: -

-
    -
  • - A substring of the streambuf's get area matches the regular expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains data that - matches the regular expression, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
expr
-

- The regular expression. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - substring that matches the regular expression. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond that which matched the regular expression. An application will - typically leave that data in the streambuf for a subsequent read_until - operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload15.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload15.html deleted file mode 100644 index 09cc181..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload15.html +++ /dev/null @@ -1,204 +0,0 @@ - - - -read_until (15 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until a function object indicates a match. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to read data into the specified streambuf until a - user-defined match condition function object, when applied to the data - contained in the streambuf, indicates a successful match. The call will - block until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the match condition function object already indicates - a match, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area that have been fully consumed - by the match function. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond that which matched the function object. An application will - typically leave that data in the streambuf for a subsequent read_until - operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - Examples -
-

- To read data into a streambuf until whitespace is encountered: -

-
typedef asio::buffers_iterator<
-    asio::streambuf::const_buffers_type> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-asio::streambuf b;
-asio::read_until(s, b, match_whitespace);
-
-

- To read data into a streambuf until a matching character is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-asio::streambuf b;
-asio::read_until(s, b, match_char('a'));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload16.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload16.html deleted file mode 100644 index b1f0949..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload16.html +++ /dev/null @@ -1,142 +0,0 @@ - - - -read_until (16 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until a function object indicates a match. -

-
template<
-    typename SyncReadStream,
-    typename Allocator,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    MatchCondition match_condition,
-    asio::error_code & ec,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to read data into the specified streambuf until a - user-defined match condition function object, when applied to the data - contained in the streambuf, indicates a successful match. The call will - block until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the match condition function object already indicates - a match, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area that have been fully consumed - by the match function. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond that which matched the function object. An application will - typically leave that data in the streambuf for a subsequent read_until - operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload2.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload2.html deleted file mode 100644 index c0017d7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload2.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -read_until (2 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until it contains a specified - delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    char delim,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains the specified delimiter. - The call will block until one of the following conditions is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - the delimiter, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
delim
-

- The delimiter character. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the delimiter. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent read_until - operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload3.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload3.html deleted file mode 100644 index e29e329..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload3.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -read_until (3 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until it contains a specified - delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains the specified delimiter. - The call will block until one of the following conditions is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - the delimiter, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
delim
-

- The delimiter string. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the delimiter. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent read_until - operation to examine. -

-
- - Example -
-

- To read data into a std::string until a CR-LF sequence is - encountered: -

-
std::string data;
-std::string n = asio::read_until(s,
-    asio::dynamic_buffer(data), "\r\n");
-std::string line = data.substr(0, n);
-data.erase(0, n);
-
-

- After the read_until operation completes successfully, the - string data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\r', '\n' }
-
-

- After the call to erase, the remaining data is left in the - buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload4.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload4.html deleted file mode 100644 index 726a9e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload4.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -read_until (4 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until it contains a specified - delimiter. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    string_view delim,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains the specified delimiter. - The call will block until one of the following conditions is true: -

-
    -
  • - The get area of the dynamic buffer sequence contains the specified - delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - the delimiter, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- The dynamic buffer sequence into which the data will be read. -

-
delim
-

- The delimiter string. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the delimiter. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond the delimiter. An application will typically - leave that data in the dynamic buffer sequence for a subsequent read_until - operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload5.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload5.html deleted file mode 100644 index 4091450..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload5.html +++ /dev/null @@ -1,159 +0,0 @@ - - - -read_until (5 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until some part of the data it - contains matches a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains some data that matches - a regular expression. The call will block until one of the following conditions - is true: -

-
    -
  • - A substring of the dynamic buffer sequence's get area matches the regular - expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - data that matches the regular expression, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- A dynamic buffer sequence into which the data will be read. -

-
expr
-

- The regular expression. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the substring that matches the regular expression. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond that which matched the regular expression. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent read_until operation to examine. -

-
- - Example -
-

- To read data into a std::string until a CR-LF sequence is - encountered: -

-
std::string data;
-std::string n = asio::read_until(s,
-    asio::dynamic_buffer(data), boost::regex("\r\n"));
-std::string line = data.substr(0, n);
-data.erase(0, n);
-
-

- After the read_until operation completes successfully, the - string data contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
-
-

- The call to substr then extracts the data up to and including - the delimiter, so that the string line contains: -

-
{ 'a', 'b', ..., 'c', '\r', '\n' }
-
-

- After the call to erase, the remaining data is left in the - buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload6.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload6.html deleted file mode 100644 index effc36f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload6.html +++ /dev/null @@ -1,116 +0,0 @@ - - - -read_until (6 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until some part of the data it - contains matches a regular expression. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    const boost::regex & expr,
-    asio::error_code & ec);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until the dynamic buffer sequence's get area contains some data that matches - a regular expression. The call will block until one of the following conditions - is true: -

-
    -
  • - A substring of the dynamic buffer sequence's get area matches the regular - expression. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the dynamic buffer sequence's get area already contains - data that matches the regular expression, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- A dynamic buffer sequence into which the data will be read. -

-
expr
-

- The regular expression. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area up to and - including the substring that matches the regular expression. Returns 0 - if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond that which matched the regular expression. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent read_until operation to examine. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload7.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload7.html deleted file mode 100644 index fc6506b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload7.html +++ /dev/null @@ -1,206 +0,0 @@ - - - -read_until (7 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until a function object indicates - a match. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until a user-defined match condition function object, when applied to the - data contained in the dynamic buffer sequence, indicates a successful match. - The call will block until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the match condition function object already indicates - a match, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- A dynamic buffer sequence into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<typename DynamicBuffer::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic_buffer's get area that have been fully - consumed by the match function. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond that which matched the function object. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent read_until operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - Examples -
-

- To read data into a dynamic buffer sequence until whitespace is encountered: -

-
typedef asio::buffers_iterator<
-    asio::const_buffers_1> iterator;
-
-std::pair<iterator, bool>
-match_whitespace(iterator begin, iterator end)
-{
-  iterator i = begin;
-  while (i != end)
-    if (std::isspace(*i++))
-      return std::make_pair(i, true);
-  return std::make_pair(i, false);
-}
-...
-std::string data;
-asio::read_until(s, data, match_whitespace);
-
-

- To read data into a std::string until a matching character - is found: -

-
class match_char
-{
-public:
-  explicit match_char(char c) : c_(c) {}
-
-  template <typename Iterator>
-  std::pair<Iterator, bool> operator()(
-      Iterator begin, Iterator end) const
-  {
-    Iterator i = begin;
-    while (i != end)
-      if (c_ == *i++)
-        return std::make_pair(i, true);
-    return std::make_pair(i, false);
-  }
-
-private:
-  char c_;
-};
-
-namespace asio {
-  template <> struct is_match_condition<match_char>
-    : public boost::true_type {};
-} // namespace asio
-...
-std::string data;
-asio::read_until(s, data, match_char('a'));
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload8.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload8.html deleted file mode 100644 index b2026da..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload8.html +++ /dev/null @@ -1,143 +0,0 @@ - - - -read_until (8 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a dynamic buffer sequence until a function object indicates - a match. -

-
template<
-    typename SyncReadStream,
-    typename DynamicBuffer,
-    typename MatchCondition>
-std::size_t read_until(
-    SyncReadStream & s,
-    DynamicBuffer && buffers,
-    MatchCondition match_condition,
-    asio::error_code & ec,
-    typename enable_if< is_match_condition< MatchCondition >::value >::type *  = 0);
-
-

- This function is used to read data into the specified dynamic buffer sequence - until a user-defined match condition function object, when applied to the - data contained in the dynamic buffer sequence, indicates a successful match. - The call will block until one of the following conditions is true: -

-
    -
  • - The match condition function object returns a std::pair where the second - element evaluates to true. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the match condition function object already indicates - a match, the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
buffers
-

- A dynamic buffer sequence into which the data will be read. -

-
match_condition
-
-

- The function object to be called to determine whether a match exists. - The signature of the function object must be: -

-
pair<iterator, bool> match_condition(iterator begin, iterator end);
-
-

- where iterator represents the type: -

-
buffers_iterator<DynamicBuffer::const_buffers_type>
-
-

- The iterator parameters begin and end define - the range of bytes to be scanned to determine whether there is a - match. The first member of the return value is an iterator - marking one-past-the-end of the bytes that have been consumed by - the match function. This iterator is used to calculate the begin - parameter for any subsequent invocation of the match condition. The - second member of the return value is true if a match - has been found, false otherwise. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes in the dynamic buffer sequence's get area that have - been fully consumed by the match function. Returns 0 if an error occurred. -

-
- - Remarks -
-

- After a successful read_until operation, the dynamic buffer sequence may - contain additional data beyond that which matched the function object. - An application will typically leave that data in the dynamic buffer sequence - for a subsequent read_until operation to examine. -

-

- The default implementation of the is_match_condition type - trait evaluates to true for function pointers and function objects with - a result_type typedef. It must be specialised for other user-defined - function objects. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_until/overload9.html b/Sources/Vendor/asio/doc/asio/reference/read_until/overload9.html deleted file mode 100644 index 2ed3817..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_until/overload9.html +++ /dev/null @@ -1,154 +0,0 @@ - - - -read_until (9 of 16 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read data into a streambuf until it contains a specified delimiter. -

-
template<
-    typename SyncReadStream,
-    typename Allocator>
-std::size_t read_until(
-    SyncReadStream & s,
-    asio::basic_streambuf< Allocator > & b,
-    char delim);
-
-

- This function is used to read data into the specified streambuf until the - streambuf's get area contains the specified delimiter. The call will block - until one of the following conditions is true: -

-
    -
  • - The get area of the streambuf contains the specified delimiter. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - read_some function. If the streambuf's get area already contains the delimiter, - the function returns immediately. -

-
- - Parameters -
-
-

-
-
s
-

- The stream from which the data is to be read. The type must support - the SyncReadStream concept. -

-
b
-

- A streambuf object into which the data will be read. -

-
delim
-

- The delimiter character. -

-
-
-
- - Return - Value -
-

- The number of bytes in the streambuf's get area up to and including the - delimiter. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- After a successful read_until operation, the streambuf may contain additional - data beyond the delimiter. An application will typically leave that data - in the streambuf for a subsequent read_until operation to examine. -

-
- - Example -
-

- To read data into a streambuf until a newline is encountered: -

-
asio::streambuf b;
-asio::read_until(s, b, '\n');
-std::istream is(&b);
-std::string line;
-std::getline(is, line);
-
-

- After the read_until operation completes successfully, the - buffer b contains the delimiter: -

-
{ 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
-
-

- The call to std::getline then extracts the data up to and - including the newline (which is discarded), so that the string line - contains: -

-
{ 'a', 'b', ..., 'c' }
-
-

- The remaining data is left in the buffer b as follows: -

-
{ 'd', 'e', ... }
-
-

- This data may be the start of a new line, to be extracted by a subsequent - read_until operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/read_write_operations.html b/Sources/Vendor/asio/doc/asio/reference/read_write_operations.html deleted file mode 100644 index 59b5431..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/read_write_operations.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -Requirements on read and write operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A read operation is an operation that reads data into - a mutable buffer sequence argument of a type meeting MutableBufferSequence - requirements. The mutable buffer sequence specifies memory where the data - should be placed. A read operation shall always fill a buffer in the sequence - completely before proceeding to the next. -

-

- A write operation is an operation that writes data from - a constant buffer sequence argument of a type meeting ConstBufferSequence - requirements. The constant buffer sequence specifies memory where the data - to be written is located. A write operation shall always write a buffer in - the sequence completely before proceeding to the next. -

-

- If a read or write operation is also an asynchronous - operation, the operation shall maintain one or more copies of the - buffer sequence until such time as the operation no longer requires access - to the memory specified by the buffers in the sequence. The program shall - ensure the memory remains valid until: -

-

- — the last copy of the buffer sequence is destroyed, or -

-

- — the completion handler for the asynchronous operation is invoked, -

-

- whichever comes first. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/resolver_errc__try_again.html b/Sources/Vendor/asio/doc/asio/reference/resolver_errc__try_again.html deleted file mode 100644 index 9e18463..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/resolver_errc__try_again.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -resolver_errc::try_again - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const error::netdb_errors try_again = error::host_not_found_try_again;
-
-
- - Requirements -
-

- Header: asio/error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port.html b/Sources/Vendor/asio/doc/asio/reference/serial_port.html deleted file mode 100644 index 078f7ec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port.html +++ /dev/null @@ -1,398 +0,0 @@ - - - -serial_port - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides serial port functionality. -

-
class serial_port :
-  public serial_port_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A basic_serial_port is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a serial port. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native serial port to the serial port. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the serial port. -

-
-

- close -

-
-

- Close the serial port. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the serial port. -

-
-

- is_open -

-
-

- Determine whether the serial port is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native serial port representation. -

-
-

- open -

-
-

- Open the serial port using the specified device name. -

-
-

- operator= -

-
-

- Move-assign a serial_port from another. -

-
-

- read_some -

-
-

- Read some data from the serial port. -

-
-

- send_break -

-
-

- Send a break sequence to the serial port. -

-
-

- serial_port -

-
-

- Construct a serial_port without opening it.

Construct - and open a serial_port.

Construct a serial_port on - an existing native serial port.

Move-construct a - serial_port from another. -

-
-

- set_option -

-
-

- Set an option on the serial port. -

-
-

- write_some -

-
-

- Write some data to the serial port. -

-
-

- ~serial_port -

-
-

- Destroys the serial port. -

-
-

- The serial_port - class provides a wrapper over serial port functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/serial_port.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/_serial_port.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/_serial_port.html deleted file mode 100644 index 3746bd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/_serial_port.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -serial_port::~serial_port - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys - the serial port. -

-
~serial_port();
-
-

- This function destroys the serial port, cancelling any outstanding asynchronous - wait operations associated with the serial port as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/assign.html deleted file mode 100644 index bdf6d5f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -serial_port::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign an existing native - serial port to the serial port. -

-
void assign(
-    const native_handle_type & native_serial_port);
-  » more...
-
-void assign(
-    const native_handle_type & native_serial_port,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload1.html deleted file mode 100644 index dc9ff5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native serial port to the serial port. -

-
void assign(
-    const native_handle_type & native_serial_port);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload2.html deleted file mode 100644 index 4f08fac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/assign/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -serial_port::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native serial port to the serial port. -

-
void assign(
-    const native_handle_type & native_serial_port,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/async_read_some.html deleted file mode 100644 index 079b44b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/async_read_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -serial_port::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the serial port. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
serial_port.async_read_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/async_write_some.html deleted file mode 100644 index 5f9bd09..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/async_write_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -serial_port::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the serial port. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the serial port. Although - the buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
serial_port.async_write_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel.html deleted file mode 100644 index 0433bf8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -serial_port::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all asynchronous - operations associated with the serial port. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload1.html deleted file mode 100644 index 6d59606..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -serial_port::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the serial port. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload2.html deleted file mode 100644 index 449cfc4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the serial port. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/close.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/close.html deleted file mode 100644 index c94a114..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/close.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -serial_port::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close the serial port. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload1.html deleted file mode 100644 index 2cc714d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -serial_port::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the serial port. -

-
void close();
-
-

- This function is used to close the serial port. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload2.html deleted file mode 100644 index 05dae55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/close/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the serial port. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the serial port. Any asynchronous read - or write operations will be cancelled immediately, and will complete - with the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/executor_type.html deleted file mode 100644 index 14132f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -serial_port::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/serial_port.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_executor.html deleted file mode 100644 index 7a65e25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the executor - associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_context.html deleted file mode 100644 index ffa7636..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -serial_port::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_service.html deleted file mode 100644 index 48d8fd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -serial_port::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option.html deleted file mode 100644 index 02697e8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -serial_port::get_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get an option - from the serial port. -

-
template<
-    typename GettableSerialPortOption>
-void get_option(
-    GettableSerialPortOption & option);
-  » more...
-
-template<
-    typename GettableSerialPortOption>
-void get_option(
-    GettableSerialPortOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload1.html deleted file mode 100644 index 9641353..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -serial_port::get_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the serial port. -

-
template<
-    typename GettableSerialPortOption>
-void get_option(
-    GettableSerialPortOption & option);
-
-

- This function is used to get the current value of an option on the serial - port. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the serial port. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload2.html deleted file mode 100644 index a5280a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/get_option/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -serial_port::get_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get an option from the serial port. -

-
template<
-    typename GettableSerialPortOption>
-void get_option(
-    GettableSerialPortOption & option,
-    asio::error_code & ec);
-
-

- This function is used to get the current value of an option on the serial - port. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be obtained from the serial port. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/is_open.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/is_open.html deleted file mode 100644 index 682fba9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether the - serial port is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer.html deleted file mode 100644 index 696de52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -serial_port::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a reference - to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload1.html deleted file mode 100644 index 74b4d3a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -serial_port::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since a serial_port - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload2.html deleted file mode 100644 index 388af7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -serial_port::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since a serial_port - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer_type.html deleted file mode 100644 index b5d1eed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/lowest_layer_type.html +++ /dev/null @@ -1,400 +0,0 @@ - - - -serial_port::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A - basic_serial_port is always the lowest layer. -

-
typedef serial_port lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- A basic_serial_port is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a serial port. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native serial port to the serial port. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the serial - port. -

-
-

- close -

-
-

- Close the serial port. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_option -

-
-

- Get an option from the serial port. -

-
-

- is_open -

-
-

- Determine whether the serial port is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native serial port representation. -

-
-

- open -

-
-

- Open the serial port using the specified device name. -

-
-

- operator= -

-
-

- Move-assign a serial_port from another. -

-
-

- read_some -

-
-

- Read some data from the serial port. -

-
-

- send_break -

-
-

- Send a break sequence to the serial port. -

-
-

- serial_port -

-
-

- Construct a serial_port without opening it.

Construct - and open a serial_port.

Construct a serial_port - on an existing native serial port.

Move-construct - a serial_port from another. -

-
-

- set_option -

-
-

- Set an option on the serial port. -

-
-

- write_some -

-
-

- Write some data to the serial port. -

-
-

- ~serial_port -

-
-

- Destroys the serial port. -

-
-

- The serial_port - class provides a wrapper over serial port functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/serial_port.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle.html deleted file mode 100644 index 0156daf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -serial_port::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - native serial port representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - serial port. This is intended to allow access to native serial port functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle_type.html deleted file mode 100644 index e4c9fb1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -serial_port::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a serial port. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/serial_port.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/open.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/open.html deleted file mode 100644 index c30eafd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/open.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -serial_port::open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Open the serial port using - the specified device name. -

-
void open(
-    const std::string & device);
-  » more...
-
-void open(
-    const std::string & device,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload1.html deleted file mode 100644 index 679fdaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload1.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -serial_port::open (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the serial port using the specified device name. -

-
void open(
-    const std::string & device);
-
-

- This function opens the serial port for the specified device name. -

-
- - Parameters -
-
-

-
-
device
-

- The platform-specific device name. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload2.html deleted file mode 100644 index 6e15b25..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/open/overload2.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -serial_port::open (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Open the serial port using the specified device name. -

-
void open(
-    const std::string & device,
-    asio::error_code & ec);
-
-

- This function opens the serial port using the given platform-specific - device name. -

-
- - Parameters -
-
-

-
-
device
-

- The platform-specific device name. -

-
ec
-

- Set the indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/operator_eq_.html deleted file mode 100644 index 9ebbdf2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -serial_port::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a serial_port - from another. -

-
serial_port & operator=(
-    serial_port && other);
-
-

- This assignment operator moves a serial port from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other serial_port - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the serial_port(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some.html deleted file mode 100644 index a9c17d8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -serial_port::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read some data - from the serial port. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload1.html deleted file mode 100644 index 2b9a4dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -serial_port::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the serial port. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the serial port. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
serial_port.read_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload2.html deleted file mode 100644 index 47e85ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -serial_port::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the serial port. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the serial port. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break.html deleted file mode 100644 index 88e2ee8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -serial_port::send_break - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Send a break - sequence to the serial port. -

-
void send_break();
-  » more...
-
-void send_break(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload1.html deleted file mode 100644 index f4d0b54..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -serial_port::send_break (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a break sequence to the serial port. -

-
void send_break();
-
-

- This function causes a break sequence of platform-specific duration to - be sent out the serial port. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload2.html deleted file mode 100644 index 577fb61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/send_break/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -serial_port::send_break (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Send a break sequence to the serial port. -

-
void send_break(
-    asio::error_code & ec);
-
-

- This function causes a break sequence of platform-specific duration to - be sent out the serial port. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port.html deleted file mode 100644 index 2325588..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -serial_port::serial_port - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct a - serial_port - without opening it. -

-
explicit serial_port(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct and open a serial_port. -

-
explicit serial_port(
-    asio::io_context & io_context,
-    const char * device);
-  » more...
-
-explicit serial_port(
-    asio::io_context & io_context,
-    const std::string & device);
-  » more...
-
-

- Construct a serial_port - on an existing native serial port. -

-
serial_port(
-    asio::io_context & io_context,
-    const native_handle_type & native_serial_port);
-  » more...
-
-

- Move-construct a serial_port - from another. -

-
serial_port(
-    serial_port && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload1.html deleted file mode 100644 index e1d50c1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -serial_port::serial_port (1 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a serial_port - without opening it. -

-
serial_port(
-    asio::io_context & io_context);
-
-

- This constructor creates a serial port without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the serial port will use to dispatch handlers for any - asynchronous operations performed on the port. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload2.html deleted file mode 100644 index 239b77c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -serial_port::serial_port (2 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a serial_port. -

-
serial_port(
-    asio::io_context & io_context,
-    const char * device);
-
-

- This constructor creates and opens a serial port for the specified device - name. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the serial port will use to dispatch handlers for any - asynchronous operations performed on the port. -

-
device
-

- The platform-specific device name for this serial port. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload3.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload3.html deleted file mode 100644 index 22d6fe5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload3.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -serial_port::serial_port (3 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct and open a serial_port. -

-
serial_port(
-    asio::io_context & io_context,
-    const std::string & device);
-
-

- This constructor creates and opens a serial port for the specified device - name. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the serial port will use to dispatch handlers for any - asynchronous operations performed on the port. -

-
device
-

- The platform-specific device name for this serial port. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload4.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload4.html deleted file mode 100644 index 1a14ab5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload4.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -serial_port::serial_port (4 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a serial_port - on an existing native serial port. -

-
serial_port(
-    asio::io_context & io_context,
-    const native_handle_type & native_serial_port);
-
-

- This constructor creates a serial port object to hold an existing native - serial port. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the serial port will use to dispatch handlers for any - asynchronous operations performed on the port. -

-
native_serial_port
-

- A native serial port. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload5.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload5.html deleted file mode 100644 index b2cef03..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/serial_port/overload5.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -serial_port::serial_port (5 of 5 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a serial_port - from another. -

-
serial_port(
-    serial_port && other);
-
-

- This constructor moves a serial port from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other serial_port - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the serial_port(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option.html deleted file mode 100644 index 929811d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -serial_port::set_option - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set an option - on the serial port. -

-
template<
-    typename SettableSerialPortOption>
-void set_option(
-    const SettableSerialPortOption & option);
-  » more...
-
-template<
-    typename SettableSerialPortOption>
-void set_option(
-    const SettableSerialPortOption & option,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload1.html deleted file mode 100644 index 0ad3a98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -serial_port::set_option (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the serial port. -

-
template<
-    typename SettableSerialPortOption>
-void set_option(
-    const SettableSerialPortOption & option);
-
-

- This function is used to set an option on the serial port. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be set on the serial port. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload2.html deleted file mode 100644 index f9b4c80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/set_option/overload2.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -serial_port::set_option (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set an option on the serial port. -

-
template<
-    typename SettableSerialPortOption>
-void set_option(
-    const SettableSerialPortOption & option,
-    asio::error_code & ec);
-
-

- This function is used to set an option on the serial port. -

-
- - Parameters -
-
-

-
-
option
-

- The option value to be set on the serial port. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some.html deleted file mode 100644 index d52675a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -serial_port::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write some data - to the serial port. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload1.html deleted file mode 100644 index 2994d63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -serial_port::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the serial port. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the serial port. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the serial port. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
serial_port.write_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload2.html deleted file mode 100644 index 8ac29e9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -serial_port::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the serial port. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the serial port. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the serial port. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base.html deleted file mode 100644 index 75a8de3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base.html +++ /dev/null @@ -1,172 +0,0 @@ - - - -serial_port_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The serial_port_base - class is used as a base for the basic_serial_port class template so that - we have a common place to define the serial port options. -

-
class serial_port_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- baud_rate -

-
-

- Serial port option to permit changing the baud rate. -

-
-

- character_size -

-
-

- Serial port option to permit changing the character size. -

-
-

- flow_control -

-
-

- Serial port option to permit changing the flow control. -

-
-

- parity -

-
-

- Serial port option to permit changing the parity. -

-
-

- stop_bits -

-
-

- Serial port option to permit changing the number of stop bits. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~serial_port_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base/_serial_port_base.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base/_serial_port_base.html deleted file mode 100644 index 7acd37d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base/_serial_port_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::~serial_port_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~serial_port_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate.html deleted file mode 100644 index 4e882b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -serial_port_base::baud_rate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the baud rate. -

-
class baud_rate
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- baud_rate -

-
-
-

- load -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the baud rate for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html deleted file mode 100644 index 92f6af1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/baud_rate.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::baud_rate::baud_rate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
baud_rate(
-    unsigned int rate = 0);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/load.html deleted file mode 100644 index f5f7d14..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::baud_rate::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/store.html deleted file mode 100644 index 6fe9111..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::baud_rate::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/value.html deleted file mode 100644 index 51c8376..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__baud_rate/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::baud_rate::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
unsigned int value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size.html deleted file mode 100644 index 8428113..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -serial_port_base::character_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the character size. -

-
class character_size
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- character_size -

-
-
-

- load -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the character size for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/character_size.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/character_size.html deleted file mode 100644 index 27a252f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/character_size.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::character_size::character_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
character_size(
-    unsigned int t = 8);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/load.html deleted file mode 100644 index 67aafee..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::character_size::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/store.html deleted file mode 100644 index 6772fc4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::character_size::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/value.html deleted file mode 100644 index 7aaf4b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__character_size/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::character_size::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
unsigned int value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control.html deleted file mode 100644 index 23d4c58..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -serial_port_base::flow_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the flow control. -

-
class flow_control
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- flow_control -

-
-
-

- load -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the flow control for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html deleted file mode 100644 index 53b21b2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/flow_control.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::flow_control::flow_control - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
flow_control(
-    type t = none);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/load.html deleted file mode 100644 index 7eda30c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::flow_control::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/store.html deleted file mode 100644 index d3a13a1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::flow_control::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/type.html deleted file mode 100644 index f63b227..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port_base::flow_control::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum type
-
-

- - - -

-
- - Values -
-
-

-
-
none
-
-
software
-
-
hardware
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/value.html deleted file mode 100644 index fc7641b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__flow_control/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::flow_control::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
type value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity.html deleted file mode 100644 index cdfd4b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -serial_port_base::parity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the parity. -

-
class parity
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- load -

-
-
-

- parity -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the parity for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/load.html deleted file mode 100644 index debf36f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::parity::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/parity.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/parity.html deleted file mode 100644 index e5abbd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/parity.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::parity::parity - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
parity(
-    type t = none);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/store.html deleted file mode 100644 index 1030dd1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::parity::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/type.html deleted file mode 100644 index 72ae0bf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port_base::parity::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum type
-
-

- - - -

-
- - Values -
-
-

-
-
none
-
-
odd
-
-
even
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/value.html deleted file mode 100644 index bf7a97d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__parity/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::parity::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
type value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits.html deleted file mode 100644 index 6bd6526..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits.html +++ /dev/null @@ -1,146 +0,0 @@ - - - -serial_port_base::stop_bits - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Serial port option to permit changing the number of stop bits. -

-
class stop_bits
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- type -

-
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- load -

-
-
-

- stop_bits -

-
-
-

- store -

-
-
-

- value -

-
-
-

- Implements changing the number of stop bits for a given serial port. -

-
- - Requirements -
-

- Header: asio/serial_port_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/load.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/load.html deleted file mode 100644 index 47d0455..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/load.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::stop_bits::load - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void load(
-    const ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html deleted file mode 100644 index 70d1143..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/stop_bits.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -serial_port_base::stop_bits::stop_bits - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
stop_bits(
-    type t = one);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/store.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/store.html deleted file mode 100644 index 2fdf8a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/store.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -serial_port_base::stop_bits::store - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
void store(
-    ASIO_OPTION_STORAGE & storage,
-    asio::error_code & ec) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/type.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/type.html deleted file mode 100644 index a1a057c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/type.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -serial_port_base::stop_bits::type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum type
-
-

- - - -

-
- - Values -
-
-

-
-
one
-
-
onepointfive
-
-
two
-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/value.html b/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/value.html deleted file mode 100644 index 2221343..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/serial_port_base__stop_bits/value.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -serial_port_base::stop_bits::value - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
type value() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/service_already_exists.html b/Sources/Vendor/asio/doc/asio/reference/service_already_exists.html deleted file mode 100644 index fd97c86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/service_already_exists.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -service_already_exists - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Exception thrown when trying to add a duplicate service to an execution_context. -

-
class service_already_exists
-
-
- - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- service_already_exists -

-
-
-
- - Requirements -
-

- Header: asio/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/service_already_exists/service_already_exists.html b/Sources/Vendor/asio/doc/asio/reference/service_already_exists/service_already_exists.html deleted file mode 100644 index f055e80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/service_already_exists/service_already_exists.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -service_already_exists::service_already_exists - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
service_already_exists();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set.html b/Sources/Vendor/asio/doc/asio/reference/signal_set.html deleted file mode 100644 index d081f76..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set.html +++ /dev/null @@ -1,320 +0,0 @@ - - - -signal_set - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides signal functionality. -

-
class signal_set
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add -

-
-

- Add a signal to a signal_set. -

-
-

- async_wait -

-
-

- Start an asynchronous operation to wait for a signal to be delivered. -

-
-

- cancel -

-
-

- Cancel all operations associated with the signal set. -

-
-

- clear -

-
-

- Remove all signals from a signal_set. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- remove -

-
-

- Remove a signal from a signal_set. -

-
-

- signal_set -

-
-

- Construct a signal set without adding any signals.

- Construct a signal set and add one signal.

Construct - a signal set and add two signals.

Construct a signal - set and add three signals. -

-
-

- ~signal_set -

-
-

- Destroys the signal set. -

-
-

- The signal_set - class provides the ability to perform an asynchronous wait for one or more - signals to occur. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- Performing an asynchronous wait: -

-
void handler(
-    const asio::error_code& error,
-    int signal_number)
-{
-  if (!error)
-  {
-    // A signal occurred.
-  }
-}
-
-...
-
-// Construct a signal set registered for process termination.
-asio::signal_set signals(io_context, SIGINT, SIGTERM);
-
-// Start an asynchronous wait for one of the signals to occur.
-signals.async_wait(handler);
-
-
- - Queueing - of signal notifications -
-

- If a signal is registered with a signal_set, - and the signal occurs when there are no waiting handlers, then the signal - notification is queued. The next async_wait operation on that signal_set - will dequeue the notification. If multiple notifications are queued, subsequent - async_wait operations dequeue them one at a time. Signal notifications are - dequeued in order of ascending signal number. -

-

- If a signal number is removed from a signal_set - (using the remove or erase member functions) then - any queued notifications for that signal are discarded. -

-
- - Multiple - registration of signals -
-

- The same signal number may be registered with different signal_set - objects. When the signal occurs, one handler is called for each signal_set - object. -

-

- Note that multiple registration only works for signals that are registered - using Asio. The application must not also register a signal handler using - functions such as signal() or sigaction(). -

-
- - Signal - masking on POSIX platforms -
-

- POSIX allows signals to be blocked using functions such as sigprocmask() - and pthread_sigmask(). For signals to be delivered, programs - must ensure that any signals registered using signal_set - objects are unblocked in at least one thread. -

-
- - Requirements -
-

- Header: asio/signal_set.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/_signal_set.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/_signal_set.html deleted file mode 100644 index 1a963e0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/_signal_set.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -signal_set::~signal_set - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destroys the - signal set. -

-
~signal_set();
-
-

- This function destroys the signal set, cancelling any outstanding asynchronous - wait operations associated with the signal set as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/add.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/add.html deleted file mode 100644 index af72912..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/add.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -signal_set::add - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Add a signal to a signal_set. -

-
void add(
-    int signal_number);
-  » more...
-
-void add(
-    int signal_number,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload1.html deleted file mode 100644 index 0032eb3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload1.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -signal_set::add (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add a signal to a signal_set. -

-
void add(
-    int signal_number);
-
-

- This function adds the specified signal to the set. It has no effect - if the signal is already in the set. -

-
- - Parameters -
-
-

-
-
signal_number
-

- The signal to be added to the set. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload2.html deleted file mode 100644 index 00e6bf3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/add/overload2.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -signal_set::add (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add a signal to a signal_set. -

-
void add(
-    int signal_number,
-    asio::error_code & ec);
-
-

- This function adds the specified signal to the set. It has no effect - if the signal is already in the set. -

-
- - Parameters -
-
-

-
-
signal_number
-

- The signal to be added to the set. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/async_wait.html deleted file mode 100644 index 540b03f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/async_wait.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -signal_set::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start an asynchronous - operation to wait for a signal to be delivered. -

-
template<
-    typename SignalHandler>
-DEDUCED async_wait(
-    SignalHandler && handler);
-
-

- This function may be used to initiate an asynchronous wait against the - signal set. It always returns immediately. -

-

- For each call to async_wait(), the supplied handler will be - called exactly once. The handler will be called when: -

-
    -
  • - One of the registered signals in the signal set occurs; or -
  • -
  • - The signal set was cancelled, in which case the handler is passed the - error code asio::error::operation_aborted. -
  • -
-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the signal occurs. Copies will be made - of the handler as required. The function signature of the handler - must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  int signal_number // Indicates which signal occurred.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel.html deleted file mode 100644 index 4b0e7e1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -signal_set::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel all operations associated - with the signal set. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload1.html deleted file mode 100644 index 29136a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -signal_set::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all operations associated with the signal set. -

-
void cancel();
-
-

- This function forces the completion of any pending asynchronous wait - operations against the signal set. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancellation does not alter the set of registered signals. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- If a registered signal occurred before cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload2.html deleted file mode 100644 index 6fa6e69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/cancel/overload2.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -signal_set::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all operations associated with the signal set. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function forces the completion of any pending asynchronous wait - operations against the signal set. The handler for each cancelled operation - will be invoked with the asio::error::operation_aborted - error code. -

-

- Cancellation does not alter the set of registered signals. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- If a registered signal occurred before cancel() is called, - then the handlers for asynchronous wait operations will: -

-
    -
  • - have already been invoked; or -
  • -
  • - have been queued for invocation in the near future. -
  • -
-

- These handlers can no longer be cancelled, and therefore are passed an - error code that indicates the successful completion of the wait operation. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/clear.html deleted file mode 100644 index 7f9c2e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -signal_set::clear - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove all signals from a - signal_set. -

-
void clear();
-  » more...
-
-void clear(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload1.html deleted file mode 100644 index 6b15d91..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload1.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -signal_set::clear (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Remove all signals from a signal_set. -

-
void clear();
-
-

- This function removes all signals from the set. It has no effect if the - set is already empty. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Removes all queued notifications. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload2.html deleted file mode 100644 index 2606cad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/clear/overload2.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -signal_set::clear (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Remove all signals from a signal_set. -

-
void clear(
-    asio::error_code & ec);
-
-

- This function removes all signals from the set. It has no effect if the - set is already empty. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Removes all queued notifications. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/executor_type.html deleted file mode 100644 index 8abd108..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -signal_set::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/signal_set.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/get_executor.html deleted file mode 100644 index 1d6afa1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -signal_set::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the executor - associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_context.html deleted file mode 100644 index 36324b0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -signal_set::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_service.html deleted file mode 100644 index cc94f12..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -signal_set::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/remove.html deleted file mode 100644 index e30a680..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -signal_set::remove - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Remove a signal from a - signal_set. -

-
void remove(
-    int signal_number);
-  » more...
-
-void remove(
-    int signal_number,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload1.html deleted file mode 100644 index d9089a6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -signal_set::remove (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Remove a signal from a signal_set. -

-
void remove(
-    int signal_number);
-
-

- This function removes the specified signal from the set. It has no effect - if the signal is not in the set. -

-
- - Parameters -
-
-

-
-
signal_number
-

- The signal to be removed from the set. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Removes any notifications that have been queued for the specified signal - number. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload2.html deleted file mode 100644 index 839db21..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/remove/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -signal_set::remove (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Remove a signal from a signal_set. -

-
void remove(
-    int signal_number,
-    asio::error_code & ec);
-
-

- This function removes the specified signal from the set. It has no effect - if the signal is not in the set. -

-
- - Parameters -
-
-

-
-
signal_number
-

- The signal to be removed from the set. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Removes any notifications that have been queued for the specified signal - number. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set.html deleted file mode 100644 index da59682..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -signal_set::signal_set - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct a signal - set without adding any signals. -

-
explicit signal_set(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a signal set and add one signal. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1);
-  » more...
-
-

- Construct a signal set and add two signals. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1,
-    int signal_number_2);
-  » more...
-
-

- Construct a signal set and add three signals. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1,
-    int signal_number_2,
-    int signal_number_3);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload1.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload1.html deleted file mode 100644 index eed1e30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload1.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -signal_set::signal_set (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a signal set without adding any signals. -

-
signal_set(
-    asio::io_context & io_context);
-
-

- This constructor creates a signal set without registering for any signals. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the signal set will use to dispatch handlers for any - asynchronous operations performed on the set. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload2.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload2.html deleted file mode 100644 index 2efa66d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -signal_set::signal_set (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a signal set and add one signal. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1);
-
-

- This constructor creates a signal set and registers for one signal. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the signal set will use to dispatch handlers for any - asynchronous operations performed on the set. -

-
signal_number_1
-

- The signal number to be added. -

-
-
-
- - Remarks -
-

- This constructor is equivalent to performing: -

-
asio::signal_set signals(io_context);
-signals.add(signal_number_1);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload3.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload3.html deleted file mode 100644 index 5dc8054..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload3.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -signal_set::signal_set (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a signal set and add two signals. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1,
-    int signal_number_2);
-
-

- This constructor creates a signal set and registers for two signals. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the signal set will use to dispatch handlers for any - asynchronous operations performed on the set. -

-
signal_number_1
-

- The first signal number to be added. -

-
signal_number_2
-

- The second signal number to be added. -

-
-
-
- - Remarks -
-

- This constructor is equivalent to performing: -

-
asio::signal_set signals(io_context);
-signals.add(signal_number_1);
-signals.add(signal_number_2);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload4.html b/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload4.html deleted file mode 100644 index 9c31e0d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/signal_set/signal_set/overload4.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -signal_set::signal_set (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a signal set and add three signals. -

-
signal_set(
-    asio::io_context & io_context,
-    int signal_number_1,
-    int signal_number_2,
-    int signal_number_3);
-
-

- This constructor creates a signal set and registers for three signals. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the signal set will use to dispatch handlers for any - asynchronous operations performed on the set. -

-
signal_number_1
-

- The first signal number to be added. -

-
signal_number_2
-

- The second signal number to be added. -

-
signal_number_3
-

- The third signal number to be added. -

-
-
-
- - Remarks -
-

- This constructor is equivalent to performing: -

-
asio::signal_set signals(io_context);
-signals.add(signal_number_1);
-signals.add(signal_number_2);
-signals.add(signal_number_3);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base.html b/Sources/Vendor/asio/doc/asio/reference/socket_base.html deleted file mode 100644 index 49e45a4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base.html +++ /dev/null @@ -1,407 +0,0 @@ - - - -socket_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The socket_base - class is used as a base for the basic_stream_socket - and basic_datagram_socket - class templates so that we have a common place to define the shutdown_type - and enum. -

-
class socket_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- broadcast -

-
-

- Socket option to permit sending of broadcast messages. -

-
-

- bytes_readable -

-
-

- IO control command to get the amount of data that can be read without - blocking. -

-
-

- debug -

-
-

- Socket option to enable socket-level debugging. -

-
-

- do_not_route -

-
-

- Socket option to prevent routing, use local interfaces only. -

-
-

- enable_connection_aborted -

-
-

- Socket option to report aborted connections on accept. -

-
-

- keep_alive -

-
-

- Socket option to send keep-alives. -

-
-

- linger -

-
-

- Socket option to specify whether the socket lingers on close if - unsent data is present. -

-
-

- message_flags -

-
-

- Bitmask type for flags that can be passed to send and receive operations. -

-
-

- out_of_band_inline -

-
-

- Socket option for putting received out-of-band data inline. -

-
-

- receive_buffer_size -

-
-

- Socket option for the receive buffer size of a socket. -

-
-

- receive_low_watermark -

-
-

- Socket option for the receive low watermark. -

-
-

- reuse_address -

-
-

- Socket option to allow the socket to be bound to an address that - is already in use. -

-
-

- send_buffer_size -

-
-

- Socket option for the send buffer size of a socket. -

-
-

- send_low_watermark -

-
-

- Socket option for the send low watermark. -

-
-

- shutdown_type -

-
-

- Different ways a socket may be shutdown. -

-
-

- wait_type -

-
-

- Wait types. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~socket_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- max_connections -

-
-

- (Deprecated: Use max_listen_connections.) The maximum length of - the queue of pending incoming connections. -

-
-

- max_listen_connections -

-
-

- The maximum length of the queue of pending incoming connections. -

-
-

- message_do_not_route -

-
-

- Specify that the data should not be subject to routing. -

-
-

- message_end_of_record -

-
-

- Specifies that the data marks the end of a record. -

-
-

- message_out_of_band -

-
-

- Process out-of-band data. -

-
-

- message_peek -

-
-

- Peek at incoming data without removing it from the input queue. -

-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/_socket_base.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/_socket_base.html deleted file mode 100644 index 40f6833..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/_socket_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::~socket_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~socket_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/broadcast.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/broadcast.html deleted file mode 100644 index ca8dd13..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/broadcast.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::broadcast - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option to - permit sending of broadcast messages. -

-
typedef implementation_defined broadcast;
-
-

- Implements the SOL_SOCKET/SO_BROADCAST socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::broadcast option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/bytes_readable.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/bytes_readable.html deleted file mode 100644 index 0786c1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/bytes_readable.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -socket_base::bytes_readable - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -IO control - command to get the amount of data that can be read without blocking. -

-
typedef implementation_defined bytes_readable;
-
-

- Implements the FIONREAD IO control command. -

-
- - Example -
-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::bytes_readable command(true);
-socket.io_control(command);
-std::size_t bytes_readable = command.get();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/debug.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/debug.html deleted file mode 100644 index 5604be3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/debug.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::debug - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option to enable - socket-level debugging. -

-
typedef implementation_defined debug;
-
-

- Implements the SOL_SOCKET/SO_DEBUG socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::debug option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/do_not_route.html deleted file mode 100644 index 1d8951d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/do_not_route.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option - to prevent routing, use local interfaces only. -

-
typedef implementation_defined do_not_route;
-
-

- Implements the SOL_SOCKET/SO_DONTROUTE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::udp::socket socket(io_context);
-...
-asio::socket_base::do_not_route option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/enable_connection_aborted.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/enable_connection_aborted.html deleted file mode 100644 index 5a8b473..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/enable_connection_aborted.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -socket_base::enable_connection_aborted - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option to report aborted connections on accept. -

-
typedef implementation_defined enable_connection_aborted;
-
-

- Implements a custom socket option that determines whether or not an accept - operation is permitted to fail with asio::error::connection_aborted. - By default the option is false. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::enable_connection_aborted option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/keep_alive.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/keep_alive.html deleted file mode 100644 index bef1734..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/keep_alive.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::keep_alive - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option - to send keep-alives. -

-
typedef implementation_defined keep_alive;
-
-

- Implements the SOL_SOCKET/SO_KEEPALIVE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::keep_alive option;
-socket.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/linger.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/linger.html deleted file mode 100644 index e3c1ee4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/linger.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -socket_base::linger - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket option to specify - whether the socket lingers on close if unsent data is present. -

-
typedef implementation_defined linger;
-
-

- Implements the SOL_SOCKET/SO_LINGER socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option(true, 30);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::linger option;
-socket.get_option(option);
-bool is_set = option.enabled();
-unsigned short timeout = option.timeout();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/max_connections.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/max_connections.html deleted file mode 100644 index e1d60b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/max_connections.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -socket_base::max_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use max_listen_connections.) The maximum length of the queue of pending - incoming connections. -

-
static const int max_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/max_listen_connections.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/max_listen_connections.html deleted file mode 100644 index 4ff58a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/max_listen_connections.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::max_listen_connections - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - maximum length of the queue of pending incoming connections. -

-
static const int max_listen_connections = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_do_not_route.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_do_not_route.html deleted file mode 100644 index 8c735f7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_do_not_route.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::message_do_not_route - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Specify - that the data should not be subject to routing. -

-
static const int message_do_not_route = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_end_of_record.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_end_of_record.html deleted file mode 100644 index c2cf0cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_end_of_record.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::message_end_of_record - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Specifies - that the data marks the end of a record. -

-
static const int message_end_of_record = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_flags.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_flags.html deleted file mode 100644 index c7ff863..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_flags.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -socket_base::message_flags - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bitmask - type for flags that can be passed to send and receive operations. -

-
typedef int message_flags;
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_out_of_band.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_out_of_band.html deleted file mode 100644 index 1e6b743..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_out_of_band.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::message_out_of_band - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Process - out-of-band data. -

-
static const int message_out_of_band = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_peek.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/message_peek.html deleted file mode 100644 index 629164e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/message_peek.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -socket_base::message_peek - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Peek at incoming - data without removing it from the input queue. -

-
static const int message_peek = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/out_of_band_inline.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/out_of_band_inline.html deleted file mode 100644 index 5762147..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/out_of_band_inline.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::out_of_band_inline - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for putting received out-of-band data inline. -

-
typedef implementation_defined out_of_band_inline;
-
-

- Implements the SOL_SOCKET/SO_OOBINLINE socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option(true);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::out_of_band_inline option;
-socket.get_option(option);
-bool value = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_buffer_size.html deleted file mode 100644 index a569f04..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_buffer_size.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::receive_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for the receive buffer size of a socket. -

-
typedef implementation_defined receive_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_RCVBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_low_watermark.html deleted file mode 100644 index e46ae70..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/receive_low_watermark.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::receive_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for the receive low watermark. -

-
typedef implementation_defined receive_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_RCVLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::receive_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/reuse_address.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/reuse_address.html deleted file mode 100644 index 8234d96..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/reuse_address.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -socket_base::reuse_address - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option to allow the socket to be bound to an address that is already in - use. -

-
typedef implementation_defined reuse_address;
-
-

- Implements the SOL_SOCKET/SO_REUSEADDR socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option(true);
-acceptor.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::acceptor acceptor(io_context);
-...
-asio::socket_base::reuse_address option;
-acceptor.get_option(option);
-bool is_set = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/send_buffer_size.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/send_buffer_size.html deleted file mode 100644 index 7f55bcb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/send_buffer_size.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::send_buffer_size - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for the send buffer size of a socket. -

-
typedef implementation_defined send_buffer_size;
-
-

- Implements the SOL_SOCKET/SO_SNDBUF socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option(8192);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_buffer_size option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/send_low_watermark.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/send_low_watermark.html deleted file mode 100644 index 59bf0a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/send_low_watermark.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -socket_base::send_low_watermark - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Socket - option for the send low watermark. -

-
typedef implementation_defined send_low_watermark;
-
-

- Implements the SOL_SOCKET/SO_SNDLOWAT socket option. -

-
- - Examples -
-

- Setting the option: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option(1024);
-socket.set_option(option);
-
-

- Getting the current option value: -

-
asio::ip::tcp::socket socket(io_context);
-...
-asio::socket_base::send_low_watermark option;
-socket.get_option(option);
-int size = option.value();
-
-
- - Requirements -
-

- Header: asio/socket_base.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/shutdown_type.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/shutdown_type.html deleted file mode 100644 index bc2279a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/shutdown_type.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -socket_base::shutdown_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different - ways a socket may be shutdown. -

-
enum shutdown_type
-
-

- - - -

-
- - Values -
-
-

-
-
shutdown_receive
-

- Shutdown the receive side of the socket. -

-
shutdown_send
-

- Shutdown the send side of the socket. -

-
shutdown_both
-

- Shutdown both send and receive on the socket. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/socket_base/wait_type.html b/Sources/Vendor/asio/doc/asio/reference/socket_base/wait_type.html deleted file mode 100644 index b6e8341..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/socket_base/wait_type.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -socket_base::wait_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait types. -

-
enum wait_type
-
-

- - - -

-
- - Values -
-
-

-
-
wait_read
-

- Wait for a socket to become ready to read. -

-
wait_write
-

- Wait for a socket to become ready to write. -

-
wait_error
-

- Wait for a socket to have error conditions pending. -

-
-
-

- For use with basic_socket::wait() and basic_socket::async_wait(). -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn.html b/Sources/Vendor/asio/doc/asio/reference/spawn.html deleted file mode 100644 index 4e8d457..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn.html +++ /dev/null @@ -1,161 +0,0 @@ - - - -spawn - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-spawn -

-

- -Start a new stackful coroutine. -

-

- Start a new stackful coroutine, calling the specified handler when it completes. -

-
template<
-    typename Function>
-void spawn(
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-  » more...
-
-template<
-    typename Handler,
-    typename Function>
-void spawn(
-    Handler && handler,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if<!is_executor< typename decay< Handler >::type >::value &&!is_convertible< Handler &, execution_context & >::value >::type *  = 0);
-  » more...
-
-

- Start a new stackful coroutine, inheriting the execution context of another. -

-
template<
-    typename Handler,
-    typename Function>
-void spawn(
-    basic_yield_context< Handler > ctx,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-  » more...
-
-

- Start a new stackful coroutine that executes on a given executor. -

-
template<
-    typename Function,
-    typename Executor>
-void spawn(
-    const Executor & ex,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-  » more...
-
-

- Start a new stackful coroutine that executes on a given strand. -

-
template<
-    typename Function,
-    typename Executor>
-void spawn(
-    const strand< Executor > & ex,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-  » more...
-
-

- Start a new stackful coroutine that executes in the context of a strand. -

-
template<
-    typename Function>
-void spawn(
-    const asio::io_context::strand & s,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-  » more...
-
-

- Start a new stackful coroutine that executes on a given execution context. -

-
template<
-    typename Function,
-    typename ExecutionContext>
-void spawn(
-    ExecutionContext & ctx,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-  » more...
-
-

- The spawn() function is a high-level wrapper over the Boost.Coroutine - library. This function enables programs to implement asynchronous logic in - a synchronous manner, as illustrated by the following example: -

-
asio::spawn(my_strand, do_echo);
-
-// ...
-
-void do_echo(asio::yield_context yield)
-{
-  try
-  {
-    char data[128];
-    for (;;)
-    {
-      std::size_t length =
-        my_socket.async_read_some(
-          asio::buffer(data), yield);
-
-      asio::async_write(my_socket,
-          asio::buffer(data, length), yield);
-    }
-  }
-  catch (std::exception& e)
-  {
-    // ...
-  }
-}
-
-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload1.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload1.html deleted file mode 100644 index 7a4638a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -spawn (1 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine, calling the specified handler when it completes. -

-
template<
-    typename Function>
-void spawn(
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(basic_yield_context<Handler> yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload2.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload2.html deleted file mode 100644 index b1809e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -spawn (2 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine, calling the specified handler when it completes. -

-
template<
-    typename Handler,
-    typename Function>
-void spawn(
-    Handler && handler,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if<!is_executor< typename decay< Handler >::type >::value &&!is_convertible< Handler &, execution_context & >::value >::type *  = 0);
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
handler
-
-

- A handler to be called when the coroutine exits. More importantly, - the handler provides an execution context (via the the handler invocation - hook) for the coroutine. The handler must have the signature: -

-
void handler();
-
-

-

-
-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(basic_yield_context<Handler> yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload3.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload3.html deleted file mode 100644 index 793223e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload3.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -spawn (3 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine, inheriting the execution context of another. -

-
template<
-    typename Handler,
-    typename Function>
-void spawn(
-    basic_yield_context< Handler > ctx,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
ctx
-

- Identifies the current coroutine as a parent of the new coroutine. - This specifies that the new coroutine should inherit the execution - context of the parent. For example, if the parent coroutine is executing - in a particular strand, then the new coroutine will execute in the - same strand. -

-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(basic_yield_context<Handler> yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload4.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload4.html deleted file mode 100644 index 7685dd6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload4.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -spawn (4 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine that executes on a given executor. -

-
template<
-    typename Function,
-    typename Executor>
-void spawn(
-    const Executor & ex,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if< is_executor< Executor >::value >::type *  = 0);
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
ex
-

- Identifies the executor that will run the coroutine. The new coroutine - is implicitly given its own strand within this executor. -

-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(yield_context yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload5.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload5.html deleted file mode 100644 index ea640d0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload5.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -spawn (5 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine that executes on a given strand. -

-
template<
-    typename Function,
-    typename Executor>
-void spawn(
-    const strand< Executor > & ex,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
ex
-

- Identifies the strand that will run the coroutine. -

-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(yield_context yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload6.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload6.html deleted file mode 100644 index 2c62fe3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload6.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -spawn (6 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine that executes in the context of a strand. -

-
template<
-    typename Function>
-void spawn(
-    const asio::io_context::strand & s,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes());
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
s
-

- Identifies a strand. By starting multiple coroutines on the same - strand, the implementation ensures that none of those coroutines - can execute simultaneously. -

-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(yield_context yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/spawn/overload7.html b/Sources/Vendor/asio/doc/asio/reference/spawn/overload7.html deleted file mode 100644 index ffc64b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/spawn/overload7.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -spawn (7 of 7 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start a new stackful coroutine that executes on a given execution context. -

-
template<
-    typename Function,
-    typename ExecutionContext>
-void spawn(
-    ExecutionContext & ctx,
-    Function && function,
-    const boost::coroutines::attributes & attributes = boost::coroutines::attributes(),
-    typename enable_if< is_convertible< ExecutionContext &, execution_context & >::value >::type *  = 0);
-
-

- This function is used to launch a new coroutine. -

-
- - Parameters -
-
-

-
-
ctx
-

- Identifies the execution context that will run the coroutine. The - new coroutine is implicitly given its own strand within this execution - context. -

-
function
-
-

- The coroutine function. The function must have the signature: -

-
void function(yield_context yield);
-
-

-

-
-
attributes
-

- Boost.Coroutine attributes used to customise the coroutine. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context.html deleted file mode 100644 index aae64ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context.html +++ /dev/null @@ -1,583 +0,0 @@ - - - -ssl::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
class context :
-  public ssl::context_base,
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- file_format -

-
-

- File format types. -

-
-

- method -

-
-

- Different methods supported by a context. -

-
-

- native_handle_type -

-
-

- The native handle type of the SSL context. -

-
-

- options -

-
-

- Bitmask type for SSL options. -

-
-

- password_purpose -

-
-

- Purpose of PEM password. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_certificate_authority -

-
-

- Add certification authority for performing verification. -

-
-

- add_verify_path -

-
-

- Add a directory containing certificate authority files to be used - for performing verification. -

-
-

- clear_options -

-
-

- Clear options on the context. -

-
-

- context -

-
-

- Constructor.

Move-construct a context from another. -

-
-

- load_verify_file -

-
-

- Load a certification authority file for performing verification. -

-
-

- native_handle -

-
-

- Get the underlying implementation in the native type. -

-
-

- operator= -

-
-

- Move-assign a context from another. -

-
-

- set_default_verify_paths -

-
-

- Configures the context to use the default directories for finding - certification authority certificates. -

-
-

- set_options -

-
-

- Set options on the context. -

-
-

- set_password_callback -

-
-

- Set the password callback. -

-
-

- set_verify_callback -

-
-

- Set the callback used to verify peer certificates. -

-
-

- set_verify_depth -

-
-

- Set the peer verification depth. -

-
-

- set_verify_mode -

-
-

- Set the peer verification mode. -

-
-

- use_certificate -

-
-

- Use a certificate from a memory buffer. -

-
-

- use_certificate_chain -

-
-

- Use a certificate chain from a memory buffer. -

-
-

- use_certificate_chain_file -

-
-

- Use a certificate chain from a file. -

-
-

- use_certificate_file -

-
-

- Use a certificate from a file. -

-
-

- use_private_key -

-
-

- Use a private key from a memory buffer. -

-
-

- use_private_key_file -

-
-

- Use a private key from a file. -

-
-

- use_rsa_private_key -

-
-

- Use an RSA private key from a memory buffer. -

-
-

- use_rsa_private_key_file -

-
-

- Use an RSA private key from a file. -

-
-

- use_tmp_dh -

-
-

- Use the specified memory buffer to obtain the temporary Diffie-Hellman - parameters. -

-
-

- use_tmp_dh_file -

-
-

- Use the specified file to obtain the temporary Diffie-Hellman parameters. -

-
-

- ~context -

-
-

- Destructor. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- default_workarounds -

-
-

- Implement various bug workarounds. -

-
-

- no_compression -

-
-

- Disable compression. Compression is disabled by default. -

-
-

- no_sslv2 -

-
-

- Disable SSL v2. -

-
-

- no_sslv3 -

-
-

- Disable SSL v3. -

-
-

- no_tlsv1 -

-
-

- Disable TLS v1. -

-
-

- no_tlsv1_1 -

-
-

- Disable TLS v1.1. -

-
-

- no_tlsv1_2 -

-
-

- Disable TLS v1.2. -

-
-

- no_tlsv1_3 -

-
-

- Disable TLS v1.3. -

-
-

- single_dh_use -

-
-

- Always create a new key when using tmp_dh parameters. -

-
-
- - Requirements -
-

- Header: asio/ssl/context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/_context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/_context.html deleted file mode 100644 index 3360ff9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/_context.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ssl::context::~context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority.html deleted file mode 100644 index 998d053..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::add_certificate_authority - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Add - certification authority for performing verification. -

-
void add_certificate_authority(
-    const const_buffer & ca);
-  » more...
-
-void add_certificate_authority(
-    const const_buffer & ca,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html deleted file mode 100644 index 5e06604..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::add_certificate_authority (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add certification authority for performing verification. -

-
void add_certificate_authority(
-    const const_buffer & ca);
-
-

- This function is used to add one trusted certification authority from - a memory buffer. -

-
- - Parameters -
-
-

-
-
ca
-

- The buffer containing the certification authority certificate. - The certificate must use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_get_cert_store and X509_STORE_add_cert. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html deleted file mode 100644 index 54d1cc3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_certificate_authority/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::add_certificate_authority (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add certification authority for performing verification. -

-
void add_certificate_authority(
-    const const_buffer & ca,
-    asio::error_code & ec);
-
-

- This function is used to add one trusted certification authority from - a memory buffer. -

-
- - Parameters -
-
-

-
-
ca
-

- The buffer containing the certification authority certificate. - The certificate must use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_get_cert_store and X509_STORE_add_cert. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path.html deleted file mode 100644 index 3b18d6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ssl::context::add_verify_path - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Add - a directory containing certificate authority files to be used for performing - verification. -

-
void add_verify_path(
-    const std::string & path);
-  » more...
-
-void add_verify_path(
-    const std::string & path,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html deleted file mode 100644 index 353b998..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload1.html +++ /dev/null @@ -1,83 +0,0 @@ - - - -ssl::context::add_verify_path (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add a directory containing certificate authority files to be used for - performing verification. -

-
void add_verify_path(
-    const std::string & path);
-
-

- This function is used to specify the name of a directory containing certification - authority certificates. Each file in the directory must contain a single - certificate. The files must be named using the subject name's hash and - an extension of ".0". -

-
- - Parameters -
-
-

-
-
path
-

- The name of a directory containing the certificates. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_load_verify_locations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html deleted file mode 100644 index 7f87584..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/add_verify_path/overload2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - -ssl::context::add_verify_path (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Add a directory containing certificate authority files to be used for - performing verification. -

-
void add_verify_path(
-    const std::string & path,
-    asio::error_code & ec);
-
-

- This function is used to specify the name of a directory containing certification - authority certificates. Each file in the directory must contain a single - certificate. The files must be named using the subject name's hash and - an extension of ".0". -

-
- - Parameters -
-
-

-
-
path
-

- The name of a directory containing the certificates. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_load_verify_locations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options.html deleted file mode 100644 index 557bd92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::clear_options - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Clear - options on the context. -

-
void clear_options(
-    options o);
-  » more...
-
-void clear_options(
-    options o,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload1.html deleted file mode 100644 index 2f78331..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::context::clear_options (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Clear options on the context. -

-
void clear_options(
-    options o);
-
-

- This function may be used to configure the SSL options used by the context. -

-
- - Parameters -
-
-

-
-
o
-

- A bitmask of options. The available option values are defined in - the ssl::context_base - class. The specified options, if currently enabled on the context, - are cleared. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_clear_options. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload2.html deleted file mode 100644 index 5d69e0d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/clear_options/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::context::clear_options (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Clear options on the context. -

-
void clear_options(
-    options o,
-    asio::error_code & ec);
-
-

- This function may be used to configure the SSL options used by the context. -

-
- - Parameters -
-
-

-
-
o
-

- A bitmask of options. The available option values are defined in - the ssl::context_base - class. The specified options, if currently enabled on the context, - are cleared. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_clear_options. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/context.html deleted file mode 100644 index 2177c14..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ssl::context::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
explicit context(
-    method m);
-  » more...
-
-

- Move-construct a context from another. -

-
context(
-    context && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload1.html deleted file mode 100644 index 3f9b2f9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::context (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructor. -

-
context(
-    method m);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload2.html deleted file mode 100644 index 73c888e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/context/overload2.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -ssl::context::context (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a context from another. -

-
context(
-    context && other);
-
-

- This constructor moves an SSL context from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other context object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the following operations only are valid for the moved-from - object: * Destruction. -

-
  • - As a target for move-assignment. -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/default_workarounds.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/default_workarounds.html deleted file mode 100644 index 3f98407..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/default_workarounds.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::default_workarounds - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Implement - various bug workarounds. -

-
static const long default_workarounds = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/file_format.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/file_format.html deleted file mode 100644 index d863b1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/file_format.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::context::file_format - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -File format - types. -

-
enum file_format
-
-

- - -

-
- - Values -
-
-

-
-
asn1
-

- ASN.1 file. -

-
pem
-

- PEM file. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file.html deleted file mode 100644 index 375aba5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::load_verify_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Load - a certification authority file for performing verification. -

-
void load_verify_file(
-    const std::string & filename);
-  » more...
-
-void load_verify_file(
-    const std::string & filename,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html deleted file mode 100644 index 2687ee6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::load_verify_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Load a certification authority file for performing verification. -

-
void load_verify_file(
-    const std::string & filename);
-
-

- This function is used to load one or more trusted certification authorities - from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of a file containing certification authority certificates - in PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_load_verify_locations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html deleted file mode 100644 index 7b5a28f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/load_verify_file/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::load_verify_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Load a certification authority file for performing verification. -

-
void load_verify_file(
-    const std::string & filename,
-    asio::error_code & ec);
-
-

- This function is used to load the certificates for one or more trusted - certification authorities from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of a file containing certification authority certificates - in PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_load_verify_locations. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/method.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/method.html deleted file mode 100644 index 1daeb9c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/method.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -ssl::context::method - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different methods supported - by a context. -

-
enum method
-
-

- - - - - - - - - - - - - - - - - - - - - - - - -

-
- - Values -
-
-

-
-
sslv2
-

- Generic SSL version 2. -

-
sslv2_client
-

- SSL version 2 client. -

-
sslv2_server
-

- SSL version 2 server. -

-
sslv3
-

- Generic SSL version 3. -

-
sslv3_client
-

- SSL version 3 client. -

-
sslv3_server
-

- SSL version 3 server. -

-
tlsv1
-

- Generic TLS version 1. -

-
tlsv1_client
-

- TLS version 1 client. -

-
tlsv1_server
-

- TLS version 1 server. -

-
sslv23
-

- Generic SSL/TLS. -

-
sslv23_client
-

- SSL/TLS client. -

-
sslv23_server
-

- SSL/TLS server. -

-
tlsv11
-

- Generic TLS version 1.1. -

-
tlsv11_client
-

- TLS version 1.1 client. -

-
tlsv11_server
-

- TLS version 1.1 server. -

-
tlsv12
-

- Generic TLS version 1.2. -

-
tlsv12_client
-

- TLS version 1.2 client. -

-
tlsv12_server
-

- TLS version 1.2 server. -

-
tlsv13
-

- Generic TLS version 1.3. -

-
tlsv13_client
-

- TLS version 1.3 client. -

-
tlsv13_server
-

- TLS version 1.3 server. -

-
tls
-

- Generic TLS. -

-
tls_client
-

- TLS client. -

-
tls_server
-

- TLS server. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle.html deleted file mode 100644 index d664ce4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ssl::context::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - underlying implementation in the native type. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying implementation of the - context. This is intended to allow access to context functionality that - is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle_type.html deleted file mode 100644 index 57193ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::context::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native handle type of the SSL context. -

-
typedef SSL_CTX * native_handle_type;
-
-
- - Requirements -
-

- Header: asio/ssl/context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_compression.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_compression.html deleted file mode 100644 index 389bc50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_compression.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::no_compression - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - compression. Compression is disabled by default. -

-
static const long no_compression = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv2.html deleted file mode 100644 index eeb27f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ssl::context::no_sslv2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable SSL v2. -

-
static const long no_sslv2 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv3.html deleted file mode 100644 index e1f3217..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_sslv3.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ssl::context::no_sslv3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable SSL v3. -

-
static const long no_sslv3 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1.html deleted file mode 100644 index fdce0ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -ssl::context::no_tlsv1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable TLS v1. -

-
static const long no_tlsv1 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html deleted file mode 100644 index eb3e1ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::no_tlsv1_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable TLS - v1.1. -

-
static const long no_tlsv1_1 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html deleted file mode 100644 index dd0eb82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::no_tlsv1_2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable TLS - v1.2. -

-
static const long no_tlsv1_2 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html deleted file mode 100644 index fba297a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/no_tlsv1_3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::no_tlsv1_3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable TLS - v1.3. -

-
static const long no_tlsv1_3 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/operator_eq_.html deleted file mode 100644 index c393ae6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -ssl::context::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a context from another. -

-
context & operator=(
-    context && other);
-
-

- This assignment operator moves an SSL context from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other context object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the following operations only are valid for the moved-from - object: * Destruction. -

-
  • - As a target for move-assignment. -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/options.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/options.html deleted file mode 100644 index 7007bff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/options.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::context::options - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bitmask type for - SSL options. -

-
typedef long options;
-
-
- - Requirements -
-

- Header: asio/ssl/context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/password_purpose.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/password_purpose.html deleted file mode 100644 index e628408..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/password_purpose.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::context::password_purpose - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Purpose - of PEM password. -

-
enum password_purpose
-
-

- - -

-
- - Values -
-
-

-
-
for_reading
-

- The password is needed for reading/decryption. -

-
for_writing
-

- The password is needed for writing/encryption. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html deleted file mode 100644 index d33e60d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -ssl::context::set_default_verify_paths - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Configures - the context to use the default directories for finding certification authority - certificates. -

-
void set_default_verify_paths();
-  » more...
-
-void set_default_verify_paths(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html deleted file mode 100644 index d2032f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload1.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -ssl::context::set_default_verify_paths (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Configures the context to use the default directories for finding certification - authority certificates. -

-
void set_default_verify_paths();
-
-

- This function specifies that the context should use the default, system-dependent - directories for locating certification authority certificates. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_default_verify_paths. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html deleted file mode 100644 index a8c3436..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_default_verify_paths/overload2.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -ssl::context::set_default_verify_paths (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Configures the context to use the default directories for finding certification - authority certificates. -

-
void set_default_verify_paths(
-    asio::error_code & ec);
-
-

- This function specifies that the context should use the default, system-dependent - directories for locating certification authority certificates. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_default_verify_paths. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options.html deleted file mode 100644 index 37022f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::set_options - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set options - on the context. -

-
void set_options(
-    options o);
-  » more...
-
-void set_options(
-    options o,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload1.html deleted file mode 100644 index b8b2fdb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::context::set_options (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set options on the context. -

-
void set_options(
-    options o);
-
-

- This function may be used to configure the SSL options used by the context. -

-
- - Parameters -
-
-

-
-
o
-

- A bitmask of options. The available option values are defined in - the ssl::context_base - class. The options are bitwise-ored with any existing value for - the options. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_options. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload2.html deleted file mode 100644 index fe7d737..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_options/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::context::set_options (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set options on the context. -

-
void set_options(
-    options o,
-    asio::error_code & ec);
-
-

- This function may be used to configure the SSL options used by the context. -

-
- - Parameters -
-
-

-
-
o
-

- A bitmask of options. The available option values are defined in - the ssl::context_base - class. The options are bitwise-ored with any existing value for - the options. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_options. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback.html deleted file mode 100644 index 8eef803..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::context::set_password_callback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the password callback. -

-
template<
-    typename PasswordCallback>
-void set_password_callback(
-    PasswordCallback callback);
-  » more...
-
-template<
-    typename PasswordCallback>
-void set_password_callback(
-    PasswordCallback callback,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html deleted file mode 100644 index f85da72..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload1.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -ssl::context::set_password_callback (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the password callback. -

-
template<
-    typename PasswordCallback>
-void set_password_callback(
-    PasswordCallback callback);
-
-

- This function is used to specify a callback function to obtain password - information about an encrypted key in PEM format. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for obtaining the password. The - function signature of the handler must be: -

-
std::string password_callback(
-  std::size_t max_length,  // The maximum size for a password.
-  password_purpose purpose // Whether password is for reading or writing.
-);
-
-

- The return value of the callback is a string containing the password. -

-
-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_default_passwd_cb. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html deleted file mode 100644 index add78f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_password_callback/overload2.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -ssl::context::set_password_callback (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the password callback. -

-
template<
-    typename PasswordCallback>
-void set_password_callback(
-    PasswordCallback callback,
-    asio::error_code & ec);
-
-

- This function is used to specify a callback function to obtain password - information about an encrypted key in PEM format. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for obtaining the password. The - function signature of the handler must be: -

-
std::string password_callback(
-  std::size_t max_length,  // The maximum size for a password.
-  password_purpose purpose // Whether password is for reading or writing.
-);
-
-

- The return value of the callback is a string containing the password. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_default_passwd_cb. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback.html deleted file mode 100644 index 57e7871..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::context::set_verify_callback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback);
-  » more...
-
-template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html deleted file mode 100644 index d099ddf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -ssl::context::set_verify_callback (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback);
-
-

- This function is used to specify a callback function that will be called - by the implementation when it needs to verify a peer certificate. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for verifying a certificate. The - function signature of the handler must be: -

-
bool verify_callback(
-  bool preverified, // True if the certificate passed pre-verification.
-  verify_context& ctx // The peer certificate and other context.
-);
-
-

- The return value of the callback is true if the certificate has - passed verification, false otherwise. -

-
-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html deleted file mode 100644 index 4b984e6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_callback/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -ssl::context::set_verify_callback (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback,
-    asio::error_code & ec);
-
-

- This function is used to specify a callback function that will be called - by the implementation when it needs to verify a peer certificate. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for verifying a certificate. The - function signature of the handler must be: -

-
bool verify_callback(
-  bool preverified, // True if the certificate passed pre-verification.
-  verify_context& ctx // The peer certificate and other context.
-);
-
-

- The return value of the callback is true if the certificate has - passed verification, false otherwise. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth.html deleted file mode 100644 index 71ff28d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::set_verify_depth - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the peer verification depth. -

-
void set_verify_depth(
-    int depth);
-  » more...
-
-void set_verify_depth(
-    int depth,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html deleted file mode 100644 index c039bb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::set_verify_depth (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification depth. -

-
void set_verify_depth(
-    int depth);
-
-

- This function may be used to configure the maximum verification depth - allowed by the context. -

-
- - Parameters -
-
-

-
-
depth
-

- Maximum depth for the certificate chain verification that shall - be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify_depth. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html deleted file mode 100644 index f32b4cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_depth/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::set_verify_depth (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification depth. -

-
void set_verify_depth(
-    int depth,
-    asio::error_code & ec);
-
-

- This function may be used to configure the maximum verification depth - allowed by the context. -

-
- - Parameters -
-
-

-
-
depth
-

- Maximum depth for the certificate chain verification that shall - be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify_depth. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode.html deleted file mode 100644 index 8ec86ca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::set_verify_mode - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v);
-  » more...
-
-void set_verify_mode(
-    verify_mode v,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html deleted file mode 100644 index b312fe3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::set_verify_mode (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v);
-
-

- This function may be used to configure the peer verification mode used - by the context. -

-
- - Parameters -
-
-

-
-
v
-

- A bitmask of peer verification modes. See ssl::verify_mode - for available values. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html deleted file mode 100644 index a99ac41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/set_verify_mode/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::set_verify_mode (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v,
-    asio::error_code & ec);
-
-

- This function may be used to configure the peer verification mode used - by the context. -

-
- - Parameters -
-
-

-
-
v
-

- A bitmask of peer verification modes. See ssl::verify_mode - for available values. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/single_dh_use.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/single_dh_use.html deleted file mode 100644 index 4017e8e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/single_dh_use.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context::single_dh_use - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Always - create a new key when using tmp_dh parameters. -

-
static const long single_dh_use = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate.html deleted file mode 100644 index cda9651..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_certificate - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a certificate from a memory buffer. -

-
void use_certificate(
-    const const_buffer & certificate,
-    file_format format);
-  » more...
-
-void use_certificate(
-    const const_buffer & certificate,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html deleted file mode 100644 index a5e336c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -ssl::context::use_certificate (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate from a memory buffer. -

-
void use_certificate(
-    const const_buffer & certificate,
-    file_format format);
-
-

- This function is used to load a certificate into the context from a buffer. -

-
- - Parameters -
-
-

-
-
certificate
-

- The buffer containing the certificate. -

-
format
-

- The certificate format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html deleted file mode 100644 index 693738c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ssl::context::use_certificate (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate from a memory buffer. -

-
void use_certificate(
-    const const_buffer & certificate,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load a certificate into the context from a buffer. -

-
- - Parameters -
-
-

-
-
certificate
-

- The buffer containing the certificate. -

-
format
-

- The certificate format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain.html deleted file mode 100644 index ebc1f4f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::use_certificate_chain - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a certificate chain from a memory buffer. -

-
void use_certificate_chain(
-    const const_buffer & chain);
-  » more...
-
-void use_certificate_chain(
-    const const_buffer & chain,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html deleted file mode 100644 index 009fe6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::use_certificate_chain (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate chain from a memory buffer. -

-
void use_certificate_chain(
-    const const_buffer & chain);
-
-

- This function is used to load a certificate chain into the context from - a buffer. -

-
- - Parameters -
-
-

-
-
chain
-

- The buffer containing the certificate chain. The certificate chain - must use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html deleted file mode 100644 index d528e55..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::use_certificate_chain (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate chain from a memory buffer. -

-
void use_certificate_chain(
-    const const_buffer & chain,
-    asio::error_code & ec);
-
-

- This function is used to load a certificate chain into the context from - a buffer. -

-
- - Parameters -
-
-

-
-
chain
-

- The buffer containing the certificate chain. The certificate chain - must use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html deleted file mode 100644 index 8200810..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::use_certificate_chain_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a certificate chain from a file. -

-
void use_certificate_chain_file(
-    const std::string & filename);
-  » more...
-
-void use_certificate_chain_file(
-    const std::string & filename,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html deleted file mode 100644 index 67efacc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::use_certificate_chain_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate chain from a file. -

-
void use_certificate_chain_file(
-    const std::string & filename);
-
-

- This function is used to load a certificate chain into the context from - a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the certificate. The file must - use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate_chain_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html deleted file mode 100644 index ae96cc6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_chain_file/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::use_certificate_chain_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate chain from a file. -

-
void use_certificate_chain_file(
-    const std::string & filename,
-    asio::error_code & ec);
-
-

- This function is used to load a certificate chain into the context from - a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the certificate. The file must - use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate_chain_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file.html deleted file mode 100644 index 72fb0ed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_certificate_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a certificate from a file. -

-
void use_certificate_file(
-    const std::string & filename,
-    file_format format);
-  » more...
-
-void use_certificate_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html deleted file mode 100644 index 139475c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -ssl::context::use_certificate_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate from a file. -

-
void use_certificate_file(
-    const std::string & filename,
-    file_format format);
-
-

- This function is used to load a certificate into the context from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the certificate. -

-
format
-

- The file format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html deleted file mode 100644 index 80db98e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_certificate_file/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ssl::context::use_certificate_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a certificate from a file. -

-
void use_certificate_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load a certificate into the context from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the certificate. -

-
format
-

- The file format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_certificate_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key.html deleted file mode 100644 index 3c2a797..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_private_key - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a private key from a memory buffer. -

-
void use_private_key(
-    const const_buffer & private_key,
-    file_format format);
-  » more...
-
-void use_private_key(
-    const const_buffer & private_key,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html deleted file mode 100644 index 8d01270..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -ssl::context::use_private_key (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a private key from a memory buffer. -

-
void use_private_key(
-    const const_buffer & private_key,
-    file_format format);
-
-

- This function is used to load a private key into the context from a buffer. -

-
- - Parameters -
-
-

-
-
private_key
-

- The buffer containing the private key. -

-
format
-

- The private key format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html deleted file mode 100644 index 7e0a744..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ssl::context::use_private_key (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a private key from a memory buffer. -

-
void use_private_key(
-    const const_buffer & private_key,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load a private key into the context from a buffer. -

-
- - Parameters -
-
-

-
-
private_key
-

- The buffer containing the private key. -

-
format
-

- The private key format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file.html deleted file mode 100644 index cde9333..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_private_key_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - a private key from a file. -

-
void use_private_key_file(
-    const std::string & filename,
-    file_format format);
-  » more...
-
-void use_private_key_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html deleted file mode 100644 index b848535..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload1.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -ssl::context::use_private_key_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a private key from a file. -

-
void use_private_key_file(
-    const std::string & filename,
-    file_format format);
-
-

- This function is used to load a private key into the context from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the private key. -

-
format
-

- The file format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_PrivateKey_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html deleted file mode 100644 index 29d5e7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_private_key_file/overload2.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -ssl::context::use_private_key_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use a private key from a file. -

-
void use_private_key_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load a private key into the context from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the private key. -

-
format
-

- The file format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_PrivateKey_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html deleted file mode 100644 index 1fd27ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_rsa_private_key - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - an RSA private key from a memory buffer. -

-
void use_rsa_private_key(
-    const const_buffer & private_key,
-    file_format format);
-  » more...
-
-void use_rsa_private_key(
-    const const_buffer & private_key,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html deleted file mode 100644 index 12e4531..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -ssl::context::use_rsa_private_key (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use an RSA private key from a memory buffer. -

-
void use_rsa_private_key(
-    const const_buffer & private_key,
-    file_format format);
-
-

- This function is used to load an RSA private key into the context from - a buffer. -

-
- - Parameters -
-
-

-
-
private_key
-

- The buffer containing the RSA private key. -

-
format
-

- The private key format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html deleted file mode 100644 index b35b7e5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ssl::context::use_rsa_private_key (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use an RSA private key from a memory buffer. -

-
void use_rsa_private_key(
-    const const_buffer & private_key,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load an RSA private key into the context from - a buffer. -

-
- - Parameters -
-
-

-
-
private_key
-

- The buffer containing the RSA private key. -

-
format
-

- The private key format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html deleted file mode 100644 index 23ab2e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::context::use_rsa_private_key_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - an RSA private key from a file. -

-
void use_rsa_private_key_file(
-    const std::string & filename,
-    file_format format);
-  » more...
-
-void use_rsa_private_key_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html deleted file mode 100644 index 85223b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload1.html +++ /dev/null @@ -1,85 +0,0 @@ - - - -ssl::context::use_rsa_private_key_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use an RSA private key from a file. -

-
void use_rsa_private_key_file(
-    const std::string & filename,
-    file_format format);
-
-

- This function is used to load an RSA private key into the context from - a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the RSA private key. -

-
format
-

- The file format (ASN.1 or PEM). -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_RSAPrivateKey_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html deleted file mode 100644 index 3607eec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_rsa_private_key_file/overload2.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -ssl::context::use_rsa_private_key_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use an RSA private key from a file. -

-
void use_rsa_private_key_file(
-    const std::string & filename,
-    file_format format,
-    asio::error_code & ec);
-
-

- This function is used to load an RSA private key into the context from - a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the RSA private key. -

-
format
-

- The file format (ASN.1 or PEM). -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_use_RSAPrivateKey_file. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh.html deleted file mode 100644 index eedf17f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::use_tmp_dh - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use the specified - memory buffer to obtain the temporary Diffie-Hellman parameters. -

-
void use_tmp_dh(
-    const const_buffer & dh);
-  » more...
-
-void use_tmp_dh(
-    const const_buffer & dh,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html deleted file mode 100644 index e1f6dac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::context::use_tmp_dh (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use the specified memory buffer to obtain the temporary Diffie-Hellman - parameters. -

-
void use_tmp_dh(
-    const const_buffer & dh);
-
-

- This function is used to load Diffie-Hellman parameters into the context - from a buffer. -

-
- - Parameters -
-
-

-
-
dh
-

- The memory buffer containing the Diffie-Hellman parameters. The - buffer must use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_tmp_dh. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html deleted file mode 100644 index c40cd75..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::context::use_tmp_dh (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use the specified memory buffer to obtain the temporary Diffie-Hellman - parameters. -

-
void use_tmp_dh(
-    const const_buffer & dh,
-    asio::error_code & ec);
-
-

- This function is used to load Diffie-Hellman parameters into the context - from a buffer. -

-
- - Parameters -
-
-

-
-
dh
-

- The memory buffer containing the Diffie-Hellman parameters. The - buffer must use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_tmp_dh. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html deleted file mode 100644 index b295cbb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::context::use_tmp_dh_file - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Use - the specified file to obtain the temporary Diffie-Hellman parameters. -

-
void use_tmp_dh_file(
-    const std::string & filename);
-  » more...
-
-void use_tmp_dh_file(
-    const std::string & filename,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html deleted file mode 100644 index d263112..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::context::use_tmp_dh_file (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use the specified file to obtain the temporary Diffie-Hellman parameters. -

-
void use_tmp_dh_file(
-    const std::string & filename);
-
-

- This function is used to load Diffie-Hellman parameters into the context - from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the Diffie-Hellman parameters. - The file must use the PEM format. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_tmp_dh. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html deleted file mode 100644 index 2e7be46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context/use_tmp_dh_file/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::context::use_tmp_dh_file (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Use the specified file to obtain the temporary Diffie-Hellman parameters. -

-
void use_tmp_dh_file(
-    const std::string & filename,
-    asio::error_code & ec);
-
-

- This function is used to load Diffie-Hellman parameters into the context - from a file. -

-
- - Parameters -
-
-

-
-
filename
-

- The name of the file containing the Diffie-Hellman parameters. - The file must use the PEM format. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_CTX_set_tmp_dh. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base.html deleted file mode 100644 index 91662df..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base.html +++ /dev/null @@ -1,293 +0,0 @@ - - - -ssl::context_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The ssl::context_base - class is used as a base for the basic_context class template so that we have - a common place to define various enums. -

-
class context_base
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- file_format -

-
-

- File format types. -

-
-

- method -

-
-

- Different methods supported by a context. -

-
-

- options -

-
-

- Bitmask type for SSL options. -

-
-

- password_purpose -

-
-

- Purpose of PEM password. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~context_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Data - Members -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- default_workarounds -

-
-

- Implement various bug workarounds. -

-
-

- no_compression -

-
-

- Disable compression. Compression is disabled by default. -

-
-

- no_sslv2 -

-
-

- Disable SSL v2. -

-
-

- no_sslv3 -

-
-

- Disable SSL v3. -

-
-

- no_tlsv1 -

-
-

- Disable TLS v1. -

-
-

- no_tlsv1_1 -

-
-

- Disable TLS v1.1. -

-
-

- no_tlsv1_2 -

-
-

- Disable TLS v1.2. -

-
-

- no_tlsv1_3 -

-
-

- Disable TLS v1.3. -

-
-

- single_dh_use -

-
-

- Always create a new key when using tmp_dh parameters. -

-
-
- - Requirements -
-

- Header: asio/ssl/context_base.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/_context_base.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/_context_base.html deleted file mode 100644 index a8d157c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/_context_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::~context_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~context_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/default_workarounds.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/default_workarounds.html deleted file mode 100644 index e7d6d7d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/default_workarounds.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::default_workarounds - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Implement - various bug workarounds. -

-
static const long default_workarounds = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/file_format.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/file_format.html deleted file mode 100644 index 58a331b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/file_format.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::context_base::file_format - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -File - format types. -

-
enum file_format
-
-

- - -

-
- - Values -
-
-

-
-
asn1
-

- ASN.1 file. -

-
pem
-

- PEM file. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/method.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/method.html deleted file mode 100644 index 01bbdb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/method.html +++ /dev/null @@ -1,174 +0,0 @@ - - - -ssl::context_base::method - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different - methods supported by a context. -

-
enum method
-
-

- - - - - - - - - - - - - - - - - - - - - - - - -

-
- - Values -
-
-

-
-
sslv2
-

- Generic SSL version 2. -

-
sslv2_client
-

- SSL version 2 client. -

-
sslv2_server
-

- SSL version 2 server. -

-
sslv3
-

- Generic SSL version 3. -

-
sslv3_client
-

- SSL version 3 client. -

-
sslv3_server
-

- SSL version 3 server. -

-
tlsv1
-

- Generic TLS version 1. -

-
tlsv1_client
-

- TLS version 1 client. -

-
tlsv1_server
-

- TLS version 1 server. -

-
sslv23
-

- Generic SSL/TLS. -

-
sslv23_client
-

- SSL/TLS client. -

-
sslv23_server
-

- SSL/TLS server. -

-
tlsv11
-

- Generic TLS version 1.1. -

-
tlsv11_client
-

- TLS version 1.1 client. -

-
tlsv11_server
-

- TLS version 1.1 server. -

-
tlsv12
-

- Generic TLS version 1.2. -

-
tlsv12_client
-

- TLS version 1.2 client. -

-
tlsv12_server
-

- TLS version 1.2 server. -

-
tlsv13
-

- Generic TLS version 1.3. -

-
tlsv13_client
-

- TLS version 1.3 client. -

-
tlsv13_server
-

- TLS version 1.3 server. -

-
tls
-

- Generic TLS. -

-
tls_client
-

- TLS client. -

-
tls_server
-

- TLS server. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_compression.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_compression.html deleted file mode 100644 index 67e5824..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_compression.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_compression - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - compression. Compression is disabled by default. -

-
static const long no_compression = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv2.html deleted file mode 100644 index cc17d32..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_sslv2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - SSL v2. -

-
static const long no_sslv2 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv3.html deleted file mode 100644 index 4919e7e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_sslv3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_sslv3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - SSL v3. -

-
static const long no_sslv3 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html deleted file mode 100644 index 33583bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_tlsv1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - TLS v1. -

-
static const long no_tlsv1 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html deleted file mode 100644 index 659020c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_tlsv1_1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - TLS v1.1. -

-
static const long no_tlsv1_1 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html deleted file mode 100644 index e3ffdbf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_tlsv1_2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - TLS v1.2. -

-
static const long no_tlsv1_2 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html deleted file mode 100644 index fd73388..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/no_tlsv1_3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::no_tlsv1_3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Disable - TLS v1.3. -

-
static const long no_tlsv1_3 = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/options.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/options.html deleted file mode 100644 index a9f63cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/options.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::context_base::options - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bitmask - type for SSL options. -

-
typedef long options;
-
-
- - Requirements -
-

- Header: asio/ssl/context_base.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/password_purpose.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/password_purpose.html deleted file mode 100644 index ac02d4b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/password_purpose.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::context_base::password_purpose - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Purpose - of PEM password. -

-
enum password_purpose
-
-

- - -

-
- - Values -
-
-

-
-
for_reading
-

- The password is needed for reading/decryption. -

-
for_writing
-

- The password is needed for writing/encryption. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/single_dh_use.html b/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/single_dh_use.html deleted file mode 100644 index 81062ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__context_base/single_dh_use.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::context_base::single_dh_use - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Always - create a new key when using tmp_dh parameters. -

-
static const long single_dh_use = implementation_defined;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__error__get_stream_category.html b/Sources/Vendor/asio/doc/asio/reference/ssl__error__get_stream_category.html deleted file mode 100644 index ae3638c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__error__get_stream_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ssl::error::get_stream_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
const asio::error_category & get_stream_category();
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__error__make_error_code.html b/Sources/Vendor/asio/doc/asio/reference/ssl__error__make_error_code.html deleted file mode 100644 index a48cb02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__error__make_error_code.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::error::make_error_code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
asio::error_code make_error_code(
-    stream_errors e);
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_category.html b/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_category.html deleted file mode 100644 index 4739c9d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_category.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -ssl::error::stream_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
static const asio::error_category & stream_category = asio::ssl::error::get_stream_category();
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_errors.html b/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_errors.html deleted file mode 100644 index fe0d89c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__error__stream_errors.html +++ /dev/null @@ -1,68 +0,0 @@ - - - -ssl::error::stream_errors - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
enum stream_errors
-
-

- -

-
- - Values -
-
-

-
-
stream_truncated
-

- The underlying stream closed before the ssl stream gracefully shut - down. -

-
-
-
- - Requirements -
-

- Header: asio/ssl/error.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification.html b/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification.html deleted file mode 100644 index d77c9a5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -ssl::rfc2818_verification - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Verifies a certificate against a hostname according to the rules described - in RFC 2818. -

-
class rfc2818_verification
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- result_type -

-
-

- The type of the function object's result. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator() -

-
-

- Perform certificate verification. -

-
-

- rfc2818_verification -

-
-

- Constructor. -

-
-
- - Example -
-

- The following example shows how to synchronously open a secure connection - to a given host name: -

-
using asio::ip::tcp;
-namespace ssl = asio::ssl;
-typedef ssl::stream<tcp::socket> ssl_socket;
-
-// Create a context that uses the default paths for finding CA certificates.
-ssl::context ctx(ssl::context::sslv23);
-ctx.set_default_verify_paths();
-
-// Open a socket and connect it to the remote host.
-asio::io_context io_context;
-ssl_socket sock(io_context, ctx);
-tcp::resolver resolver(io_context);
-tcp::resolver::query query("host.name", "https");
-asio::connect(sock.lowest_layer(), resolver.resolve(query));
-sock.lowest_layer().set_option(tcp::no_delay(true));
-
-// Perform SSL handshake and verify the remote host's certificate.
-sock.set_verify_mode(ssl::verify_peer);
-sock.set_verify_callback(ssl::rfc2818_verification("host.name"));
-sock.handshake(ssl_socket::client);
-
-// ... read and write as normal ...
-
-
- - Requirements -
-

- Header: asio/ssl/rfc2818_verification.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html b/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html deleted file mode 100644 index e5e5e88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -ssl::rfc2818_verification::operator() - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - certificate verification. -

-
bool operator()(
-    bool preverified,
-    verify_context & ctx) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html deleted file mode 100644 index 05eda4b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/result_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::rfc2818_verification::result_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the function object's result. -

-
typedef bool result_type;
-
-
- - Requirements -
-

- Header: asio/ssl/rfc2818_verification.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html b/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html deleted file mode 100644 index 82f70ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__rfc2818_verification/rfc2818_verification.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::rfc2818_verification::rfc2818_verification - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
rfc2818_verification(
-    const std::string & host);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream.html deleted file mode 100644 index efe13bb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream.html +++ /dev/null @@ -1,435 +0,0 @@ - - - -ssl::stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides stream-oriented functionality using SSL. -

-
template<
-    typename Stream>
-class stream :
-  public ssl::stream_base,
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- impl_struct -

-
-

- Structure for use with deprecated impl_type. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- handshake_type -

-
-

- Different handshake types. -

-
-

- lowest_layer_type -

-
-

- The type of the lowest layer. -

-
-

- native_handle_type -

-
-

- The native handle type of the SSL stream. -

-
-

- next_layer_type -

-
-

- The type of the next layer. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_handshake -

-
-

- Start an asynchronous SSL handshake. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_shutdown -

-
-

- Asynchronously shut down SSL on the stream. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- handshake -

-
-

- Perform SSL handshaking. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the underlying implementation in the native type. -

-
-

- next_layer -

-
-

- Get a reference to the next layer. -

-
-

- read_some -

-
-

- Read some data from the stream. -

-
-

- set_verify_callback -

-
-

- Set the callback used to verify peer certificates. -

-
-

- set_verify_depth -

-
-

- Set the peer verification depth. -

-
-

- set_verify_mode -

-
-

- Set the peer verification mode. -

-
-

- shutdown -

-
-

- Shut down SSL on the stream. -

-
-

- stream -

-
-

- Construct a stream. -

-
-

- write_some -

-
-

- Write some data to the stream. -

-
-

- ~stream -

-
-

- Destructor. -

-
-

- The stream class template provides asynchronous and blocking stream-oriented - functionality using SSL. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. The application - must also ensure that all asynchronous operations are performed within the - same implicit or explicit strand. -

-
- - Example -
-

- To use the SSL stream template with an ip::tcp::socket, you - would write: -

-
asio::io_context io_context;
-asio::ssl::context ctx(asio::ssl::context::sslv23);
-asio::ssl::stream<asio:ip::tcp::socket> sock(io_context, ctx);
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/_stream.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/_stream.html deleted file mode 100644 index 7cef612..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/_stream.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::stream::~stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~stream();
-
-
- - Remarks -
-

- A stream object must not be destroyed while there are pending - asynchronous operations associated with it. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake.html deleted file mode 100644 index 9ccb01e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -ssl::stream::async_handshake - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous SSL handshake. -

-
template<
-    typename HandshakeHandler>
-DEDUCED async_handshake(
-    handshake_type type,
-    HandshakeHandler && handler);
-  » more...
-
-template<
-    typename ConstBufferSequence,
-    typename BufferedHandshakeHandler>
-DEDUCED async_handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers,
-    BufferedHandshakeHandler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html deleted file mode 100644 index 81b6162..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload1.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -ssl::stream::async_handshake (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous SSL handshake. -

-
template<
-    typename HandshakeHandler>
-DEDUCED async_handshake(
-    handshake_type type,
-    HandshakeHandler && handler);
-
-

- This function is used to asynchronously perform an SSL handshake on the - stream. This function call always returns immediately. -

-
- - Parameters -
-
-

-
-
type
-

- The type of handshaking to be performed, i.e. as a client or as - a server. -

-
handler
-
-

- The handler to be called when the handshake operation completes. - Copies will be made of the handler as required. The equivalent - function signature of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html deleted file mode 100644 index 8354893..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_handshake/overload2.html +++ /dev/null @@ -1,88 +0,0 @@ - - - -ssl::stream::async_handshake (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Start an asynchronous SSL handshake. -

-
template<
-    typename ConstBufferSequence,
-    typename BufferedHandshakeHandler>
-DEDUCED async_handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers,
-    BufferedHandshakeHandler && handler);
-
-

- This function is used to asynchronously perform an SSL handshake on the - stream. This function call always returns immediately. -

-
- - Parameters -
-
-

-
-
type
-

- The type of handshaking to be performed, i.e. as a client or as - a server. -

-
buffers
-

- The buffered data to be reused for the handshake. Although the - buffers object may be copied as necessary, ownership of the underlying - buffers is retained by the caller, which must guarantee that they - remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the handshake operation completes. - Copies will be made of the handler as required. The equivalent - function signature of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred // Amount of buffers used in handshake.
-);
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_read_some.html deleted file mode 100644 index 8f38be0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_read_some.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -ssl::stream::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read one or more bytes of data - from the stream. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- The buffers into which the data will be read. Although the buffers - object may be copied as necessary, ownership of the underlying buffers - is retained by the caller, which must guarantee that they remain - valid until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The equivalent function - signature of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

-

-
-
-
-
- - Remarks -
-

- The async_read_some operation may not read all of the requested number - of bytes. Consider using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_shutdown.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_shutdown.html deleted file mode 100644 index e964369..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_shutdown.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::stream::async_shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Asynchronously - shut down SSL on the stream. -

-
template<
-    typename ShutdownHandler>
-DEDUCED async_shutdown(
-    ShutdownHandler && handler);
-
-

- This function is used to asynchronously shut down SSL on the stream. This - function call always returns immediately. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the handshake operation completes. - Copies will be made of the handler as required. The equivalent function - signature of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_write_some.html deleted file mode 100644 index 54e5549..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/async_write_some.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -ssl::stream::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write one or more bytes of data - to the stream. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- The data to be written to the stream. Although the buffers object - may be copied as necessary, ownership of the underlying buffers is - retained by the caller, which must guarantee that they remain valid - until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The equivalent function - signature of the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

-

-
-
-
-
- - Remarks -
-

- The async_write_some operation may not transmit all of the data to the - peer. Consider using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/executor_type.html deleted file mode 100644 index aec9593..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::stream::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the executor associated with the object. -

-
typedef lowest_layer_type::executor_type executor_type;
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_executor.html deleted file mode 100644 index e5f9b43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_executor.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::stream::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the executor - associated with the object. -

-
executor_type get_executor();
-
-

- This function may be used to obtain the executor object that the stream - uses to dispatch handlers for asynchronous operations. -

-
- - Return Value -
-

- A copy of the executor that stream will use to dispatch handlers. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_context.html deleted file mode 100644 index 20b84b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_context.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ssl::stream::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_service.html deleted file mode 100644 index edba506..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/get_io_service.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -ssl::stream::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake.html deleted file mode 100644 index 92785e6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::stream::handshake - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform SSL handshaking. -

-
void handshake(
-    handshake_type type);
-  » more...
-
-void handshake(
-    handshake_type type,
-    asio::error_code & ec);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-void handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-void handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload1.html deleted file mode 100644 index 461cf2f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload1.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::stream::handshake (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform SSL handshaking. -

-
void handshake(
-    handshake_type type);
-
-

- This function is used to perform SSL handshaking on the stream. The function - call will block until handshaking is complete or an error occurs. -

-
- - Parameters -
-
-

-
-
type
-

- The type of handshaking to be performed, i.e. as a client or as - a server. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload2.html deleted file mode 100644 index f06ea40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload2.html +++ /dev/null @@ -1,66 +0,0 @@ - - - -ssl::stream::handshake (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform SSL handshaking. -

-
void handshake(
-    handshake_type type,
-    asio::error_code & ec);
-
-

- This function is used to perform SSL handshaking on the stream. The function - call will block until handshaking is complete or an error occurs. -

-
- - Parameters -
-
-

-
-
type
-

- The type of handshaking to be performed, i.e. as a client or as - a server. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload3.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload3.html deleted file mode 100644 index 2b6358b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload3.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::stream::handshake (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform SSL handshaking. -

-
template<
-    typename ConstBufferSequence>
-void handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers);
-
-

- This function is used to perform SSL handshaking on the stream. The function - call will block until handshaking is complete or an error occurs. -

-
- - Parameters -
-
-

-
-
type
-

- The type of handshaking to be performed, i.e. as a client or as - a server. -

-
buffers
-

- The buffered data to be reused for the handshake. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload4.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload4.html deleted file mode 100644 index fe478bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake/overload4.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::stream::handshake (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform SSL handshaking. -

-
template<
-    typename ConstBufferSequence>
-void handshake(
-    handshake_type type,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to perform SSL handshaking on the stream. The function - call will block until handshaking is complete or an error occurs. -

-
- - Parameters -
-
-

-
-
type
-

- The type of handshaking to be performed, i.e. as a client or as - a server. -

-
buffers
-

- The buffered data to be reused for the handshake. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake_type.html deleted file mode 100644 index 3e7ad0e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/handshake_type.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::stream::handshake_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different - handshake types. -

-
enum handshake_type
-
-

- - -

-
- - Values -
-
-

-
-
client
-

- Perform handshaking as a client. -

-
server
-

- Perform handshaking as a server. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer.html deleted file mode 100644 index 735a74e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ssl::stream::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a reference - to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html deleted file mode 100644 index 66ed2a2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload1.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ssl::stream::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of stream - layers. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of stream layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html deleted file mode 100644 index 6c24d77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer/overload2.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ssl::stream::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a reference to the lowest layer in a stack of stream - layers. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of stream layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html deleted file mode 100644 index 322bcd1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/lowest_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::stream::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the lowest layer. -

-
typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle.html deleted file mode 100644 index 9078738..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -ssl::stream::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the - underlying implementation in the native type. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying implementation of the - context. This is intended to allow access to context functionality that - is not otherwise provided. -

-
- - Example -
-

- The native_handle() function returns a pointer of type SSL* - that is suitable for passing to functions such as SSL_get_verify_result - and SSL_get_peer_certificate: -

-
asio::ssl::stream<asio:ip::tcp::socket> sock(io_context, ctx);
-
-// ... establish connection and perform handshake ...
-
-if (X509* cert = SSL_get_peer_certificate(sock.native_handle()))
-{
-  if (SSL_get_verify_result(sock.native_handle()) == X509_V_OK)
-  {
-    // ...
-  }
-}
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle_type.html deleted file mode 100644 index 96d38a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::stream::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native handle type of the SSL stream. -

-
typedef SSL * native_handle_type;
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer.html deleted file mode 100644 index d9f1e66..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -ssl::stream::next_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a reference - to the next layer. -

-
const next_layer_type & next_layer() const;
-  » more...
-
-next_layer_type & next_layer();
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html deleted file mode 100644 index 8b3d822..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload1.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ssl::stream::next_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the next layer. -

-
const next_layer_type & next_layer() const;
-
-

- This function returns a reference to the next layer in a stack of stream - layers. -

-
- - Return - Value -
-

- A reference to the next layer in the stack of stream layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html deleted file mode 100644 index a9c379d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer/overload2.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -ssl::stream::next_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the next layer. -

-
next_layer_type & next_layer();
-
-

- This function returns a reference to the next layer in a stack of stream - layers. -

-
- - Return - Value -
-

- A reference to the next layer in the stack of stream layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer_type.html deleted file mode 100644 index d559df9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/next_layer_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::stream::next_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the next layer. -

-
typedef remove_reference< Stream >::type next_layer_type;
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some.html deleted file mode 100644 index abf97b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::stream::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read some data - from the stream. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload1.html deleted file mode 100644 index ec3472f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -ssl::stream::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the stream. The function call - will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- The buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload2.html deleted file mode 100644 index 8a9f2c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -ssl::stream::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the stream. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the stream. The function call - will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- The buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback.html deleted file mode 100644 index 92a59f3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::stream::set_verify_callback - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback);
-  » more...
-
-template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html deleted file mode 100644 index 59b7109..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -ssl::stream::set_verify_callback (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback);
-
-

- This function is used to specify a callback function that will be called - by the implementation when it needs to verify a peer certificate. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for verifying a certificate. The - function signature of the handler must be: -

-
bool verify_callback(
-  bool preverified, // True if the certificate passed pre-verification.
-  verify_context& ctx // The peer certificate and other context.
-);
-
-

- The return value of the callback is true if the certificate has - passed verification, false otherwise. -

-
-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html deleted file mode 100644 index eb7ae8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_callback/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -ssl::stream::set_verify_callback (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the callback used to verify peer certificates. -

-
template<
-    typename VerifyCallback>
-void set_verify_callback(
-    VerifyCallback callback,
-    asio::error_code & ec);
-
-

- This function is used to specify a callback function that will be called - by the implementation when it needs to verify a peer certificate. -

-
- - Parameters -
-
-

-
-
callback
-
-

- The function object to be used for verifying a certificate. The - function signature of the handler must be: -

-
bool verify_callback(
-  bool preverified, // True if the certificate passed pre-verification.
-  verify_context& ctx // The peer certificate and other context.
-);
-
-

- The return value of the callback is true if the certificate has - passed verification, false otherwise. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth.html deleted file mode 100644 index bbc1388..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::stream::set_verify_depth - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the peer verification depth. -

-
void set_verify_depth(
-    int depth);
-  » more...
-
-void set_verify_depth(
-    int depth,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html deleted file mode 100644 index b0a511f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload1.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -ssl::stream::set_verify_depth (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification depth. -

-
void set_verify_depth(
-    int depth);
-
-

- This function may be used to configure the maximum verification depth - allowed by the stream. -

-
- - Parameters -
-
-

-
-
depth
-

- Maximum depth for the certificate chain verification that shall - be allowed. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify_depth. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html deleted file mode 100644 index d2a78aa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_depth/overload2.html +++ /dev/null @@ -1,73 +0,0 @@ - - - -ssl::stream::set_verify_depth (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification depth. -

-
void set_verify_depth(
-    int depth,
-    asio::error_code & ec);
-
-

- This function may be used to configure the maximum verification depth - allowed by the stream. -

-
- - Parameters -
-
-

-
-
depth
-

- Maximum depth for the certificate chain verification that shall - be allowed. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify_depth. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode.html deleted file mode 100644 index 60f614d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -ssl::stream::set_verify_mode - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Set - the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v);
-  » more...
-
-void set_verify_mode(
-    verify_mode v,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html deleted file mode 100644 index 1b95d39..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload1.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::stream::set_verify_mode (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v);
-
-

- This function may be used to configure the peer verification mode used - by the stream. The new mode will override the mode inherited from the - context. -

-
- - Parameters -
-
-

-
-
v
-

- A bitmask of peer verification modes. See ssl::verify_mode - for available values. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html deleted file mode 100644 index bdca5d0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/set_verify_mode/overload2.html +++ /dev/null @@ -1,74 +0,0 @@ - - - -ssl::stream::set_verify_mode (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Set the peer verification mode. -

-
void set_verify_mode(
-    verify_mode v,
-    asio::error_code & ec);
-
-

- This function may be used to configure the peer verification mode used - by the stream. The new mode will override the mode inherited from the - context. -

-
- - Parameters -
-
-

-
-
v
-

- A bitmask of peer verification modes. See ssl::verify_mode - for available values. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Remarks -
-

- Calls SSL_set_verify. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown.html deleted file mode 100644 index 75e1bb6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ssl::stream::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Shut down SSL on - the stream. -

-
void shutdown();
-  » more...
-
-void shutdown(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html deleted file mode 100644 index c4b101f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -ssl::stream::shutdown (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Shut down SSL on the stream. -

-
void shutdown();
-
-

- This function is used to shut down SSL on the stream. The function call - will block until SSL has been shut down or an error occurs. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html deleted file mode 100644 index ec7eeaf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/shutdown/overload2.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -ssl::stream::shutdown (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Shut down SSL on the stream. -

-
void shutdown(
-    asio::error_code & ec);
-
-

- This function is used to shut down SSL on the stream. The function call - will block until SSL has been shut down or an error occurs. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/stream.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/stream.html deleted file mode 100644 index f324d8a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/stream.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -ssl::stream::stream - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct a stream. -

-
template<
-    typename Arg>
-stream(
-    Arg && arg,
-    context & ctx);
-
-

- This constructor creates a stream and initialises the underlying stream - object. -

-
- - Parameters -
-
-

-
-
arg
-

- The argument to be passed to initialise the underlying stream. -

-
ctx
-

- The SSL context to be used for the stream. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some.html deleted file mode 100644 index 3096723..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::stream::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write some data - to the stream. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload1.html deleted file mode 100644 index 973ff33..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload1.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -ssl::stream::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the stream. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data on the stream. The function call - will block until one or more bytes of data has been written successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- The data to be written. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload2.html deleted file mode 100644 index 5c2c26e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -ssl::stream::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the stream. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data on the stream. The function call - will block until one or more bytes of data has been written successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- The data to be written to the stream. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct.html deleted file mode 100644 index 0b67665..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -ssl::stream::impl_struct - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Structure for use with deprecated impl_type. -

-
struct impl_struct
-
-
- - Data Members -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ssl -

-
-
-
- - Requirements -
-

- Header: asio/ssl/stream.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html deleted file mode 100644 index 8d0ad7f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream__impl_struct/ssl.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -ssl::stream::impl_struct::ssl - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -

-
SSL * ssl;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base.html deleted file mode 100644 index cfe28ea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base.html +++ /dev/null @@ -1,122 +0,0 @@ - - - -ssl::stream_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The ssl::stream_base - class is used as a base for the ssl::stream - class template so that we have a common place to define various enums. -

-
class stream_base
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- handshake_type -

-
-

- Different handshake types. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~stream_base -

-
-

- Protected destructor to prevent deletion through this type. -

-
-
- - Requirements -
-

- Header: asio/ssl/stream_base.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/_stream_base.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/_stream_base.html deleted file mode 100644 index a5cbf6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/_stream_base.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::stream_base::~stream_base - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~stream_base();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/handshake_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/handshake_type.html deleted file mode 100644 index 7df9259..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__stream_base/handshake_type.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -ssl::stream_base::handshake_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Different - handshake types. -

-
enum handshake_type
-
-

- - -

-
- - Values -
-
-

-
-
client
-

- Perform handshaking as a client. -

-
server
-

- Perform handshaking as a server. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_client_once.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_client_once.html deleted file mode 100644 index 5dbb133..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_client_once.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::verify_client_once - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Do not request - client certificate on renegotiation. Ignored unless ssl::verify_peer - is set. -

-
const int verify_client_once = implementation_defined;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context.html deleted file mode 100644 index 8183615..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context.html +++ /dev/null @@ -1,144 +0,0 @@ - - - -ssl::verify_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A simple wrapper around the X509_STORE_CTX type, used during verification - of a peer certificate. -

-
class verify_context :
-  noncopyable
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- native_handle_type -

-
-

- The native handle type of the verification context. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- native_handle -

-
-

- Get the underlying implementation in the native type. -

-
-

- verify_context -

-
-

- Constructor. -

-
-
- - Remarks -
-

- The ssl::verify_context - does not own the underlying X509_STORE_CTX object. -

-
- - Requirements -
-

- Header: asio/ssl/verify_context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle.html deleted file mode 100644 index 73682b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -ssl::verify_context::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the underlying implementation in the native type. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying implementation of the - context. This is intended to allow access to context functionality that - is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html deleted file mode 100644 index 5d741ff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -ssl::verify_context::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native handle type of the verification context. -

-
typedef X509_STORE_CTX * native_handle_type;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_context.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/verify_context.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/verify_context.html deleted file mode 100644 index 7e835c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_context/verify_context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -ssl::verify_context::verify_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructor. -

-
verify_context(
-    native_handle_type handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html deleted file mode 100644 index 4204114..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_fail_if_no_peer_cert.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -ssl::verify_fail_if_no_peer_cert - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Fail - verification if the peer has no certificate. Ignored unless ssl::verify_peer - is set. -

-
const int verify_fail_if_no_peer_cert = implementation_defined;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_mode.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_mode.html deleted file mode 100644 index a8906fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_mode.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -ssl::verify_mode - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Bitmask type for peer verification. -

-
typedef int verify_mode;
-
-

- Possible values are: -

- -
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_none.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_none.html deleted file mode 100644 index a5ca5d1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_none.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::verify_none - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -No verification. -

-
const int verify_none = implementation_defined;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_peer.html b/Sources/Vendor/asio/doc/asio/reference/ssl__verify_peer.html deleted file mode 100644 index 57ef37d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/ssl__verify_peer.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -ssl::verify_peer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Verify the peer. -

-
const int verify_peer = implementation_defined;
-
-
- - Requirements -
-

- Header: asio/ssl/verify_mode.hpp -

-

- Convenience header: asio/ssl.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/steady_timer.html b/Sources/Vendor/asio/doc/asio/reference/steady_timer.html deleted file mode 100644 index a7228f4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/steady_timer.html +++ /dev/null @@ -1,468 +0,0 @@ - - - -steady_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for a timer based on the steady - clock. -

-
typedef basic_waitable_timer< chrono::steady_clock > steady_timer;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type of the clock. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_point -

-
-

- The time point type of the clock. -

-
-

- traits_type -

-
-

- The wait traits type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_waitable_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_waitable_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancel - any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancels - one asynchronous operation that is waiting on the timer. -

-
-

- expires_after -

-
-

- Set the timer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - time.

Set the timer's expiry time as an absolute - time.

(Deprecated: Use non-error_code overload.) - Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - timer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the timer's expiry time as an absolute time. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_waitable_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_waitable_timer -

-
-

- Destroys the timer. -

-
-

- The basic_waitable_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- A waitable timer is always in one of two states: "expired" or "not - expired". If the wait() or async_wait() function - is called on an expired timer, the wait operation will complete immediately. -

-

- Most applications will use one of the steady_timer, - system_timer - or high_resolution_timer - typedefs. -

-
- - Remarks -
-

- This waitable timer functionality is for use with the C++11 standard library's - <chrono> facility, or with the Boost.Chrono library. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait (C++11): -

-
// Construct a timer without setting an expiry time.
-asio::steady_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_after(std::chrono::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait (C++11): -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::steady_timer timer(io_context,
-    std::chrono::steady_clock::now() + std::chrono::seconds(60));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active waitable timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_after(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_waitable_timer::expires_after() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-

- This typedef uses the C++11 <chrono> standard library - facility, if available. Otherwise, it may use the Boost.Chrono library. To - explicitly utilise Boost.Chrono, use the basic_waitable_timer - template directly: -

-
typedef basic_waitable_timer<boost::chrono::steady_clock> timer;
-
-
- - Requirements -
-

- Header: asio/steady_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand.html b/Sources/Vendor/asio/doc/asio/reference/strand.html deleted file mode 100644 index bfe12fe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand.html +++ /dev/null @@ -1,297 +0,0 @@ - - - -strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-strand -

-

- Provides serialised function invocation for any executor type. -

-
template<
-    typename Executor>
-class strand
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- inner_executor_type -

-
-

- The type of the underlying executor. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the strand to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the strand to invoke the given function object. -

-
-

- get_inner_executor -

-
-

- Obtain the underlying executor. -

-
-

- on_work_finished -

-
-

- Inform the strand that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the strand that it has some outstanding work to do. -

-
-

- operator= -

-
-

- Assignment operator.

Converting assignment operator. -

Move assignment operator.

Converting - move assignment operator. -

-
-

- post -

-
-

- Request the strand to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the strand is running in the current thread. -

-
-

- strand -

-
-

- Default constructor.

Construct a strand for the specified - executor.

Copy constructor.

Converting - constructor.

Move constructor.

Converting - move constructor. -

-
-

- ~strand -

-
-

- Destructor. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two strands for inequality. -

-
-

- operator== -

-
-

- Compare two strands for equality. -

-
-
- - Requirements -
-

- Header: asio/strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/_strand.html b/Sources/Vendor/asio/doc/asio/reference/strand/_strand.html deleted file mode 100644 index 107058d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/_strand.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -strand::~strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~strand();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/context.html b/Sources/Vendor/asio/doc/asio/reference/strand/context.html deleted file mode 100644 index 5e41212..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the underlying execution - context. -

-
execution_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/defer.html b/Sources/Vendor/asio/doc/asio/reference/strand/defer.html deleted file mode 100644 index adfeeba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/defer.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -strand::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the strand to invoke the - given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled by the underlying executor's defer function. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/strand/dispatch.html deleted file mode 100644 index f90cccc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/dispatch.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -strand::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the strand to invoke - the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the strand to execute the given function object - on its underlying executor. The function object will be executed inside - this function if the strand is not otherwise busy and if the underlying - executor's dispatch() function is also able to execute the - function before returning. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/get_inner_executor.html b/Sources/Vendor/asio/doc/asio/reference/strand/get_inner_executor.html deleted file mode 100644 index e2ce7ae..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/get_inner_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::get_inner_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the underlying executor. -

-
inner_executor_type get_inner_executor() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/inner_executor_type.html b/Sources/Vendor/asio/doc/asio/reference/strand/inner_executor_type.html deleted file mode 100644 index 9a22a63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/inner_executor_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -strand::inner_executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The type - of the underlying executor. -

-
typedef Executor inner_executor_type;
-
-
- - Requirements -
-

- Header: asio/strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/strand/on_work_finished.html deleted file mode 100644 index 94fe4c6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/on_work_finished.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -strand::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform the - strand that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- The strand delegates this call to its underlying executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/strand/on_work_started.html deleted file mode 100644 index b00d5cb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/on_work_started.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -strand::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform the strand - that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- The strand delegates this call to its underlying executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_.html deleted file mode 100644 index 1f27c49..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -strand::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment operator. -

-
strand & operator=(
-    const strand & other);
-  » more...
-
-

- Converting assignment operator. -

-
template<
-    class OtherExecutor>
-strand & operator=(
-    const strand< OtherExecutor > & other);
-  » more...
-
-

- Move assignment operator. -

-
strand & operator=(
-    strand && other);
-  » more...
-
-

- Converting move assignment operator. -

-
template<
-    class OtherExecutor>
-strand & operator=(
-    const strand< OtherExecutor > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload1.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload1.html deleted file mode 100644 index ac814f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::operator= (1 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assignment operator. -

-
strand & operator=(
-    const strand & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload2.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload2.html deleted file mode 100644 index 9d076a3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload2.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -strand::operator= (2 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Converting assignment operator. -

-
template<
-    class OtherExecutor>
-strand & operator=(
-    const strand< OtherExecutor > & other);
-
-

- This assignment operator is only valid if the OtherExecutor - type is convertible to Executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload3.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload3.html deleted file mode 100644 index 30b773a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::operator= (3 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move assignment operator. -

-
strand & operator=(
-    strand && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload4.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload4.html deleted file mode 100644 index 7ca6424..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq_/overload4.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -strand::operator= (4 of 4 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Converting move assignment operator. -

-
template<
-    class OtherExecutor>
-strand & operator=(
-    const strand< OtherExecutor > && other);
-
-

- This assignment operator is only valid if the OtherExecutor - type is convertible to Executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq__eq_.html deleted file mode 100644 index 51c0929..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_eq__eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -strand::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two strands - for equality. -

-
friend bool operator==(
-    const strand & a,
-    const strand & b);
-
-

- Two strands are equal if they refer to the same ordered, non-concurrent - state. -

-
- - Requirements -
-

- Header: asio/strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/strand/operator_not__eq_.html deleted file mode 100644 index 3a30b38..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/operator_not__eq_.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -strand::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare two strands - for inequality. -

-
friend bool operator!=(
-    const strand & a,
-    const strand & b);
-
-

- Two strands are equal if they refer to the same ordered, non-concurrent - state. -

-
- - Requirements -
-

- Header: asio/strand.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/post.html b/Sources/Vendor/asio/doc/asio/reference/strand/post.html deleted file mode 100644 index 472dcbd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/post.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -strand::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the strand to invoke the given - function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled by the underlying executor's defer function. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/running_in_this_thread.html b/Sources/Vendor/asio/doc/asio/reference/strand/running_in_this_thread.html deleted file mode 100644 index c00108b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/running_in_this_thread.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -strand::running_in_this_thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the strand is running in the current thread. -

-
bool running_in_this_thread() const;
-
-
- - Return - Value -
-

- true if the current thread is executing a function that was - submitted to the strand using post(), dispatch() - or defer(). Otherwise returns false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand.html deleted file mode 100644 index 6a6c2c3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand.html +++ /dev/null @@ -1,82 +0,0 @@ - - - -strand::strand - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Default constructor. -

-
strand();
-  » more...
-
-

- Construct a strand for the specified executor. -

-
explicit strand(
-    const Executor & e);
-  » more...
-
-

- Copy constructor. -

-
strand(
-    const strand & other);
-  » more...
-
-

- Converting constructor. -

-
template<
-    class OtherExecutor>
-strand(
-    const strand< OtherExecutor > & other);
-  » more...
-
-

- Move constructor. -

-
strand(
-    strand && other);
-  » more...
-
-

- Converting move constructor. -

-
template<
-    class OtherExecutor>
-strand(
-    strand< OtherExecutor > && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload1.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload1.html deleted file mode 100644 index 0965d83..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -strand::strand (1 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Default constructor. -

-
strand();
-
-

- This constructor is only valid if the underlying executor type is default - constructible. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload2.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload2.html deleted file mode 100644 index 569debe..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::strand (2 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a strand for the specified executor. -

-
strand(
-    const Executor & e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload3.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload3.html deleted file mode 100644 index 43a2739..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::strand (3 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
strand(
-    const strand & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload4.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload4.html deleted file mode 100644 index d79f96e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload4.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -strand::strand (4 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Converting constructor. -

-
template<
-    class OtherExecutor>
-strand(
-    const strand< OtherExecutor > & other);
-
-

- This constructor is only valid if the OtherExecutor type - is convertible to Executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload5.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload5.html deleted file mode 100644 index 36b48e7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload5.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -strand::strand (5 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move constructor. -

-
strand(
-    strand && other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload6.html b/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload6.html deleted file mode 100644 index e25ee63..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/strand/strand/overload6.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -strand::strand (6 of 6 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Converting move constructor. -

-
template<
-    class OtherExecutor>
-strand(
-    strand< OtherExecutor > && other);
-
-

- This constructor is only valid if the OtherExecutor type - is convertible to Executor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/streambuf.html b/Sources/Vendor/asio/doc/asio/reference/streambuf.html deleted file mode 100644 index 9dacf95..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/streambuf.html +++ /dev/null @@ -1,361 +0,0 @@ - - - -streambuf - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for the typical usage of basic_streambuf. -

-
typedef basic_streambuf streambuf;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- const_buffers_type -

-
-

- The type used to represent the input sequence as a list of buffers. -

-
-

- mutable_buffers_type -

-
-

- The type used to represent the output sequence as a list of buffers. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_streambuf -

-
-

- Construct a basic_streambuf object. -

-
-

- capacity -

-
-

- Get the current capacity of the basic_streambuf. -

-
-

- commit -

-
-

- Move characters from the output sequence to the input sequence. -

-
-

- consume -

-
-

- Remove characters from the input sequence. -

-
-

- data -

-
-

- Get a list of buffers that represents the input sequence. -

-
-

- max_size -

-
-

- Get the maximum size of the basic_streambuf. -

-
-

- prepare -

-
-

- Get a list of buffers that represents the output sequence, with - the given size. -

-
-

- size -

-
-

- Get the size of the input sequence. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- overflow -

-
-

- Override std::streambuf behaviour. -

-
-

- reserve -

-
-
-

- underflow -

-
-

- Override std::streambuf behaviour. -

-
-

- The basic_streambuf class is derived from std::streambuf - to associate the streambuf's input and output sequences with one or more - character arrays. These character arrays are internal to the basic_streambuf - object, but direct access to the array elements is provided to permit them - to be used efficiently with I/O operations. Characters written to the output - sequence of a basic_streambuf object are appended to the input - sequence of the same object. -

-

- The basic_streambuf class's public interface is intended to - permit the following implementation strategies: -

-
    -
  • - A single contiguous character array, which is reallocated as necessary - to accommodate changes in the size of the character sequence. This is - the implementation approach currently used in Asio. -
  • -
  • - A sequence of one or more character arrays, where each array is of the - same size. Additional character array objects are appended to the sequence - to accommodate changes in the size of the character sequence. -
  • -
  • - A sequence of one or more character arrays of varying sizes. Additional - character array objects are appended to the sequence to accommodate changes - in the size of the character sequence. -
  • -
-

- The constructor for basic_streambuf - accepts a size_t argument specifying the maximum of the sum - of the sizes of the input sequence and output sequence. During the lifetime - of the basic_streambuf object, the following invariant holds: -

-
size() <= max_size()
-
-

- Any member function that would, if successful, cause the invariant to be - violated shall throw an exception of class std::length_error. -

-

- The constructor for basic_streambuf takes an Allocator argument. - A copy of this argument is used for any memory allocation performed, by the - constructor and by all member functions, during the lifetime of each basic_streambuf - object. -

-
- - Examples -
-

- Writing directly from an streambuf to a socket: -

-
asio::streambuf b;
-std::ostream os(&b);
-os << "Hello, World!\n";
-
-// try sending some data in input sequence
-size_t n = sock.send(b.data());
-
-b.consume(n); // sent data is removed from input sequence
-
-

- Reading from a socket directly into a streambuf: -

-
asio::streambuf b;
-
-// reserve 512 bytes in output sequence
-asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
-size_t n = sock.receive(bufs);
-
-// received data is "committed" from output sequence to input sequence
-b.commit(n);
-
-std::istream is(&b);
-std::string s;
-is >> s;
-
-
- - Requirements -
-

- Header: asio/streambuf.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/synchronous_socket_operations.html b/Sources/Vendor/asio/doc/asio/reference/synchronous_socket_operations.html deleted file mode 100644 index af41960..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/synchronous_socket_operations.html +++ /dev/null @@ -1,76 +0,0 @@ - - - -Requirements on synchronous socket operations - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In this section, synchronous socket operations are those - member functions specified as two overloads, with and without an argument - of type error_code&: -

-
R f(A1 a1, A2 a2, ..., AN aN);
-R f(A1 a1, A2 a2, ..., AN aN, error_code& ec);
-
-

- For an object s, the conditions under which its synchronous - socket operations may block the calling thread (C++Std [defns.block]) are - determined as follows. -

-

- If: -

-

- — s.non_blocking() == true, -

-

- — the synchronous socket operation is specified in terms of a POSIX - function other than poll(), -

-

- — that POSIX function lists EWOULDBLOCK or - EAGAIN in its failure conditions, and -

-

- — the effects of the operation cannot be established immediately -

-

- then the synchronous socket operation shall not block the calling thread. - [Note: And the effects of the operation are not established. - —end note] -

-

- Otherwise, the synchronous socket operation shall block the calling thread - until the effects are established. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_category.html b/Sources/Vendor/asio/doc/asio/reference/system_category.html deleted file mode 100644 index a2c81e4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_category.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -system_category - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Returns the error category used - for the system errors produced by asio. -

-
const error_category & system_category();
-
-
- - Requirements -
-

- Header: asio/error_code.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context.html b/Sources/Vendor/asio/doc/asio/reference/system_context.html deleted file mode 100644 index c62ec5f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context.html +++ /dev/null @@ -1,319 +0,0 @@ - - - -system_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The executor context for the system executor. -

-
class system_context :
-  public execution_context
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The executor type associated with the context. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_executor -

-
-

- Obtain an executor for the context. -

-
-

- join -

-
-

- Join all threads in the system thread pool. -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-

- stop -

-
-

- Signal all threads in the system thread pool to stop. -

-
-

- stopped -

-
-

- Determine whether the system thread pool has been stopped. -

-
-

- ~system_context -

-
-

- Destructor shuts down all threads in the system thread pool. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

- Obtain the service object corresponding to the given type. -

-
-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/_system_context.html b/Sources/Vendor/asio/doc/asio/reference/system_context/_system_context.html deleted file mode 100644 index 2595606..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/_system_context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::~system_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor - shuts down all threads in the system thread pool. -

-
~system_context();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/add_service.html b/Sources/Vendor/asio/doc/asio/reference/system_context/add_service.html deleted file mode 100644 index 143a30f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/add_service.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -system_context::add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -(Deprecated: - Use make_service().) Add a service object to the execution_context. -

-
template<
-    typename Service>
-friend void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/destroy.html b/Sources/Vendor/asio/doc/asio/reference/system_context/destroy.html deleted file mode 100644 index e7a586d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/destroy.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -system_context::destroy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Destroys all - services in the context. -

-
void destroy();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order * of the beginning of service object lifetime, - performs delete static_cast<execution_context::service*>(svc). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/system_context/executor_type.html deleted file mode 100644 index d07aad5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/executor_type.html +++ /dev/null @@ -1,204 +0,0 @@ - - - -system_context::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - executor type associated with the context. -

-
typedef system_executor executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the system executor to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the system executor to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the executor that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the executor that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the system executor to invoke the given function object. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-

- The system executor represents an execution context where functions are - permitted to run on arbitrary threads. The post() and defer() - functions schedule the function to run on an unspecified system thread - pool, and dispatch() invokes the function immediately. -

-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/fork_event.html b/Sources/Vendor/asio/doc/asio/reference/system_context/fork_event.html deleted file mode 100644 index 21fb2c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/fork_event.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -system_context::fork_event - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Fork-related - event notifications. -

-
enum fork_event
-
-

- - - -

-
- - Values -
-
-

-
-
fork_prepare
-

- Notify the context that the process is about to fork. -

-
fork_parent
-

- Notify the context that the process has forked and is the parent. -

-
fork_child
-

- Notify the context that the process has forked and is the child. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/system_context/get_executor.html deleted file mode 100644 index a916f30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - an executor for the context. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/has_service.html b/Sources/Vendor/asio/doc/asio/reference/system_context/has_service.html deleted file mode 100644 index df849fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/has_service.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -system_context::has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Determine - if an execution_context - contains a specified service type. -

-
template<
-    typename Service>
-friend bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/join.html b/Sources/Vendor/asio/doc/asio/reference/system_context/join.html deleted file mode 100644 index f1e67a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/join.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::join - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Join all threads in - the system thread pool. -

-
void join();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/make_service.html b/Sources/Vendor/asio/doc/asio/reference/system_context/make_service.html deleted file mode 100644 index 2af1c07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/make_service.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -system_context::make_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Creates - a service object and adds it to the execution_context. -

-
template<
-    typename Service,
-    typename... Args>
-friend Service & make_service(
-    execution_context & e,
-    Args &&... args);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
args
-

- Zero or more arguments to be passed to the service constructor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
-
-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/system_context/notify_fork.html deleted file mode 100644 index 3267568..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/notify_fork.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -system_context::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Notify - the execution_context - of a fork-related event. -

-
void notify_fork(
-    fork_event event);
-
-

- This function is used to inform the execution_context - that the process is about to fork, or has just forked. This allows the - execution_context, - and the services it contains, to perform any necessary housekeeping to - ensure correct operation following a fork. -

-

- This function must not be called while any other execution_context - function, or any function associated with the execution_context's derived - class, is being called in another thread. It is, however, safe to call - this function from within a completion handler, provided no other thread - is accessing the execution_context - or its derived class. -

-
- - Parameters -
-
-

-
-
event
-

- A fork-related event. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the notification fails the execution_context - object should no longer be used and should be destroyed. -

-
-
-
- - Example -
-

- The following code illustrates how to incorporate the notify_fork() - function: -

-
my_execution_context.notify_fork(execution_context::fork_prepare);
-if (fork() == 0)
-{
-  // This is the child process.
-  my_execution_context.notify_fork(execution_context::fork_child);
-}
-else
-{
-  // This is the parent process.
-  my_execution_context.notify_fork(execution_context::fork_parent);
-}
-
-
- - Remarks -
-

- For each service object svc in the execution_context - set, performs svc->notify_fork();. When processing the - fork_prepare event, services are visited in reverse order of the beginning - of service object lifetime. Otherwise, services are visited in order of - the beginning of service object lifetime. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/system_context/shutdown.html deleted file mode 100644 index 8e81e62..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/shutdown.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -system_context::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Shuts down - all services in the context. -

-
void shutdown();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/stop.html b/Sources/Vendor/asio/doc/asio/reference/system_context/stop.html deleted file mode 100644 index 4b33132..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/stop.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::stop - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Signal all threads - in the system thread pool to stop. -

-
void stop();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/stopped.html b/Sources/Vendor/asio/doc/asio/reference/system_context/stopped.html deleted file mode 100644 index 3aaca4c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/stopped.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_context::stopped - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine whether - the system thread pool has been stopped. -

-
bool stopped() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service.html b/Sources/Vendor/asio/doc/asio/reference/system_context/use_service.html deleted file mode 100644 index 1648034..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -system_context::use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-  » more...
-
-template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload1.html deleted file mode 100644 index fa31276..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -system_context::use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload2.html deleted file mode 100644 index cd746c6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_context/use_service/overload2.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -system_context::use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services - that inherit from io_context::service. -

-
- - Requirements -
-

- Header: asio/system_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error.html b/Sources/Vendor/asio/doc/asio/reference/system_error.html deleted file mode 100644 index 1ca8c53..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -system_error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The system_error - class is used to represent system conditions that prevent the library from - operating correctly. -

-
class system_error :
-  public std::exception
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- code -

-
-

- Get the error code associated with the exception. -

-
-

- operator= -

-
-

- Assignment operator. -

-
-

- system_error -

-
-

- Construct with an error code.

Construct with an error - code and context.

Copy constructor. -

-
-

- what -

-
-

- Get a string representation of the exception. -

-
-

- ~system_error -

-
-

- Destructor. -

-
-
- - Requirements -
-

- Header: asio/system_error.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/_system_error.html b/Sources/Vendor/asio/doc/asio/reference/system_error/_system_error.html deleted file mode 100644 index 7bf48b4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/_system_error.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -system_error::~system_error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
virtual ~system_error();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/code.html b/Sources/Vendor/asio/doc/asio/reference/system_error/code.html deleted file mode 100644 index 9940009..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/code.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_error::code - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the error code associated - with the exception. -

-
error_code code() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/system_error/operator_eq_.html deleted file mode 100644 index 3eb96cf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/operator_eq_.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -system_error::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assignment - operator. -

-
system_error & operator=(
-    const system_error & e);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error.html b/Sources/Vendor/asio/doc/asio/reference/system_error/system_error.html deleted file mode 100644 index b74123a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -system_error::system_error - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - with an error code. -

-
system_error(
-    const error_code & ec);
-  » more...
-
-

- Construct with an error code and context. -

-
system_error(
-    const error_code & ec,
-    const std::string & context);
-  » more...
-
-

- Copy constructor. -

-
system_error(
-    const system_error & other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload1.html b/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload1.html deleted file mode 100644 index 31aea03..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_error::system_error (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with an error code. -

-
system_error(
-    const error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload2.html b/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload2.html deleted file mode 100644 index 1edac30..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -system_error::system_error (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct with an error code and context. -

-
system_error(
-    const error_code & ec,
-    const std::string & context);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload3.html b/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload3.html deleted file mode 100644 index 4df9013..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/system_error/overload3.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_error::system_error (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Copy constructor. -

-
system_error(
-    const system_error & other);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_error/what.html b/Sources/Vendor/asio/doc/asio/reference/system_error/what.html deleted file mode 100644 index 6b8fe40..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_error/what.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_error::what - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get a string representation - of the exception. -

-
virtual const char * what() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor.html b/Sources/Vendor/asio/doc/asio/reference/system_executor.html deleted file mode 100644 index 4006c3a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor.html +++ /dev/null @@ -1,202 +0,0 @@ - - - -system_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- An executor that uses arbitrary threads. -

-
class system_executor
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the system executor to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the system executor to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the executor that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the executor that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the system executor to invoke the given function object. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-

- The system executor represents an execution context where functions are permitted - to run on arbitrary threads. The post() and defer() - functions schedule the function to run on an unspecified system thread pool, - and dispatch() invokes the function immediately. -

-
- - Requirements -
-

- Header: asio/system_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/context.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/context.html deleted file mode 100644 index 8f0dbad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -system_executor::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the - underlying execution context. -

-
system_context & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/defer.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/defer.html deleted file mode 100644 index 82a7f1f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/defer.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -system_executor::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the system - executor to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled to run on an unspecified system thread pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/dispatch.html deleted file mode 100644 index 9f869a9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/dispatch.html +++ /dev/null @@ -1,78 +0,0 @@ - - - -system_executor::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the - system executor to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will always be executed inside this function. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_finished.html deleted file mode 100644 index bbabcd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_finished.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -system_executor::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the executor that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- For the system executor, this is a no-op. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_started.html deleted file mode 100644 index 91749e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/on_work_started.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -system_executor::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the executor that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- For the system executor, this is a no-op. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_eq__eq_.html deleted file mode 100644 index bc4d553..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_eq__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -system_executor::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for equality. -

-
friend bool operator==(
-    const system_executor & ,
-    const system_executor & );
-
-

- System executors always compare equal. -

-
- - Requirements -
-

- Header: asio/system_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_not__eq_.html deleted file mode 100644 index f281782..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/operator_not__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -system_executor::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for inequality. -

-
friend bool operator!=(
-    const system_executor & ,
-    const system_executor & );
-
-

- System executors always compare equal. -

-
- - Requirements -
-

- Header: asio/system_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_executor/post.html b/Sources/Vendor/asio/doc/asio/reference/system_executor/post.html deleted file mode 100644 index 85c0b5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_executor/post.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -system_executor::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request the system - executor to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the executor to execute the given function - object. The function object will never be executed inside this function. - Instead, it will be scheduled to run on an unspecified system thread pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/system_timer.html b/Sources/Vendor/asio/doc/asio/reference/system_timer.html deleted file mode 100644 index 10851fd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/system_timer.html +++ /dev/null @@ -1,468 +0,0 @@ - - - -system_timer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Typedef for a timer based on the system - clock. -

-
typedef basic_waitable_timer< chrono::system_clock > system_timer;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- clock_type -

-
-

- The clock type. -

-
-

- duration -

-
-

- The duration type of the clock. -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- time_point -

-
-

- The time point type of the clock. -

-
-

- traits_type -

-
-

- The wait traits type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the timer. -

-
-

- basic_waitable_timer -

-
-

- Constructor.

Constructor to set a particular expiry - time as an absolute time.

Constructor to set a particular - expiry time relative to now.

Move-construct a basic_waitable_timer - from another. -

-
-

- cancel -

-
-

- Cancel any asynchronous operations that are waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancel - any asynchronous operations that are waiting on the timer. -

-
-

- cancel_one -

-
-

- Cancels one asynchronous operation that is waiting on the timer. -

(Deprecated: Use non-error_code overload.) Cancels - one asynchronous operation that is waiting on the timer. -

-
-

- expires_after -

-
-

- Set the timer's expiry time relative to now. -

-
-

- expires_at -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - time.

Set the timer's expiry time as an absolute - time.

(Deprecated: Use non-error_code overload.) - Set the timer's expiry time as an absolute time. -

-
-

- expires_from_now -

-
-

- (Deprecated: Use expiry().) Get the timer's expiry time relative - to now.

(Deprecated: Use expires_after().) Set the - timer's expiry time relative to now. -

-
-

- expiry -

-
-

- Get the timer's expiry time as an absolute time. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- operator= -

-
-

- Move-assign a basic_waitable_timer from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the timer. -

-
-

- ~basic_waitable_timer -

-
-

- Destroys the timer. -

-
-

- The basic_waitable_timer - class template provides the ability to perform a blocking or asynchronous - wait for a timer to expire. -

-

- A waitable timer is always in one of two states: "expired" or "not - expired". If the wait() or async_wait() function - is called on an expired timer, the wait operation will complete immediately. -

-

- Most applications will use one of the steady_timer, - system_timer - or high_resolution_timer - typedefs. -

-
- - Remarks -
-

- This waitable timer functionality is for use with the C++11 standard library's - <chrono> facility, or with the Boost.Chrono library. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Examples -
-

- Performing a blocking wait (C++11): -

-
// Construct a timer without setting an expiry time.
-asio::steady_timer timer(io_context);
-
-// Set an expiry time relative to now.
-timer.expires_after(std::chrono::seconds(5));
-
-// Wait for the timer to expire.
-timer.wait();
-
-

- Performing an asynchronous wait (C++11): -

-
void handler(const asio::error_code& error)
-{
-  if (!error)
-  {
-    // Timer expired.
-  }
-}
-
-...
-
-// Construct a timer with an absolute expiry time.
-asio::steady_timer timer(io_context,
-    std::chrono::steady_clock::now() + std::chrono::seconds(60));
-
-// Start an asynchronous wait.
-timer.async_wait(handler);
-
-
- - Changing - an active waitable timer's expiry time -
-

- Changing the expiry time of a timer while there are pending asynchronous - waits causes those wait operations to be cancelled. To ensure that the action - associated with the timer is performed only once, use something like this: - used: -

-
void on_some_event()
-{
-  if (my_timer.expires_after(seconds(5)) > 0)
-  {
-    // We managed to cancel the timer. Start new asynchronous wait.
-    my_timer.async_wait(on_timeout);
-  }
-  else
-  {
-    // Too late, timer has already expired!
-  }
-}
-
-void on_timeout(const asio::error_code& e)
-{
-  if (e != asio::error::operation_aborted)
-  {
-    // Timer was not cancelled, take necessary action.
-  }
-}
-
-
    -
  • - The asio::basic_waitable_timer::expires_after() function - cancels any pending asynchronous waits, and returns the number of asynchronous - waits that were cancelled. If it returns 0 then you were too late and - the wait handler has already been executed, or will soon be executed. - If it returns 1 then the wait handler was successfully cancelled. -
  • -
  • - If a wait handler is cancelled, the error_code - passed to it contains the value asio::error::operation_aborted. -
  • -
-

- This typedef uses the C++11 <chrono> standard library - facility, if available. Otherwise, it may use the Boost.Chrono library. To - explicitly utilise Boost.Chrono, use the basic_waitable_timer - template directly: -

-
typedef basic_waitable_timer<boost::chrono::system_clock> timer;
-
-
- - Requirements -
-

- Header: asio/system_timer.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread.html b/Sources/Vendor/asio/doc/asio/reference/thread.html deleted file mode 100644 index d9bb9b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread.html +++ /dev/null @@ -1,145 +0,0 @@ - - - -thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-thread -

-

- A simple abstraction for starting threads. -

-
class thread :
-  noncopyable
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- join -

-
-

- Wait for the thread to exit. -

-
-

- thread -

-
-

- Start a new thread that executes the supplied function. -

-
-

- ~thread -

-
-

- Destructor. -

-
-

- The thread class - implements the smallest possible subset of the functionality of boost::thread. - It is intended to be used only for starting a thread and waiting for it to - exit. If more extensive threading capabilities are required, you are strongly - advised to use something else. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Example -
-

- A typical use of thread - would be to launch a thread to run an io_context's event processing loop: -

-
asio::io_context io_context;
-// ...
-asio::thread t(boost::bind(&asio::io_context::run, &io_context));
-// ...
-t.join();
-
-
- - Requirements -
-

- Header: asio/thread.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread/_thread.html b/Sources/Vendor/asio/doc/asio/reference/thread/_thread.html deleted file mode 100644 index c1b7dfc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread/_thread.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -thread::~thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~thread();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread/join.html b/Sources/Vendor/asio/doc/asio/reference/thread/join.html deleted file mode 100644 index 423caa2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread/join.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -thread::join - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wait for the thread to exit. -

-
void join();
-
-

- This function will block until the thread has exited. -

-

- If this function is not called before the thread object is destroyed, the - thread itself will continue to run until completion. You will, however, - no longer have the ability to wait for it to exit. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread/thread.html b/Sources/Vendor/asio/doc/asio/reference/thread/thread.html deleted file mode 100644 index 3b89e5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread/thread.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -thread::thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start a new thread that executes - the supplied function. -

-
template<
-    typename Function>
-thread(
-    Function f);
-
-

- This constructor creates a new thread that will execute the given function - or function object. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function or function object to be run in the thread. The function - signature must be: -

-
void f();
-
-

-

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool.html deleted file mode 100644 index ac44e9a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool.html +++ /dev/null @@ -1,361 +0,0 @@ - - - -thread_pool - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- A simple fixed-size thread pool. -

-
class thread_pool :
-  public execution_context
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- Executor used to submit functions to a thread pool. -

-
-

- fork_event -

-
-

- Fork-related event notifications. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_executor -

-
-

- Obtains the executor associated with the pool. -

-
-

- join -

-
-

- Joins the threads. -

-
-

- notify_fork -

-
-

- Notify the execution_context of a fork-related event. -

-
-

- stop -

-
-

- Stops the threads. -

-
-

- thread_pool -

-
-

- Constructs a pool with an automatically determined number of threads. -

Constructs a pool with a specified number of threads. -

-
-

- ~thread_pool -

-
-

- Destructor. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- destroy -

-
-

- Destroys all services in the context. -

-
-

- shutdown -

-
-

- Shuts down all services in the context. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add_service -

-
-

- (Deprecated: Use make_service().) Add a service object to the execution_context. -

-
-

- has_service -

-
-

- Determine if an execution_context contains a specified service - type. -

-
-

- make_service -

-
-

- Creates a service object and adds it to the execution_context. -

-
-

- use_service -

-
-

- Obtain the service object corresponding to the given type. -

-
-

- The thread pool class is an execution context where functions are permitted - to run on one of a fixed number of threads. -

-
- - Submitting - tasks to the pool -
-

- To submit functions to the thread_pool, - use the dispatch - , post or defer - free functions. -

-

- For example: -

-
void my_task()
-{
-  ...
-}
-
-...
-
-// Launch the pool with four threads.
-asio::thread_pool pool(4);
-
-// Submit a function to the pool.
-asio::post(pool, my_task);
-
-// Submit a lambda object to the pool.
-asio::post(pool,
-    []()
-    {
-      ...
-    });
-
-// Wait for all tasks in the pool to complete.
-pool.join();
-
-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/_thread_pool.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/_thread_pool.html deleted file mode 100644 index 0fc4ab4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/_thread_pool.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -thread_pool::~thread_pool - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor. -

-
~thread_pool();
-
-

- Automatically stops and joins the pool, if not explicitly done beforehand. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/add_service.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/add_service.html deleted file mode 100644 index 4cf5a80..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/add_service.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -thread_pool::add_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -(Deprecated: - Use make_service().) Add a service object to the execution_context. -

-
template<
-    typename Service>
-friend void add_service(
-    execution_context & e,
-    Service * svc);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
svc
-
-

- The service object. On success, ownership of the service object is - transferred to the execution_context. - When the execution_context - object is destroyed, it will destroy the service object by performing: -

-
delete static_cast<execution_context::service*>(svc)
-
-

-

-
-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
asio::invalid_service_owner
-

- Thrown if the service's owning execution_context - is not the execution_context - object specified by the e parameter. -

-
-
-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/destroy.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/destroy.html deleted file mode 100644 index 4249505..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/destroy.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -thread_pool::destroy - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Destroys all services - in the context. -

-
void destroy();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order * of the beginning of service object lifetime, - performs delete static_cast<execution_context::service*>(svc). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/fork_event.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/fork_event.html deleted file mode 100644 index b4eed74..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/fork_event.html +++ /dev/null @@ -1,72 +0,0 @@ - - - -thread_pool::fork_event - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Fork-related - event notifications. -

-
enum fork_event
-
-

- - - -

-
- - Values -
-
-

-
-
fork_prepare
-

- Notify the context that the process is about to fork. -

-
fork_parent
-

- Notify the context that the process has forked and is the parent. -

-
fork_child
-

- Notify the context that the process has forked and is the child. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/get_executor.html deleted file mode 100644 index 328dc4b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -thread_pool::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtains the - executor associated with the pool. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/has_service.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/has_service.html deleted file mode 100644 index 605c07b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/has_service.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -thread_pool::has_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Determine if - an execution_context - contains a specified service type. -

-
template<
-    typename Service>
-friend bool has_service(
-    execution_context & e);
-
-

- This function is used to determine whether the execution_context - contains a service object corresponding to the given service type. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return Value -
-

- A boolean indicating whether the execution_context - contains the service. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/join.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/join.html deleted file mode 100644 index df8f9ac..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/join.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -thread_pool::join - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Joins the threads. -

-
void join();
-
-

- This function blocks until the threads in the pool have completed. If - stop() is not called prior to join(), the join() - call will wait until the pool has no more outstanding work. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/make_service.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/make_service.html deleted file mode 100644 index 59b8c1f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/make_service.html +++ /dev/null @@ -1,96 +0,0 @@ - - - -thread_pool::make_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Creates a - service object and adds it to the execution_context. -

-
template<
-    typename Service,
-    typename... Args>
-friend Service & make_service(
-    execution_context & e,
-    Args &&... args);
-
-

- This function is used to add a service to the execution_context. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
args
-

- Zero or more arguments to be passed to the service constructor. -

-
-
-
- - Exceptions -
-
-

-
-
asio::service_already_exists
-

- Thrown if a service of the given type is already present in the - execution_context. -

-
-
-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/notify_fork.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/notify_fork.html deleted file mode 100644 index 403e033..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/notify_fork.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -thread_pool::notify_fork - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Notify the - execution_context - of a fork-related event. -

-
void notify_fork(
-    fork_event event);
-
-

- This function is used to inform the execution_context - that the process is about to fork, or has just forked. This allows the - execution_context, - and the services it contains, to perform any necessary housekeeping to - ensure correct operation following a fork. -

-

- This function must not be called while any other execution_context - function, or any function associated with the execution_context's derived - class, is being called in another thread. It is, however, safe to call - this function from within a completion handler, provided no other thread - is accessing the execution_context - or its derived class. -

-
- - Parameters -
-
-

-
-
event
-

- A fork-related event. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. If the notification fails the execution_context - object should no longer be used and should be destroyed. -

-
-
-
- - Example -
-

- The following code illustrates how to incorporate the notify_fork() - function: -

-
my_execution_context.notify_fork(execution_context::fork_prepare);
-if (fork() == 0)
-{
-  // This is the child process.
-  my_execution_context.notify_fork(execution_context::fork_child);
-}
-else
-{
-  // This is the parent process.
-  my_execution_context.notify_fork(execution_context::fork_parent);
-}
-
-
- - Remarks -
-

- For each service object svc in the execution_context - set, performs svc->notify_fork();. When processing the - fork_prepare event, services are visited in reverse order of the beginning - of service object lifetime. Otherwise, services are visited in order of - the beginning of service object lifetime. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/shutdown.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/shutdown.html deleted file mode 100644 index faa41bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/shutdown.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -thread_pool::shutdown - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- -Shuts down all services - in the context. -

-
void shutdown();
-
-

- This function is implemented as follows: -

-
  • - For each service object svc in the execution_context - set, in reverse order of the beginning of service object lifetime, - performs svc->shutdown(). -
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/stop.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/stop.html deleted file mode 100644 index e620aeb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/stop.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -thread_pool::stop - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Stops the threads. -

-
void stop();
-
-

- This function stops the threads as soon as possible. As a result of calling - stop(), pending function objects may be never be invoked. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool.html deleted file mode 100644 index 26d8b69..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -thread_pool::thread_pool - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Constructs - a pool with an automatically determined number of threads. -

-
thread_pool();
-  » more...
-
-

- Constructs a pool with a specified number of threads. -

-
thread_pool(
-    std::size_t num_threads);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html deleted file mode 100644 index 1ef665a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -thread_pool::thread_pool (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructs a pool with an automatically determined number of threads. -

-
thread_pool();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html deleted file mode 100644 index 9e13f23..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/thread_pool/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -thread_pool::thread_pool (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Constructs a pool with a specified number of threads. -

-
thread_pool(
-    std::size_t num_threads);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service.html deleted file mode 100644 index 022c902..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -thread_pool::use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain the - service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-  » more...
-
-template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload1.html deleted file mode 100644 index ec6e2b8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload1.html +++ /dev/null @@ -1,87 +0,0 @@ - - - -thread_pool::use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload2.html deleted file mode 100644 index 3a272c7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool/use_service/overload2.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -thread_pool::use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from execution_context. -

-

- Obtain the service object corresponding to the given type. -

-
template<
-    typename Service>
-friend Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to - the given service type. If there is no existing implementation of the - service, then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services - that inherit from io_context::service. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type.html deleted file mode 100644 index 87aced9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type.html +++ /dev/null @@ -1,208 +0,0 @@ - - - -thread_pool::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Executor used to submit functions to a thread pool. -

-
class executor_type
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the thread pool to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the thread pool to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the thread pool that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the thread pool that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the thread pool to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the thread pool is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/context.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/context.html deleted file mode 100644 index 0fd0bed..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/context.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -thread_pool::executor_type::context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - the underlying execution context. -

-
thread_pool & context() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/defer.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/defer.html deleted file mode 100644 index b7fa000..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/defer.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -thread_pool::executor_type::defer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the thread pool to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void defer(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the thread pool to execute the given function - object. The function object will never be executed inside defer(). - Instead, it will be scheduled to run on the thread pool. -

-

- If the current thread belongs to the thread pool, defer() - will delay scheduling the function object until the current thread returns - control to the pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/dispatch.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/dispatch.html deleted file mode 100644 index efbae46..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/dispatch.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -thread_pool::executor_type::dispatch - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the thread pool to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void dispatch(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the thread pool to execute the given function - object. If the current thread belongs to the pool, dispatch() - executes the function before returning. Otherwise, the function will be - scheduled to run on the thread pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_finished.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_finished.html deleted file mode 100644 index 07533be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_finished.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -thread_pool::executor_type::on_work_finished - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the thread pool that some work is no longer outstanding. -

-
void on_work_finished() const;
-
-

- This function is used to inform the thread pool that some work has finished. - Once the count of unfinished work reaches zero, the thread pool's join() - function is permitted to exit. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_started.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_started.html deleted file mode 100644 index a3df817..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/on_work_started.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -thread_pool::executor_type::on_work_started - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Inform - the thread pool that it has some outstanding work to do. -

-
void on_work_started() const;
-
-

- This function is used to inform the thread pool that some work has begun. - This ensures that the thread pool's join() function will not - return while the work is underway. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_eq__eq_.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_eq__eq_.html deleted file mode 100644 index d4b5955..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_eq__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -thread_pool::executor_type::operator== - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for equality. -

-
friend bool operator==(
-    const executor_type & a,
-    const executor_type & b);
-
-

- Two executors are equal if they refer to the same underlying thread pool. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_not__eq_.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_not__eq_.html deleted file mode 100644 index 8e38ab2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/operator_not__eq_.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -thread_pool::executor_type::operator!= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Compare - two executors for inequality. -

-
friend bool operator!=(
-    const executor_type & a,
-    const executor_type & b);
-
-

- Two executors are equal if they refer to the same underlying thread pool. -

-
- - Requirements -
-

- Header: asio/thread_pool.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/post.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/post.html deleted file mode 100644 index 2bb42ad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/post.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -thread_pool::executor_type::post - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Request - the thread pool to invoke the given function object. -

-
template<
-    typename Function,
-    typename Allocator>
-void post(
-    Function && f,
-    const Allocator & a) const;
-
-

- This function is used to ask the thread pool to execute the given function - object. The function object will never be executed inside post(). - Instead, it will be scheduled to run on the thread pool. -

-
- - Parameters -
-
-

-
-
f
-
-

- The function object to be called. The executor will make a copy of - the handler object as required. The function signature of the function - object must be: -

-
void function();
-
-

-

-
-
a
-

- An allocator that may be used by the executor to allocate the internal - storage needed for function invocation. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/running_in_this_thread.html b/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/running_in_this_thread.html deleted file mode 100644 index e211a8f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/thread_pool__executor_type/running_in_this_thread.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -thread_pool::executor_type::running_in_this_thread - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the thread pool is running in the current thread. -

-
bool running_in_this_thread() const;
-
-
- - Return - Value -
-

- true if the current thread belongs to the pool. Otherwise - returns false. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html deleted file mode 100644 index 3daf626..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_.html +++ /dev/null @@ -1,186 +0,0 @@ - - - -time_traits< boost::posix_time::ptime > - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Time traits specialised for posix_time. -

-
template<>
-struct time_traits< boost::posix_time::ptime >
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- duration_type -

-
-

- The duration type. -

-
-

- time_type -

-
-

- The time type. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- add -

-
-

- Add a duration to a time. -

-
-

- less_than -

-
-

- Test whether one time is less than another. -

-
-

- now -

-
-

- Get the current time. -

-
-

- subtract -

-
-

- Subtract one time from another. -

-
-

- to_posix_duration -

-
-

- Convert to POSIX duration type. -

-
-
- - Requirements -
-

- Header: asio/time_traits.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html deleted file mode 100644 index 62626fa..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/add.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::add - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Add a duration to a time. -

-
static time_type add(
-    const time_type & t,
-    const duration_type & d);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html deleted file mode 100644 index 6acebd8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/duration_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::duration_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The duration type. -

-
typedef boost::posix_time::time_duration duration_type;
-
-
- - Requirements -
-

- Header: asio/time_traits.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html deleted file mode 100644 index c879ec9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/less_than.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::less_than - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Test whether one time is less than another. -

-
static bool less_than(
-    const time_type & t1,
-    const time_type & t2);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html deleted file mode 100644 index 6e46ed8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/now.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::now - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get the current time. -

-
static time_type now();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html deleted file mode 100644 index 3f5dc7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/subtract.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::subtract - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Subtract one time from another. -

-
static duration_type subtract(
-    const time_type & t1,
-    const time_type & t2);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html deleted file mode 100644 index 20cd7c6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/time_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::time_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The time type. -

-
typedef boost::posix_time::ptime time_type;
-
-
- - Requirements -
-

- Header: asio/time_traits.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html b/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html deleted file mode 100644 index 3162214..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -time_traits< boost::posix_time::ptime >::to_posix_duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Convert to POSIX duration type. -

-
static boost::posix_time::time_duration to_posix_duration(
-    const duration_type & d);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/transfer_all.html b/Sources/Vendor/asio/doc/asio/reference/transfer_all.html deleted file mode 100644 index b5b2163..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/transfer_all.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -transfer_all - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return a completion condition function - object that indicates that a read or write operation should continue until - all of the data has been transferred, or until an error occurs. -

-
unspecified transfer_all();
-
-

- This function is used to create an object, of unspecified type, that meets - CompletionCondition requirements. -

-
- - Example -
-

- Reading until a buffer is full: -

-
boost::array<char, 128> buf;
-asio::error_code ec;
-std::size_t n = asio::read(
-    sock, asio::buffer(buf),
-    asio::transfer_all(), ec);
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  // n == 128
-}
-
-
- - Requirements -
-

- Header: asio/completion_condition.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/transfer_at_least.html b/Sources/Vendor/asio/doc/asio/reference/transfer_at_least.html deleted file mode 100644 index c077303..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/transfer_at_least.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -transfer_at_least - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return a completion condition - function object that indicates that a read or write operation should continue - until a minimum number of bytes has been transferred, or until an error occurs. -

-
unspecified transfer_at_least(
-    std::size_t minimum);
-
-

- This function is used to create an object, of unspecified type, that meets - CompletionCondition requirements. -

-
- - Example -
-

- Reading until a buffer is full or contains at least 64 bytes: -

-
boost::array<char, 128> buf;
-asio::error_code ec;
-std::size_t n = asio::read(
-    sock, asio::buffer(buf),
-    asio::transfer_at_least(64), ec);
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  // n >= 64 && n <= 128
-}
-
-
- - Requirements -
-

- Header: asio/completion_condition.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/transfer_exactly.html b/Sources/Vendor/asio/doc/asio/reference/transfer_exactly.html deleted file mode 100644 index 73c6e43..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/transfer_exactly.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -transfer_exactly - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Return a completion condition - function object that indicates that a read or write operation should continue - until an exact number of bytes has been transferred, or until an error occurs. -

-
unspecified transfer_exactly(
-    std::size_t size);
-
-

- This function is used to create an object, of unspecified type, that meets - CompletionCondition requirements. -

-
- - Example -
-

- Reading until a buffer is full or contains exactly 64 bytes: -

-
boost::array<char, 128> buf;
-asio::error_code ec;
-std::size_t n = asio::read(
-    sock, asio::buffer(buf),
-    asio::transfer_exactly(64), ec);
-if (ec)
-{
-  // An error occurred.
-}
-else
-{
-  // n == 64
-}
-
-
- - Requirements -
-

- Header: asio/completion_condition.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future.html b/Sources/Vendor/asio/doc/asio/reference/use_future.html deleted file mode 100644 index 43f5735..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -use_future - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -A special value, similar to std::nothrow. -

-
constexpr use_future_t use_future;
-
-

- See the documentation for use_future_t - for a usage example. -

-
- - Requirements -
-

- Header: asio/use_future.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t.html deleted file mode 100644 index 25cf691..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t.html +++ /dev/null @@ -1,191 +0,0 @@ - - - -use_future_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Class used to specify that an asynchronous operation should return a future. -

-
template<
-    typename Allocator = std::allocator<void>>
-class use_future_t
-
-
- - Types -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- allocator_type -

-
-

- The allocator type. The allocator is used when constructing the - std::promise object for a given asynchronous operation. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- get_allocator -

-
-

- Obtain allocator. -

-
-

- operator() -

-
-

- Wrap a function object in a packaged task. -

-
-

- operator[] -

-
-

- (Deprecated: Use rebind().) Specify an alternate allocator. -

-
-

- rebind -

-
-

- Specify an alternate allocator. -

-
-

- use_future_t -

-
-

- Construct using default-constructed allocator.

Construct - using specified allocator. -

-
-

- The use_future_t - class is used to indicate that an asynchronous operation should return a - std::future object. A use_future_t - object may be passed as a handler to an asynchronous operation, typically - using the special value asio::use_future. For example: -

-
std::future<std::size_t> my_future
-  = my_socket.async_read_some(my_buffer, asio::use_future);
-
-

- The initiating function (async_read_some in the above example) returns a - future that will receive the result of the operation. If the operation completes - with an error_code - indicating failure, it is converted into a system_error - and passed back to the caller via the future. -

-
- - Requirements -
-

- Header: asio/use_future.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/allocator_type.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/allocator_type.html deleted file mode 100644 index e368300..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/allocator_type.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -use_future_t::allocator_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - allocator type. The allocator is used when constructing the std::promise - object for a given asynchronous operation. -

-
typedef Allocator allocator_type;
-
-
- - Requirements -
-

- Header: asio/use_future.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/get_allocator.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/get_allocator.html deleted file mode 100644 index a467d6b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/get_allocator.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -use_future_t::get_allocator - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Obtain - allocator. -

-
allocator_type get_allocator() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html deleted file mode 100644 index b19bbca..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lb__rb_.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -use_future_t::operator[] - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use rebind().) Specify an alternate allocator. -

-
template<
-    typename OtherAllocator>
-use_future_t< OtherAllocator > operator[](
-    const OtherAllocator & allocator) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html deleted file mode 100644 index 0efa51f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/operator_lp__rp_.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -use_future_t::operator() - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Wrap - a function object in a packaged task. -

-
template<
-    typename Function>
-unspecified operator()(
-    Function && f) const;
-
-

- The package function is used to adapt a function object as - a packaged task. When this adapter is passed as a completion token to an - asynchronous operation, the result of the function object is retuned via - a std::future. -

-
- - Example -
-
std::future<std::size_t> fut =
-  my_socket.async_read_some(buffer,
-    use_future([](asio::error_code ec, std::size_t n)
-      {
-        return ec ? 0 : n;
-      }));
-...
-std::size_t n = fut.get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/rebind.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/rebind.html deleted file mode 100644 index 7d56eb9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/rebind.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -use_future_t::rebind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Specify an alternate - allocator. -

-
template<
-    typename OtherAllocator>
-use_future_t< OtherAllocator > rebind(
-    const OtherAllocator & allocator) const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t.html deleted file mode 100644 index 5ab7fa7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -use_future_t::use_future_t - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - using default-constructed allocator. -

-
constexpr use_future_t();
-  » more...
-
-

- Construct using specified allocator. -

-
explicit use_future_t(
-    const Allocator & allocator);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html deleted file mode 100644 index 450a452..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -use_future_t::use_future_t (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct using default-constructed allocator. -

-
constexpr use_future_t();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html b/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html deleted file mode 100644 index cb98c52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_future_t/use_future_t/overload2.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -use_future_t::use_future_t (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct using specified allocator. -

-
use_future_t(
-    const Allocator & allocator);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_service.html b/Sources/Vendor/asio/doc/asio/reference/use_service.html deleted file mode 100644 index 21b94c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_service.html +++ /dev/null @@ -1,67 +0,0 @@ - - - -use_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - template< typename -

-
[link asio.reference.Service Service]
-

- > Service & -

-
[link asio.reference.use_service.overload1 use_service]
-

- ( execution_context & e); -

-
[''''&raquo;''' [link asio.reference.use_service.overload1 more...]]
-

-

-
template<
-    typename Service>
-Service & use_service(
-    io_context & ioc);
-  » more...
-
-
- - Requirements -
-

- Header: asio/impl/execution_context.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_service/overload1.html b/Sources/Vendor/asio/doc/asio/reference/use_service/overload1.html deleted file mode 100644 index 4c30ee4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_service/overload1.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -use_service (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename Service>
-Service & use_service(
-    execution_context & e);
-
-

- This function is used to locate a service object that corresponds to the - given service type. If there is no existing implementation of the service, - then the execution_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
e
-

- The execution_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/use_service/overload2.html b/Sources/Vendor/asio/doc/asio/reference/use_service/overload2.html deleted file mode 100644 index 8725f8c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/use_service/overload2.html +++ /dev/null @@ -1,79 +0,0 @@ - - - -use_service (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
template<
-    typename Service>
-Service & use_service(
-    io_context & ioc);
-
-

- This function is used to locate a service object that corresponds to the - given service type. If there is no existing implementation of the service, - then the io_context - will create a new instance of the service. -

-
- - Parameters -
-
-

-
-
ioc
-

- The io_context - object that owns the service. -

-
-
-
- - Return - Value -
-

- The service interface implementing the specified service type. Ownership - of the service interface is not transferred to the caller. -

-
- - Remarks -
-

- This overload is preserved for backwards compatibility with services that - inherit from io_context::service. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/uses_executor.html b/Sources/Vendor/asio/doc/asio/reference/uses_executor.html deleted file mode 100644 index 1087bdf..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/uses_executor.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -uses_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- The uses_executor - trait detects whether a type T has an associated executor that is convertible - from type Executor. -

-
template<
-    typename T,
-    typename Executor>
-struct uses_executor
-
-

- Meets the BinaryTypeTrait requirements. The Asio library provides a definition - that is derived from false_type. A program may specialize this template to - derive from true_type for a user-defined type T that can be constructed with - an executor, where the first argument of a constructor has type executor_arg_t - and the second argument is convertible from type Executor. -

-
- - Requirements -
-

- Header: asio/uses_executor.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/wait_traits.html b/Sources/Vendor/asio/doc/asio/reference/wait_traits.html deleted file mode 100644 index a3a1237..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/wait_traits.html +++ /dev/null @@ -1,89 +0,0 @@ - - - -wait_traits - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wait traits suitable for use with the basic_waitable_timer - class template. -

-
template<
-    typename Clock>
-struct wait_traits
-
-
- - Member - Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- to_wait_duration -

-
-

- Convert a clock duration into a duration used for waiting. -

-
-
- - Requirements -
-

- Header: asio/wait_traits.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration.html b/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration.html deleted file mode 100644 index 337f774..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration.html +++ /dev/null @@ -1,49 +0,0 @@ - - - -wait_traits::to_wait_duration - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Convert - a clock duration into a duration used for waiting. -

-
static Clock::duration to_wait_duration(
-    const typename Clock::duration & d);
-  » more...
-
-static Clock::duration to_wait_duration(
-    const typename Clock::time_point & t);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html b/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html deleted file mode 100644 index 7e3f601..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload1.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -wait_traits::to_wait_duration (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Convert a clock duration into a duration used for waiting. -

-
static Clock::duration to_wait_duration(
-    const typename Clock::duration & d);
-
-
- - Return - Value -
-

- d. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html b/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html deleted file mode 100644 index 74b1b7b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/wait_traits/to_wait_duration/overload2.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -wait_traits::to_wait_duration (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Convert a clock duration into a duration used for waiting. -

-
static Clock::duration to_wait_duration(
-    const typename Clock::time_point & t);
-
-
- - Return - Value -
-

- d. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle.html deleted file mode 100644 index 7b9ed26..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle.html +++ /dev/null @@ -1,311 +0,0 @@ - - - -windows::object_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides object-oriented handle functionality. -

-
class object_handle
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An object_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the object handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- object_handle -

-
-

- Construct an object_handle without opening it.

Construct - an object_handle on an existing native handle.

Move-construct - an object_handle from another. -

-
-

- operator= -

-
-

- Move-assign an object_handle from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the object handle. -

-
-

- The windows::object_handle - class provides asynchronous and blocking object-oriented handle functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/object_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign.html deleted file mode 100644 index c131aa0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::object_handle::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-  » more...
-
-void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload1.html deleted file mode 100644 index 567751e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::object_handle::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload2.html deleted file mode 100644 index f814bc7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/assign/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -windows::object_handle::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/async_wait.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/async_wait.html deleted file mode 100644 index 33fa66a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/async_wait.html +++ /dev/null @@ -1,77 +0,0 @@ - - - -windows::object_handle::async_wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous wait on the object handle. -

-
template<
-    typename WaitHandler>
-DEDUCED async_wait(
-    WaitHandler && handler);
-
-

- This function is be used to initiate an asynchronous wait against the object - handle. It always returns immediately. -

-
- - Parameters -
-
-

-
-
handler
-
-

- The handler to be called when the object handle is set to the signalled - state. Copies will be made of the handler as required. The function - signature of the handler must be: -

-
void handler(
-  const asio::error_code& error // Result of operation.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel.html deleted file mode 100644 index c538fad..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::object_handle::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the handle. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload1.html deleted file mode 100644 index c016d11..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::object_handle::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the handle. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload2.html deleted file mode 100644 index 90cd24b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::object_handle::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the handle. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close.html deleted file mode 100644 index b73dd96..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::object_handle::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the handle. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload1.html deleted file mode 100644 index 5e41228..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::object_handle::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the handle. -

-
void close();
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload2.html deleted file mode 100644 index e41e7dc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/close/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::object_handle::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the handle. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/executor_type.html deleted file mode 100644 index be8718b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -windows::object_handle::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/windows/object_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_executor.html deleted file mode 100644 index e19aa1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::object_handle::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_context.html deleted file mode 100644 index 04d838c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -windows::object_handle::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_service.html deleted file mode 100644 index 62da3c2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -windows::object_handle::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/is_open.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/is_open.html deleted file mode 100644 index 5219560..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::object_handle::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the handle is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer.html deleted file mode 100644 index 27e3729..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::object_handle::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload1.html deleted file mode 100644 index 011fd07..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::object_handle::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since an windows::object_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload2.html deleted file mode 100644 index bc091a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::object_handle::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since an windows::object_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer_type.html deleted file mode 100644 index e2d2f5e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/lowest_layer_type.html +++ /dev/null @@ -1,315 +0,0 @@ - - - -windows::object_handle::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An - windows::object_handle - is always the lowest layer. -

-
typedef object_handle lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An object_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- async_wait -

-
-

- Start an asynchronous wait on the object handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- object_handle -

-
-

- Construct an object_handle without opening it.

- Construct an object_handle on an existing native handle.
-
Move-construct an object_handle from another. -

-
-

- operator= -

-
-

- Move-assign an object_handle from another. -

-
-

- wait -

-
-

- Perform a blocking wait on the object handle. -

-
-

- The windows::object_handle - class provides asynchronous and blocking object-oriented handle functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/object_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle.html deleted file mode 100644 index 4d1e095..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::object_handle::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the native handle representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - handle. This is intended to allow access to native handle functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle_type.html deleted file mode 100644 index 839fed2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -windows::object_handle::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a handle. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/windows/object_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle.html deleted file mode 100644 index 3fb0dd4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::object_handle::object_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an windows::object_handle - without opening it. -

-
explicit object_handle(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct an windows::object_handle - on an existing native handle. -

-
object_handle(
-    asio::io_context & io_context,
-    const native_handle_type & native_handle);
-  » more...
-
-

- Move-construct an windows::object_handle - from another. -

-
object_handle(
-    object_handle && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload1.html deleted file mode 100644 index df46f02..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -windows::object_handle::object_handle (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::object_handle - without opening it. -

-
object_handle(
-    asio::io_context & io_context);
-
-

- This constructor creates an object handle without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the object handle will use to dispatch handlers for - any asynchronous operations performed on the handle. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload2.html deleted file mode 100644 index 3c55abd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -windows::object_handle::object_handle (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::object_handle - on an existing native handle. -

-
object_handle(
-    asio::io_context & io_context,
-    const native_handle_type & native_handle);
-
-

- This constructor creates an object handle object to hold an existing - native handle. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the object handle will use to dispatch handlers for - any asynchronous operations performed on the handle. -

-
native_handle
-

- The new underlying handle implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload3.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload3.html deleted file mode 100644 index bc3dd8e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/object_handle/overload3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -windows::object_handle::object_handle (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct an windows::object_handle - from another. -

-
object_handle(
-    object_handle && other);
-
-

- This constructor moves an object handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::object_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the object_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/operator_eq_.html deleted file mode 100644 index 6cc26a8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -windows::object_handle::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - an windows::object_handle - from another. -

-
object_handle & operator=(
-    object_handle && other);
-
-

- This assignment operator moves an object handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::object_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the object_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait.html deleted file mode 100644 index c3f6e1e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::object_handle::wait - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Perform - a blocking wait on the object handle. -

-
void wait();
-  » more...
-
-void wait(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload1.html deleted file mode 100644 index 4edd898..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::object_handle::wait (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the object handle. -

-
void wait();
-
-

- This function is used to wait for the object handle to be set to the - signalled state. This function blocks and does not return until the object - handle has been set to the signalled state. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload2.html deleted file mode 100644 index d664dec..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__object_handle/wait/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::object_handle::wait (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Perform a blocking wait on the object handle. -

-
void wait(
-    asio::error_code & ec);
-
-

- This function is used to wait for the object handle to be set to the - signalled state. This function blocks and does not return until the object - handle has been set to the signalled state. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle.html deleted file mode 100644 index 1b384dd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle.html +++ /dev/null @@ -1,325 +0,0 @@ - - - -windows::overlapped_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides Windows handle functionality for objects that support overlapped - I/O. -

-
class overlapped_handle
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign an overlapped_handle from another. -

-
-

- overlapped_handle -

-
-

- Construct an overlapped_handle without opening it.

- Construct an overlapped_handle on an existing native handle.
-
Move-construct an overlapped_handle from another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~overlapped_handle -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The windows::overlapped_handle - class provides the ability to wrap a Windows handle. The underlying object - referred to by the handle must support overlapped I/O. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/overlapped_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/_overlapped_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/_overlapped_handle.html deleted file mode 100644 index e6b3c6b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/_overlapped_handle.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::overlapped_handle::~overlapped_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Protected - destructor to prevent deletion through this type. -

-
~overlapped_handle();
-
-

- This function destroys the handle, cancelling any outstanding asynchronous - wait operations associated with the handle as if by calling cancel. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign.html deleted file mode 100644 index 0019f59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::overlapped_handle::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-  » more...
-
-void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload1.html deleted file mode 100644 index 7dc93ef..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload1.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_handle::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload2.html deleted file mode 100644 index 206171c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/assign/overload2.html +++ /dev/null @@ -1,44 +0,0 @@ - - - -windows::overlapped_handle::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel.html deleted file mode 100644 index 322f025..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::overlapped_handle::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the handle. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload1.html deleted file mode 100644 index 0eb7c6c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::overlapped_handle::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the handle. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload2.html deleted file mode 100644 index 3cc0d4b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/cancel/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::overlapped_handle::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Cancel all asynchronous operations associated with the handle. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close.html deleted file mode 100644 index 0ee732b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::overlapped_handle::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the handle. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload1.html deleted file mode 100644 index 37f1229..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload1.html +++ /dev/null @@ -1,60 +0,0 @@ - - - -windows::overlapped_handle::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the handle. -

-
void close();
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload2.html deleted file mode 100644 index be3701d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/close/overload2.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::overlapped_handle::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Close the handle. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/executor_type.html deleted file mode 100644 index 7111ef2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/executor_type.html +++ /dev/null @@ -1,210 +0,0 @@ - - - -windows::overlapped_handle::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/windows/overlapped_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_executor.html deleted file mode 100644 index f3acf92..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_executor.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_handle::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_context.html deleted file mode 100644 index 3947a3e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_context.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -windows::overlapped_handle::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_service.html deleted file mode 100644 index 47e2d5b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/get_io_service.html +++ /dev/null @@ -1,58 +0,0 @@ - - - -windows::overlapped_handle::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/is_open.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/is_open.html deleted file mode 100644 index 48df51e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/is_open.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_handle::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Determine - whether the handle is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer.html deleted file mode 100644 index f2642b3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::overlapped_handle::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload1.html deleted file mode 100644 index 0cd1f59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload1.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::overlapped_handle::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload2.html deleted file mode 100644 index 33bd12f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer/overload2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::overlapped_handle::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer_type.html deleted file mode 100644 index 64eee2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/lowest_layer_type.html +++ /dev/null @@ -1,327 +0,0 @@ - - - -windows::overlapped_handle::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -An - windows::overlapped_handle - is always the lowest layer. -

-
typedef overlapped_handle lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign an overlapped_handle from another. -

-
-

- overlapped_handle -

-
-

- Construct an overlapped_handle without opening it.

- Construct an overlapped_handle on an existing native handle. -

Move-construct an overlapped_handle from another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~overlapped_handle -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The windows::overlapped_handle - class provides the ability to wrap a Windows handle. The underlying object - referred to by the handle must support overlapped I/O. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/overlapped_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle.html deleted file mode 100644 index d9f9ec0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::overlapped_handle::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the native handle representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - handle. This is intended to allow access to native handle functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle_type.html deleted file mode 100644 index 91f2ea9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/native_handle_type.html +++ /dev/null @@ -1,53 +0,0 @@ - - - -windows::overlapped_handle::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The - native representation of a handle. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/windows/overlapped_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/operator_eq_.html deleted file mode 100644 index e635c2c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -windows::overlapped_handle::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - an windows::overlapped_handle - from another. -

-
overlapped_handle & operator=(
-    overlapped_handle && other);
-
-

- This assignment operator moves a handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::overlapped_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the overlapped_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle.html deleted file mode 100644 index dfdcd50..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::overlapped_handle::overlapped_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an windows::overlapped_handle - without opening it. -

-
explicit overlapped_handle(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct an windows::overlapped_handle - on an existing native handle. -

-
overlapped_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-  » more...
-
-

- Move-construct an windows::overlapped_handle - from another. -

-
overlapped_handle(
-    overlapped_handle && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html deleted file mode 100644 index f509327..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html +++ /dev/null @@ -1,62 +0,0 @@ - - - -windows::overlapped_handle::overlapped_handle (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::overlapped_handle - without opening it. -

-
overlapped_handle(
-    asio::io_context & io_context);
-
-

- This constructor creates a handle without opening it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the handle will use to dispatch handlers for any asynchronous - operations performed on the handle. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html deleted file mode 100644 index a72b1f6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -windows::overlapped_handle::overlapped_handle (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::overlapped_handle - on an existing native handle. -

-
overlapped_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-
-

- This constructor creates a handle object to hold an existing native handle. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the handle will use to dispatch handlers for any asynchronous - operations performed on the handle. -

-
handle
-

- A native handle. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html deleted file mode 100644 index 8dd161f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -windows::overlapped_handle::overlapped_handle (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct an windows::overlapped_handle - from another. -

-
overlapped_handle(
-    overlapped_handle && other);
-
-

- This constructor moves a handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::overlapped_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the overlapped_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr.html deleted file mode 100644 index 17e8e0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr.html +++ /dev/null @@ -1,166 +0,0 @@ - - - -windows::overlapped_ptr - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Wraps a handler to create an OVERLAPPED object for use with overlapped I/O. -

-
class overlapped_ptr :
-  noncopyable
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- complete -

-
-

- Post completion notification for overlapped operation. Releases - ownership. -

-
-

- get -

-
-

- Get the contained OVERLAPPED object. -

-
-

- overlapped_ptr -

-
-

- Construct an empty overlapped_ptr.

Construct an overlapped_ptr - to contain the specified handler. -

-
-

- release -

-
-

- Release ownership of the OVERLAPPED object. -

-
-

- reset -

-
-

- Reset to empty.

Reset to contain the specified handler, - freeing any current OVERLAPPED object. -

-
-

- ~overlapped_ptr -

-
-

- Destructor automatically frees the OVERLAPPED object unless released. -

-
-

- A special-purpose smart pointer used to wrap an application handler so that - it can be passed as the LPOVERLAPPED argument to overlapped I/O functions. -

-
- - Thread Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/overlapped_ptr.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html deleted file mode 100644 index fb16950..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/_overlapped_ptr.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_ptr::~overlapped_ptr - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Destructor - automatically frees the OVERLAPPED object unless released. -

-
~overlapped_ptr();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/complete.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/complete.html deleted file mode 100644 index 1a912f8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/complete.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -windows::overlapped_ptr::complete - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Post - completion notification for overlapped operation. Releases ownership. -

-
void complete(
-    const asio::error_code & ec,
-    std::size_t bytes_transferred);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get.html deleted file mode 100644 index f498d79..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::overlapped_ptr::get - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - the contained OVERLAPPED object. -

-
OVERLAPPED * get();
-  » more...
-
-const OVERLAPPED * get() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html deleted file mode 100644 index 6463a5d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -windows::overlapped_ptr::get (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the contained OVERLAPPED object. -

-
OVERLAPPED * get();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html deleted file mode 100644 index 73d5720..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/get/overload2.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -windows::overlapped_ptr::get (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Get the contained OVERLAPPED object. -

-
const OVERLAPPED * get() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html deleted file mode 100644 index 8017821..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -windows::overlapped_ptr::overlapped_ptr - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - an empty windows::overlapped_ptr. -

-
overlapped_ptr();
-  » more...
-
-

- Construct an windows::overlapped_ptr - to contain the specified handler. -

-
template<
-    typename Handler>
-explicit overlapped_ptr(
-    asio::io_context & io_context,
-    Handler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html deleted file mode 100644 index 08b3b52..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -windows::overlapped_ptr::overlapped_ptr (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an empty windows::overlapped_ptr. -

-
overlapped_ptr();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html deleted file mode 100644 index e68c56b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::overlapped_ptr::overlapped_ptr (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct an windows::overlapped_ptr - to contain the specified handler. -

-
template<
-    typename Handler>
-overlapped_ptr(
-    asio::io_context & io_context,
-    Handler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/release.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/release.html deleted file mode 100644 index 5bfb362..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/release.html +++ /dev/null @@ -1,43 +0,0 @@ - - - -windows::overlapped_ptr::release - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Release - ownership of the OVERLAPPED object. -

-
OVERLAPPED * release();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset.html deleted file mode 100644 index ca42c7c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset.html +++ /dev/null @@ -1,55 +0,0 @@ - - - -windows::overlapped_ptr::reset - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Reset - to empty. -

-
void reset();
-  » more...
-
-

- Reset to contain the specified handler, freeing any current OVERLAPPED - object. -

-
template<
-    typename Handler>
-void reset(
-    asio::io_context & io_context,
-    Handler && handler);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html deleted file mode 100644 index 969ac6a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload1.html +++ /dev/null @@ -1,42 +0,0 @@ - - - -windows::overlapped_ptr::reset (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Reset to empty. -

-
void reset();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html deleted file mode 100644 index 9432b8a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__overlapped_ptr/reset/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::overlapped_ptr::reset (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Reset to contain the specified handler, freeing any current OVERLAPPED - object. -

-
template<
-    typename Handler>
-void reset(
-    asio::io_context & io_context,
-    Handler && handler);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle.html deleted file mode 100644 index 8b54b99..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle.html +++ /dev/null @@ -1,337 +0,0 @@ - - - -windows::random_access_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides random-access handle functionality. -

-
class random_access_handle :
-  public windows::overlapped_handle
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- async_read_some_at -

-
-

- Start an asynchronous read at the specified offset. -

-
-

- async_write_some_at -

-
-

- Start an asynchronous write at the specified offset. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign a random_access_handle from another. -

-
-

- random_access_handle -

-
-

- Construct a random_access_handle without opening it.

- Construct a random_access_handle on an existing native handle. -

Move-construct a random_access_handle from another. -

-
-

- read_some_at -

-
-

- Read some data from the handle at the specified offset. -

-
-

- write_some_at -

-
-

- Write some data to the handle at the specified offset. -

-
-

- The windows::random_access_handle - class provides asynchronous and blocking random-access handle functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/random_access_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign.html deleted file mode 100644 index 6d4530a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::random_access_handle::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-  » more...
-
-void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload1.html deleted file mode 100644 index 94911e3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::random_access_handle::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload2.html deleted file mode 100644 index 740cb41..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/assign/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::random_access_handle::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_read_some_at.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_read_some_at.html deleted file mode 100644 index eae23b1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_read_some_at.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -windows::random_access_handle::async_read_some_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read at the specified offset. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the random-access - handle. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read_at - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
handle.async_read_some_at(42, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_write_some_at.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_write_some_at.html deleted file mode 100644 index ff1b306..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/async_write_some_at.html +++ /dev/null @@ -1,117 +0,0 @@ - - - -windows::random_access_handle::async_write_some_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write at the specified offset. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the random-access - handle. The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more data buffers to be written to the handle. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write_at - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
handle.async_write_some_at(42, asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel.html deleted file mode 100644 index 8c2e7a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::random_access_handle::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the handle. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload1.html deleted file mode 100644 index 485d2c4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::random_access_handle::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Cancel all asynchronous operations associated with the handle. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload2.html deleted file mode 100644 index 7fdb710..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/cancel/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::random_access_handle::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Cancel all asynchronous operations associated with the handle. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close.html deleted file mode 100644 index d32dfc2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::random_access_handle::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the handle. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload1.html deleted file mode 100644 index 1b5beff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::random_access_handle::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Close the handle. -

-
void close();
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload2.html deleted file mode 100644 index 933f639..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/close/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::random_access_handle::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Close the handle. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/executor_type.html deleted file mode 100644 index 7358d0e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -windows::random_access_handle::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/windows/random_access_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_executor.html deleted file mode 100644 index ec84e0a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::random_access_handle::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_context.html deleted file mode 100644 index b5eacc6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::random_access_handle::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_service.html deleted file mode 100644 index cb75bb5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::random_access_handle::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/is_open.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/is_open.html deleted file mode 100644 index dbf8194..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::random_access_handle::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Determine - whether the handle is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer.html deleted file mode 100644 index 9f9fc65..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::random_access_handle::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload1.html deleted file mode 100644 index 3d0c611..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -windows::random_access_handle::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload2.html deleted file mode 100644 index e2bc799..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -windows::random_access_handle::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer_type.html deleted file mode 100644 index 82780f0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/lowest_layer_type.html +++ /dev/null @@ -1,330 +0,0 @@ - - - -windows::random_access_handle::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -An - windows::overlapped_handle - is always the lowest layer. -

-
typedef overlapped_handle lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign an overlapped_handle from another. -

-
-

- overlapped_handle -

-
-

- Construct an overlapped_handle without opening it.

- Construct an overlapped_handle on an existing native handle. -

Move-construct an overlapped_handle from another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~overlapped_handle -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The windows::overlapped_handle - class provides the ability to wrap a Windows handle. The underlying object - referred to by the handle must support overlapped I/O. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/random_access_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle.html deleted file mode 100644 index 1386e99..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -windows::random_access_handle::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Get - the native handle representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - handle. This is intended to allow access to native handle functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle_type.html deleted file mode 100644 index 0ebb9b5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/native_handle_type.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::random_access_handle::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -The - native representation of a handle. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/windows/random_access_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/operator_eq_.html deleted file mode 100644 index aacba88..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/operator_eq_.html +++ /dev/null @@ -1,71 +0,0 @@ - - - -windows::random_access_handle::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a windows::random_access_handle - from another. -

-
random_access_handle & operator=(
-    random_access_handle && other);
-
-

- This assignment operator moves a random-access handle from one object to - another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::random_access_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the random_access_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle.html deleted file mode 100644 index 03dac6a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::random_access_handle::random_access_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a windows::random_access_handle - without opening it. -

-
explicit random_access_handle(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a windows::random_access_handle - on an existing native handle. -

-
random_access_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-  » more...
-
-

- Move-construct a windows::random_access_handle - from another. -

-
random_access_handle(
-    random_access_handle && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload1.html deleted file mode 100644 index 5134e0b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::random_access_handle::random_access_handle (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a windows::random_access_handle - without opening it. -

-
random_access_handle(
-    asio::io_context & io_context);
-
-

- This constructor creates a random-access handle without opening it. The - handle needs to be opened before data can be written to or read from - it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the random-access handle will use to dispatch handlers - for any asynchronous operations performed on the handle. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload2.html deleted file mode 100644 index 70eddd9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -windows::random_access_handle::random_access_handle (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a windows::random_access_handle - on an existing native handle. -

-
random_access_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-
-

- This constructor creates a random-access handle object to hold an existing - native handle. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the random-access handle will use to dispatch handlers - for any asynchronous operations performed on the handle. -

-
handle
-

- The new underlying handle implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload3.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload3.html deleted file mode 100644 index 0d9cb86..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/random_access_handle/overload3.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -windows::random_access_handle::random_access_handle (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a windows::random_access_handle - from another. -

-
random_access_handle(
-    random_access_handle && other);
-
-

- This constructor moves a random-access handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::random_access_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the random_access_handle(io_context&) - constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at.html deleted file mode 100644 index aa1776f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::random_access_handle::read_some_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the handle at the specified offset. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload1.html deleted file mode 100644 index 56b08be..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -windows::random_access_handle::read_some_at (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the handle at the specified offset. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the random-access handle. The - function call will block until one or more bytes of data has been read - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read_at - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
handle.read_some_at(42, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload2.html deleted file mode 100644 index 2f79328..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/read_some_at/overload2.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -windows::random_access_handle::read_some_at (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the handle at the specified offset. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some_at(
-    uint64_t offset,
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the random-access handle. The - function call will block until one or more bytes of data has been read - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be read. -

-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read_at - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at.html deleted file mode 100644 index 5808ad3..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::random_access_handle::write_some_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - some data to the handle at the specified offset. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload1.html deleted file mode 100644 index 8e6b894..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -windows::random_access_handle::write_some_at (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the handle at the specified offset. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the random-access handle. The - function call will block until one or more bytes of the data has been - written successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more data buffers to be written to the handle. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some_at operation may not write all of the data. Consider using - the write_at - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
handle.write_some_at(42, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload2.html deleted file mode 100644 index 9e185ba..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__random_access_handle/write_some_at/overload2.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -windows::random_access_handle::write_some_at (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the handle at the specified offset. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some_at(
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the random-access handle. The - function call will block until one or more bytes of the data has been - written successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more data buffers to be written to the handle. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write_at - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle.html deleted file mode 100644 index fdb3a98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle.html +++ /dev/null @@ -1,336 +0,0 @@ - - - -windows::stream_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Provides stream-oriented handle functionality. -

-
class stream_handle :
-  public windows::overlapped_handle
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- async_read_some -

-
-

- Start an asynchronous read. -

-
-

- async_write_some -

-
-

- Start an asynchronous write. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign a stream_handle from another. -

-
-

- read_some -

-
-

- Read some data from the handle. -

-
-

- stream_handle -

-
-

- Construct a stream_handle without opening it.

Construct - a stream_handle on an existing native handle.

Move-construct - a stream_handle from another. -

-
-

- write_some -

-
-

- Write some data to the handle. -

-
-

- The windows::stream_handle - class provides asynchronous and blocking stream-oriented handle functionality. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/stream_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign.html deleted file mode 100644 index ef72bde..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::stream_handle::assign - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Assign - an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-  » more...
-
-void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload1.html deleted file mode 100644 index 2b0c2b6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload1.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::stream_handle::assign (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload2.html deleted file mode 100644 index 68b408b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/assign/overload2.html +++ /dev/null @@ -1,47 +0,0 @@ - - - -windows::stream_handle::assign (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Assign an existing native handle to the handle. -

-
void assign(
-    const native_handle_type & handle,
-    asio::error_code & ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_read_some.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_read_some.html deleted file mode 100644 index 360a82a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_read_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -windows::stream_handle::async_read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous read. -

-
template<
-    typename MutableBufferSequence,
-    typename ReadHandler>
-DEDUCED async_read_some(
-    const MutableBufferSequence & buffers,
-    ReadHandler && handler);
-
-

- This function is used to asynchronously read data from the stream handle. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the read operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes read.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The read operation may not read all of the requested number of bytes. Consider - using the async_read - function if you need to ensure that the requested amount of data is read - before the asynchronous operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
handle.async_read_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on reading into multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_write_some.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_write_some.html deleted file mode 100644 index c6fda1d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/async_write_some.html +++ /dev/null @@ -1,112 +0,0 @@ - - - -windows::stream_handle::async_write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Start - an asynchronous write. -

-
template<
-    typename ConstBufferSequence,
-    typename WriteHandler>
-DEDUCED async_write_some(
-    const ConstBufferSequence & buffers,
-    WriteHandler && handler);
-
-

- This function is used to asynchronously write data to the stream handle. - The function call always returns immediately. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the handle. Although the - buffers object may be copied as necessary, ownership of the underlying - memory blocks is retained by the caller, which must guarantee that - they remain valid until the handler is called. -

-
handler
-
-

- The handler to be called when the write operation completes. Copies - will be made of the handler as required. The function signature of - the handler must be: -

-
void handler(
-  const asio::error_code& error, // Result of operation.
-  std::size_t bytes_transferred           // Number of bytes written.
-);
-
-

- Regardless of whether the asynchronous operation completes immediately - or not, the handler will not be invoked from within this function. - Invocation of the handler will be performed in a manner equivalent - to using asio::io_context::post(). -

-
-
-
-
- - Remarks -
-

- The write operation may not transmit all of the data to the peer. Consider - using the async_write - function if you need to ensure that all data is written before the asynchronous - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
handle.async_write_some(asio::buffer(data, size), handler);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel.html deleted file mode 100644 index e87f1af..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::stream_handle::cancel - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Cancel - all asynchronous operations associated with the handle. -

-
void cancel();
-  » more...
-
-void cancel(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload1.html deleted file mode 100644 index fdb71f5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::stream_handle::cancel (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Cancel all asynchronous operations associated with the handle. -

-
void cancel();
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload2.html deleted file mode 100644 index 93ded82..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/cancel/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::stream_handle::cancel (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Cancel all asynchronous operations associated with the handle. -

-
void cancel(
-    asio::error_code & ec);
-
-

- This function causes all outstanding asynchronous read or write operations - to finish immediately, and the handlers for cancelled operations will - be passed the asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close.html deleted file mode 100644 index 2cd6300..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close.html +++ /dev/null @@ -1,48 +0,0 @@ - - - -windows::stream_handle::close - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Close - the handle. -

-
void close();
-  » more...
-
-void close(
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload1.html deleted file mode 100644 index 6a2d6c5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload1.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::stream_handle::close (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Close the handle. -

-
void close();
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload2.html deleted file mode 100644 index a4e9f3c..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/close/overload2.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::stream_handle::close (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Close the handle. -

-
void close(
-    asio::error_code & ec);
-
-

- This function is used to close the handle. Any asynchronous read or write - operations will be cancelled immediately, and will complete with the - asio::error::operation_aborted error. -

-
- - Parameters -
-
-

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/executor_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/executor_type.html deleted file mode 100644 index 960ded4..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/executor_type.html +++ /dev/null @@ -1,213 +0,0 @@ - - - -windows::stream_handle::executor_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -The - type of the executor associated with the object. -

-
typedef io_context::executor_type executor_type;
-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- context -

-
-

- Obtain the underlying execution context. -

-
-

- defer -

-
-

- Request the io_context to invoke the given function object. -

-
-

- dispatch -

-
-

- Request the io_context to invoke the given function object. -

-
-

- on_work_finished -

-
-

- Inform the io_context that some work is no longer outstanding. -

-
-

- on_work_started -

-
-

- Inform the io_context that it has some outstanding work to do. -

-
-

- post -

-
-

- Request the io_context to invoke the given function object. -

-
-

- running_in_this_thread -

-
-

- Determine whether the io_context is running in the current thread. -

-
-
- - Friends -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- operator!= -

-
-

- Compare two executors for inequality. -

-
-

- operator== -

-
-

- Compare two executors for equality. -

-
-
- - Requirements -
-

- Header: asio/windows/stream_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_executor.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_executor.html deleted file mode 100644 index 088e720..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_executor.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::stream_handle::get_executor - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Get - the executor associated with the object. -

-
executor_type get_executor();
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_context.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_context.html deleted file mode 100644 index 3f13c26..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_context.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::stream_handle::get_io_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_context();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_service.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_service.html deleted file mode 100644 index ee654d2..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/get_io_service.html +++ /dev/null @@ -1,61 +0,0 @@ - - - -windows::stream_handle::get_io_service - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -(Deprecated: - Use get_executor().) Get the io_context - associated with the object. -

-
asio::io_context & get_io_service();
-
-

- This function may be used to obtain the io_context - object that the I/O object uses to dispatch handlers for asynchronous operations. -

-
- - Return - Value -
-

- A reference to the io_context - object that the I/O object will use to dispatch handlers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/is_open.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/is_open.html deleted file mode 100644 index 50e8f6a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/is_open.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -windows::stream_handle::is_open - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Determine - whether the handle is open. -

-
bool is_open() const;
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer.html deleted file mode 100644 index 474c14e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer.html +++ /dev/null @@ -1,50 +0,0 @@ - - - -windows::stream_handle::lowest_layer - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Get - a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-  » more...
-
-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload1.html deleted file mode 100644 index 21abe77..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload1.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -windows::stream_handle::lowest_layer (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Get a reference to the lowest layer. -

-
lowest_layer_type & lowest_layer();
-
-

- This function returns a reference to the lowest layer in a stack of layers. - Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A reference to the lowest layer in the stack of layers. Ownership is - not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload2.html deleted file mode 100644 index 023daf6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer/overload2.html +++ /dev/null @@ -1,59 +0,0 @@ - - - -windows::stream_handle::lowest_layer (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- Get a const reference to the lowest layer. -

-
const lowest_layer_type & lowest_layer() const;
-
-

- This function returns a const reference to the lowest layer in a stack - of layers. Since an windows::overlapped_handle - cannot contain any further layers, it simply returns a reference to itself. -

-
- - Return - Value -
-

- A const reference to the lowest layer in the stack of layers. Ownership - is not transferred to the caller. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer_type.html deleted file mode 100644 index 99dcc8b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/lowest_layer_type.html +++ /dev/null @@ -1,330 +0,0 @@ - - - -windows::stream_handle::lowest_layer_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -An - windows::overlapped_handle - is always the lowest layer. -

-
typedef overlapped_handle lowest_layer_type;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- executor_type -

-
-

- The type of the executor associated with the object. -

-
-

- lowest_layer_type -

-
-

- An overlapped_handle is always the lowest layer. -

-
-

- native_handle_type -

-
-

- The native representation of a handle. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- assign -

-
-

- Assign an existing native handle to the handle. -

-
-

- cancel -

-
-

- Cancel all asynchronous operations associated with the handle. -

-
-

- close -

-
-

- Close the handle. -

-
-

- get_executor -

-
-

- Get the executor associated with the object. -

-
-

- get_io_context -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- get_io_service -

-
-

- (Deprecated: Use get_executor().) Get the io_context associated - with the object. -

-
-

- is_open -

-
-

- Determine whether the handle is open. -

-
-

- lowest_layer -

-
-

- Get a reference to the lowest layer.

Get a const - reference to the lowest layer. -

-
-

- native_handle -

-
-

- Get the native handle representation. -

-
-

- operator= -

-
-

- Move-assign an overlapped_handle from another. -

-
-

- overlapped_handle -

-
-

- Construct an overlapped_handle without opening it.

- Construct an overlapped_handle on an existing native handle. -

Move-construct an overlapped_handle from another. -

-
-
- - Protected - Member Functions -
-
---- - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- ~overlapped_handle -

-
-

- Protected destructor to prevent deletion through this type. -

-
-

- The windows::overlapped_handle - class provides the ability to wrap a Windows handle. The underlying object - referred to by the handle must support overlapped I/O. -

-
- - Thread - Safety -
-

- Distinct objects: Safe. -

-

- Shared objects: Unsafe. -

-
- - Requirements -
-

- Header: asio/windows/stream_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle.html deleted file mode 100644 index 0b86acd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -windows::stream_handle::native_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -Get - the native handle representation. -

-
native_handle_type native_handle();
-
-

- This function may be used to obtain the underlying representation of the - handle. This is intended to allow access to native handle functionality - that is not otherwise provided. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle_type.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle_type.html deleted file mode 100644 index c119cea..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/native_handle_type.html +++ /dev/null @@ -1,56 +0,0 @@ - - - -windows::stream_handle::native_handle_type - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Inherited from windows::overlapped_handle. -

-

- -The - native representation of a handle. -

-
typedef implementation_defined native_handle_type;
-
-
- - Requirements -
-

- Header: asio/windows/stream_handle.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/operator_eq_.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/operator_eq_.html deleted file mode 100644 index a845a61..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/operator_eq_.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -windows::stream_handle::operator= - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Move-assign - a windows::stream_handle - from another. -

-
stream_handle & operator=(
-    stream_handle && other);
-
-

- This assignment operator moves a stream handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::stream_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if constructed - using the stream_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some.html deleted file mode 100644 index bae27b7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -windows::stream_handle::read_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Read - some data from the handle. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-  » more...
-
-template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload1.html deleted file mode 100644 index a87506a..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -windows::stream_handle::read_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the handle. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers);
-
-

- This function is used to read data from the stream handle. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
-
-
- - Return - Value -
-

- The number of bytes read. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - Example -
-

- To read into a single data buffer use the buffer - function as follows: -

-
handle.read_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on reading into multiple buffers in one - go, and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload2.html deleted file mode 100644 index 0267b72..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/read_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -windows::stream_handle::read_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Read some data from the handle. -

-
template<
-    typename MutableBufferSequence>
-std::size_t read_some(
-    const MutableBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to read data from the stream handle. The function - call will block until one or more bytes of data has been read successfully, - or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more buffers into which the data will be read. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes read. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The read_some operation may not read all of the requested number of bytes. - Consider using the read - function if you need to ensure that the requested amount of data is read - before the blocking operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle.html deleted file mode 100644 index adacd2b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle.html +++ /dev/null @@ -1,63 +0,0 @@ - - - -windows::stream_handle::stream_handle - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Construct - a windows::stream_handle - without opening it. -

-
explicit stream_handle(
-    asio::io_context & io_context);
-  » more...
-
-

- Construct a windows::stream_handle - on an existing native handle. -

-
stream_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-  » more...
-
-

- Move-construct a windows::stream_handle - from another. -

-
stream_handle(
-    stream_handle && other);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload1.html deleted file mode 100644 index 6e04f6e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload1.html +++ /dev/null @@ -1,64 +0,0 @@ - - - -windows::stream_handle::stream_handle (1 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a windows::stream_handle - without opening it. -

-
stream_handle(
-    asio::io_context & io_context);
-
-

- This constructor creates a stream handle without opening it. The handle - needs to be opened and then connected or accepted before data can be - sent or received on it. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream handle will use to dispatch handlers for - any asynchronous operations performed on the handle. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload2.html deleted file mode 100644 index cfe9ae8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - -windows::stream_handle::stream_handle (2 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Construct a windows::stream_handle - on an existing native handle. -

-
stream_handle(
-    asio::io_context & io_context,
-    const native_handle_type & handle);
-
-

- This constructor creates a stream handle object to hold an existing native - handle. -

-
- - Parameters -
-
-

-
-
io_context
-

- The io_context - object that the stream handle will use to dispatch handlers for - any asynchronous operations performed on the handle. -

-
handle
-

- The new underlying handle implementation. -

-
-
-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload3.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload3.html deleted file mode 100644 index ba389fb..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/stream_handle/overload3.html +++ /dev/null @@ -1,69 +0,0 @@ - - - -windows::stream_handle::stream_handle (3 of 3 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Move-construct a windows::stream_handle - from another. -

-
stream_handle(
-    stream_handle && other);
-
-

- This constructor moves a stream handle from one object to another. -

-
- - Parameters -
-
-

-
-
other
-

- The other windows::stream_handle - object from which the move will occur. -

-
-
-
- - Remarks -
-

- Following the move, the moved-from object is in the same state as if - constructed using the stream_handle(io_context&) constructor. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some.html deleted file mode 100644 index be432f1..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some.html +++ /dev/null @@ -1,54 +0,0 @@ - - - -windows::stream_handle::write_some - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Write - some data to the handle. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload1.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload1.html deleted file mode 100644 index b9abaf9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload1.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -windows::stream_handle::write_some (1 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the handle. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write data to the stream handle. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the handle. -

-
-
-
- - Return - Value -
-

- The number of bytes written. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. An error code of asio::error::eof - indicates that the connection was closed by the peer. -

-
-
-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
handle.write_some(asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, - and how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload2.html b/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload2.html deleted file mode 100644 index 40fca59..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/windows__stream_handle/write_some/overload2.html +++ /dev/null @@ -1,86 +0,0 @@ - - - -windows::stream_handle::write_some (2 of 2 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write some data to the handle. -

-
template<
-    typename ConstBufferSequence>
-std::size_t write_some(
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write data to the stream handle. The function - call will block until one or more bytes of the data has been written - successfully, or until an error occurs. -

-
- - Parameters -
-
-

-
-
buffers
-

- One or more data buffers to be written to the handle. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. Returns 0 if an error occurred. -

-
- - Remarks -
-

- The write_some operation may not transmit all of the data to the peer. - Consider using the write - function if you need to ensure that all data is written before the blocking - operation completes. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write.html b/Sources/Vendor/asio/doc/asio/reference/write.html deleted file mode 100644 index 2294f3b..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write.html +++ /dev/null @@ -1,191 +0,0 @@ - - - -write - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
-

-write -

-

- -The write function is a composed operation - that writes a certain amount of data to a stream before returning. -

-

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-  » more...
-
-

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename DynamicBuffer>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-  » more...
-
-

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename Allocator>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-  » more...
-
-

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/write.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload1.html b/Sources/Vendor/asio/doc/asio/reference/write/overload1.html deleted file mode 100644 index 1b1361d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload1.html +++ /dev/null @@ -1,131 +0,0 @@ - - - -write (1 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the stream. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write(s, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload10.html b/Sources/Vendor/asio/doc/asio/reference/write/overload10.html deleted file mode 100644 index 2d4b5bc..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload10.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -write (10 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, b,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload11.html b/Sources/Vendor/asio/doc/asio/reference/write/overload11.html deleted file mode 100644 index 6d02990..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload11.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -write (11 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload12.html b/Sources/Vendor/asio/doc/asio/reference/write/overload12.html deleted file mode 100644 index 79e2fff..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload12.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -write (12 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload2.html b/Sources/Vendor/asio/doc/asio/reference/write/overload2.html deleted file mode 100644 index 6dca3d6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload2.html +++ /dev/null @@ -1,123 +0,0 @@ - - - -write (2 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the stream. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write(s, asio::buffer(data, size), ec);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload3.html b/Sources/Vendor/asio/doc/asio/reference/write/overload3.html deleted file mode 100644 index f0ab842..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload3.html +++ /dev/null @@ -1,143 +0,0 @@ - - - -write (3 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the stream. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write(s, asio::buffer(data, size),
-    asio::transfer_at_least(32));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload4.html b/Sources/Vendor/asio/doc/asio/reference/write/overload4.html deleted file mode 100644 index ee63a6d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload4.html +++ /dev/null @@ -1,120 +0,0 @@ - - - -write (4 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_const_buffer_sequence< ConstBufferSequence >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the stream. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload5.html b/Sources/Vendor/asio/doc/asio/reference/write/overload5.html deleted file mode 100644 index 2f2892d..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload5.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -write (5 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Successfully - written data is automatically consumed from the buffers. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload6.html b/Sources/Vendor/asio/doc/asio/reference/write/overload6.html deleted file mode 100644 index 86ca650..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload6.html +++ /dev/null @@ -1,106 +0,0 @@ - - - -write (6 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Successfully - written data is automatically consumed from the buffers. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload7.html b/Sources/Vendor/asio/doc/asio/reference/write/overload7.html deleted file mode 100644 index de84d98..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload7.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -write (7 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Successfully - written data is automatically consumed from the buffers. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload8.html b/Sources/Vendor/asio/doc/asio/reference/write/overload8.html deleted file mode 100644 index e88be3f..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload8.html +++ /dev/null @@ -1,118 +0,0 @@ - - - -write (8 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename DynamicBuffer,
-    typename CompletionCondition>
-std::size_t write(
-    SyncWriteStream & s,
-    DynamicBuffer && buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec,
-    typename enable_if< is_dynamic_buffer< typename decay< DynamicBuffer >::type >::value >::type *  = 0);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied dynamic buffer sequence has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
buffers
-

- The dynamic buffer sequence from which data will be written. Successfully - written data is automatically consumed from the buffers. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the stream's write_some function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write/overload9.html b/Sources/Vendor/asio/doc/asio/reference/write/overload9.html deleted file mode 100644 index 69f7fe8..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write/overload9.html +++ /dev/null @@ -1,114 +0,0 @@ - - - -write (9 of 12 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data to a stream before returning. -

-
template<
-    typename SyncWriteStream,
-    typename Allocator>
-std::size_t write(
-    SyncWriteStream & s,
-    basic_streambuf< Allocator > & b);
-
-

- This function is used to write a certain number of bytes of data to a stream. - The call will block until one of the following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the stream's - write_some function. -

-
- - Parameters -
-
-

-
-
s
-

- The stream to which the data is to be written. The type must support - the SyncWriteStream concept. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write(
-    s, b,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at.html b/Sources/Vendor/asio/doc/asio/reference/write_at.html deleted file mode 100644 index 5266654..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at.html +++ /dev/null @@ -1,148 +0,0 @@ - - - -write_at - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -The write_at function is a composed - operation that writes a certain amount of data at a specified offset before - returning. -

-

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers);
-  » more...
-
-template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-  » more...
-
-

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b);
-  » more...
-
-template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-  » more...
-
-

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-  » more...
-
-template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-  » more...
-
-
- - Requirements -
-

- Header: asio/write_at.hpp -

-

- Convenience header: asio.hpp -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload1.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload1.html deleted file mode 100644 index e5125b9..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload1.html +++ /dev/null @@ -1,137 +0,0 @@ - - - -write_at (1 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the device. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write_at(d, 42, asio::buffer(data, size));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write_at(
-    d, offset, buffers,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload2.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload2.html deleted file mode 100644 index 6a51cab..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload2.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -write_at (2 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the device. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write_at(d, 42,
-    asio::buffer(data, size), ec);
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write_at(
-    d, offset, buffers,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload3.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload3.html deleted file mode 100644 index 2b49ad6..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload3.html +++ /dev/null @@ -1,149 +0,0 @@ - - - -write_at (3 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the device. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's write_some_at function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Example -
-

- To write a single data buffer use the buffer - function as follows: -

-
asio::write_at(d, 42, asio::buffer(data, size),
-    asio::transfer_at_least(32));
-
-

- See the buffer - documentation for information on writing multiple buffers in one go, and - how to use it with arrays, boost::array or std::vector. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload4.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload4.html deleted file mode 100644 index a40b9a7..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload4.html +++ /dev/null @@ -1,126 +0,0 @@ - - - -write_at (4 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename ConstBufferSequence,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    const ConstBufferSequence & buffers,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied buffers has been written. That is, - the bytes transferred is equal to the sum of the buffer sizes. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
buffers
-

- One or more buffers containing the data to be written. The sum of - the buffer sizes indicates the maximum number of bytes to write to - the device. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's write_some_at function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload5.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload5.html deleted file mode 100644 index 571a5a0..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload5.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -write_at (5 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write_at(
-    d, 42, b,
-    asio::transfer_all());
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload6.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload6.html deleted file mode 100644 index 1fabec5..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload6.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -write_at (6 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write all of the supplied data at the specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - An error occurred. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Remarks -
-

- This overload is equivalent to calling: -

-
asio::write_at(
-    d, 42, b,
-    asio::transfer_all(), ec);
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload7.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload7.html deleted file mode 100644 index 945323e..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload7.html +++ /dev/null @@ -1,132 +0,0 @@ - - - -write_at (7 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's write_some_at function. -

-
-
-
-
- - Return - Value -
-

- The number of bytes transferred. -

-
- - Exceptions -
-
-

-
-
asio::system_error
-

- Thrown on failure. -

-
-
-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/write_at/overload8.html b/Sources/Vendor/asio/doc/asio/reference/write_at/overload8.html deleted file mode 100644 index 62585bd..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/write_at/overload8.html +++ /dev/null @@ -1,125 +0,0 @@ - - - -write_at (8 of 8 overloads) - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- Write a certain amount of data at a specified offset before returning. -

-
template<
-    typename SyncRandomAccessWriteDevice,
-    typename Allocator,
-    typename CompletionCondition>
-std::size_t write_at(
-    SyncRandomAccessWriteDevice & d,
-    uint64_t offset,
-    basic_streambuf< Allocator > & b,
-    CompletionCondition completion_condition,
-    asio::error_code & ec);
-
-

- This function is used to write a certain number of bytes of data to a random - access device at a specified offset. The call will block until one of the - following conditions is true: -

-
    -
  • - All of the data in the supplied basic_streambuf - has been written. -
  • -
  • - The completion_condition function object returns 0. -
  • -
-

- This operation is implemented in terms of zero or more calls to the device's - write_some_at function. -

-
- - Parameters -
-
-

-
-
d
-

- The device to which the data is to be written. The type must support - the SyncRandomAccessWriteDevice concept. -

-
offset
-

- The offset at which the data will be written. -

-
b
-

- The basic_streambuf - object from which data will be written. -

-
completion_condition
-
-

- The function object to be called to determine whether the write operation - is complete. The signature of the function object must be: -

-
std::size_t completion_condition(
-  // Result of latest write_some_at operation.
-  const asio::error_code& error,
-
-  // Number of bytes transferred so far.
-  std::size_t bytes_transferred
-);
-
-

- A return value of 0 indicates that the write operation is complete. - A non-zero return value indicates the maximum number of bytes to - be written on the next call to the device's write_some_at function. -

-
-
ec
-

- Set to indicate what error occurred, if any. -

-
-
-
- - Return - Value -
-

- The number of bytes written. If an error occurs, returns the total number - of bytes successfully transferred prior to the error. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/reference/yield_context.html b/Sources/Vendor/asio/doc/asio/reference/yield_context.html deleted file mode 100644 index 6000438..0000000 --- a/Sources/Vendor/asio/doc/asio/reference/yield_context.html +++ /dev/null @@ -1,171 +0,0 @@ - - - -yield_context - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- -Context object that represents the - currently executing coroutine. -

-
typedef basic_yield_context< unspecified > yield_context;
-
-
- - Types -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- callee_type -

-
-

- The coroutine callee type, used by the implementation. -

-
-

- caller_type -

-
-

- The coroutine caller type, used by the implementation. -

-
-
- - Member - Functions -
-
---- - - - - - - - - - - - - - - -
-

- Name -

-
-

- Description -

-
-

- basic_yield_context -

-
-

- Construct a yield context to represent the specified coroutine. -

Construct a yield context from another yield context - type. -

-
-

- operator[] -

-
-

- Return a yield context that sets the specified error_code. -

-
-

- The basic_yield_context - class is used to represent the currently executing stackful coroutine. A - basic_yield_context - may be passed as a handler to an asynchronous operation. For example: -

-
template <typename Handler>
-void my_coroutine(basic_yield_context<Handler> yield)
-{
-  ...
-  std::size_t n = my_socket.async_read_some(buffer, yield);
-  ...
-}
-
-

- The initiating function (async_read_some in the above example) suspends the - current coroutine. The coroutine is resumed when the asynchronous operation - completes, and the result of the operation is returned. -

-
- - Requirements -
-

- Header: asio/spawn.hpp -

-

- Convenience header: None -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial.html b/Sources/Vendor/asio/doc/asio/tutorial.html deleted file mode 100644 index 941b450..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -Tutorial - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - Basic - Skills -

-

- The tutorial programs in this first section introduce the fundamental concepts - required to use the asio toolkit. Before plunging into the complex world of - network programming, these tutorial programs illustrate the basic skills using - simple asynchronous timers. -

- -

- - Introduction - to Sockets -

-

- The tutorial programs in this section show how to use asio to develop simple - client and server programs. These tutorial programs are based around the daytime protocol, which supports - both TCP and UDP. -

-

- The first three tutorial programs implement the daytime protocol using TCP. -

- -

- The next three tutorial programs implement the daytime protocol using UDP. -

- -

- The last tutorial program in this section demonstrates how asio allows the - TCP and UDP servers to be easily combined into a single program. -

- -
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/boost_bind.html b/Sources/Vendor/asio/doc/asio/tutorial/boost_bind.html deleted file mode 100644 index 39865b6..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/boost_bind.html +++ /dev/null @@ -1,40 +0,0 @@ - - - -boost::bind - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- See the Boost: bind.hpp - documentation for more information on how to use boost::bind. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1.html deleted file mode 100644 index 2571505..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -Daytime.1 - A synchronous TCP daytime client - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to use asio to implement a client application - with TCP. -

-

- We start by including the necessary header files. -

-
#include <iostream>
-#include <boost/array.hpp>
-#include <asio.hpp>
-
-

- The purpose of this application is to access a daytime service, so we need - the user to specify the server. -

-
using asio::ip::tcp;
-
-int main(int argc, char* argv[])
-{
-  try
-  {
-    if (argc != 2)
-    {
-      std::cerr << "Usage: client <host>" << std::endl;
-      return 1;
-    }
-
-

- All programs that use asio need to have at least one io_context - object. -

-
    asio::io_context io_context;
-
-

- We need to turn the server name that was specified as a parameter to the - application, into a TCP endpoint. To do this we use an ip::tcp::resolver - object. -

-
    tcp::resolver resolver(io_context);
-
-

- A resolver takes a query object and turns it into a list of endpoints. We - construct a query using the name of the server, specified in argv[1], - and the name of the service, in this case "daytime". -

-

- The list of endpoints is returned using an iterator of type ip::tcp::resolver::iterator. - (Note that a default constructed ip::tcp::resolver::iterator - object can be used as an end iterator.) -

-

- Now we create and connect the socket. The list of endpoints obtained above - may contain both IPv4 and IPv6 endpoints, so we need to try each of them - until we find one that works. This keeps the client program independent of - a specific IP version. The asio::connect() function does this for us automatically. -

-

- The connection is open. All we need to do now is read the response from the - daytime service. -

-

- We use a boost::array to hold the received data. The asio::buffer() - function automatically determines the size of the array to help prevent buffer - overruns. Instead of a boost::array, we could have used a char - [] or std::vector. -

-

- When the server closes the connection, the ip::tcp::socket::read_some() - function will exit with the asio::error::eof error, which is how we know - to exit the loop. -

-

- Finally, handle any exceptions that may have been thrown. -

-

- See the full source listing -

-

- Return to the tutorial index -

-

- Next: Daytime.2 - A synchronous - TCP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1/src.html deleted file mode 100644 index 6903487..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime1/src.html +++ /dev/null @@ -1,98 +0,0 @@ - - - -Source listing for Daytime.1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// client.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <iostream>
-#include <boost/array.hpp>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-
-int main(int argc, char* argv[])
-{
-  try
-  {
-    if (argc != 2)
-    {
-      std::cerr << "Usage: client <host>" << std::endl;
-      return 1;
-    }
-
-    asio::io_context io_context;
-
-    tcp::resolver resolver(io_context);
-    tcp::resolver::results_type endpoints =
-      resolver.resolve(argv[1], "daytime");
-
-    tcp::socket socket(io_context);
-    asio::connect(socket, endpoints);
-
-    for (;;)
-    {
-      boost::array<char, 128> buf;
-      asio::error_code error;
-
-      size_t len = socket.read_some(asio::buffer(buf), error);
-
-      if (error == asio::error::eof)
-        break; // Connection closed cleanly by peer.
-      else if (error)
-        throw asio::system_error(error); // Some other error.
-
-      std::cout.write(buf.data(), len);
-    }
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.1 - A synchronous - TCP daytime client -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2.html deleted file mode 100644 index e6053a4..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2.html +++ /dev/null @@ -1,119 +0,0 @@ - - - -Daytime.2 - A synchronous TCP daytime server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to use asio to implement a server application - with TCP. -

-
#include <ctime>
-#include <iostream>
-#include <string>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-
-

- We define the function make_daytime_string() to create the string - to be sent back to the client. This function will be reused in all of our - daytime server applications. -

-
std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-

- A ip::tcp::acceptor - object needs to be created to listen for new connections. It is initialised - to listen on TCP port 13, for IP version 4. -

-
    tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 13));
-
-

- This is an iterative server, which means that it will handle one connection - at a time. Create a socket that will represent the connection to the client, - and then wait for a connection. -

-
    for (;;)
-    {
-      tcp::socket socket(io_context);
-      acceptor.accept(socket);
-
-

- A client is accessing our service. Determine the current time and transfer - this information to the client. -

-
      std::string message = make_daytime_string();
-
-      asio::error_code ignored_error;
-      asio::write(socket, asio::buffer(message), ignored_error);
-    }
-  }
-
-

- Finally, handle any exceptions. -

-
  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.1 - A synchronous - TCP daytime client -

-

- Next: Daytime.3 - An asynchronous - TCP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2/src.html deleted file mode 100644 index c8ae53b..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime2/src.html +++ /dev/null @@ -1,91 +0,0 @@ - - - -Source listing for Daytime.2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <ctime>
-#include <iostream>
-#include <string>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-    tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 13));
-
-    for (;;)
-    {
-      tcp::socket socket(io_context);
-      acceptor.accept(socket);
-
-      std::string message = make_daytime_string();
-
-      asio::error_code ignored_error;
-      asio::write(socket, asio::buffer(message), ignored_error);
-    }
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.2 - A synchronous - TCP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3.html deleted file mode 100644 index 3b62f0a..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3.html +++ /dev/null @@ -1,230 +0,0 @@ - - - -Daytime.3 - An asynchronous TCP daytime server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - The - main() function -
-
int main()
-{
-  try
-  {
-
-

- We need to create a server object to accept incoming client connections. - The io_context object provides - I/O services, such as sockets, that the server object will use. -

-
    asio::io_context io_context;
-    tcp_server server(io_context);
-
-

- Run the io_context object - so that it will perform asynchronous operations on your behalf. -

-
    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-
- - The - tcp_server class -
-
class tcp_server
-{
-public:
-
-

- The constructor initialises an acceptor to listen on TCP port 13. -

-
  tcp_server(asio::io_context& io_context)
-    : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13))
-  {
-    start_accept();
-  }
-
-private:
-
-

- The function start_accept() creates a socket and initiates an - asynchronous accept operation to wait for a new connection. -

-
  void start_accept()
-  {
-    tcp_connection::pointer new_connection =
-      tcp_connection::create(acceptor_.get_executor().context());
-
-    acceptor_.async_accept(new_connection->socket(),
-        boost::bind(&tcp_server::handle_accept, this, new_connection,
-          asio::placeholders::error));
-  }
-
-

- The function handle_accept() is called when the asynchronous - accept operation initiated by start_accept() finishes. It services - the client request, and then calls start_accept() to initiate - the next accept operation. -

-
  void handle_accept(tcp_connection::pointer new_connection,
-      const asio::error_code& error)
-  {
-    if (!error)
-    {
-      new_connection->start();
-    }
-
-    start_accept();
-  }
-
-
- - The - tcp_connection class -
-

- We will use shared_ptr and enable_shared_from_this - because we want to keep the tcp_connection object alive as long - as there is an operation that refers to it. -

-
class tcp_connection
-  : public boost::enable_shared_from_this<tcp_connection>
-{
-public:
-  typedef boost::shared_ptr<tcp_connection> pointer;
-
-  static pointer create(asio::io_context& io_context)
-  {
-    return pointer(new tcp_connection(io_context));
-  }
-
-  tcp::socket& socket()
-  {
-    return socket_;
-  }
-
-

- In the function start(), we call asio::async_write() to serve - the data to the client. Note that we are using asio::async_write(), rather - than ip::tcp::socket::async_write_some(), - to ensure that the entire block of data is sent. -

-
  void start()
-  {
-
-

- The data to be sent is stored in the class member message_ as - we need to keep the data valid until the asynchronous operation is complete. -

-
    message_ = make_daytime_string();
-
-

- When initiating the asynchronous operation, and if using boost::bind - , you must specify only the arguments that match the handler's parameter - list. In this program, both of the argument placeholders (asio::placeholders::error - and asio::placeholders::bytes_transferred) could potentially have been removed, - since they are not being used in handle_write(). -

-
    asio::async_write(socket_, asio::buffer(message_),
-        boost::bind(&tcp_connection::handle_write, shared_from_this(),
-          asio::placeholders::error,
-          asio::placeholders::bytes_transferred));
-
-

- Any further actions for this client connection are now the responsibility - of handle_write(). -

-
  }
-
-private:
-  tcp_connection(asio::io_context& io_context)
-    : socket_(io_context)
-  {
-  }
-
-  void handle_write(const asio::error_code& /*error*/,
-      size_t /*bytes_transferred*/)
-  {
-  }
-
-  tcp::socket socket_;
-  std::string message_;
-};
-
-
- - Removing - unused handler parameters -
-

- You may have noticed that the error, and bytes_transferred - parameters are not used in the body of the handle_write() function. - If parameters are not needed, it is possible to remove them from the function - so that it looks like: -

-
  void handle_write()
-  {
-  }
-
-

- The asio::async_write() call used to initiate the call can then be changed - to just: -

-
  asio::async_write(socket_, asio::buffer(message_),
-      boost::bind(&tcp_connection::handle_write, shared_from_this()));
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.2 - A synchronous - TCP daytime server -

-

- Next: Daytime.4 - A synchronous - UDP daytime client -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3/src.html deleted file mode 100644 index 8abd8ab..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime3/src.html +++ /dev/null @@ -1,158 +0,0 @@ - - - -Source listing for Daytime.3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <ctime>
-#include <iostream>
-#include <string>
-#include <boost/bind.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-class tcp_connection
-  : public boost::enable_shared_from_this<tcp_connection>
-{
-public:
-  typedef boost::shared_ptr<tcp_connection> pointer;
-
-  static pointer create(asio::io_context& io_context)
-  {
-    return pointer(new tcp_connection(io_context));
-  }
-
-  tcp::socket& socket()
-  {
-    return socket_;
-  }
-
-  void start()
-  {
-    message_ = make_daytime_string();
-
-    asio::async_write(socket_, asio::buffer(message_),
-        boost::bind(&tcp_connection::handle_write, shared_from_this(),
-          asio::placeholders::error,
-          asio::placeholders::bytes_transferred));
-  }
-
-private:
-  tcp_connection(asio::io_context& io_context)
-    : socket_(io_context)
-  {
-  }
-
-  void handle_write(const asio::error_code& /*error*/,
-      size_t /*bytes_transferred*/)
-  {
-  }
-
-  tcp::socket socket_;
-  std::string message_;
-};
-
-class tcp_server
-{
-public:
-  tcp_server(asio::io_context& io_context)
-    : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13))
-  {
-    start_accept();
-  }
-
-private:
-  void start_accept()
-  {
-    tcp_connection::pointer new_connection =
-      tcp_connection::create(acceptor_.get_executor().context());
-
-    acceptor_.async_accept(new_connection->socket(),
-        boost::bind(&tcp_server::handle_accept, this, new_connection,
-          asio::placeholders::error));
-  }
-
-  void handle_accept(tcp_connection::pointer new_connection,
-      const asio::error_code& error)
-  {
-    if (!error)
-    {
-      new_connection->start();
-    }
-
-    start_accept();
-  }
-
-  tcp::acceptor acceptor_;
-};
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-    tcp_server server(io_context);
-    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.3 - An asynchronous - TCP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4.html deleted file mode 100644 index 23e7243..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -Daytime.4 - A synchronous UDP daytime client - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to use asio to implement a client application - with UDP. -

-
#include <iostream>
-#include <boost/array.hpp>
-#include <asio.hpp>
-
-using asio::ip::udp;
-
-

- The start of the application is essentially the same as for the TCP daytime - client. -

-
int main(int argc, char* argv[])
-{
-  try
-  {
-    if (argc != 2)
-    {
-      std::cerr << "Usage: client <host>" << std::endl;
-      return 1;
-    }
-
-    asio::io_context io_context;
-
-

- We use an ip::udp::resolver - object to find the correct remote endpoint to use based on the host and service - names. The query is restricted to return only IPv4 endpoints by the ip::udp::v4() argument. -

-
    udp::resolver resolver(io_context);
-    udp::endpoint receiver_endpoint =
-      *resolver.resolve(udp::v4(), argv[1], "daytime").begin();
-
-

- The ip::udp::resolver::resolve() - function is guaranteed to return at least one endpoint in the list if it - does not fail. This means it is safe to dereference the return value directly. -

-
    udp::socket socket(io_context);
-    socket.open(udp::v4());
-
-    boost::array<char, 1> send_buf  = {{ 0 }};
-    socket.send_to(asio::buffer(send_buf), receiver_endpoint);
-
-    boost::array<char, 128> recv_buf;
-    udp::endpoint sender_endpoint;
-
-

- Since UDP is datagram-oriented, we will not be using a stream socket. Create - an ip::udp::socket and - initiate contact with the remote endpoint. -

-

- Now we need to be ready to accept whatever the server sends back to us. The - endpoint on our side that receives the server's response will be initialised - by ip::udp::socket::receive_from(). -

-

- Finally, handle any exceptions that may have been thrown. -

-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.3 - An asynchronous - TCP daytime server -

-

- Next: Daytime.5 - A synchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4/src.html deleted file mode 100644 index c32beaf..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime4/src.html +++ /dev/null @@ -1,93 +0,0 @@ - - - -Source listing for Daytime.4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// client.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <iostream>
-#include <boost/array.hpp>
-#include <asio.hpp>
-
-using asio::ip::udp;
-
-int main(int argc, char* argv[])
-{
-  try
-  {
-    if (argc != 2)
-    {
-      std::cerr << "Usage: client <host>" << std::endl;
-      return 1;
-    }
-
-    asio::io_context io_context;
-
-    udp::resolver resolver(io_context);
-    udp::endpoint receiver_endpoint =
-      *resolver.resolve(udp::v4(), argv[1], "daytime").begin();
-
-    udp::socket socket(io_context);
-    socket.open(udp::v4());
-
-    boost::array<char, 1> send_buf  = {{ 0 }};
-    socket.send_to(asio::buffer(send_buf), receiver_endpoint);
-
-    boost::array<char, 128> recv_buf;
-    udp::endpoint sender_endpoint;
-    size_t len = socket.receive_from(
-        asio::buffer(recv_buf), sender_endpoint);
-
-    std::cout.write(recv_buf.data(), len);
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.4 - A synchronous - UDP daytime client -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5.html deleted file mode 100644 index e5ed0bd..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Daytime.5 - A synchronous UDP daytime server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to use asio to implement a server application - with UDP. -

-
int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-

- Create an ip::udp::socket - object to receive requests on UDP port 13. -

-
    udp::socket socket(io_context, udp::endpoint(udp::v4(), 13));
-
-

- Wait for a client to initiate contact with us. The remote_endpoint object - will be populated by ip::udp::socket::receive_from(). -

-

- Determine what we are going to send back to the client. -

-

- Send the response to the remote_endpoint. -

-

- Finally, handle any exceptions. -

-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.4 - A synchronous - UDP daytime client -

-

- Next: Daytime.6 - An asynchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5/src.html deleted file mode 100644 index b722d96..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime5/src.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -Source listing for Daytime.5 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <ctime>
-#include <iostream>
-#include <string>
-#include <boost/array.hpp>
-#include <asio.hpp>
-
-using asio::ip::udp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-    udp::socket socket(io_context, udp::endpoint(udp::v4(), 13));
-
-    for (;;)
-    {
-      boost::array<char, 1> recv_buf;
-      udp::endpoint remote_endpoint;
-      asio::error_code error;
-      socket.receive_from(asio::buffer(recv_buf), remote_endpoint);
-
-      std::string message = make_daytime_string();
-
-      asio::error_code ignored_error;
-      socket.send_to(asio::buffer(message),
-          remote_endpoint, 0, ignored_error);
-    }
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.5 - A synchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6.html deleted file mode 100644 index 2249729..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6.html +++ /dev/null @@ -1,179 +0,0 @@ - - - -Daytime.6 - An asynchronous UDP daytime server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
- - The - main() function -
-
int main()
-{
-  try
-  {
-
-

- Create a server object to accept incoming client requests, and run the io_context object. -

-
    asio::io_context io_context;
-    udp_server server(io_context);
-    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-
- - The - udp_server class -
-
class udp_server
-{
-public:
-
-

- The constructor initialises a socket to listen on UDP port 13. -

-
  udp_server(asio::io_context& io_context)
-    : socket_(io_context, udp::endpoint(udp::v4(), 13))
-  {
-    start_receive();
-  }
-
-private:
-  void start_receive()
-  {
-
-

- The function ip::udp::socket::async_receive_from() - will cause the application to listen in the background for a new request. - When such a request is received, the io_context - object will invoke the handle_receive() function with two arguments: - a value of type error_code - indicating whether the operation succeeded or failed, and a size_t - value bytes_transferred specifying the number of bytes received. -

-
    socket_.async_receive_from(
-        asio::buffer(recv_buffer_), remote_endpoint_,
-        boost::bind(&udp_server::handle_receive, this,
-          asio::placeholders::error,
-          asio::placeholders::bytes_transferred));
-  }
-
-

- The function handle_receive() will service the client request. -

-
  void handle_receive(const asio::error_code& error,
-      std::size_t /*bytes_transferred*/)
-  {
-
-

- The error parameter contains the result of the asynchronous - operation. Since we only provide the 1-byte recv_buffer_ to - contain the client's request, the io_context - object would return an error if the client sent anything larger. We can ignore - such an error if it comes up. -

-
    if (!error)
-    {
-
-

- Determine what we are going to send. -

-
      boost::shared_ptr<std::string> message(
-          new std::string(make_daytime_string()));
-
-

- We now call ip::udp::socket::async_send_to() - to serve the data to the client. -

-
      socket_.async_send_to(asio::buffer(*message), remote_endpoint_,
-          boost::bind(&udp_server::handle_send, this, message,
-            asio::placeholders::error,
-            asio::placeholders::bytes_transferred));
-
-

- When initiating the asynchronous operation, and if using boost::bind - , you must specify only the arguments that match the handler's parameter - list. In this program, both of the argument placeholders (asio::placeholders::error - and asio::placeholders::bytes_transferred) could potentially have been removed. -

-

- Start listening for the next client request. -

-
      start_receive();
-
-

- Any further actions for this client request are now the responsibility of - handle_send(). -

-
    }
-  }
-
-

- The function handle_send() is invoked after the service request - has been completed. -

-
  void handle_send(boost::shared_ptr<std::string> /*message*/,
-      const asio::error_code& /*error*/,
-      std::size_t /*bytes_transferred*/)
-  {
-  }
-
-  udp::socket socket_;
-  udp::endpoint remote_endpoint_;
-  boost::array<char, 1> recv_buffer_;
-};
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.5 - A synchronous - UDP daytime server -

-

- Next: Daytime.7 - A combined TCP/UDP - asynchronous server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6/src.html deleted file mode 100644 index e7aefdc..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime6/src.html +++ /dev/null @@ -1,130 +0,0 @@ - - - -Source listing for Daytime.6 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <ctime>
-#include <iostream>
-#include <string>
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
-#include <boost/shared_ptr.hpp>
-#include <asio.hpp>
-
-using asio::ip::udp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-class udp_server
-{
-public:
-  udp_server(asio::io_context& io_context)
-    : socket_(io_context, udp::endpoint(udp::v4(), 13))
-  {
-    start_receive();
-  }
-
-private:
-  void start_receive()
-  {
-    socket_.async_receive_from(
-        asio::buffer(recv_buffer_), remote_endpoint_,
-        boost::bind(&udp_server::handle_receive, this,
-          asio::placeholders::error,
-          asio::placeholders::bytes_transferred));
-  }
-
-  void handle_receive(const asio::error_code& error,
-      std::size_t /*bytes_transferred*/)
-  {
-    if (!error)
-    {
-      boost::shared_ptr<std::string> message(
-          new std::string(make_daytime_string()));
-
-      socket_.async_send_to(asio::buffer(*message), remote_endpoint_,
-          boost::bind(&udp_server::handle_send, this, message,
-            asio::placeholders::error,
-            asio::placeholders::bytes_transferred));
-
-      start_receive();
-    }
-  }
-
-  void handle_send(boost::shared_ptr<std::string> /*message*/,
-      const asio::error_code& /*error*/,
-      std::size_t /*bytes_transferred*/)
-  {
-  }
-
-  udp::socket socket_;
-  udp::endpoint remote_endpoint_;
-  boost::array<char, 1> recv_buffer_;
-};
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-    udp_server server(io_context);
-    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.6 - An asynchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7.html deleted file mode 100644 index 67e8541..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7.html +++ /dev/null @@ -1,217 +0,0 @@ - - - -Daytime.7 - A combined TCP/UDP asynchronous server - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program shows how to combine the two asynchronous servers that - we have just written, into a single server application. -

-
- - The - main() function -
-
int main()
-{
-  try
-  {
-    asio::io_context io_context;
-
-

- We will begin by creating a server object to accept a TCP client connection. -

-
    tcp_server server1(io_context);
-
-

- We also need a server object to accept a UDP client request. -

-
    udp_server server2(io_context);
-
-

- We have created two lots of work for the io_context - object to do. -

-
    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-
- - The - tcp_connection and tcp_server classes -
-

- The following two classes are taken from Daytime.3 - . -

-
class tcp_connection
-  : public boost::enable_shared_from_this<tcp_connection>
-{
-public:
-  typedef boost::shared_ptr<tcp_connection> pointer;
-
-  static pointer create(asio::io_context& io_context)
-  {
-    return pointer(new tcp_connection(io_context));
-  }
-
-  tcp::socket& socket()
-  {
-    return socket_;
-  }
-
-  void start()
-  {
-    message_ = make_daytime_string();
-
-    asio::async_write(socket_, asio::buffer(message_),
-        boost::bind(&tcp_connection::handle_write, shared_from_this()));
-  }
-
-private:
-  tcp_connection(asio::io_context& io_context)
-    : socket_(io_context)
-  {
-  }
-
-  void handle_write()
-  {
-  }
-
-  tcp::socket socket_;
-  std::string message_;
-};
-
-class tcp_server
-{
-public:
-  tcp_server(asio::io_context& io_context)
-    : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13))
-  {
-    start_accept();
-  }
-
-private:
-  void start_accept()
-  {
-    tcp_connection::pointer new_connection =
-      tcp_connection::create(acceptor_.get_executor().context());
-
-    acceptor_.async_accept(new_connection->socket(),
-        boost::bind(&tcp_server::handle_accept, this, new_connection,
-          asio::placeholders::error));
-  }
-
-  void handle_accept(tcp_connection::pointer new_connection,
-      const asio::error_code& error)
-  {
-    if (!error)
-    {
-      new_connection->start();
-    }
-
-    start_accept();
-  }
-
-  tcp::acceptor acceptor_;
-};
-
-
- - The - udp_server class -
-

- Similarly, this next class is taken from the previous - tutorial step . -

-
class udp_server
-{
-public:
-  udp_server(asio::io_context& io_context)
-    : socket_(io_context, udp::endpoint(udp::v4(), 13))
-  {
-    start_receive();
-  }
-
-private:
-  void start_receive()
-  {
-    socket_.async_receive_from(
-        asio::buffer(recv_buffer_), remote_endpoint_,
-        boost::bind(&udp_server::handle_receive, this,
-          asio::placeholders::error));
-  }
-
-  void handle_receive(const asio::error_code& error)
-  {
-    if (!error)
-    {
-      boost::shared_ptr<std::string> message(
-          new std::string(make_daytime_string()));
-
-      socket_.async_send_to(asio::buffer(*message), remote_endpoint_,
-          boost::bind(&udp_server::handle_send, this, message));
-
-      start_receive();
-    }
-  }
-
-  void handle_send(boost::shared_ptr<std::string> /*message*/)
-  {
-  }
-
-  udp::socket socket_;
-  udp::endpoint remote_endpoint_;
-  boost::array<char, 1> recv_buffer_;
-};
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Daytime.6 - An asynchronous - UDP daytime server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7/src.html deleted file mode 100644 index 8eebee4..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tutdaytime7/src.html +++ /dev/null @@ -1,199 +0,0 @@ - - - -Source listing for Daytime.7 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// server.cpp
-// ~~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <ctime>
-#include <iostream>
-#include <string>
-#include <boost/array.hpp>
-#include <boost/bind.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/enable_shared_from_this.hpp>
-#include <asio.hpp>
-
-using asio::ip::tcp;
-using asio::ip::udp;
-
-std::string make_daytime_string()
-{
-  using namespace std; // For time_t, time and ctime;
-  time_t now = time(0);
-  return ctime(&now);
-}
-
-class tcp_connection
-  : public boost::enable_shared_from_this<tcp_connection>
-{
-public:
-  typedef boost::shared_ptr<tcp_connection> pointer;
-
-  static pointer create(asio::io_context& io_context)
-  {
-    return pointer(new tcp_connection(io_context));
-  }
-
-  tcp::socket& socket()
-  {
-    return socket_;
-  }
-
-  void start()
-  {
-    message_ = make_daytime_string();
-
-    asio::async_write(socket_, asio::buffer(message_),
-        boost::bind(&tcp_connection::handle_write, shared_from_this()));
-  }
-
-private:
-  tcp_connection(asio::io_context& io_context)
-    : socket_(io_context)
-  {
-  }
-
-  void handle_write()
-  {
-  }
-
-  tcp::socket socket_;
-  std::string message_;
-};
-
-class tcp_server
-{
-public:
-  tcp_server(asio::io_context& io_context)
-    : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13))
-  {
-    start_accept();
-  }
-
-private:
-  void start_accept()
-  {
-    tcp_connection::pointer new_connection =
-      tcp_connection::create(acceptor_.get_executor().context());
-
-    acceptor_.async_accept(new_connection->socket(),
-        boost::bind(&tcp_server::handle_accept, this, new_connection,
-          asio::placeholders::error));
-  }
-
-  void handle_accept(tcp_connection::pointer new_connection,
-      const asio::error_code& error)
-  {
-    if (!error)
-    {
-      new_connection->start();
-    }
-
-    start_accept();
-  }
-
-  tcp::acceptor acceptor_;
-};
-
-class udp_server
-{
-public:
-  udp_server(asio::io_context& io_context)
-    : socket_(io_context, udp::endpoint(udp::v4(), 13))
-  {
-    start_receive();
-  }
-
-private:
-  void start_receive()
-  {
-    socket_.async_receive_from(
-        asio::buffer(recv_buffer_), remote_endpoint_,
-        boost::bind(&udp_server::handle_receive, this,
-          asio::placeholders::error));
-  }
-
-  void handle_receive(const asio::error_code& error)
-  {
-    if (!error)
-    {
-      boost::shared_ptr<std::string> message(
-          new std::string(make_daytime_string()));
-
-      socket_.async_send_to(asio::buffer(*message), remote_endpoint_,
-          boost::bind(&udp_server::handle_send, this, message));
-
-      start_receive();
-    }
-  }
-
-  void handle_send(boost::shared_ptr<std::string> /*message*/)
-  {
-  }
-
-  udp::socket socket_;
-  udp::endpoint remote_endpoint_;
-  boost::array<char, 1> recv_buffer_;
-};
-
-int main()
-{
-  try
-  {
-    asio::io_context io_context;
-    tcp_server server1(io_context);
-    udp_server server2(io_context);
-    io_context.run();
-  }
-  catch (std::exception& e)
-  {
-    std::cerr << e.what() << std::endl;
-  }
-
-  return 0;
-}
-
-

- Return to Daytime.7 - A combined - TCP/UDP asynchronous server -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1.html deleted file mode 100644 index ce9968b..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1.html +++ /dev/null @@ -1,99 +0,0 @@ - - - -Timer.1 - Using a timer synchronously - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program introduces asio by showing how to perform a blocking - wait on a timer. -

-

- We start by including the necessary header files. -

-

- All of the asio classes can be used by simply including the "asio.hpp" - header file. -

-
#include <iostream>
-#include <asio.hpp>
-
-

- All programs that use asio need to have at least one io_context - object. This class provides access to I/O functionality. We declare an object - of this type first thing in the main function. -

-
int main()
-{
-  asio::io_context io;
-
-

- Next we declare an object of type asio::steady_timer. The core asio classes - that provide I/O functionality (or as in this case timer functionality) always - take a reference to an io_context as their first constructor argument. The - second argument to the constructor sets the timer to expire 5 seconds from - now. -

-
  asio::steady_timer t(io, asio::chrono::seconds(5));
-
-

- In this simple example we perform a blocking wait on the timer. That is, - the call to steady_timer::wait() - will not return until the timer has expired, 5 seconds after it was created - (i.e. not from when the wait starts). -

-

- A timer is always in one of two states: "expired" or "not - expired". If the steady_timer::wait() - function is called on an expired timer, it will return immediately. -

-
  t.wait();
-
-

- Finally we print the obligatory "Hello, world!" message - to show when the timer has expired. -

-
  std::cout << "Hello, world!" << std::endl;
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Next: Timer.2 - Using a timer asynchronously -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1/src.html deleted file mode 100644 index 773ade9..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer1/src.html +++ /dev/null @@ -1,65 +0,0 @@ - - - -Source listing for Timer.1 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <iostream>
-#include <asio.hpp>
-
-int main()
-{
-  asio::io_context io;
-
-  asio::steady_timer t(io, asio::chrono::seconds(5));
-  t.wait();
-
-  std::cout << "Hello, world!" << std::endl;
-
-  return 0;
-}
-
-

- Return to Timer.1 - Using a timer - synchronously -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2.html deleted file mode 100644 index 0182c41..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2.html +++ /dev/null @@ -1,113 +0,0 @@ - - - -Timer.2 - Using a timer asynchronously - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial program demonstrates how to use asio's asynchronous callback - functionality by modifying the program from tutorial Timer.1 to perform an - asynchronous wait on the timer. -

-
#include <iostream>
-#include <asio.hpp>
-
-

- Using asio's asynchronous functionality means having a callback function - that will be called when an asynchronous operation completes. In this program - we define a function called print to be called when the asynchronous - wait finishes. -

-
void print(const asio::error_code& /*e*/)
-{
-  std::cout << "Hello, world!" << std::endl;
-}
-
-int main()
-{
-  asio::io_context io;
-
-  asio::steady_timer t(io, asio::chrono::seconds(5));
-
-

- Next, instead of doing a blocking wait as in tutorial Timer.1, we call the - steady_timer::async_wait() - function to perform an asynchronous wait. When calling this function we pass - the print callback handler that was defined above. -

-
  t.async_wait(&print);
-
-

- Finally, we must call the io_context::run() - member function on the io_context object. -

-

- The asio library provides a guarantee that callback handlers will only be - called from threads that are currently calling io_context::run(). - Therefore unless the io_context::run() - function is called the callback for the asynchronous wait completion will - never be invoked. -

-

- The io_context::run() - function will also continue to run while there is still "work" - to do. In this example, the work is the asynchronous wait on the timer, so - the call will not return until the timer has expired and the callback has - completed. -

-

- It is important to remember to give the io_context some work to do before - calling io_context::run(). - For example, if we had omitted the above call to steady_timer::async_wait(), - the io_context would not have had any work to do, and consequently io_context::run() would have - returned immediately. -

-
  io.run();
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Timer.1 - Using a timer - synchronously -

-

- Next: Timer.3 - Binding arguments - to a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2/src.html deleted file mode 100644 index 352cccd..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer2/src.html +++ /dev/null @@ -1,70 +0,0 @@ - - - -Source listing for Timer.2 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <iostream>
-#include <asio.hpp>
-
-void print(const asio::error_code& /*e*/)
-{
-  std::cout << "Hello, world!" << std::endl;
-}
-
-int main()
-{
-  asio::io_context io;
-
-  asio::steady_timer t(io, asio::chrono::seconds(5));
-  t.async_wait(&print);
-
-  io.run();
-
-  return 0;
-}
-
-

- Return to Timer.2 - Using a timer - asynchronously -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3.html deleted file mode 100644 index b57d883..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3.html +++ /dev/null @@ -1,159 +0,0 @@ - - - -Timer.3 - Binding arguments to a handler - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In this tutorial we will modify the program from tutorial Timer.2 so that - the timer fires once a second. This will show how to pass additional parameters - to your handler function. -

-
#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-

- To implement a repeating timer using asio you need to change the timer's - expiry time in your callback function, and to then start a new asynchronous - wait. Obviously this means that the callback function will need to be able - to access the timer object. To this end we add two new parameters to the - print function: -

-
    -
  • - A pointer to a timer object. -
  • -
  • - A counter so that we can stop the program when the timer fires for the - sixth time. -
  • -
-
void print(const asio::error_code& /*e*/,
-    asio::steady_timer* t, int* count)
-{
-
-

- As mentioned above, this tutorial program uses a counter to stop running - when the timer fires for the sixth time. However you will observe that there - is no explicit call to ask the io_context to stop. Recall that in tutorial - Timer.2 we learnt that the io_context::run() - function completes when there is no more "work" to do. By not starting - a new asynchronous wait on the timer when count reaches 5, the - io_context will run out of work and stop running. -

-
  if (*count < 5)
-  {
-    std::cout << *count << std::endl;
-    ++(*count);
-
-

- Next we move the expiry time for the timer along by one second from the previous - expiry time. By calculating the new expiry time relative to the old, we can - ensure that the timer does not drift away from the whole-second mark due - to any delays in processing the handler. -

-
    t->expires_at(t->expiry() + asio::chrono::seconds(1));
-
-

- Then we start a new asynchronous wait on the timer. As you can see, the - boost::bind function is used - to associate the extra parameters with your callback handler. The steady_timer::async_wait() - function expects a handler function (or function object) with the signature - void(const asio::error_code&). Binding the additional parameters - converts your print function into a function object that matches - the signature correctly. -

-

- See the Boost.Bind - documentation for more information on how to use boost::bind - . -

-

- In this example, the asio::placeholders::error argument to boost::bind - is a named placeholder for the error object passed to the handler. When initiating - the asynchronous operation, and if using boost::bind - , you must specify only the arguments that match the handler's parameter - list. In tutorial Timer.4 you will see that this placeholder may be elided - if the parameter is not needed by the callback handler. -

-
    t->async_wait(boost::bind(print,
-          asio::placeholders::error, t, count));
-  }
-}
-
-int main()
-{
-  asio::io_context io;
-
-

- A new count variable is added so that we can stop the program - when the timer fires for the sixth time. -

-
  int count = 0;
-  asio::steady_timer t(io, asio::chrono::seconds(1));
-
-

- As in Step 4, when making the call to steady_timer::async_wait() - from main we bind the additional parameters needed for the - print function. -

-
  t.async_wait(boost::bind(print,
-        asio::placeholders::error, &t, &count));
-
-  io.run();
-
-

- Finally, just to prove that the count variable was being used - in the print handler function, we will print out its new value. -

-
  std::cout << "Final count is " << count << std::endl;
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Timer.2 - Using a timer - asynchronously -

-

- Next: Timer.4 - Using a member function - as a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3/src.html deleted file mode 100644 index 9049591..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer3/src.html +++ /dev/null @@ -1,84 +0,0 @@ - - - -Source listing for Timer.3 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-void print(const asio::error_code& /*e*/,
-    asio::steady_timer* t, int* count)
-{
-  if (*count < 5)
-  {
-    std::cout << *count << std::endl;
-    ++(*count);
-
-    t->expires_at(t->expiry() + asio::chrono::seconds(1));
-    t->async_wait(boost::bind(print,
-          asio::placeholders::error, t, count));
-  }
-}
-
-int main()
-{
-  asio::io_context io;
-
-  int count = 0;
-  asio::steady_timer t(io, asio::chrono::seconds(1));
-  t.async_wait(boost::bind(print,
-        asio::placeholders::error, &t, &count));
-
-  io.run();
-
-  std::cout << "Final count is " << count << std::endl;
-
-  return 0;
-}
-
-

- Return to Timer.3 - Binding arguments - to a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4.html deleted file mode 100644 index 1f9b0a2..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4.html +++ /dev/null @@ -1,139 +0,0 @@ - - - -Timer.4 - Using a member function as a handler - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- In this tutorial we will see how to use a class member function as a callback - handler. The program should execute identically to the tutorial program from - tutorial Timer.3. -

-
#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-

- Instead of defining a free function print as the callback handler, - as we did in the earlier tutorial programs, we now define a class called - printer. -

-
class printer
-{
-public:
-
-

- The constructor of this class will take a reference to the io_context object - and use it when initialising the timer_ member. The counter - used to shut down the program is now also a member of the class. -

-
  printer(asio::io_context& io)
-    : timer_(io, asio::chrono::seconds(1)),
-      count_(0)
-  {
-
-

- The boost::bind function - works just as well with class member functions as with free functions. Since - all non-static class member functions have an implicit this - parameter, we need to bind this to the function. As in tutorial - Timer.3, boost::bind converts - our callback handler (now a member function) into a function object that - can be invoked as though it has the signature void(const asio::error_code&). -

-

- You will note that the asio::placeholders::error placeholder is not specified - here, as the print member function does not accept an error - object as a parameter. -

-
    timer_.async_wait(boost::bind(&printer::print, this));
-  }
-
-

- In the class destructor we will print out the final value of the counter. -

-
  ~printer()
-  {
-    std::cout << "Final count is " << count_ << std::endl;
-  }
-
-

- The print member function is very similar to the print - function from tutorial Timer.3, except that it now operates on the class - data members instead of having the timer and counter passed in as parameters. -

-
  void print()
-  {
-    if (count_ < 5)
-    {
-      std::cout << count_ << std::endl;
-      ++count_;
-
-      timer_.expires_at(timer_.expiry() + asio::chrono::seconds(1));
-      timer_.async_wait(boost::bind(&printer::print, this));
-    }
-  }
-
-private:
-  asio::steady_timer timer_;
-  int count_;
-};
-
-

- The main function is much simpler than before, as it now declares - a local printer object before running the io_context as normal. -

-
int main()
-{
-  asio::io_context io;
-  printer p(io);
-  io.run();
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Timer.3 - Binding arguments - to a handler -

-

- Next: Timer.5 - Synchronising handlers - in multithreaded programs -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4/src.html deleted file mode 100644 index 22bdd9f..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer4/src.html +++ /dev/null @@ -1,95 +0,0 @@ - - - -Source listing for Timer.4 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-class printer
-{
-public:
-  printer(asio::io_context& io)
-    : timer_(io, asio::chrono::seconds(1)),
-      count_(0)
-  {
-    timer_.async_wait(boost::bind(&printer::print, this));
-  }
-
-  ~printer()
-  {
-    std::cout << "Final count is " << count_ << std::endl;
-  }
-
-  void print()
-  {
-    if (count_ < 5)
-    {
-      std::cout << count_ << std::endl;
-      ++count_;
-
-      timer_.expires_at(timer_.expiry() + asio::chrono::seconds(1));
-      timer_.async_wait(boost::bind(&printer::print, this));
-    }
-  }
-
-private:
-  asio::steady_timer timer_;
-  int count_;
-};
-
-int main()
-{
-  asio::io_context io;
-  printer p(io);
-  io.run();
-
-  return 0;
-}
-
-

- Return to Timer.4 - Using a member - function as a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5.html deleted file mode 100644 index 0dfa8e9..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5.html +++ /dev/null @@ -1,199 +0,0 @@ - - - -Timer.5 - Synchronising handlers in multithreaded programs - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- This tutorial demonstrates the use of the io_context::strand - class to synchronise callback handlers in a multithreaded program. -

-

- The previous four tutorials avoided the issue of handler synchronisation - by calling the io_context::run() - function from one thread only. As you already know, the asio library provides - a guarantee that callback handlers will only be called from threads that - are currently calling io_context::run(). - Consequently, calling io_context::run() - from only one thread ensures that callback handlers cannot run concurrently. -

-

- The single threaded approach is usually the best place to start when developing - applications using asio. The downside is the limitations it places on programs, - particularly servers, including: -

-
    -
  • - Poor responsiveness when handlers can take a long time to complete. -
  • -
  • - An inability to scale on multiprocessor systems. -
  • -
-

- If you find yourself running into these limitations, an alternative approach - is to have a pool of threads calling io_context::run(). - However, as this allows handlers to execute concurrently, we need a method - of synchronisation when handlers might be accessing a shared, thread-unsafe - resource. -

-
#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-

- We start by defining a class called printer, similar to the - class in the previous tutorial. This class will extend the previous tutorial - by running two timers in parallel. -

-
class printer
-{
-public:
-
-

- In addition to initialising a pair of asio::steady_timer members, the constructor - initialises the strand_ member, an object of type io_context::strand. -

-

- An io_context::strand - is an executor that guarantees that, for those handlers that are dispatched - through it, an executing handler will be allowed to complete before the next - one is started. This is guaranteed irrespective of the number of threads - that are calling io_context::run(). - Of course, the handlers may still execute concurrently with other handlers - that were not dispatched through an io_context::strand, - or were dispatched through a different io_context::strand - object. -

-
  printer(asio::io_context& io)
-    : strand_(io),
-      timer1_(io, asio::chrono::seconds(1)),
-      timer2_(io, asio::chrono::seconds(1)),
-      count_(0)
-  {
-
-

- When initiating the asynchronous operations, each callback handler is "bound" - to an io_context::strand - object. The asio::io_context::strand::bind_executor() function returns a - new handler that automatically dispatches its contained handler through the - io_context::strand - object. By binding the handlers to the same io_context::strand, - we are ensuring that they cannot execute concurrently. -

-
    timer1_.async_wait(asio::bind_executor(strand_,
-          boost::bind(&printer::print1, this)));
-
-    timer2_.async_wait(asio::bind_executor(strand_,
-          boost::bind(&printer::print2, this)));
-  }
-
-  ~printer()
-  {
-    std::cout << "Final count is " << count_ << std::endl;
-  }
-
-

- In a multithreaded program, the handlers for asynchronous operations should - be synchronised if they access shared resources. In this tutorial, the shared - resources used by the handlers (print1 and print2) - are std::cout and the count_ data member. -

-
  void print1()
-  {
-    if (count_ < 10)
-    {
-      std::cout << "Timer 1: " << count_ << std::endl;
-      ++count_;
-
-      timer1_.expires_at(timer1_.expiry() + asio::chrono::seconds(1));
-
-      timer1_.async_wait(asio::bind_executor(strand_,
-            boost::bind(&printer::print1, this)));
-    }
-  }
-
-  void print2()
-  {
-    if (count_ < 10)
-    {
-      std::cout << "Timer 2: " << count_ << std::endl;
-      ++count_;
-
-      timer2_.expires_at(timer2_.expiry() + asio::chrono::seconds(1));
-
-      timer2_.async_wait(asio::bind_executor(strand_,
-            boost::bind(&printer::print2, this)));
-    }
-  }
-
-private:
-  asio::io_context::strand strand_;
-  asio::steady_timer timer1_;
-  asio::steady_timer timer2_;
-  int count_;
-};
-
-

- The main function now causes io_context::run() - to be called from two threads: the main thread and one additional thread. - This is accomplished using an thread - object. -

-

- Just as it would with a call from a single thread, concurrent calls to io_context::run() will continue - to execute while there is "work" left to do. The background thread - will not exit until all asynchronous operations have completed. -

-
int main()
-{
-  asio::io_context io;
-  printer p(io);
-  asio::thread t(boost::bind(&asio::io_context::run, &io));
-  io.run();
-  t.join();
-
-  return 0;
-}
-
-

- See the full source listing -

-

- Return to the tutorial index -

-

- Previous: Timer.4 - Using a member - function as a handler -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5/src.html b/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5/src.html deleted file mode 100644 index 8f9a233..0000000 --- a/Sources/Vendor/asio/doc/asio/tutorial/tuttimer5/src.html +++ /dev/null @@ -1,121 +0,0 @@ - - - -Source listing for Timer.5 - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -
//
-// timer.cpp
-// ~~~~~~~~~
-//
-// Copyright (c) 2003-2018 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)
-//
-
-#include <iostream>
-#include <asio.hpp>
-#include <boost/bind.hpp>
-
-class printer
-{
-public:
-  printer(asio::io_context& io)
-    : strand_(io),
-      timer1_(io, asio::chrono::seconds(1)),
-      timer2_(io, asio::chrono::seconds(1)),
-      count_(0)
-  {
-    timer1_.async_wait(asio::bind_executor(strand_,
-          boost::bind(&printer::print1, this)));
-
-    timer2_.async_wait(asio::bind_executor(strand_,
-          boost::bind(&printer::print2, this)));
-  }
-
-  ~printer()
-  {
-    std::cout << "Final count is " << count_ << std::endl;
-  }
-
-  void print1()
-  {
-    if (count_ < 10)
-    {
-      std::cout << "Timer 1: " << count_ << std::endl;
-      ++count_;
-
-      timer1_.expires_at(timer1_.expiry() + asio::chrono::seconds(1));
-
-      timer1_.async_wait(asio::bind_executor(strand_,
-            boost::bind(&printer::print1, this)));
-    }
-  }
-
-  void print2()
-  {
-    if (count_ < 10)
-    {
-      std::cout << "Timer 2: " << count_ << std::endl;
-      ++count_;
-
-      timer2_.expires_at(timer2_.expiry() + asio::chrono::seconds(1));
-
-      timer2_.async_wait(asio::bind_executor(strand_,
-            boost::bind(&printer::print2, this)));
-    }
-  }
-
-private:
-  asio::io_context::strand strand_;
-  asio::steady_timer timer1_;
-  asio::steady_timer timer2_;
-  int count_;
-};
-
-int main()
-{
-  asio::io_context io;
-  printer p(io);
-  asio::thread t(boost::bind(&asio::io_context::run, &io));
-  io.run();
-  t.join();
-
-  return 0;
-}
-
-

- Return to Timer.5 - Synchronising - handlers in multithreaded programs -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/asio/using.html b/Sources/Vendor/asio/doc/asio/using.html deleted file mode 100644 index 2e83b25..0000000 --- a/Sources/Vendor/asio/doc/asio/using.html +++ /dev/null @@ -1,564 +0,0 @@ - - - -Using Asio - - - - - - - - -
asio C++ library
-
-
-PrevUpHomeNext -
-
- -

- - Supported - Platforms -

-

- The following platform and compiler combinations are regularly tested: -

-
    -
  • - Linux using g++ 4.1 or later -
  • -
  • - Linux using clang 3.2 or later -
  • -
  • - FreeBSD using g++ 4.1 or later -
  • -
  • - macOS using Xcode 8 or later -
  • -
  • - Win32 using Visual C++ 9.0 or later -
  • -
  • - Win32 using g++ 4.1 or later (MinGW) -
  • -
  • - Win64 using Visual C++ 9.0 or later -
  • -
-

- The following platforms may also work: -

-
    -
  • - AIX -
  • -
  • - Android -
  • -
  • - HP-UX -
  • -
  • - iOS -
  • -
  • - NetBSD -
  • -
  • - OpenBSD -
  • -
  • - QNX Neutrino -
  • -
  • - Solaris -
  • -
  • - Tru64 -
  • -
  • - Win32 using Cygwin. (__USE_W32_SOCKETS must be defined.) -
  • -
-

- - Dependencies -

-

- The following libraries must be available in order to link programs that use - Asio: -

-
    -
  • - Boost.Coroutine (optional) if you use spawn() - to launch coroutines. -
  • -
  • - Boost.Regex (optional) if you use any of the read_until() - or async_read_until() - overloads that take a boost::regex parameter. -
  • -
  • - OpenSSL (optional) if you use - Asio's SSL support. -
  • -
-

- Furthermore, some of the examples also require Boost.Date_Time or Boost.Serialization - libraries. -

-
- - - - - -
[Note]Note

- With MSVC or Borland C++ you may want to add -DBOOST_DATE_TIME_NO_LIB - and -DBOOST_REGEX_NO_LIB to your project settings to disable - autolinking of the Boost.Date_Time and Boost.Regex libraries respectively. - Alternatively, you may choose to build these libraries and link to them. -

-

- - Optional - separate compilation -

-

- By default, Asio is a header-only library. However, some developers may prefer - to build Asio using separately compiled source code. To do this, add #include - <asio/impl/src.hpp> to one (and only one) source file in a program, - then build the program with ASIO_SEPARATE_COMPILATION defined - in the project/compiler settings. Alternatively, ASIO_DYN_LINK - may be defined to build a separately-compiled Asio as part of a shared library. -

-

- If using Asio's SSL support, you will also need to add #include <asio/ssl/impl/src.hpp>. -

-

- - Building - the tests and examples on Linux or UNIX -

-

- If the boost directory (e.g. the directory called boost_1_34_1) - is in the same directory as the asio source kit, then you may configure asio - by simply going: -

-
./configure
-
-

- in the root directory of the asio source kit. Note that configure will always - use the most recent boost version it knows about (i.e. 1.34.1) in preference - to earlier versions, if there is more than one version present. -

-

- If the boost directory is in some other location, then you need to specify - this directory when running configure: -

-
./configure --with-boost=path_to_boost
-
-

- When specifying the boost directory in this way you should ensure that you - use an absolute path. -

-

- To build the examples, simply run make in the root directory of - the asio source kit. To also build and run the unit tests, to confirm that - asio is working correctly, run make check. -

-

- - Building - the tests and examples with MSVC -

-

- To build using the MSVC 9.0 (or later) command line compiler, perform the following - steps in a Command Prompt window: -

-
    -
  • - If you are using a version of boost other than 1.34.1, or if the boost - directory (i.e. the directory called boost_1_34_1) is not - in the same directory as the asio source kit, then specify the location - of boost by running a command similar to set BOOSTDIR=path_to_boost. - Ensure that you specify an absolute path. -
  • -
  • - Change to the asio src directory. -
  • -
  • - Execute the command nmake -f Makefile.msc. -
  • -
  • - Execute the command nmake -f Makefile.msc check to run a suite - of tests to confirm that asio is working correctly. -
  • -
-

- - Building - the tests and examples with MinGW -

-

- To build using the MinGW g++ compiler from the command line, perform the following - steps in a Command Prompt window: -

-
    -
  • - If you are using a version of boost other than 1.34.1, or if the boost - directory (i.e. the directory called boost_1_34_1) is not - in the same directory as the asio source kit, then specify the location - of boost by running a command similar to set BOOSTDIR=path_to_boost. - Ensure that you specify an absolute path using forward slashes - (i.e. c:/projects/boost_1_34_1 rather than c:\projects\boost_1_34_1). -
  • -
  • - Change to the asio src directory. -
  • -
  • - Execute the command make -f Makefile.mgw. -
  • -
  • - Execute the command make -f Makefile.mgw check to run a suite - of tests to confirm that asio is working correctly. -
  • -
-
- - - - - -
[Note]Note

- The above instructions do not work when building inside MSYS. If you want - to build using MSYS, you should use export rather than - set to specify the location of boost. -

-

- - Macros -

-

- The macros listed in the table below may be used to control the behaviour of - Asio. -

-
---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Macro -

-
-

- Description -

-
-

- ASIO_ENABLE_BUFFER_DEBUGGING -

-
-

- Enables Asio's buffer debugging support, which can help identify - when invalid buffers are used in read or write operations (e.g. if - a std::string object being written is destroyed before the write - operation completes). -

-

- When using Microsoft Visual C++ 11.0 or later, this macro is defined - automatically if the compiler's iterator debugging support is enabled, - unless ASIO_DISABLE_BUFFER_DEBUGGING has been defined. -

-

- When using g++, this macro is defined automatically if standard library - debugging is enabled (_GLIBCXX_DEBUG is defined), unless - ASIO_DISABLE_BUFFER_DEBUGGING has been defined. -

-
-

- ASIO_DISABLE_BUFFER_DEBUGGING -

-
-

- Explictly disables Asio's buffer debugging support. -

-
-

- ASIO_DISABLE_DEV_POLL -

-
-

- Explicitly disables /dev/poll support on Solaris, - forcing the use of a select-based implementation. -

-
-

- ASIO_DISABLE_EPOLL -

-
-

- Explicitly disables epoll support on Linux, forcing - the use of a select-based implementation. -

-
-

- ASIO_DISABLE_EVENTFD -

-
-

- Explicitly disables eventfd support on Linux, forcing - the use of a pipe to interrupt blocked epoll/select system calls. -

-
-

- ASIO_DISABLE_KQUEUE -

-
-

- Explicitly disables kqueue support on macOS and BSD - variants, forcing the use of a select-based implementation. -

-
-

- ASIO_DISABLE_IOCP -

-
-

- Explicitly disables I/O completion ports support on Windows, forcing - the use of a select-based implementation. -

-
-

- ASIO_DISABLE_THREADS -

-
-

- Explicitly disables Asio's threading support, independent of whether - or not Boost supports threads. -

-
-

- ASIO_NO_WIN32_LEAN_AND_MEAN -

-
-

- By default, Asio will automatically define WIN32_LEAN_AND_MEAN - when compiling for Windows, to minimise the number of Windows SDK - header files and features that are included. The presence of ASIO_NO_WIN32_LEAN_AND_MEAN - prevents WIN32_LEAN_AND_MEAN from being defined. -

-
-

- ASIO_NO_NOMINMAX -

-
-

- By default, Asio will automatically define NOMINMAX - when compiling for Windows, to suppress the definition of the min() - and max() macros. The presence of ASIO_NO_NOMINMAX - prevents NOMINMAX from being defined. -

-
-

- ASIO_NO_DEFAULT_LINKED_LIBS -

-
-

- When compiling for Windows using Microsoft Visual C++ or Borland - C++, Asio will automatically link in the necessary Windows SDK libraries - for sockets support (i.e. ws2_32.lib and mswsock.lib, - or ws2.lib when building for Windows CE). The - ASIO_NO_DEFAULT_LINKED_LIBS macro prevents these libraries - from being linked. -

-
-

- ASIO_ENABLE_CANCELIO -

-
-

- Enables use of the CancelIo function on older versions - of Windows. If not enabled, calls to cancel() on a socket - object will always fail with asio::error::operation_not_supported - when run on Windows XP, Windows Server 2003, and earlier versions - of Windows. When running on Windows Vista, Windows Server 2008, and - later, the CancelIoEx function is always used. -

-

- The CancelIo function has two issues that should be - considered before enabling its use: -

-

- * It will only cancel asynchronous operations that were initiated - in the current thread. -

-

- * It can appear to complete without error, but the request to cancel - the unfinished operations may be silently ignored by the operating - system. Whether it works or not seems to depend on the drivers that - are installed. -

-

- For portable cancellation, consider using one of the following alternatives: -

-

- * Disable asio's I/O completion port backend by defining ASIO_DISABLE_IOCP. -

-

- * Use the socket object's close() function to simultaneously cancel - the outstanding operations and close the socket. -

-
-

- ASIO_NO_TYPEID -

-
-

- Disables uses of the typeid operator in asio. Defined - automatically if BOOST_NO_TYPEID is defined. -

-
-

- ASIO_HASH_MAP_BUCKETS -

-
-

- Determines the number of buckets in asio's internal hash_map - objects. The value should be a comma separated list of prime numbers, - in ascending order. The hash_map implementation will - automatically increase the number of buckets as the number of elements - in the map increases. -

-

- Some examples: -

-

- * Defining ASIO_HASH_MAP_BUCKETS to 1021 - means that the hash_map objects will always contain - 1021 buckets, irrespective of the number of elements in the map. -

-

- * Defining ASIO_HASH_MAP_BUCKETS to 53,389,1543 - means that the hash_map objects will initially contain - 53 buckets. The number of buckets will be increased to 389 and then - 1543 as elements are added to the map. -

-
-

- ASIO_ENABLE_OLD_SERVICES -

-
-

- The service template parameters, and the corresponding classes, are - disabled by default. For example, instead of basic_socket<Protocol, - SocketService> we now have simply basic_socket<Protocol>. - The old interface can be enabled by defining the ASIO_ENABLE_OLD_SERVICES - macro. -

-
-

- - Mailing - List -

-

- A mailing list specifically for Asio may be found on SourceForge.net. - Newsgroup access is provided via Gmane. -

-

- - Wiki -

-

- Users are encouraged to share examples, tips and FAQs on the Asio wiki, which - is located at http://think-async.com/Asio/. -

-
- - - -
-
-
-PrevUpHomeNext -
- - diff --git a/Sources/Vendor/asio/doc/async_op1.png b/Sources/Vendor/asio/doc/async_op1.png deleted file mode 100644 index 464bc90..0000000 Binary files a/Sources/Vendor/asio/doc/async_op1.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/async_op2.png b/Sources/Vendor/asio/doc/async_op2.png deleted file mode 100644 index ba256ec..0000000 Binary files a/Sources/Vendor/asio/doc/async_op2.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/blank.png b/Sources/Vendor/asio/doc/blank.png deleted file mode 100644 index 764bf4f..0000000 Binary files a/Sources/Vendor/asio/doc/blank.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/boostbook.css b/Sources/Vendor/asio/doc/boostbook.css deleted file mode 100644 index 2831765..0000000 --- a/Sources/Vendor/asio/doc/boostbook.css +++ /dev/null @@ -1,789 +0,0 @@ - -/*============================================================================= -Copyright (c) 2004 Joel de Guzman -http://spirit.sourceforge.net/ - -Copyright 2013 Niall Douglas additions for colors and alignment. -Copyright 2013 Paul A. Bristow additions for more colors and alignments. -Copyright 2017 Tom Westerhout font fixes to support Sphinx - -Distributed under the Boost Software License, Version 1.0. (See accompany- -ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -=============================================================================*/ - -/*============================================================================= -Body defaults -=============================================================================*/ - - body - { - margin: 1em; - font-size: 16px; - font-family: sans-serif; - } - -/*============================================================================= -Paragraphs -=============================================================================*/ - - p, div.document, div.footer - { - text-align: left; - font-size: 10pt; - line-height: 1.15; - } - -/*============================================================================= -Program listings -=============================================================================*/ - - /* Code on paragraphs */ - p tt.computeroutput - { - font-size: 9pt; - } - - pre.synopsis - { - font-size: 9pt; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.5pc 0.5pc; - } - - div.highlight, - .programlisting, - .screen - { - font-size: 9pt; - display: block; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.5pc 0.5pc; - } - - /* Program listings in tables don't get borders */ - td .programlisting, - td .screen - { - margin: 0pc 0pc 0pc 0pc; - padding: 0pc 0pc 0pc 0pc; - } - -/*============================================================================= -Headings -=============================================================================*/ - - h1, h2, h3, h4, h5, h6 - { - text-align: left; - margin: 1em 0em 0.5em 0em; - font-weight: bold; - } - - h1 { font-size: 140%; } - h2 { font-weight: bold; font-size: 140%; } - h3 { font-weight: bold; font-size: 130%; } - h4 { font-weight: bold; font-size: 120%; } - h5 { font-weight: normal; font-style: italic; font-size: 110%; } - h6 { font-weight: normal; font-style: italic; font-size: 100%; } - - /* Top page titles */ - title, - h1.title, - h2.title - h3.title, - h4.title, - h5.title, - h6.title, - .refentrytitle - { - font-weight: bold; - margin-bottom: 1pc; - } - - h1.title { font-size: 140% } - h2.title { font-size: 140% } - h3.title { font-size: 130% } - h4.title { font-size: 120% } - h5.title { font-size: 110% } - h6.title { font-size: 100% } - - .section h1 - { - margin: 0em 0em 0.5em 0em; - font-size: 140%; - } - - .section h2 { font-size: 140% } - .section h3 { font-size: 130% } - .section h4 { font-size: 120% } - .section h5 { font-size: 110% } - .section h6 { font-size: 100% } - - /* Code on titles */ - h1 tt.computeroutput { font-size: 140% } - h2 tt.computeroutput { font-size: 140% } - h3 tt.computeroutput { font-size: 130% } - h4 tt.computeroutput { font-size: 130% } - h5 tt.computeroutput { font-size: 130% } - h6 tt.computeroutput { font-size: 130% } - - -/*============================================================================= -Author -=============================================================================*/ - - h3.author - { - font-size: 100% - } - -/*============================================================================= -Lists -=============================================================================*/ - - li - { - font-size: 10pt; - line-height: 1.3; - } - - /* Unordered lists */ - ul - { - text-align: left; - } - - /* Ordered lists */ - ol - { - text-align: left; - } - -/*============================================================================= -Links -=============================================================================*/ - - a - { - text-decoration: none; /* no underline */ - } - - a:hover - { - text-decoration: underline; - } - -/*============================================================================= -Spirit style navigation -=============================================================================*/ - - .spirit-nav - { - text-align: right; - } - - .spirit-nav a - { - color: white; - padding-left: 0.5em; - } - - .spirit-nav img - { - border-width: 0px; - } - -/*============================================================================= -Copyright footer -=============================================================================*/ - .copyright-footer - { - text-align: right; - font-size: 70%; - } - - .copyright-footer p - { - text-align: right; - font-size: 80%; - } - -/*============================================================================= -Table of contents -=============================================================================*/ - - div.toc - { - margin: 1pc 4% 0pc 4%; - padding: 0.1pc 1pc 0.1pc 1pc; - font-size: 80%; - line-height: 1.15; - } - - .boost-toc - { - float: right; - padding: 0.5pc; - } - - /* Code on toc */ - .toc .computeroutput { font-size: 120% } - - /* No margin on nested menus */ - - .toc dl dl { margin: 0; } - -/*============================================================================= -Tables -=============================================================================*/ - - .table-title, - div.table p.title - { - margin-left: 4%; - padding-right: 0.5em; - padding-left: 0.5em; - } - - .informaltable table, - .table table - { - width: 92%; - margin-left: 4%; - margin-right: 4%; - } - - div.informaltable table, - div.table table - { - padding: 4px; - } - - /* Table Cells */ - div.informaltable table tr td, - div.table table tr td - { - padding: 0.5em; - text-align: left; - font-size: 9pt; - } - - div.informaltable table tr th, - div.table table tr th - { - padding: 0.5em 0.5em 0.5em 0.5em; - border: 1pt solid white; - font-size: 80%; - } - - table.simplelist - { - width: auto !important; - margin: 0em !important; - padding: 0em !important; - border: none !important; - } - table.simplelist td - { - margin: 0em !important; - padding: 0em !important; - text-align: left !important; - font-size: 9pt !important; - border: none !important; - } - -/*============================================================================= -Suppress margins in tables -=============================================================================*/ - - table th > *:first-child, - table td > *:first-child - { - margin-top: 0; - } - - table th > *:last-child, - table td > *:last-child - { - margin-bottom: 0; - } - -/*============================================================================= -Blurbs -=============================================================================*/ - - div.note, - div.tip, - div.important, - div.caution, - div.warning, - div.blurb, - p.blurb - { - font-size: 9pt; /* A little bit smaller than the main text */ - line-height: 1.2; - display: block; - margin: 1pc 4% 0pc 4%; - padding: 0.5pc 0.5pc 0.5pc 0.5pc; - } - - div.blurb img, - p.blurb img - { - padding: 1pt; - } - -/*============================================================================= -Variable Lists -=============================================================================*/ - - div.variablelist - { - margin: 1em 0; - } - - /* Make the terms in definition lists bold */ - div.variablelist dl dt, - span.term - { - font-weight: bold; - font-size: 10pt; - } - - div.variablelist table tbody tr td - { - text-align: left; - vertical-align: top; - padding: 0em 2em 0em 0em; - font-size: 10pt; - margin: 0em 0em 0.5em 0em; - line-height: 1; - } - - div.variablelist dl dt - { - margin-bottom: 0.2em; - } - - div.variablelist dl dd - { - margin: 0em 0em 0.5em 2em; - font-size: 10pt; - } - - div.variablelist table tbody tr td p, - div.variablelist dl dd p - { - margin: 0em 0em 0.5em 0em; - line-height: 1; - } - -/*============================================================================= -Misc -=============================================================================*/ - - /* Title of books and articles in bibliographies */ - span.title - { - font-style: italic; - } - - span.underline - { - text-decoration: underline; - } - - span.strikethrough - { - text-decoration: line-through; - } - - /* Copyright, Legal Notice */ - div div.legalnotice p - { - text-align: left - } - -/*============================================================================= -Colors -=============================================================================*/ - - @media screen - { - body { - background-color: #FFFFFF; - color: #000000; - } - - /* Syntax Highlighting */ - .property, - .highlight .k, - .highlight .kc, - .highlight .kd, - .highlight .kn, - .highlight .kp, - .highlight .kr, - .highlight .kt, - .keyword { color: #0000AA; } - - .highlight .n, - .highlight .na, - .highlight .nb, - .highlight .bp, - .highlight .nc, - .highlight .no, - .highlight .nd, - .highlight .ni, - .highlight .ne, - .highlight .nf, - .highlight .py, - .highlight .nl, - .highlight .nn, - .highlight .nx, - .highlight .nt, - .highlight .nv, - .highlight .vc, - .highlight .vg, - .highlight .vi, - .identifier { color: #000000; } - - .special { color: #707070; } - - .highlight .cp, - .preprocessor { color: #402080; } - - .highlight .sc - .char { color: teal; } - - .highlight .c, - .highlight .ch, - .highlight .cm, - .highlight .cp, - .highlight .cpf, - .highlight .c1, - .highlight .cs, - .highlight .sd, - .highlight .sh, - .comment { color: #800000; } - - .highlight .s, - .highlight .sa, - .highlight .sb, - .highlight .dl, - .highlight .s2, - .highlight .se, - .highlight .si, - .highlight .sx, - .highlight .sr, - .highlight .s1, - .highlight .ss, - .string { color: teal; } - - .highlight .m, - .highlight .mf, - .highlight .mh, - .highlight .mi, - .highlight .mo, - .number { color: teal; } - - .highlight, - .white_bkd { background-color: #FFFFFF; } - - .highlight .hll, - .dk_grey_bkd { background-color: #999999; } - - /* Links */ - a, a .keyword, a .identifier, a .special, a .preprocessor - a .char, a .comment, a .string, a .number - { - color: #005a9c; - } - - a:visited, a:visited .keyword, a:visited .identifier, - a:visited .special, a:visited .preprocessor a:visited .char, - a:visited .comment, a:visited .string, a:visited .number - { - color: #9c5a9c; - } - - h1 a, h2 a, h3 a, h4 a, h5 a, h6 a, - h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover, - h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited - { - text-decoration: none; /* no underline */ - color: #000000; - } - - /* Copyright, Legal Notice */ - .copyright - { - color: #666666; - font-size: small; - } - - div div.legalnotice p - { - color: #666666; - } - - /* Program listing */ - pre.synopsis - { - border: 1px solid #DCDCDC; - } - - div.highlight, - .programlisting, - .screen - { - border: 1px solid #DCDCDC; - } - - td .programlisting, - td .screen - { - border: 0px solid #DCDCDC; - } - - /* Blurbs */ - div.note, - div.tip, - div.important, - div.caution, - div.warning, - div.blurb, - p.blurb - { - border: 1px solid #DCDCDC; - } - - /* Table of contents */ - div.toc - { - border: 1px solid #DCDCDC; - } - - /* Tables */ - div.informaltable table tr td, - div.table table tr td - { - border: 1px solid #DCDCDC; - } - - div.informaltable table tr th, - div.table table tr th - { - background-color: #F0F0F0; - border: 1px solid #DCDCDC; - } - - .copyright-footer - { - color: #8F8F8F; - } - - /* Misc */ - span.highlight - { - color: #00A000; - } - } - - @media print - { - /* Links */ - a - { - color: black; - } - - a:visited - { - color: black; - } - - .spirit-nav - { - display: none; - } - - /* Program listing */ - pre.synopsis - { - border: 1px solid gray; - } - - div.highlight, - .programlisting, - .screen - { - border: 1px solid gray; - } - - td .programlisting, - td .screen - { - border: 0px solid #DCDCDC; - } - - /* Table of contents */ - div.toc - { - border: 1px solid gray; - } - - .informaltable table, - .table table - { - border: 1px solid gray; - border-collapse: collapse; - } - - /* Tables */ - div.informaltable table tr td, - div.table table tr td - { - border: 1px solid gray; - } - - div.informaltable table tr th, - div.table table tr th - { - border: 1px solid gray; - } - - table.simplelist tr td - { - border: none !important; - } - - /* Misc */ - span.highlight - { - font-weight: bold; - } - } - -/*============================================================================= -Images -=============================================================================*/ - - span.inlinemediaobject img - { - vertical-align: middle; - } - -/*============================================================================== -Super and Subscript: style so that line spacing isn't effected, see -http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341 -==============================================================================*/ - -sup, -sub { -height: 0; -line-height: 1; -vertical-align: baseline; -position: relative; - -} - -/* For internet explorer: */ - -* html sup, -* html sub { -vertical-align: bottom; -} - -sup { -bottom: 1ex; -} - -sub { -top: .5ex; -} - -/*============================================================================== -Indexes: pretty much the same as the TOC. -==============================================================================*/ - - .index - { - font-size: 80%; - padding-top: 0px; - padding-bottom: 0px; - margin-top: 0px; - margin-bottom: 0px; - margin-left: 0px; - } - - .index ul - { - padding-left: 3em; - } - - .index p - { - padding: 2px; - margin: 2px; - } - - .index-entry-level-0 - { - font-weight: bold; - } - - .index em - { - font-weight: bold; - } - - -/*============================================================================== -Alignment and coloring use 'role' feature, available from Quickbook 1.6 up. -Added from Niall Douglas for role color and alignment. -http://article.gmane.org/gmane.comp.lib.boost.devel/243318 -*/ - -/* Add text alignment (see http://www.w3schools.com/cssref/pr_text_text-align.asp) */ -span.aligncenter -{ - display: inline-block; width: 100%; text-align: center; -} -span.alignright -{ - display: inline-block; width: 100%; text-align: right; -} -/* alignleft is the default. */ -span.alignleft -{ - display: inline-block; width: 100%; text-align: left; -} - -/* alignjustify stretches the word spacing so that each line has equal width -within a chosen fraction of page width (here arbitrarily 20%). -*Not* useful inside table items as the column width remains the total string width. -Nor very useful, except to temporarily restrict the width. -*/ -span.alignjustify -{ - display: inline-block; width: 20%; text-align: justify; -} - -/* Text colors. -Names at http://www.w3.org/TR/2002/WD-css3-color-20020219/ 4.3. X11 color keywords. -Quickbook Usage: [role red Some red text] - -*/ -span.red { inline-block; color: red; } -span.green { color: green; } -span.lime { color: #00FF00; } -span.blue { color: blue; } -span.navy { color: navy; } -span.yellow { color: yellow; } -span.magenta { color: magenta; } -span.indigo { color: #4B0082; } -span.cyan { color: cyan; } -span.purple { color: purple; } -span.gold { color: gold; } -span.silver { color: silver; } /* lighter gray */ -span.gray { color: #808080; } /* light gray */ diff --git a/Sources/Vendor/asio/doc/caution.png b/Sources/Vendor/asio/doc/caution.png deleted file mode 100644 index 5b7809c..0000000 Binary files a/Sources/Vendor/asio/doc/caution.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/draft.png b/Sources/Vendor/asio/doc/draft.png deleted file mode 100644 index 0084708..0000000 Binary files a/Sources/Vendor/asio/doc/draft.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/examples/diffs/allocation/server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/allocation/server.cpp.html deleted file mode 100644 index 37783cb..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/allocation/server.cpp.html +++ /dev/null @@ -1,337 +0,0 @@ - - - - - - - HTML Diff allocation/server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​allocation/​server.​cppsrc/​examples/​cpp11/​allocation/​server.​cpp
1 /​/​1 /​/​
2 /​/​·​server.​cpp2 /​/​·​server.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<cstdlib>12 #include·​<cstdlib>
12 #include·​<iostream>13 #include·​<iostream>
13 #include·​<boost/​aligned_storage.​hpp>14 #include·​<memory>
14 #include·​<boost/​array.​hpp>15 #include·​<type_traits>
15 #include·​<boost/​bind.​hpp>16 #include·​<utility>
16 #include·<boost/​enable_shared_from_th​is.​hpp>
17 #include·<boost/​noncopyable.​hpp>
18 #include·<boost/​shared_ptr.​hpp>
19 #include·​"asio.​hpp"17 #include·​"asio.​hpp"
20 18
21 using·​asio:​:​ip:​:​tcp;​19 using·​asio:​:​ip:​:​tcp;​
22 20
23 /​/​·​Class·​to·​manage·​the·​memory·​to·​be·​used·​for·​handler-​based·​custom·​allocation.​21 /​/​·​Class·​to·​manage·​the·​memory·​to·​be·​used·​for·​handler-​based·​custom·​allocation.​
24 /​/​·​It·​contains·​a·​single·​block·​of·​memory·​which·​may·​be·​returned·​for·​allocation22 /​/​·​It·​contains·​a·​single·​block·​of·​memory·​which·​may·​be·​returned·​for·​allocation
25 /​/​·​requests.​·​If·​the·​memory·​is·​in·​use·​when·​an·​allocation·​request·​is·​made,​·​the23 /​/​·​requests.​·​If·​the·​memory·​is·​in·​use·​when·​an·​allocation·​request·​is·​made,​·​the
26 /​/​·​allocator·​delegates·​allocation·​to·​the·​global·​heap.​24 /​/​·​allocator·​delegates·​allocation·​to·​the·​global·​heap.​
27 class·​handler_memory25 class·​handler_memory
28 ··​:​·​private·​boost:​:​noncopyable
29 {26 {
30 public:​27 public:​
31 ··​handler_memory()​28 ··​handler_memory()​
32 ····​:​·​in_use_(false)​29 ····​:​·​in_use_(false)​
33 ··​{30 ··​{
34 ··​}31 ··​}
35 32
33 ··​handler_memory(const·​handler_memory&)​·​=·​delete;​
34 ··​handler_memory&·​operator=(const·​handler_memory&)​·​=·​delete;​
35
36 ··​void*·​allocate(std:​:​size_t·​size)​36 ··​void*·​allocate(std:​:​size_t·​size)​
37 ··​{37 ··​{
38 ····​if·​(!in_use_·​&&·​size·​<·​storage_.​size)​38 ····​if·​(!in_use_·​&&·​size·​<·sizeof(storage_)​)​
39 ····​{39 ····​{
40 ······​in_use_·​=·​true;​40 ······​in_use_·​=·​true;​
41 ······​return·​storage_.​address()​;​41 ······​return·&storage_;​
42 ····​}42 ····​}
43 ····​else43 ····​else
44 ····​{44 ····​{
45 ······​return·​:​:​operator·​new(size)​;​45 ······​return·​:​:​operator·​new(size)​;​
46 ····​}46 ····​}
47 ··​}47 ··​}
48 48
49 ··​void·​deallocate(void*·​pointer)​49 ··​void·​deallocate(void*·​pointer)​
50 ··​{50 ··​{
51 ····​if·​(pointer·​==·​storage_.​address()​)​51 ····​if·​(pointer·​==·&storage_)​
52 ····​{52 ····​{
53 ······​in_use_·​=·​false;​53 ······​in_use_·​=·​false;​
54 ····​}54 ····​}
55 ····​else55 ····​else
56 ····​{56 ····​{
57 ······​:​:​operator·​delete(pointer)​;​57 ······​:​:​operator·​delete(pointer)​;​
58 ····​}58 ····​}
59 ··​}59 ··​}
60 60
61 private:​61 private:​
62 ··​/​/​·​Storage·​space·​used·​for·​handler-​based·​custom·​memory·​allocation.​62 ··​/​/​·​Storage·​space·​used·​for·​handler-​based·​custom·​memory·​allocation.​
63 ··boost:​:​aligned_storage<1024>​·​storage_;​63 ··typename·std:​:​aligned_storage<1024>​:​:​type·​storage_;​
64 64
65 ··​/​/​·​Whether·​the·​handler-​based·​custom·​allocation·​storage·​has·​been·​used.​65 ··​/​/​·​Whether·​the·​handler-​based·​custom·​allocation·​storage·​has·​been·​used.​
66 ··​bool·​in_use_;​66 ··​bool·​in_use_;​
67 };​67 };​
68 68
69 /​/​·​The·​allocator·​to·​be·​associated·​with·​the·​handler·​objects.​·​This·​allocator·​only69 /​/​·​The·​allocator·​to·​be·​associated·​with·​the·​handler·​objects.​·​This·​allocator·​only
70 /​/​·​needs·​to·​satisfy·​the·​C++11·​minimal·​allocator·​requirements,​·plus·rebind·when70 /​/​·​needs·​to·​satisfy·​the·​C++11·​minimal·​allocator·​requirements.​
71 /​/​·targeting·C++03.​
72 template·​<typename·​T>71 template·​<typename·​T>
73 class·​handler_allocator72 class·​handler_allocator
74 {73 {
75 public:​74 public:​
76 ··typedef·T·​value_type;​75 ··using·​value_type·=·T;​
77 76
78 ··​explicit·​handler_allocator(han​dler_memory&·​mem)​77 ··​explicit·​handler_allocator(han​dler_memory&·​mem)​
79 ····​:​·​memory_(mem)​78 ····​:​·​memory_(mem)​
80 ··​{79 ··​{
81 ··​}80 ··​}
82 81
83 ··​template·​<typename·​U>82 ··​template·​<typename·​U>
84 ··​handler_allocator(con​st·​handler_allocator<U>&​·​other)​83 ··​handler_allocator(con​st·​handler_allocator<U>&​·​other)​·noexcept
85 ····​:​·​memory_(other.​memory_)​84 ····​:​·​memory_(other.​memory_)​
86 ··​{85 ··​{
87 ··​}86 ··​}
88 87
89 ··​template·<typename·U>88 ··bool·operator==(const·handler_allocator&·other)​·const·noexcept
90 ··struct·rebind
91 ··{
92 ····typedef·handler_allocator<U>·other;​
93 ··};​
94
95 ··bool·operator==(const·handler_allocator&·other)​·const
96 ··​{89 ··​{
97 ····​return·​&memory_·​==·​&other.​memory_;​90 ····​return·​&memory_·​==·​&other.​memory_;​
98 ··​}91 ··​}
99 92
100 ··​bool·​operator!=(const·​handler_allocator&·​other)​·​const93 ··​bool·​operator!=(const·​handler_allocator&·​other)​·​const·noexcept
101 ··​{94 ··​{
102 ····​return·​&memory_·​!=·​&other.​memory_;​95 ····​return·​&memory_·​!=·​&other.​memory_;​
103 ··​}96 ··​}
104 97
105 ··​T*·​allocate(std:​:​size_t·​n)​·​const98 ··​T*·​allocate(std:​:​size_t·​n)​·​const
106 ··​{99 ··​{
107 ····​return·​static_cast<T*>(memor​y_.​allocate(sizeof(T)​·​*·​n)​)​;​100 ····​return·​static_cast<T*>(memor​y_.​allocate(sizeof(T)​·​*·​n)​)​;​
108 ··​}101 ··​}
109 102
110 ··​void·​deallocate(T*·​p,​·​std:​:​size_t·​/​*n*/​)​·​const103 ··​void·​deallocate(T*·​p,​·​std:​:​size_t·​/​*n*/​)​·​const
111 ··​{104 ··​{
112 ····​return·​memory_.​deallocate(p)​;​105 ····​return·​memory_.​deallocate(p)​;​
113 ··​}106 ··​}
114 107
115 /​/​private:​108 private:​
109 ··​template·​<typename>·​friend·​class·​handler_allocator;​
110
116 ··​/​/​·​The·​underlying·​memory.​111 ··​/​/​·​The·​underlying·​memory.​
117 ··​handler_memory&·​memory_;​112 ··​handler_memory&·​memory_;​
118 };​113 };​
119 114
120 /​/​·​Wrapper·​class·​template·​for·​handler·​objects·​to·​allow·​handler·​memory115 /​/​·​Wrapper·​class·​template·​for·​handler·​objects·​to·​allow·​handler·​memory
121 /​/​·​allocation·​to·​be·​customised.​·​The·​allocator_type·​typedef·​and·​get_allocator()​116 /​/​·​allocation·​to·​be·​customised.​·​The·​allocator_type·​type·​and·​get_allocator()​
122 /​/​·​member·​function·​are·​used·​by·​the·​asynchronous·​operations·​to·​obtain·​the117 /​/​·​member·​function·​are·​used·​by·​the·​asynchronous·​operations·​to·​obtain·​the
123 /​/​·​allocator.​·​Calls·​to·​operator()​·​are·​forwarded·​to·​the·​encapsulated·​handler.​118 /​/​·​allocator.​·​Calls·​to·​operator()​·​are·​forwarded·​to·​the·​encapsulated·​handler.​
124 template·​<typename·​Handler>119 template·​<typename·​Handler>
125 class·​custom_alloc_handler120 class·​custom_alloc_handler
126 {121 {
127 public:​122 public:​
128 ··​typedef·​handler_allocator<Han​dler>·allocator_type;​123 ··using·allocator_type·=·​handler_allocator<Han​dler>;​
129 124
130 ··​custom_alloc_handler(​handler_memory&·​m,​·​Handler·​h)​125 ··​custom_alloc_handler(​handler_memory&·​m,​·​Handler·​h)​
131 ····​:​·​memory_(m)​,​126 ····​:​·​memory_(m)​,​
132 ······​handler_(h)​127 ······​handler_(h)​
133 ··​{128 ··​{
134 ··​}129 ··​}
135 130
136 ··​allocator_type·​get_allocator()​·​const131 ··​allocator_type·​get_allocator()​·​const·noexcept
137 ··​{132 ··​{
138 ····​return·​allocator_type(memory​_)​;​133 ····​return·​allocator_type(memory​_)​;​
139 ··​}134 ··​}
140 135
141 ··​template·​<typename·​Arg1>136 ··​template·​<typename·.​.​.​Args>
142 ··​void·​operator()​(Arg1·​arg1)​137 ··​void·​operator()​(Args&&.​.​.​·​args)​
143 ··{
144 ····handler_(arg1)​;​
145 ··}
146
147 ··template·<typename·Arg1,​·typename·Arg2>
148 ··void·operator()​(Arg1·arg1,​·Arg2·arg2)​
149 ··​{138 ··​{
150 ····​handler_(arg1,​·arg2)​;​139 ····​handler_(std:​:​forward<Args>(args)​.​.​.​)​;​
151 ··​}140 ··​}
152 141
153 private:​142 private:​
154 ··​handler_memory&·​memory_;​143 ··​handler_memory&·​memory_;​
155 ··​Handler·​handler_;​144 ··​Handler·​handler_;​
156 };​145 };​
157 146
158 /​/​·​Helper·​function·​to·​wrap·​a·​handler·​object·​to·​add·​custom·​allocation.​147 /​/​·​Helper·​function·​to·​wrap·​a·​handler·​object·​to·​add·​custom·​allocation.​
159 template·​<typename·​Handler>148 template·​<typename·​Handler>
160 inline·​custom_alloc_handler<​Handler>·​make_custom_alloc_han​dler(149 inline·​custom_alloc_handler<​Handler>·​make_custom_alloc_han​dler(
161 ····​handler_memory&·​m,​·​Handler·​h)​150 ····​handler_memory&·​m,​·​Handler·​h)​
162 {151 {
163 ··​return·​custom_alloc_handler<​Handler>(m,​·​h)​;​152 ··​return·​custom_alloc_handler<​Handler>(m,​·​h)​;​
164 }153 }
165 154
166 class·​session155 class·​session
167 ··​:​·​public·boost:​:​enable_shared_from_th​is<session>156 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
168 {157 {
169 public:​158 public:​
170 ··​session(asio:​:​io_context&·io_context)​159 ··​session(tcp:​:​socket·socket)​
171 ····​:​·​socket_(io_context)​160 ····​:​·​socket_(std:​:​move(socket)​)​
172 ··​{161 ··​{
173 ··​}162 ··​}
174 163
175 ··tcp:​:​socket&·​socket()​164 ··void·​start()​
176 ··​{165 ··​{
177 ····return·socket_;​166 ····do_read()​;​
178 ··​}167 ··​}
179 168
180 ··void·start()​169 private:​
170 ··​void·​do_read()​
181 ··​{171 ··​{
172 ····​auto·​self(shared_from_this​()​)​;​
182 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​173 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
183 ········​make_custom_alloc_han​dler(handler_memory_,​174 ········​make_custom_alloc_han​dler(handler_memory_,​
184 ··········boost:​:​bind(&session:​:​handle_read,​175 ··········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
185 ············shared_from_this()​,​176 ··········{
186 ············asio:​:​placeholders:​:​error,​177 ············​if·(!ec)​
187 ············asio:​:​placeholders:​:​bytes_transferred)​)​)​;​178 ············{
188 ··}179 ··············do_write(length)​;​
189 180 ············}
190 ··void·handle_read(const·asio:​:​error_code&·error,​181 ··········})​)​;​
191 ······size_t·bytes_transferred)​
192 ··{
193 ····if·(!error)​
194 ····{
195 ······asio:​:​async_write(socket_,​
196 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​
197 ··········make_custom_alloc_han​dler(handler_memory_,​
198 ············boost:​:​bind(&session:​:​handle_write,​
199 ··············shared_from_this()​,​
200 ··············asio:​:​placeholders:​:​error)​)​)​;​
201 ····}
202 ··​}182 ··​}
203 183
204 ··​void·handle_write(const·asio:​:​error_code&·error)​184 ··​void·​do_write(std:​:​size_t·length)​
205 ··​{185 ··​{
206 ····if·​(!error)​186 ····auto·self(shared_from_this​()​)​;​
207 ····{187 ····asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·length)​,​
208 ······socket_.​async_read_some(asio:​:​buffer(data_)​,​188 ········make_custom_alloc_han​dler(handler_memory_,​
209 ··········make_custom_alloc_han​dler(handler_memory_,​189 ··········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
210 ············boost:​:​bind(&session:​:​handle_read,​190 ··········{
211 ··············shared_from_this()​,​191 ············if·(!ec)​
212 ··············asio:​:​placeholders:​:​error,​192 ············{
213 ··············asio:​:​placeholders:​:​bytes_transferred)​)​)​;​193 ··············​do_read()​;​
214 ····​}194 ············​}
195 ··········​})​)​;​
215 ··​}196 ··​}
216 197
217 private:​
218 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​198 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​
219 ··​tcp:​:​socket·​socket_;​199 ··​tcp:​:​socket·​socket_;​
220 200
221 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​201 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​
222 ··boost:​:​array<char,​·​1024>·​data_;​202 ··​std:​:​array<char,​·​1024>·​data_;​
223 203
224 ··​/​/​·​The·​memory·​to·​use·​for·​handler-​based·​custom·​memory·​allocation.​204 ··​/​/​·​The·​memory·​to·​use·​for·​handler-​based·​custom·​memory·​allocation.​
225 ··​handler_memory·​handler_memory_;​205 ··​handler_memory·​handler_memory_;​
226 };​206 };​
227 207
228 typedef·​boost:​:​shared_ptr<session>·​session_ptr;​
229
230 class·​server208 class·​server
231 {209 {
232 public:​210 public:​
233 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​211 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
234 ····​:​·​io_context_(io_contex​t)​,​212 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
235 ······acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
236 ··​{213 ··​{
237 ····session_ptr·new_session(new·session(io_context_)​)​;​214 ····do_accept()​;​
238 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
239 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
240 ··········asio:​:​placeholders:​:​error)​)​;​
241 ··​}215 ··​}
242 216
243 ··void·handle_accept(session​_ptr·new_session,​217 private:​
244 ······const·asio:​:​error_code&·error)​218 ··void·do_accept()​
245 ··​{219 ··​{
246 ····if·(!error)​220 ····acceptor_.​async_accept(
247 ····{221 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
248 ······new_session-​>start()​;​222 ········{
249 ····}223 ··········if·(!ec)​
224 ··········​{
225 ············​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
226 ··········​}
250 227
251 ····new_session.​reset(new·session(io_context_)​)​;​228 ··········do_accept()​;​
252 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​229 ········})​;​
253 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
254 ··········asio:​:​placeholders:​:​error)​)​;​
255 ··​}230 ··​}
256 231
257 private:​
258 ··​asio:​:​io_context&·​io_context_;​
259 ··​tcp:​:​acceptor·​acceptor_;​232 ··​tcp:​:​acceptor·​acceptor_;​
260 };​233 };​
261 234
262 int·​main(int·​argc,​·​char*·​argv[])​235 int·​main(int·​argc,​·​char*·​argv[])​
263 {236 {
264 ··​try237 ··​try
265 ··​{238 ··​{
266 ····​if·​(argc·​!=·​2)​239 ····​if·​(argc·​!=·​2)​
267 ····​{240 ····​{
268 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​241 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​
269 ······​return·​1;​242 ······​return·​1;​
270 ····​}243 ····​}
271 244
272 ····​asio:​:​io_context·​io_context;​245 ····​asio:​:​io_context·​io_context;​
273 246 ····server·s(io_context,​·std:​:​atoi(argv[1])​)​;​
274 ····using·namespace·std;​·/​/​·For·atoi.​
275 ····server·s(io_context,​·atoi(argv[1])​)​;​
276
277 ····​io_context.​run()​;​247 ····​io_context.​run()​;​
278 ··​}248 ··​}
279 ··​catch·​(std:​:​exception&·​e)​249 ··​catch·​(std:​:​exception&·​e)​
280 ··​{250 ··​{
281 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​251 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
282 ··​}252 ··​}
283 253
284 ··​return·​0;​254 ··​return·​0;​
285 }255 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/buffers/reference_counted.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/buffers/reference_counted.cpp.html deleted file mode 100644 index 820cd54..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/buffers/reference_counted.cpp.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - HTML Diff buffers/reference_counted.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​buffers/​reference_counted.​cppsrc/​examples/​cpp11/​buffers/​reference_counted.​cpp
1 /​/​1 /​/​
2 /​/​·​reference_counted.​cpp2 /​/​·​reference_counted.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio.​hpp>11 #include·​<asio.​hpp>
12 #include·​<boost/​bind.​hpp>
13 #include·​<boost/​enable_shared_from_th​is.​hpp>
14 #include·​<boost/​shared_ptr.​hpp>
15 #include·​<iostream>12 #include·​<iostream>
13 #include·​<memory>
14 #include·​<utility>
16 #include·​<vector>15 #include·​<vector>
16 #include·​<ctime>
17 17
18 using·​asio:​:​ip:​:​tcp;​18 using·​asio:​:​ip:​:​tcp;​
19 19
20 /​/​·​A·​reference-​counted·​non-​modifiable·​buffer·​class.​20 /​/​·​A·​reference-​counted·​non-​modifiable·​buffer·​class.​
21 class·​shared_const_buffer21 class·​shared_const_buffer
22 {22 {
23 public:​23 public:​
24 ··​/​/​·​Construct·​from·​a·​std:​:​string.​24 ··​/​/​·​Construct·​from·​a·​std:​:​string.​
25 ··​explicit·​shared_const_buffer(c​onst·​std:​:​string&·​data)​25 ··​explicit·​shared_const_buffer(c​onst·​std:​:​string&·​data)​
26 ····​:​·​data_(new·​std:​:​vector<char>(data.​begin()​,​·​data.​end()​)​)​,​26 ····​:​·​data_(new·​std:​:​vector<char>(data.​begin()​,​·​data.​end()​)​)​,​
27 ······​buffer_(asio:​:​buffer(*data_)​)​27 ······​buffer_(asio:​:​buffer(*data_)​)​
28 ··​{28 ··​{
29 ··​}29 ··​}
30 30
31 ··​/​/​·​Implement·​the·​ConstBufferSequence·​requirements.​31 ··​/​/​·​Implement·​the·​ConstBufferSequence·​requirements.​
32 ··​typedef·​asio:​:​const_buffer·​value_type;​32 ··​typedef·​asio:​:​const_buffer·​value_type;​
33 ··​typedef·​const·​asio:​:​const_buffer*·​const_iterator;​33 ··​typedef·​const·​asio:​:​const_buffer*·​const_iterator;​
34 ··​const·​asio:​:​const_buffer*·​begin()​·​const·​{·​return·​&buffer_;​·​}34 ··​const·​asio:​:​const_buffer*·​begin()​·​const·​{·​return·​&buffer_;​·​}
35 ··​const·​asio:​:​const_buffer*·​end()​·​const·​{·​return·​&buffer_·​+·​1;​·​}35 ··​const·​asio:​:​const_buffer*·​end()​·​const·​{·​return·​&buffer_·​+·​1;​·​}
36 36
37 private:​37 private:​
38 ··boost:​:​shared_ptr<std:​:​vector<char>·​>·​data_;​38 ··​std:​:​shared_ptr<std:​:​vector<char>·​>·​data_;​
39 ··​asio:​:​const_buffer·​buffer_;​39 ··​asio:​:​const_buffer·​buffer_;​
40 };​40 };​
41 41
42 class·​session42 class·​session
43 ··​:​·​public·boost:​:​enable_shared_from_th​is<session>43 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
44 {44 {
45 public:​45 public:​
46 ··​session(asio:​:​io_context&·io_context)​46 ··​session(tcp:​:​socket·socket)​
47 ····​:​·​socket_(io_context)​47 ····​:​·​socket_(std:​:​move(socket)​)​
48 ··​{48 ··​{
49 ··​}49 ··​}
50 50
51 ··​tcp:​:​socket&·​socket()​
52 ··​{
53 ····​return·​socket_;​
54 ··​}
55
56 ··​void·​start()​51 ··​void·​start()​
57 ··​{52 ··​{
58 ····using·namespace·std;​·/​/​·For·time_t,​·time·and·ctime.​53 ····​do_write()​;​
59 ····time_t·now·=·time(0)​;​
60 ····shared_const_buffer·buffer(ctime(&now)​)​;​
61 ····asio:​:​async_write(socket_,​·buffer,​
62 ········boost:​:​bind(&session:​:​handle_write,​·shared_from_this()​)​)​;​
63 ··​}54 ··​}
64 55
65 ··void·handle_write()​56 private:​
57 ··​void·​do_write()​
66 ··​{58 ··​{
59 ····​std:​:​time_t·​now·​=·​std:​:​time(0)​;​
60 ····​shared_const_buffer·​buffer(std:​:​ctime(&now)​)​;​
61
62 ····​auto·​self(shared_from_this​()​)​;​
63 ····​asio:​:​async_write(socket_,​·​buffer,​
64 ········​[this,​·​self](std:​:​error_code·​/​*ec*/​,​·​std:​:​size_t·​/​*length*/​)​
65 ········​{
66 ········​})​;​
67 ··​}67 ··​}
68 68
69 private:​
70 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​69 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​
71 ··​tcp:​:​socket·​socket_;​70 ··​tcp:​:​socket·​socket_;​
72 };​71 };​
73 72
74 typedef·​boost:​:​shared_ptr<session>·​session_ptr;​
75
76 class·​server73 class·​server
77 {74 {
78 public:​75 public:​
79 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​76 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
80 ····​:​·​io_context_(io_contex​t)​,​77 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
81 ······acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
82 ··​{78 ··​{
83 ····session_ptr·new_session(new·session(io_context_)​)​;​79 ····do_accept()​;​
84 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
85 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
86 ··········asio:​:​placeholders:​:​error)​)​;​
87 ··​}80 ··​}
88 81
89 ··void·handle_accept(session​_ptr·new_session,​82 private:​
90 ······const·asio:​:​error_code&·error)​83 ··void·do_accept()​
91 ··​{84 ··​{
92 ····if·(!error)​85 ····acceptor_.​async_accept(
93 ····{86 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
94 ······new_session-​>start()​;​87 ········{
95 ····}88 ··········if·(!ec)​
89 ··········​{
90 ············​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
91 ··········​}
96 92
97 ····new_session.​reset(new·session(io_context_)​)​;​93 ··········do_accept()​;​
98 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​94 ········})​;​
99 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
100 ··········asio:​:​placeholders:​:​error)​)​;​
101 ··​}95 ··​}
102 96
103 private:​
104 ··​asio:​:​io_context&·​io_context_;​
105 ··​tcp:​:​acceptor·​acceptor_;​97 ··​tcp:​:​acceptor·​acceptor_;​
106 };​98 };​
107 99
108 int·​main(int·​argc,​·​char*·​argv[])​100 int·​main(int·​argc,​·​char*·​argv[])​
109 {101 {
110 ··​try102 ··​try
111 ··​{103 ··​{
112 ····​if·​(argc·​!=·​2)​104 ····​if·​(argc·​!=·​2)​
113 ····​{105 ····​{
114 ······​std:​:​cerr·​<<·​"Usage:​·​reference_counted·​<port>\n";​106 ······​std:​:​cerr·​<<·​"Usage:​·​reference_counted·​<port>\n";​
115 ······​return·​1;​107 ······​return·​1;​
116 ····​}108 ····​}
117 109
118 ····​asio:​:​io_context·​io_context;​110 ····​asio:​:​io_context·​io_context;​
119 111
120 ····using·namespace·​std;​·/​/​·For·atoi.​112 ····server·s(io_context,​·​std:​:​atoi(argv[1])​)​;​
121 ····server·s(io_context,​·atoi(argv[1])​)​;​
122 113
123 ····​io_context.​run()​;​114 ····​io_context.​run()​;​
124 ··​}115 ··​}
125 ··​catch·​(std:​:​exception&·​e)​116 ··​catch·​(std:​:​exception&·​e)​
126 ··​{117 ··​{
127 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​118 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
128 ··​}119 ··​}
129 120
130 ··​return·​0;​121 ··​return·​0;​
131 }122 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/chat/chat_client.cpp.html deleted file mode 100644 index c23de1d..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_client.cpp.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - - - HTML Diff chat/chat_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​chat/​chat_client.​cppsrc/​examples/​cpp11/​chat/​chat_client.​cpp
1 /​/​1 /​/​
2 /​/​·​chat_client.​cpp2 /​/​·​chat_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<deque>12 #include·​<deque>
13 #include·​<iostream>13 #include·​<iostream>
14 #include·​<boost/​bind.​hpp>14 #include·​<thread>
15 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
16 #include·​"chat_message.​hpp"16 #include·​"chat_message.​hpp"
17 17
18 using·​asio:​:​ip:​:​tcp;​18 using·​asio:​:​ip:​:​tcp;​
19 19
20 typedef·​std:​:​deque<chat_message>·​chat_message_queue;​20 typedef·​std:​:​deque<chat_message>·​chat_message_queue;​
21 21
22 class·​chat_client22 class·​chat_client
23 {23 {
24 public:​24 public:​
25 ··​chat_client(asio:​:​io_context&·​io_context,​25 ··​chat_client(asio:​:​io_context&·​io_context,​
26 ······​const·​tcp:​:​resolver:​:​results_type&·​endpoints)​26 ······​const·​tcp:​:​resolver:​:​results_type&·​endpoints)​
27 ····​:​·​io_context_(io_contex​t)​,​27 ····​:​·​io_context_(io_contex​t)​,​
28 ······​socket_(io_context)​28 ······​socket_(io_context)​
29 ··​{29 ··​{
30 ····asio:​:​async_connect(socket_​,​·endpoints,​30 ····do_connect(endpoints)​;​
31 ········boost:​:​bind(&chat_client:​:​handle_connect,​·this,​
32 ··········asio:​:​placeholders:​:​error)​)​;​
33 ··​}31 ··​}
34 32
35 ··​void·​write(const·​chat_message&·​msg)​33 ··​void·​write(const·​chat_message&·​msg)​
36 ··​{34 ··​{
37 ····​asio:​:​post(io_context_,​35 ····​asio:​:​post(io_context_,​
38 ········boost:​:​bind(&chat_client:​:​do_write,​·this,​·​msg)​)​;​36 ········[this,​·​msg]()​
37 ········​{
38 ··········​bool·​write_in_progress·​=·​!write_msgs_.​empty()​;​
39 ··········​write_msgs_.​push_back(msg)​;​
40 ··········​if·​(!write_in_progress)​
41 ··········​{
42 ············​do_write()​;​
43 ··········​}
44 ········​})​;​
39 ··​}45 ··​}
40 46
41 ··​void·​close()​47 ··​void·​close()​
42 ··​{48 ··​{
43 ····​asio:​:​post(io_context_,​49 ····​asio:​:​post(io_context_,​·[this]()​·{·socket_.​close()​;​·})​;​
44 ········boost:​:​bind(&chat_client:​:​do_close,​·this)​)​;​
45 ··​}50 ··​}
46 51
47 private:​52 private:​
48 53 ··void·do_connect(const·tcp:​:​resolver:​:​results_type&·endpoints)​
49 ··void·handle_connect(const·asio:​:​error_code&·error)​
50 ··{
51 ····if·(!error)​
52 ····{
53 ······asio:​:​async_read(socket_,​
54 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
55 ··········boost:​:​bind(&chat_client:​:​handle_read_header,​·this,​
56 ············asio:​:​placeholders:​:​error)​)​;​
57 ····}
58 ··}
59
60 ··void·handle_read_header(co​nst·asio:​:​error_code&·error)​
61 ··{
62 ····if·(!error·&&·read_msg_.​decode_header()​)​
63 ····{
64 ······asio:​:​async_read(socket_,​
65 ··········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​
66 ··········boost:​:​bind(&chat_client:​:​handle_read_body,​·this,​
67 ············asio:​:​placeholders:​:​error)​)​;​
68 ····}
69 ····else
70 ····{
71 ······do_close()​;​
72 ····}
73 ··}
74
75 ··void·handle_read_body(cons​t·asio:​:​error_code&·error)​
76 ··{
77 ····if·(!error)​
78 ····{
79 ······std:​:​cout.​write(read_msg_.​body()​,​·read_msg_.​body_length()​)​;​
80 ······std:​:​cout·<<·"\n";​
81 ······asio:​:​async_read(socket_,​
82 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
83 ··········boost:​:​bind(&chat_client:​:​handle_read_header,​·this,​
84 ············asio:​:​placeholders:​:​error)​)​;​
85 ····}
86 ····else
87 ····{
88 ······do_close()​;​
89 ····}
90 ··}
91
92 ··void·do_write(chat_message​·msg)​
93 ··{
94 ····bool·write_in_progress·=·!write_msgs_.​empty()​;​
95 ····write_msgs_.​push_back(msg)​;​
96 ····if·(!write_in_progress)​
97 ····{
98 ······asio:​:​async_write(socket_,​
99 ··········asio:​:​buffer(write_msgs_.​front()​.​data()​,​
100 ············write_msgs_.​front()​.​length()​)​,​
101 ··········boost:​:​bind(&chat_client:​:​handle_write,​·this,​
102 ············asio:​:​placeholders:​:​error)​)​;​
103 ····}
104 ··}
105
106 ··void·handle_write(const·asio:​:​error_code&·error)​
107 ··​{54 ··​{
108 ····​if·(!error)​55 ····asio:​:​async_connect(socket_​,​·endpoints,​
109 ····{56 ········[this](std:​:​error_code·ec,​·tcp:​:​endpoint)​
110 ······write_msgs_.​pop_front()​;​57 ········{
111 ······if·(!write_msgs_.​empty()​)​58 ··········if·(!ec)​
112 ······​{59 ··········​{
113 ········asio:​:​async_write(socket_,​60 ············do_read_header()​;​
114 ············asio:​:​buffer(write_msgs_.​front()​.​data()​,​61 ··········}
115 ··············write_msgs_.​front()​.​length()​)​,​62 ········})​;​
116 ············boost:​:​bind(&chat_client:​:​handle_write,​·this,​63 ··}
117 ··············asio:​:​placeholders:​:​error)​)​;​64
118 ······}65 ··void·do_read_header()​
119 ····}66 ··{
120 ····​else67 ····asio:​:​async_read(socket_,​
121 ····{68 ········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
122 ······​do_close()​;​69 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
123 ····}70 ········{
124 ··}71 ··········if·(!ec·&&·read_msg_.​decode_header()​)​
125 72 ··········{
126 ··void·​do_close()​73 ············​do_read_body()​;​
127 ··{74 ··········}
128 ····socket_.​close()​;​75 ··········else
76 ··········​{
77 ············​socket_.​close()​;​
78 ··········​}
79 ········​})​;​
80 ··​}
81
82 ··​void·​do_read_body()​
83 ··​{
84 ····​asio:​:​async_read(socket_,​
85 ········​asio:​:​buffer(read_msg_.​body()​,​·​read_msg_.​body_length()​)​,​
86 ········​[this](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
87 ········​{
88 ··········​if·​(!ec)​
89 ··········​{
90 ············​std:​:​cout.​write(read_msg_.​body()​,​·​read_msg_.​body_length()​)​;​
91 ············​std:​:​cout·​<<·​"\n";​
92 ············​do_read_header()​;​
93 ··········​}
94 ··········​else
95 ··········​{
96 ············​socket_.​close()​;​
97 ··········​}
98 ········​})​;​
99 ··​}
100
101 ··​void·​do_write()​
102 ··​{
103 ····​asio:​:​async_write(socket_,​
104 ········​asio:​:​buffer(write_msgs_.​front()​.​data()​,​
105 ··········​write_msgs_.​front()​.​length()​)​,​
106 ········​[this](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
107 ········​{
108 ··········​if·​(!ec)​
109 ··········​{
110 ············​write_msgs_.​pop_front()​;​
111 ············​if·​(!write_msgs_.​empty()​)​
112 ············​{
113 ··············​do_write()​;​
114 ············​}
115 ··········​}
116 ··········​else
117 ··········​{
118 ············​socket_.​close()​;​
119 ··········​}
120 ········​})​;​
129 ··​}121 ··​}
130 122
131 private:​123 private:​
132 ··​asio:​:​io_context&·​io_context_;​124 ··​asio:​:​io_context&·​io_context_;​
133 ··​tcp:​:​socket·​socket_;​125 ··​tcp:​:​socket·​socket_;​
134 ··​chat_message·​read_msg_;​126 ··​chat_message·​read_msg_;​
135 ··​chat_message_queue·​write_msgs_;​127 ··​chat_message_queue·​write_msgs_;​
136 };​128 };​
137 129
138 int·​main(int·​argc,​·​char*·​argv[])​130 int·​main(int·​argc,​·​char*·​argv[])​
139 {131 {
140 ··​try132 ··​try
141 ··​{133 ··​{
142 ····​if·​(argc·​!=·​3)​134 ····​if·​(argc·​!=·​3)​
143 ····​{135 ····​{
144 ······​std:​:​cerr·​<<·​"Usage:​·​chat_client·​<host>·​<port>\n";​136 ······​std:​:​cerr·​<<·​"Usage:​·​chat_client·​<host>·​<port>\n";​
145 ······​return·​1;​137 ······​return·​1;​
146 ····​}138 ····​}
147 139
148 ····​asio:​:​io_context·​io_context;​140 ····​asio:​:​io_context·​io_context;​
149 141
150 ····​tcp:​:​resolver·​resolver(io_context)​;​142 ····​tcp:​:​resolver·​resolver(io_context)​;​
151 ····tcp:​:​resolver:​:​results_type·​endpoints·​=·​resolver.​resolve(argv[1],​·​argv[2])​;​143 ····auto·​endpoints·​=·​resolver.​resolve(argv[1],​·​argv[2])​;​
152
153 ····​chat_client·​c(io_context,​·​endpoints)​;​144 ····​chat_client·​c(io_context,​·​endpoints)​;​
154 145
155 ····asio:​:​thread·​t(boost:​:​bind(&asio:​:​io_context:​:​run,​·&io_context)​)​;​146 ····​std:​:​thread·​t([&io_context]()​{·​io_context.​run()​;​·})​;​
156 147
157 ····​char·​line[chat_message:​:​max_body_length·​+·​1];​148 ····​char·​line[chat_message:​:​max_body_length·​+·​1];​
158 ····​while·​(std:​:​cin.​getline(line,​·​chat_message:​:​max_body_length·​+·​1)​)​149 ····​while·​(std:​:​cin.​getline(line,​·​chat_message:​:​max_body_length·​+·​1)​)​
159 ····​{150 ····​{
160 ······​using·​namespace·​std;​·​/​/​·​For·​strlen·​and·​memcpy.​
161 ······​chat_message·​msg;​151 ······​chat_message·​msg;​
162 ······​msg.​body_length(strlen(li​ne)​)​;​152 ······​msg.​body_length(std:​:​strlen(line)​)​;​
163 ······​memcpy(msg.​body()​,​·​line,​·​msg.​body_length()​)​;​153 ······std:​:​memcpy(msg.​body()​,​·​line,​·​msg.​body_length()​)​;​
164 ······​msg.​encode_header()​;​154 ······​msg.​encode_header()​;​
165 ······​c.​write(msg)​;​155 ······​c.​write(msg)​;​
166 ····​}156 ····​}
167 157
168 ····​c.​close()​;​158 ····​c.​close()​;​
169 ····​t.​join()​;​159 ····​t.​join()​;​
170 ··​}160 ··​}
171 ··​catch·​(std:​:​exception&·​e)​161 ··​catch·​(std:​:​exception&·​e)​
172 ··​{162 ··​{
173 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​163 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
174 ··​}164 ··​}
175 165
176 ··​return·​0;​166 ··​return·​0;​
177 }167 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_message.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/chat/chat_message.hpp.html deleted file mode 100644 index 6aa2922..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_message.hpp.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - HTML Diff chat/chat_message.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​chat/​chat_message.​hppsrc/​examples/​cpp11/​chat/​chat_message.​hpp
1 /​/​1 /​/​
2 /​/​·​chat_message.​hpp2 /​/​·​chat_message.​hpp
3 /​/​·​~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​CHAT_MESSAGE_HPP11 #ifndef·​CHAT_MESSAGE_HPP
12 #define·​CHAT_MESSAGE_HPP12 #define·​CHAT_MESSAGE_HPP
13 13
14 #include·​<cstdio>14 #include·​<cstdio>
15 #include·​<cstdlib>15 #include·​<cstdlib>
16 #include·​<cstring>16 #include·​<cstring>
17 17
18 class·​chat_message18 class·​chat_message
19 {19 {
20 public:​20 public:​
21 ··​enum·​{·​header_length·​=·​4·​};​21 ··​enum·​{·​header_length·​=·​4·​};​
22 ··​enum·​{·​max_body_length·​=·​512·​};​22 ··​enum·​{·​max_body_length·​=·​512·​};​
23 23
24 ··​chat_message()​24 ··​chat_message()​
25 ····​:​·​body_length_(0)​25 ····​:​·​body_length_(0)​
26 ··​{26 ··​{
27 ··​}27 ··​}
28 28
29 ··​const·​char*·​data()​·​const29 ··​const·​char*·​data()​·​const
30 ··​{30 ··​{
31 ····​return·​data_;​31 ····​return·​data_;​
32 ··​}32 ··​}
33 33
34 ··​char*·​data()​34 ··​char*·​data()​
35 ··​{35 ··​{
36 ····​return·​data_;​36 ····​return·​data_;​
37 ··​}37 ··​}
38 38
39 ··​size_t·​length()​·​const39 ··std:​:​size_t·​length()​·​const
40 ··​{40 ··​{
41 ····​return·​header_length·​+·​body_length_;​41 ····​return·​header_length·​+·​body_length_;​
42 ··​}42 ··​}
43 43
44 ··​const·​char*·​body()​·​const44 ··​const·​char*·​body()​·​const
45 ··​{45 ··​{
46 ····​return·​data_·​+·​header_length;​46 ····​return·​data_·​+·​header_length;​
47 ··​}47 ··​}
48 48
49 ··​char*·​body()​49 ··​char*·​body()​
50 ··​{50 ··​{
51 ····​return·​data_·​+·​header_length;​51 ····​return·​data_·​+·​header_length;​
52 ··​}52 ··​}
53 53
54 ··​size_t·​body_length()​·​const54 ··std:​:​size_t·​body_length()​·​const
55 ··​{55 ··​{
56 ····​return·​body_length_;​56 ····​return·​body_length_;​
57 ··​}57 ··​}
58 58
59 ··​void·​body_length(size_t·​new_length)​59 ··​void·​body_length(std:​:​size_t·​new_length)​
60 ··​{60 ··​{
61 ····​body_length_·​=·​new_length;​61 ····​body_length_·​=·​new_length;​
62 ····​if·​(body_length_·​>·​max_body_length)​62 ····​if·​(body_length_·​>·​max_body_length)​
63 ······​body_length_·​=·​max_body_length;​63 ······​body_length_·​=·​max_body_length;​
64 ··​}64 ··​}
65 65
66 ··​bool·​decode_header()​66 ··​bool·​decode_header()​
67 ··​{67 ··​{
68 ····​using·​namespace·​std;​·​/​/​·​For·​strncat·​and·​atoi.​
69 ····​char·​header[header_length·​+·​1]·​=·​"";​68 ····​char·​header[header_length·​+·​1]·​=·​"";​
70 ····​strncat(header,​·​data_,​·​header_length)​;​69 ····std:​:​strncat(header,​·​data_,​·​header_length)​;​
71 ····​body_length_·​=·​atoi(header)​;​70 ····​body_length_·​=·std:​:​atoi(header)​;​
72 ····​if·​(body_length_·​>·​max_body_length)​71 ····​if·​(body_length_·​>·​max_body_length)​
73 ····​{72 ····​{
74 ······​body_length_·​=·​0;​73 ······​body_length_·​=·​0;​
75 ······​return·​false;​74 ······​return·​false;​
76 ····​}75 ····​}
77 ····​return·​true;​76 ····​return·​true;​
78 ··​}77 ··​}
79 78
80 ··​void·​encode_header()​79 ··​void·​encode_header()​
81 ··​{80 ··​{
82 ····​using·​namespace·​std;​·​/​/​·​For·​sprintf·​and·​memcpy.​
83 ····​char·​header[header_length·​+·​1]·​=·​"";​81 ····​char·​header[header_length·​+·​1]·​=·​"";​
84 ····​sprintf(header,​·​"%4d",​·​static_cast<int>(body​_length_)​)​;​82 ····std:​:​sprintf(header,​·​"%4d",​·​static_cast<int>(body​_length_)​)​;​
85 ····​memcpy(data_,​·​header,​·​header_length)​;​83 ····std:​:​memcpy(data_,​·​header,​·​header_length)​;​
86 ··​}84 ··​}
87 85
88 private:​86 private:​
89 ··​char·​data_[header_length·​+·​max_body_length];​87 ··​char·​data_[header_length·​+·​max_body_length];​
90 ··​size_t·​body_length_;​88 ··std:​:​size_t·​body_length_;​
91 };​89 };​
92 90
93 #endif·​/​/​·​CHAT_MESSAGE_HPP91 #endif·​/​/​·​CHAT_MESSAGE_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/chat/chat_server.cpp.html deleted file mode 100644 index dd5d947..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/chat/chat_server.cpp.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - HTML Diff chat/chat_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​chat/​chat_server.​cppsrc/​examples/​cpp11/​chat/​chat_server.​cpp
1 /​/​1 /​/​
2 /​/​·​chat_server.​cpp2 /​/​·​chat_server.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<algorithm>
12 #include·​<cstdlib>11 #include·​<cstdlib>
13 #include·​<deque>12 #include·​<deque>
14 #include·​<iostream>13 #include·​<iostream>
15 #include·​<list>14 #include·​<list>
15 #include·​<memory>
16 #include·​<set>16 #include·​<set>
17 #include·​<boost/​bind.​hpp>17 #include·​<utility>
18 #include·<boost/​shared_ptr.​hpp>
19 #include·<boost/​enable_shared_from_th​is.​hpp>
20 #include·​"asio.​hpp"18 #include·​"asio.​hpp"
21 #include·​"chat_message.​hpp"19 #include·​"chat_message.​hpp"
22 20
23 using·​asio:​:​ip:​:​tcp;​21 using·​asio:​:​ip:​:​tcp;​
24 22
25 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​23 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
26 24
27 typedef·​std:​:​deque<chat_message>·​chat_message_queue;​25 typedef·​std:​:​deque<chat_message>·​chat_message_queue;​
28 26
29 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​27 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
30 28
31 class·​chat_participant29 class·​chat_participant
32 {30 {
33 public:​31 public:​
34 ··​virtual·​~chat_participant()​·​{}32 ··​virtual·​~chat_participant()​·​{}
35 ··​virtual·​void·​deliver(const·​chat_message&·​msg)​·​=·​0;​33 ··​virtual·​void·​deliver(const·​chat_message&·​msg)​·​=·​0;​
36 };​34 };​
37 35
38 typedef·boost:​:​shared_ptr<chat_parti​cipant>·​chat_participant_ptr;​36 typedef·​std:​:​shared_ptr<chat_parti​cipant>·​chat_participant_ptr;​
39 37
40 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​38 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
41 39
42 class·​chat_room40 class·​chat_room
43 {41 {
44 public:​42 public:​
45 ··​void·​join(chat_participant​_ptr·​participant)​43 ··​void·​join(chat_participant​_ptr·​participant)​
46 ··​{44 ··​{
47 ····​participants_.​insert(participant)​;​45 ····​participants_.​insert(participant)​;​
48 ····std:​:​for_each(recent_msgs_​.​begin()​,​·​recent_msgs_.​end()​,​46 ····​for·(auto·msg:​·​recent_msgs_)​
49 ········boost:​:​bind(&chat_participan​t:​:​deliver,​·participant,​·_1)​)​;​47 ······​participant-​>deliver(msg)​;​
50 ··​}48 ··​}
51 49
52 ··​void·​leave(chat_participan​t_ptr·​participant)​50 ··​void·​leave(chat_participan​t_ptr·​participant)​
53 ··​{51 ··​{
54 ····​participants_.​erase(participant)​;​52 ····​participants_.​erase(participant)​;​
55 ··​}53 ··​}
56 54
57 ··​void·​deliver(const·​chat_message&·​msg)​55 ··​void·​deliver(const·​chat_message&·​msg)​
58 ··​{56 ··​{
59 ····​recent_msgs_.​push_back(msg)​;​57 ····​recent_msgs_.​push_back(msg)​;​
60 ····​while·​(recent_msgs_.​size()​·​>·​max_recent_msgs)​58 ····​while·​(recent_msgs_.​size()​·​>·​max_recent_msgs)​
61 ······​recent_msgs_.​pop_front()​;​59 ······​recent_msgs_.​pop_front()​;​
62 60
63 ····std:​:​for_each(participants​_.​begin()​,​·​participants_.​end()​,​61 ····​for·(auto·participant:​·​participants_)​
64 ········boost:​:​bind(&chat_participan​t:​:​deliver,​·_1,​·boost:​:​ref(msg)​)​)​;​62 ······​participant-​>deliver(msg)​;​
65 ··​}63 ··​}
66 64
67 private:​65 private:​
68 ··​std:​:​set<chat_participant_​ptr>·​participants_;​66 ··​std:​:​set<chat_participant_​ptr>·​participants_;​
69 ··​enum·​{·​max_recent_msgs·​=·​100·​};​67 ··​enum·​{·​max_recent_msgs·​=·​100·​};​
70 ··​chat_message_queue·​recent_msgs_;​68 ··​chat_message_queue·​recent_msgs_;​
71 };​69 };​
72 70
73 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​71 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
74 72
75 class·​chat_session73 class·​chat_session
76 ··​:​·​public·​chat_participant,​74 ··​:​·​public·​chat_participant,​
77 ····​public·boost:​:​enable_shared_from_th​is<chat_session>75 ····​public·​std:​:​enable_shared_from_th​is<chat_session>
78 {76 {
79 public:​77 public:​
80 ··​chat_session(asio:​:​io_context&·io_context,​·​chat_room&·​room)​78 ··​chat_session(tcp:​:​socket·socket,​·​chat_room&·​room)​
81 ····​:​·​socket_(io_context)​,​79 ····​:​·​socket_(std:​:​move(socket)​)​,​
82 ······​room_(room)​80 ······​room_(room)​
83 ··​{81 ··​{
84 ··​}82 ··​}
85 83
86 ··​tcp:​:​socket&·​socket()​
87 ··​{
88 ····​return·​socket_;​
89 ··​}
90
91 ··​void·​start()​84 ··​void·​start()​
92 ··​{85 ··​{
93 ····​room_.​join(shared_from_this​()​)​;​86 ····​room_.​join(shared_from_this​()​)​;​
94 ····asio:​:​async_read(socket_,​87 ····do_read_header()​;​
95 ········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
96 ········boost:​:​bind(
97 ··········&chat_session:​:​handle_read_header,​·shared_from_this()​,​
98 ··········asio:​:​placeholders:​:​error)​)​;​
99 ··​}88 ··​}
100 89
101 ··​void·​deliver(const·​chat_message&·​msg)​90 ··​void·​deliver(const·​chat_message&·​msg)​
102 ··​{91 ··​{
103 ····​bool·​write_in_progress·​=·​!write_msgs_.​empty()​;​92 ····​bool·​write_in_progress·​=·​!write_msgs_.​empty()​;​
104 ····​write_msgs_.​push_back(msg)​;​93 ····​write_msgs_.​push_back(msg)​;​
105 ····​if·​(!write_in_progress)​94 ····​if·​(!write_in_progress)​
106 ····​{95 ····​{
107 ······asio:​:​async_write(socket_,​96 ······do_write()​;​
108 ··········asio:​:​buffer(write_msgs_.​front()​.​data()​,​
109 ············write_msgs_.​front()​.​length()​)​,​
110 ··········boost:​:​bind(&chat_session:​:​handle_write,​·shared_from_this()​,​
111 ············asio:​:​placeholders:​:​error)​)​;​
112 ····​}97 ····​}
113 ··​}98 ··​}
114 99
115 ··void·handle_read_header(co​nst·asio:​:​error_code&·error)​100 private:​
116 ··{101 ··void·do_read_header()​
117 ····if·(!error·&&·read_msg_.​decode_header()​)​
118 ····{
119 ······asio:​:​async_read(socket_,​
120 ··········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​
121 ··········boost:​:​bind(&chat_session:​:​handle_read_body,​·shared_from_this()​,​
122 ············asio:​:​placeholders:​:​error)​)​;​
123 ····}
124 ····else
125 ····{
126 ······room_.​leave(shared_from_thi​s()​)​;​
127 ····}
128 ··}
129
130 ··void·handle_read_body(cons​t·asio:​:​error_code&·error)​
131 ··​{102 ··​{
132 ····if·​(!error)​103 ····auto·self(shared_from_this​()​)​;​
133 ····{104 ····asio:​:​async_read(socket_,​
134 ······​room_.​deliver(read_msg_)​;​105 ········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​
135 ······asio:​:​async_read(socket_,​106 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
136 ··········asio:​:​buffer(read_msg_.​data()​,​·chat_message:​:​header_length)​,​107 ········{
137 ··········boost:​:​bind(&chat_session:​:​handle_read_header,​·shared_from_this()​,​108 ··········​if·(!ec·&&·read_msg_.​decode_header()​)​
138 ············asio:​:​placeholders:​:​error)​)​;​109 ··········{
139 ····}110 ············do_read_body()​;​
140 ····else111 ··········}
141 ····{112 ··········else
142 ······room_.​leave(shared_from_thi​s()​)​;​113 ··········{
143 ····}114 ············room_.​leave(shared_from_thi​s()​)​;​
115 ··········​}
116 ········​})​;​
144 ··​}117 ··​}
145 118
146 ··​void·handle_write(const·asio:​:​error_code&·error)​119 ··​void·​do_read_body()​
147 ··​{120 ··​{
148 ····if·​(!error)​121 ····auto·self(shared_from_this​()​)​;​
149 ····{122 ····asio:​:​async_read(socket_,​
150 ······write_msgs_.​pop_front()​;​123 ········asio:​:​buffer(read_msg_.​body()​,​·read_msg_.​body_length()​)​,​
151 ······​if·(!write_msgs_.​empty()​)​124 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
152 ······​{125 ········​{
153 ········asio:​:​async_write(socket_,​126 ··········if·(!ec)​
154 ············asio:​:​buffer(write_msgs_.​front()​.​data()​,​127 ··········{
155 ··············write_msgs_.​front()​.​length()​)​,​128 ············​room_.​deliver(read_msg_)​;​
156 ············boost:​:​bind(&chat_session:​:​handle_write,​·shared_from_this()​,​129 ············​do_read_header()​;​
157 ··············asio:​:​placeholders:​:​error)​)​;​130 ··········}
158 ······}131 ··········else
159 ····}132 ··········{
160 ····​else133 ············room_.​leave(shared_from_thi​s()​)​;​
161 ····{134 ··········}
162 ······room_.​leave(shared_from_thi​s()​)​;​135 ········})​;​
163 ····​}136 ··​}
137
138 ··​void·​do_write()​
139 ··​{
140 ····​auto·​self(shared_from_this​()​)​;​
141 ····​asio:​:​async_write(socket_,​
142 ········​asio:​:​buffer(write_msgs_.​front()​.​data()​,​
143 ··········​write_msgs_.​front()​.​length()​)​,​
144 ········​[this,​·​self](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
145 ········​{
146 ··········​if·​(!ec)​
147 ··········​{
148 ············​write_msgs_.​pop_front()​;​
149 ············​if·​(!write_msgs_.​empty()​)​
150 ············​{
151 ··············​do_write()​;​
152 ············​}
153 ··········​}
154 ··········​else
155 ··········​{
156 ············​room_.​leave(shared_from_thi​s()​)​;​
157 ··········​}
158 ········​})​;​
164 ··​}159 ··​}
165 160
166 private:​
167 ··​tcp:​:​socket·​socket_;​161 ··​tcp:​:​socket·​socket_;​
168 ··​chat_room&·​room_;​162 ··​chat_room&·​room_;​
169 ··​chat_message·​read_msg_;​163 ··​chat_message·​read_msg_;​
170 ··​chat_message_queue·​write_msgs_;​164 ··​chat_message_queue·​write_msgs_;​
171 };​165 };​
172 166
173 typedef·​boost:​:​shared_ptr<chat_sessi​on>·​chat_session_ptr;​
174
175 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​167 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
176 168
177 class·​chat_server169 class·​chat_server
178 {170 {
179 public:​171 public:​
180 ··​chat_server(asio:​:​io_context&·​io_context,​172 ··​chat_server(asio:​:​io_context&·​io_context,​
181 ······​const·​tcp:​:​endpoint&·​endpoint)​173 ······​const·​tcp:​:​endpoint&·​endpoint)​
182 ····​:​·io_context_(io_contex​t)​,​174 ····​:​·acceptor_(io_context,​·endpoint)​
183 ······acceptor_(io_context,​·endpoint)​
184 ··​{175 ··​{
185 ····start_accept()​;​176 ····do_accept()​;​
186 ··​}177 ··​}
187 178
188 ··void·start_accept()​179 private:​
189 ··{180 ··void·do_accept()​
190 ····chat_session_ptr·new_session(new·chat_session(io_conte​xt_,​·room_)​)​;​
191 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
192 ········boost:​:​bind(&chat_server:​:​handle_accept,​·this,​·new_session,​
193 ··········asio:​:​placeholders:​:​error)​)​;​
194 ··}
195
196 ··void·handle_accept(chat_se​ssion_ptr·session,​
197 ······const·asio:​:​error_code&·error)​
198 ··​{181 ··​{
199 ····if·(!error)​182 ····acceptor_.​async_accept(
200 ····{183 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
201 ······session-​>start()​;​184 ········{
202 ····}185 ··········if·(!ec)​
186 ··········​{
187 ············​std:​:​make_shared<chat_sess​ion>(std:​:​move(socket)​,​·​room_)​-​>start()​;​
188 ··········​}
203 189
204 ····start_accept()​;​190 ··········do_accept()​;​
191 ········​})​;​
205 ··​}192 ··​}
206 193
207 private:​
208 ··​asio:​:​io_context&·​io_context_;​
209 ··​tcp:​:​acceptor·​acceptor_;​194 ··​tcp:​:​acceptor·​acceptor_;​
210 ··​chat_room·​room_;​195 ··​chat_room·​room_;​
211 };​196 };​
212 197
213 typedef·​boost:​:​shared_ptr<chat_serve​r>·​chat_server_ptr;​
214 typedef·​std:​:​list<chat_server_ptr>​·​chat_server_list;​
215
216 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​198 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
217 199
218 int·​main(int·​argc,​·​char*·​argv[])​200 int·​main(int·​argc,​·​char*·​argv[])​
219 {201 {
220 ··​try202 ··​try
221 ··​{203 ··​{
222 ····​if·​(argc·​<·​2)​204 ····​if·​(argc·​<·​2)​
223 ····​{205 ····​{
224 ······​std:​:​cerr·​<<·​"Usage:​·​chat_server·​<port>·​[<port>·​.​.​.​]\n";​206 ······​std:​:​cerr·​<<·​"Usage:​·​chat_server·​<port>·​[<port>·​.​.​.​]\n";​
225 ······​return·​1;​207 ······​return·​1;​
226 ····​}208 ····​}
227 209
228 ····​asio:​:​io_context·​io_context;​210 ····​asio:​:​io_context·​io_context;​
229 211
230 ····​chat_server_list·​servers;​212 ····std:​:​list<chat_server>·​servers;​
231 ····​for·​(int·​i·​=·​1;​·​i·​<·​argc;​·​++i)​213 ····​for·​(int·​i·​=·​1;​·​i·​<·​argc;​·​++i)​
232 ····​{214 ····​{
233 ······using·​namespace·​std;​·/​/​·For·atoi.​215 ······tcp:​:​endpoint·endpoint(tcp:​:​v4()​,​·​std:​:​atoi(argv[i])​)​;​
234 ······tcp:​:​endpoint·endpoint(tcp:​:​v4()​,​·atoi(argv[i])​)​;​216 ······servers.​emplace_back(io_conte​xt,​·endpoint)​;​
235 ······chat_server_ptr·server(new·chat_server(io_contex​t,​·endpoint)​)​;​
236 ······servers.​push_back(server)​;​
237 ····​}217 ····​}
238 218
239 ····​io_context.​run()​;​219 ····​io_context.​run()​;​
240 ··​}220 ··​}
241 ··​catch·​(std:​:​exception&·​e)​221 ··​catch·​(std:​:​exception&·​e)​
242 ··​{222 ··​{
243 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​223 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
244 ··​}224 ··​}
245 225
246 ··​return·​0;​226 ··​return·​0;​
247 }227 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html deleted file mode 100644 index 3e81be0..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/async_tcp_echo_server.cpp.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - HTML Diff echo/async_tcp_echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​async_tcp_echo_server​.​cppsrc/​examples/​cpp11/​echo/​async_tcp_echo_server​.​cpp
1 /​/​1 /​/​
2 /​/​·​async_tcp_echo_server​.​cpp2 /​/​·​async_tcp_echo_server​.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>13 #include·​<memory>
14 #include·​<utility>
14 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
15 16
16 using·​asio:​:​ip:​:​tcp;​17 using·​asio:​:​ip:​:​tcp;​
17 18
18 class·​session19 class·​session
20 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
19 {21 {
20 public:​22 public:​
21 ··​session(asio:​:​io_context&·io_context)​23 ··​session(tcp:​:​socket·socket)​
22 ····​:​·​socket_(io_context)​24 ····​:​·​socket_(std:​:​move(socket)​)​
23 ··​{25 ··​{
24 ··​}26 ··​}
25 27
26 ··​tcp:​:​socket&·​socket()​
27 ··​{
28 ····​return·​socket_;​
29 ··​}
30
31 ··​void·​start()​28 ··​void·​start()​
32 ··​{29 ··​{
33 ····socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​30 ····do_read()​;​
34 ········boost:​:​bind(&session:​:​handle_read,​·this,​
35 ··········asio:​:​placeholders:​:​error,​
36 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
37 ··​}31 ··​}
38 32
39 private:​33 private:​
40 ··​void·handle_read(const·asio:​:​error_code&·error,​34 ··​void·​do_read()​
41 ······size_t·bytes_transferred)​
42 ··{
43 ····if·(!error)​
44 ····{
45 ······asio:​:​async_write(socket_,​
46 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​
47 ··········boost:​:​bind(&session:​:​handle_write,​·this,​
48 ············asio:​:​placeholders:​:​error)​)​;​
49 ····}
50 ····else
51 ····{
52 ······delete·this;​
53 ····}
54 ··}
55
56 ··void·handle_write(const·asio:​:​error_code&·error)​
57 ··​{35 ··​{
58 ····if·​(!error)​36 ····auto·self(shared_from_this​()​)​;​
59 ····{37 ····socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​
60 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​38 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
61 ··········boost:​:​bind(&session:​:​handle_read,​·this,​39 ········{
62 ············asio:​:​placeholders:​:​error,​40 ··········​if·(!ec)​
63 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​41 ··········{
64 ····}42 ············do_write(length)​;​
65 ····else43 ··········}
66 ····{44 ········})​;​
67 ······delete·this;​45 ··}
68 ····}46
47 ··​void·​do_write(std:​:​size_t·​length)​
48 ··​{
49 ····​auto·​self(shared_from_this​()​)​;​
50 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​
51 ········​[this,​·​self](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
52 ········​{
53 ··········​if·​(!ec)​
54 ··········​{
55 ············​do_read()​;​
56 ··········​}
57 ········​})​;​
69 ··​}58 ··​}
70 59
71 ··​tcp:​:​socket·​socket_;​60 ··​tcp:​:​socket·​socket_;​
72 ··​enum·​{·​max_length·​=·​1024·​};​61 ··​enum·​{·​max_length·​=·​1024·​};​
73 ··​char·​data_[max_length];​62 ··​char·​data_[max_length];​
74 };​63 };​
75 64
76 class·​server65 class·​server
77 {66 {
78 public:​67 public:​
79 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​68 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
80 ····​:​·​io_context_(io_contex​t)​,​69 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
81 ······acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​
82 ··​{70 ··​{
83 ····start_accept()​;​71 ····do_accept()​;​
84 ··​}72 ··​}
85 73
86 private:​74 private:​
87 ··​void·start_accept()​75 ··​void·do_accept()​
88 ··​{76 ··​{
89 ····session*·new_session·=·new·session(io_context_)​;​77 ····acceptor_.​async_accept(
90 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​78 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
91 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​79 ········{
92 ··········asio:​:​placeholders:​:​error)​)​;​80 ··········​if·(!ec)​
93 ··}81 ··········{
94 82 ············std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
95 ··void·handle_accept(session​*·new_session,​83 ··········}
96 ······const·asio:​:​error_code&·error)​
97 ··{
98 ····if·(!error)​
99 ····{
100 ······new_session-​>start()​;​
101 ····}
102 ····else
103 ····{
104 ······delete·new_session;​
105 ····}
106 84
107 ····start_accept()​;​85 ··········do_accept()​;​
86 ········​})​;​
108 ··​}87 ··​}
109 88
110 ··​asio:​:​io_context&·​io_context_;​
111 ··​tcp:​:​acceptor·​acceptor_;​89 ··​tcp:​:​acceptor·​acceptor_;​
112 };​90 };​
113 91
114 int·​main(int·​argc,​·​char*·​argv[])​92 int·​main(int·​argc,​·​char*·​argv[])​
115 {93 {
116 ··​try94 ··​try
117 ··​{95 ··​{
118 ····​if·​(argc·​!=·​2)​96 ····​if·​(argc·​!=·​2)​
119 ····​{97 ····​{
120 ······​std:​:​cerr·​<<·​"Usage:​·​async_tcp_echo_server​·​<port>\n";​98 ······​std:​:​cerr·​<<·​"Usage:​·​async_tcp_echo_server​·​<port>\n";​
121 ······​return·​1;​99 ······​return·​1;​
122 ····​}100 ····​}
123 101
124 ····​asio:​:​io_context·​io_context;​102 ····​asio:​:​io_context·​io_context;​
125 103
126 ····using·namespace·​std;​·/​/​·For·atoi.​104 ····server·s(io_context,​·​std:​:​atoi(argv[1])​)​;​
127 ····server·s(io_context,​·atoi(argv[1])​)​;​
128 105
129 ····​io_context.​run()​;​106 ····​io_context.​run()​;​
130 ··​}107 ··​}
131 ··​catch·​(std:​:​exception&·​e)​108 ··​catch·​(std:​:​exception&·​e)​
132 ··​{109 ··​{
133 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​110 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
134 ··​}111 ··​}
135 112
136 ··​return·​0;​113 ··​return·​0;​
137 }114 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html deleted file mode 100644 index 088a197..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/async_udp_echo_server.cpp.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - HTML Diff echo/async_udp_echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​async_udp_echo_server​.​cppsrc/​examples/​cpp11/​echo/​async_udp_echo_server​.​cpp
1 /​/​1 /​/​
2 /​/​·​async_udp_echo_server​.​cpp2 /​/​·​async_udp_echo_server​.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>
14 #include·​"asio.​hpp"13 #include·​"asio.​hpp"
15 14
16 using·​asio:​:​ip:​:​udp;​15 using·​asio:​:​ip:​:​udp;​
17 16
18 class·​server17 class·​server
19 {18 {
20 public:​19 public:​
21 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​20 ··​server(asio:​:​io_context&·​io_context,​·​short·​port)​
22 ····​:​·​socket_(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​port)​)​21 ····​:​·​socket_(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​port)​)​
23 ··​{22 ··​{
24 ····socket_.​async_receive_from(23 ····do_receive()​;​
25 ········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​
26 ········boost:​:​bind(&server:​:​handle_receive_from,​·this,​
27 ··········asio:​:​placeholders:​:​error,​
28 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
29 ··​}24 ··​}
30 25
31 ··​void·handle_receive_from(c​onst·asio:​:​error_code&·error,​26 ··​void·​do_receive()​
32 ······size_t·bytes_recvd)​
33 ··​{27 ··​{
34 ····if·(!error·&&·bytes_recvd·>·0)​28 ····socket_.​async_receive_from(
35 ····{29 ········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​
36 ······​socket_.​async_send_to(30 ········[this](std:​:​error_code·ec,​·std:​:​size_t·bytes_recvd)​
37 ··········asio:​:​buffer(data_,​·bytes_recvd)​,​·sender_endpoint_,​31 ········{
38 ··········boost:​:​bind(&server:​:​handle_send_to,​·this,​32 ··········​if·(!ec·&&·bytes_recvd·>·0)​
39 ············asio:​:​placeholders:​:​error,​33 ··········{
40 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​34 ············do_send(bytes_recvd)​;​
41 ····​}35 ··········​}
42 ····​else36 ··········​else
43 ····​{37 ··········​{
44 ······socket_.​async_receive_from(38 ············do_receive()​;​
45 ··········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​39 ··········}
46 ··········boost:​:​bind(&server:​:​handle_receive_from,​·this,​40 ········})​;​
47 ············asio:​:​placeholders:​:​error,​
48 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​
49 ····}
50 ··​}41 ··​}
51 42
52 ··​void·handle_send_to(const·asio:​:​error_code&·/​*error*/​,​43 ··​void·​do_send(std:​:​size_t·length)​
53 ······size_t·/​*bytes_sent*/​)​
54 ··​{44 ··​{
55 ····​socket_.​async_receive_from(45 ····​socket_.​async_send_to(
56 ········​asio:​:​buffer(data_,​·max_length)​,​·​sender_endpoint_,​46 ········​asio:​:​buffer(data_,​·​length)​,​·​sender_endpoint_,​
57 ········boost:​:​bind(&server:​:​handle_receive_from,​·this,​47 ········[this](std:​:​error_code·/​*ec*/​,​·std:​:​size_t·/​*bytes_sent*/​)​
58 ··········asio:​:​placeholders:​:​error,​48 ········{
59 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​49 ··········​do_receive()​;​
50 ········​})​;​
60 ··​}51 ··​}
61 52
62 private:​53 private:​
63 ··​udp:​:​socket·​socket_;​54 ··​udp:​:​socket·​socket_;​
64 ··​udp:​:​endpoint·​sender_endpoint_;​55 ··​udp:​:​endpoint·​sender_endpoint_;​
65 ··​enum·​{·​max_length·​=·​1024·​};​56 ··​enum·​{·​max_length·​=·​1024·​};​
66 ··​char·​data_[max_length];​57 ··​char·​data_[max_length];​
67 };​58 };​
68 59
69 int·​main(int·​argc,​·​char*·​argv[])​60 int·​main(int·​argc,​·​char*·​argv[])​
70 {61 {
71 ··​try62 ··​try
72 ··​{63 ··​{
73 ····​if·​(argc·​!=·​2)​64 ····​if·​(argc·​!=·​2)​
74 ····​{65 ····​{
75 ······​std:​:​cerr·​<<·​"Usage:​·​async_udp_echo_server​·​<port>\n";​66 ······​std:​:​cerr·​<<·​"Usage:​·​async_udp_echo_server​·​<port>\n";​
76 ······​return·​1;​67 ······​return·​1;​
77 ····​}68 ····​}
78 69
79 ····​asio:​:​io_context·​io_context;​70 ····​asio:​:​io_context·​io_context;​
80 71
81 ····using·namespace·​std;​·/​/​·For·atoi.​72 ····server·s(io_context,​·​std:​:​atoi(argv[1])​)​;​
82 ····server·s(io_context,​·atoi(argv[1])​)​;​
83 73
84 ····​io_context.​run()​;​74 ····​io_context.​run()​;​
85 ··​}75 ··​}
86 ··​catch·​(std:​:​exception&·​e)​76 ··​catch·​(std:​:​exception&·​e)​
87 ··​{77 ··​{
88 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​78 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
89 ··​}79 ··​}
90 80
91 ··​return·​0;​81 ··​return·​0;​
92 }82 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html deleted file mode 100644 index 63be7de..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_client.cpp.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - HTML Diff echo/blocking_tcp_echo_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​blocking_tcp_echo_cli​ent.​cppsrc/​examples/​cpp11/​echo/​blocking_tcp_echo_cli​ent.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_tcp_echo_cli​ent.​cpp2 /​/​·​blocking_tcp_echo_cli​ent.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<cstring>12 #include·​<cstring>
13 #include·​<iostream>13 #include·​<iostream>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 15
16 using·​asio:​:​ip:​:​tcp;​16 using·​asio:​:​ip:​:​tcp;​
17 17
18 enum·​{·​max_length·​=·​1024·​};​18 enum·​{·​max_length·​=·​1024·​};​
19 19
20 int·​main(int·​argc,​·​char*·​argv[])​20 int·​main(int·​argc,​·​char*·​argv[])​
21 {21 {
22 ··​try22 ··​try
23 ··​{23 ··​{
24 ····​if·​(argc·​!=·​3)​24 ····​if·​(argc·​!=·​3)​
25 ····​{25 ····​{
26 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_echo_cli​ent·​<host>·​<port>\n";​26 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_echo_cli​ent·​<host>·​<port>\n";​
27 ······​return·​1;​27 ······​return·​1;​
28 ····​}28 ····​}
29 29
30 ····​asio:​:​io_context·​io_context;​30 ····​asio:​:​io_context·​io_context;​
31 31
32 ····​tcp:​:​resolver·​resolver(io_context)​;​
33 ····​tcp:​:​resolver:​:​results_type·​endpoints·​=
34 ······​resolver.​resolve(tcp:​:​v4()​,​·​argv[1],​·​argv[2])​;​
35
36 ····​tcp:​:​socket·​s(io_context)​;​32 ····​tcp:​:​socket·​s(io_context)​;​
37 ····asio:​:​connect(s,​·endpoints)​;​33 ····tcp:​:​resolver·resolver(io_context)​;​
34 ····​asio:​:​connect(s,​·​resolver.​resolve(argv[1],​·​argv[2])​)​;​
38 35
39 ····​using·​namespace·​std;​·​/​/​·​For·​strlen.​
40 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​36 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
41 ····​char·​request[max_length];​37 ····​char·​request[max_length];​
42 ····​std:​:​cin.​getline(request,​·​max_length)​;​38 ····​std:​:​cin.​getline(request,​·​max_length)​;​
43 ····​size_t·​request_length·​=·​strlen(request)​;​39 ····​size_t·​request_length·​=·std:​:​strlen(request)​;​
44 ····​asio:​:​write(s,​·​asio:​:​buffer(request,​·​request_length)​)​;​40 ····​asio:​:​write(s,​·​asio:​:​buffer(request,​·​request_length)​)​;​
45 41
46 ····​char·​reply[max_length];​42 ····​char·​reply[max_length];​
47 ····​size_t·​reply_length·​=·​asio:​:​read(s,​43 ····​size_t·​reply_length·​=·​asio:​:​read(s,​
48 ········​asio:​:​buffer(reply,​·​request_length)​)​;​44 ········​asio:​:​buffer(reply,​·​request_length)​)​;​
49 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​45 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​
50 ····​std:​:​cout.​write(reply,​·​reply_length)​;​46 ····​std:​:​cout.​write(reply,​·​reply_length)​;​
51 ····​std:​:​cout·​<<·​"\n";​47 ····​std:​:​cout·​<<·​"\n";​
52 ··​}48 ··​}
53 ··​catch·​(std:​:​exception&·​e)​49 ··​catch·​(std:​:​exception&·​e)​
54 ··​{50 ··​{
55 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​51 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
56 ··​}52 ··​}
57 53
58 ··​return·​0;​54 ··​return·​0;​
59 }55 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html deleted file mode 100644 index e380dc8..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_tcp_echo_server.cpp.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - HTML Diff echo/blocking_tcp_echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​blocking_tcp_echo_ser​ver.​cppsrc/​examples/​cpp11/​echo/​blocking_tcp_echo_ser​ver.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_tcp_echo_ser​ver.​cpp2 /​/​·​blocking_tcp_echo_ser​ver.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>13 #include·​<thread>
14 #include·​<boost/​smart_ptr.​hpp>14 #include·​<utility>
15 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
16 16
17 using·​asio:​:​ip:​:​tcp;​17 using·​asio:​:​ip:​:​tcp;​
18 18
19 const·​int·​max_length·​=·​1024;​19 const·​int·​max_length·​=·​1024;​
20 20
21 typedef·boost:​:​shared_ptr<tcp:​:​socket>·​socket_ptr;​21 void·​session(tcp:​:​socket·​sock)​
22
23 void·session(socket_ptr·sock)​
24 {22 {
25 ··​try23 ··​try
26 ··​{24 ··​{
27 ····​for·​(;​;​)​25 ····​for·​(;​;​)​
28 ····​{26 ····​{
29 ······​char·​data[max_length];​27 ······​char·​data[max_length];​
30 28
31 ······​asio:​:​error_code·​error;​29 ······​asio:​:​error_code·​error;​
32 ······​size_t·​length·​=·​sock-​>read_some(asio:​:​buffer(data)​,​·​error)​;​30 ······​size_t·​length·​=·​sock.​read_some(asio:​:​buffer(data)​,​·​error)​;​
33 ······​if·​(error·​==·​asio:​:​error:​:​eof)​31 ······​if·​(error·​==·​asio:​:​error:​:​eof)​
34 ········​break;​·​/​/​·​Connection·​closed·​cleanly·​by·​peer.​32 ········​break;​·​/​/​·​Connection·​closed·​cleanly·​by·​peer.​
35 ······​else·​if·​(error)​33 ······​else·​if·​(error)​
36 ········​throw·​asio:​:​system_error(error)​;​·​/​/​·​Some·​other·​error.​34 ········​throw·​asio:​:​system_error(error)​;​·​/​/​·​Some·​other·​error.​
37 35
38 ······​asio:​:​write(*sock,​·​asio:​:​buffer(data,​·​length)​)​;​36 ······​asio:​:​write(sock,​·​asio:​:​buffer(data,​·​length)​)​;​
39 ····​}37 ····​}
40 ··​}38 ··​}
41 ··​catch·​(std:​:​exception&·​e)​39 ··​catch·​(std:​:​exception&·​e)​
42 ··​{40 ··​{
43 ····​std:​:​cerr·​<<·​"Exception·​in·​thread:​·​"·​<<·​e.​what()​·​<<·​"\n";​41 ····​std:​:​cerr·​<<·​"Exception·​in·​thread:​·​"·​<<·​e.​what()​·​<<·​"\n";​
44 ··​}42 ··​}
45 }43 }
46 44
47 void·​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​45 void·​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
48 {46 {
49 ··​tcp:​:​acceptor·​a(io_context,​·​tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​;​47 ··​tcp:​:​acceptor·​a(io_context,​·​tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​;​
50 ··​for·​(;​;​)​48 ··​for·​(;​;​)​
51 ··​{49 ··​{
52 ····​socket_ptr·sock(new·tcp:​:​socket(io_context)​)​;​50 ····​std:​:​thread(session,​·a.​accept()​)​.​detach()​;​
53 ····a.​accept(*sock)​;​
54 ····asio:​:​thread·t(boost:​:​bind(session,​·sock)​)​;​
55 ··​}51 ··​}
56 }52 }
57 53
58 int·​main(int·​argc,​·​char*·​argv[])​54 int·​main(int·​argc,​·​char*·​argv[])​
59 {55 {
60 ··​try56 ··​try
61 ··​{57 ··​{
62 ····​if·​(argc·​!=·​2)​58 ····​if·​(argc·​!=·​2)​
63 ····​{59 ····​{
64 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_echo_ser​ver·​<port>\n";​60 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_echo_ser​ver·​<port>\n";​
65 ······​return·​1;​61 ······​return·​1;​
66 ····​}62 ····​}
67 63
68 ····​asio:​:​io_context·​io_context;​64 ····​asio:​:​io_context·​io_context;​
69 65
70 ····using·namespace·​std;​·/​/​·For·atoi.​66 ····server(io_context,​·​std:​:​atoi(argv[1])​)​;​
71 ····server(io_context,​·atoi(argv[1])​)​;​
72 ··​}67 ··​}
73 ··​catch·​(std:​:​exception&·​e)​68 ··​catch·​(std:​:​exception&·​e)​
74 ··​{69 ··​{
75 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​70 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
76 ··​}71 ··​}
77 72
78 ··​return·​0;​73 ··​return·​0;​
79 }74 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html deleted file mode 100644 index 05dcee9..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_client.cpp.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - HTML Diff echo/blocking_udp_echo_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​blocking_udp_echo_cli​ent.​cppsrc/​examples/​cpp11/​echo/​blocking_udp_echo_cli​ent.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_udp_echo_cli​ent.​cpp2 /​/​·​blocking_udp_echo_cli​ent.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<cstring>12 #include·​<cstring>
13 #include·​<iostream>13 #include·​<iostream>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 15
16 using·​asio:​:​ip:​:​udp;​16 using·​asio:​:​ip:​:​udp;​
17 17
18 enum·​{·​max_length·​=·​1024·​};​18 enum·​{·​max_length·​=·​1024·​};​
19 19
20 int·​main(int·​argc,​·​char*·​argv[])​20 int·​main(int·​argc,​·​char*·​argv[])​
21 {21 {
22 ··​try22 ··​try
23 ··​{23 ··​{
24 ····​if·​(argc·​!=·​3)​24 ····​if·​(argc·​!=·​3)​
25 ····​{25 ····​{
26 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_echo_cli​ent·​<host>·​<port>\n";​26 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_echo_cli​ent·​<host>·​<port>\n";​
27 ······​return·​1;​27 ······​return·​1;​
28 ····​}28 ····​}
29 29
30 ····​asio:​:​io_context·​io_context;​30 ····​asio:​:​io_context·​io_context;​
31 31
32 ····​udp:​:​socket·​s(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​0)​)​;​32 ····​udp:​:​socket·​s(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​0)​)​;​
33 33
34 ····​udp:​:​resolver·​resolver(io_context)​;​34 ····​udp:​:​resolver·​resolver(io_context)​;​
35 ····​udp:​:​resolver:​:​results_type·​endpoints·​=35 ····​udp:​:​resolver:​:​results_type·​endpoints·​=
36 ······​resolver.​resolve(udp:​:​v4()​,​·​argv[1],​·​argv[2])​;​36 ······​resolver.​resolve(udp:​:​v4()​,​·​argv[1],​·​argv[2])​;​
37 37
38 ····​using·​namespace·​std;​·​/​/​·​For·​strlen.​
39 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​38 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
40 ····​char·​request[max_length];​39 ····​char·​request[max_length];​
41 ····​std:​:​cin.​getline(request,​·​max_length)​;​40 ····​std:​:​cin.​getline(request,​·​max_length)​;​
42 ····​size_t·​request_length·​=·​strlen(request)​;​41 ····​size_t·​request_length·​=·std:​:​strlen(request)​;​
43 ····​s.​send_to(asio:​:​buffer(request,​·​request_length)​,​·​*endpoints.​begin()​)​;​42 ····​s.​send_to(asio:​:​buffer(request,​·​request_length)​,​·​*endpoints.​begin()​)​;​
44 43
45 ····​char·​reply[max_length];​44 ····​char·​reply[max_length];​
46 ····​udp:​:​endpoint·​sender_endpoint;​45 ····​udp:​:​endpoint·​sender_endpoint;​
47 ····​size_t·​reply_length·​=·​s.​receive_from(46 ····​size_t·​reply_length·​=·​s.​receive_from(
48 ········​asio:​:​buffer(reply,​·​max_length)​,​·​sender_endpoint)​;​47 ········​asio:​:​buffer(reply,​·​max_length)​,​·​sender_endpoint)​;​
49 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​48 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​
50 ····​std:​:​cout.​write(reply,​·​reply_length)​;​49 ····​std:​:​cout.​write(reply,​·​reply_length)​;​
51 ····​std:​:​cout·​<<·​"\n";​50 ····​std:​:​cout·​<<·​"\n";​
52 ··​}51 ··​}
53 ··​catch·​(std:​:​exception&·​e)​52 ··​catch·​(std:​:​exception&·​e)​
54 ··​{53 ··​{
55 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​54 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
56 ··​}55 ··​}
57 56
58 ··​return·​0;​57 ··​return·​0;​
59 }58 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html deleted file mode 100644 index fd503f8..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/echo/blocking_udp_echo_server.cpp.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - HTML Diff echo/blocking_udp_echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​echo/​blocking_udp_echo_ser​ver.​cppsrc/​examples/​cpp11/​echo/​blocking_udp_echo_ser​ver.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_udp_echo_ser​ver.​cpp2 /​/​·​blocking_udp_echo_ser​ver.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​"asio.​hpp"13 #include·​"asio.​hpp"
14 14
15 using·​asio:​:​ip:​:​udp;​15 using·​asio:​:​ip:​:​udp;​
16 16
17 enum·​{·​max_length·​=·​1024·​};​17 enum·​{·​max_length·​=·​1024·​};​
18 18
19 void·​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​19 void·​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
20 {20 {
21 ··​udp:​:​socket·​sock(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​port)​)​;​21 ··​udp:​:​socket·​sock(io_context,​·​udp:​:​endpoint(udp:​:​v4()​,​·​port)​)​;​
22 ··​for·​(;​;​)​22 ··​for·​(;​;​)​
23 ··​{23 ··​{
24 ····​char·​data[max_length];​24 ····​char·​data[max_length];​
25 ····​udp:​:​endpoint·​sender_endpoint;​25 ····​udp:​:​endpoint·​sender_endpoint;​
26 ····​size_t·​length·​=·​sock.​receive_from(26 ····​size_t·​length·​=·​sock.​receive_from(
27 ········​asio:​:​buffer(data,​·​max_length)​,​·​sender_endpoint)​;​27 ········​asio:​:​buffer(data,​·​max_length)​,​·​sender_endpoint)​;​
28 ····​sock.​send_to(asio:​:​buffer(data,​·​length)​,​·​sender_endpoint)​;​28 ····​sock.​send_to(asio:​:​buffer(data,​·​length)​,​·​sender_endpoint)​;​
29 ··​}29 ··​}
30 }30 }
31 31
32 int·​main(int·​argc,​·​char*·​argv[])​32 int·​main(int·​argc,​·​char*·​argv[])​
33 {33 {
34 ··​try34 ··​try
35 ··​{35 ··​{
36 ····​if·​(argc·​!=·​2)​36 ····​if·​(argc·​!=·​2)​
37 ····​{37 ····​{
38 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_echo_ser​ver·​<port>\n";​38 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_echo_ser​ver·​<port>\n";​
39 ······​return·​1;​39 ······​return·​1;​
40 ····​}40 ····​}
41 41
42 ····​asio:​:​io_context·​io_context;​42 ····​asio:​:​io_context·​io_context;​
43 43
44 ····using·namespace·​std;​·/​/​·For·atoi.​44 ····server(io_context,​·​std:​:​atoi(argv[1])​)​;​
45 ····server(io_context,​·atoi(argv[1])​)​;​
46 ··​}45 ··​}
47 ··​catch·​(std:​:​exception&·​e)​46 ··​catch·​(std:​:​exception&·​e)​
48 ··​{47 ··​{
49 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​48 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
50 ··​}49 ··​}
51 50
52 ··​return·​0;​51 ··​return·​0;​
53 }52 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/actor.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/actor.cpp.html deleted file mode 100644 index 5eff61e..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/actor.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/actor.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_1.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_1.cpp.html deleted file mode 100644 index 5d3b803..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_1.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/bank_account_1.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_2.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_2.cpp.html deleted file mode 100644 index 4c74539..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/bank_account_2.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/bank_account_2.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/fork_join.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/fork_join.cpp.html deleted file mode 100644 index 2cdea5b..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/fork_join.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/fork_join.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/pipeline.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/pipeline.cpp.html deleted file mode 100644 index 185b617..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/pipeline.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/pipeline.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html deleted file mode 100644 index 52c3ffa..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/executors/priority_scheduler.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff executors/priority_scheduler.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/fork/daemon.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/fork/daemon.cpp.html deleted file mode 100644 index a9a33d9..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/fork/daemon.cpp.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - HTML Diff fork/daemon.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​fork/​daemon.​cppsrc/​examples/​cpp11/​fork/​daemon.​cpp
1 /​/​1 /​/​
2 /​/​·​daemon.​cpp2 /​/​·​daemon.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio/​io_context.​hpp>11 #include·​<asio/​io_context.​hpp>
12 #include·​<asio/​ip/​udp.​hpp>12 #include·​<asio/​ip/​udp.​hpp>
13 #include·​<asio/​signal_set.​hpp>13 #include·​<asio/​signal_set.​hpp>
14 #include·​<boost/​array.​hpp>14 #include·​<array>
15 #include·<boost/​bind.​hpp>
16 #include·​<ctime>15 #include·​<ctime>
17 #include·​<iostream>16 #include·​<iostream>
18 #include·​<syslog.​h>17 #include·​<syslog.​h>
19 #include·​<unistd.​h>18 #include·​<unistd.​h>
20 19
21 using·​asio:​:​ip:​:​udp;​20 using·​asio:​:​ip:​:​udp;​
22 21
23 class·​udp_daytime_server22 class·​udp_daytime_server
24 {23 {
25 public:​24 public:​
26 ··​udp_daytime_server(as​io:​:​io_context&·​io_context)​25 ··​udp_daytime_server(as​io:​:​io_context&·​io_context)​
27 ····​:​·​socket_(io_context,​·udp:​:​endpoint(udp:​:​v4()​,​·​13)​)​26 ····​:​·​socket_(io_context,​·{udp:​:​v4()​,​·​13})​
28 ··​{27 ··​{
29 ····start_receive()​;​28 ····​receive()​;​
30 ··​}29 ··​}
31 30
32 private:​31 private:​
33 ··​void·start_receive()​32 ··​void·​receive()​
34 ··​{33 ··​{
35 ····​socket_.​async_receive_from(34 ····​socket_.​async_receive_from(
36 ········​asio:​:​buffer(recv_buffer_)​,​·​remote_endpoint_,​35 ········​asio:​:​buffer(recv_buffer_)​,​·​remote_endpoint_,​
37 ········boost:​:​bind(&udp_daytime_ser​ver:​:​handle_receive,​·this,​·_1)​)​;​36 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*n*/​)​
38 ··}37 ········{
39 38 ··········if·(!ec)​
40 ··void·handle_receive(const·asio:​:​error_code&·ec)​39 ··········{
41 ··{40 ············using·namespace·std;​·/​/​·For·time_t,​·time·and·ctime;​
42 ····​if·(!ec)​41 ············time_t·now·=·time(0)​;​
43 ····{42 ············std:​:​string·message·=·ctime(&now)​;​
44 ······using·namespace·std;​·/​/​·For·time_t,​·time·and·ctime;​43
45 ······​time_t·now·=·time(0)​;​44 ············std:​:​error_code·ignored_ec;​
46 ······std:​:​string·message·=·ctime(&now)​;​45 ············socket_.​send_to(asio:​:​buffer(message)​,​
47 46 ················remote_endpoint_,​·0,​·ignored_ec)​;​
48 ······asio:​:​error_code·ignored_ec;​47 ··········}
49 ······socket_.​send_to(asio:​:​buffer(message)​,​
50 ··········remote_endpoint_,​·0,​·ignored_ec)​;​
51 ····}
52 48
53 ····start_receive()​;​49 ··········receive()​;​
50 ········​})​;​
54 ··​}51 ··​}
55 52
56 ··​udp:​:​socket·​socket_;​53 ··​udp:​:​socket·​socket_;​
57 ··​udp:​:​endpoint·​remote_endpoint_;​54 ··​udp:​:​endpoint·​remote_endpoint_;​
58 ··boost:​:​array<char,​·​1>·​recv_buffer_;​55 ··​std:​:​array<char,​·​1>·​recv_buffer_;​
59 };​56 };​
60 57
61 int·​main()​58 int·​main()​
62 {59 {
63 ··​try60 ··​try
64 ··​{61 ··​{
65 ····​asio:​:​io_context·​io_context;​62 ····​asio:​:​io_context·​io_context;​
66 63
67 ····​/​/​·​Initialise·​the·​server·​before·​becoming·​a·​daemon.​·​If·​the·​process·​is64 ····​/​/​·​Initialise·​the·​server·​before·​becoming·​a·​daemon.​·​If·​the·​process·​is
68 ····​/​/​·​started·​from·​a·​shell,​·​this·​means·​any·​errors·​will·​be·​reported·​back·​to·​the65 ····​/​/​·​started·​from·​a·​shell,​·​this·​means·​any·​errors·​will·​be·​reported·​back·​to·​the
69 ····​/​/​·​user.​66 ····​/​/​·​user.​
70 ····​udp_daytime_server·​server(io_context)​;​67 ····​udp_daytime_server·​server(io_context)​;​
71 68
72 ····​/​/​·​Register·​signal·​handlers·​so·​that·​the·​daemon·​may·​be·​shut·​down.​·​You·​may69 ····​/​/​·​Register·​signal·​handlers·​so·​that·​the·​daemon·​may·​be·​shut·​down.​·​You·​may
73 ····​/​/​·​also·​want·​to·​register·​for·​other·​signals,​·​such·​as·​SIGHUP·​to·​trigger·​a70 ····​/​/​·​also·​want·​to·​register·​for·​other·​signals,​·​such·​as·​SIGHUP·​to·​trigger·​a
74 ····​/​/​·​re-​read·​of·​a·​configuration·​file.​71 ····​/​/​·​re-​read·​of·​a·​configuration·​file.​
75 ····​asio:​:​signal_set·​signals(io_context,​·​SIGINT,​·​SIGTERM)​;​72 ····​asio:​:​signal_set·​signals(io_context,​·​SIGINT,​·​SIGTERM)​;​
76 ····​signals.​async_wait(73 ····​signals.​async_wait(
77 ········boost:​:​bind(&asio:​:​io_context:​:​stop,​·&io_context)​)​;​74 ········[&](std:​:​error_code·/​*ec*/​,​·int·/​*signo*/​)​
75 ········​{
76 ··········​io_context.​stop()​;​
77 ········​})​;​
78 78
79 ····​/​/​·​Inform·​the·​io_context·​that·​we·​are·​about·​to·​become·​a·​daemon.​·​The79 ····​/​/​·​Inform·​the·​io_context·​that·​we·​are·​about·​to·​become·​a·​daemon.​·​The
80 ····​/​/​·​io_context·​cleans·​up·​any·​internal·​resources,​·​such·​as·​threads,​·​that·​may80 ····​/​/​·​io_context·​cleans·​up·​any·​internal·​resources,​·​such·​as·​threads,​·​that·​may
81 ····​/​/​·​interfere·​with·​forking.​81 ····​/​/​·​interfere·​with·​forking.​
82 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​82 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
83 83
84 ····​/​/​·​Fork·​the·​process·​and·​have·​the·​parent·​exit.​·​If·​the·​process·​was·​started84 ····​/​/​·​Fork·​the·​process·​and·​have·​the·​parent·​exit.​·​If·​the·​process·​was·​started
85 ····​/​/​·​from·​a·​shell,​·​this·​returns·​control·​to·​the·​user.​·​Forking·​a·​new·​process·​is85 ····​/​/​·​from·​a·​shell,​·​this·​returns·​control·​to·​the·​user.​·​Forking·​a·​new·​process·​is
86 ····​/​/​·​also·​a·​prerequisite·​for·​the·​subsequent·​call·​to·​setsid()​.​86 ····​/​/​·​also·​a·​prerequisite·​for·​the·​subsequent·​call·​to·​setsid()​.​
87 ····​if·​(pid_t·​pid·​=·​fork()​)​87 ····​if·​(pid_t·​pid·​=·​fork()​)​
88 ····​{88 ····​{
89 ······​if·​(pid·​>·​0)​89 ······​if·​(pid·​>·​0)​
90 ······​{90 ······​{
91 ········​/​/​·​We're·​in·​the·​parent·​process·​and·​need·​to·​exit.​91 ········​/​/​·​We're·​in·​the·​parent·​process·​and·​need·​to·​exit.​
92 ········​/​/​92 ········​/​/​
93 ········​/​/​·​When·​the·​exit()​·​function·​is·​used,​·​the·​program·​terminates·​without93 ········​/​/​·​When·​the·​exit()​·​function·​is·​used,​·​the·​program·​terminates·​without
94 ········​/​/​·​invoking·​local·​variables'·​destructors.​·​Only·​global·​variables·​are94 ········​/​/​·​invoking·​local·​variables'·​destructors.​·​Only·​global·​variables·​are
95 ········​/​/​·​destroyed.​·​As·​the·​io_context·​object·​is·​a·​local·​variable,​·​this·​means95 ········​/​/​·​destroyed.​·​As·​the·​io_context·​object·​is·​a·​local·​variable,​·​this·​means
96 ········​/​/​·​we·​do·​not·​have·​to·​call:​96 ········​/​/​·​we·​do·​not·​have·​to·​call:​
97 ········​/​/​97 ········​/​/​
98 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​98 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​
99 ········​/​/​99 ········​/​/​
100 ········​/​/​·​However,​·​this·​line·​should·​be·​added·​before·​each·​call·​to·​exit()​·​if100 ········​/​/​·​However,​·​this·​line·​should·​be·​added·​before·​each·​call·​to·​exit()​·​if
101 ········​/​/​·​using·​a·​global·​io_context·​object.​·​An·​additional·​call:​101 ········​/​/​·​using·​a·​global·​io_context·​object.​·​An·​additional·​call:​
102 ········​/​/​102 ········​/​/​
103 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​103 ········​/​/​···​io_context.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
104 ········​/​/​104 ········​/​/​
105 ········​/​/​·​should·​also·​precede·​the·​second·​fork()​.​105 ········​/​/​·​should·​also·​precede·​the·​second·​fork()​.​
106 ········​exit(0)​;​106 ········​exit(0)​;​
107 ······​}107 ······​}
108 ······​else108 ······​else
109 ······​{109 ······​{
110 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"First·​fork·​failed:​·​%m")​;​110 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"First·​fork·​failed:​·​%m")​;​
111 ········​return·​1;​111 ········​return·​1;​
112 ······​}112 ······​}
113 ····​}113 ····​}
114 114
115 ····​/​/​·​Make·​the·​process·​a·​new·​session·​leader.​·​This·​detaches·​it·​from·​the115 ····​/​/​·​Make·​the·​process·​a·​new·​session·​leader.​·​This·​detaches·​it·​from·​the
116 ····​/​/​·​terminal.​116 ····​/​/​·​terminal.​
117 ····​setsid()​;​117 ····​setsid()​;​
118 118
119 ····​/​/​·​A·​process·​inherits·​its·​working·​directory·​from·​its·​parent.​·​This·​could·​be119 ····​/​/​·​A·​process·​inherits·​its·​working·​directory·​from·​its·​parent.​·​This·​could·​be
120 ····​/​/​·​on·​a·​mounted·​filesystem,​·​which·​means·​that·​the·​running·​daemon·​would120 ····​/​/​·​on·​a·​mounted·​filesystem,​·​which·​means·​that·​the·​running·​daemon·​would
121 ····​/​/​·​prevent·​this·​filesystem·​from·​being·​unmounted.​·​Changing·​to·​the·​root121 ····​/​/​·​prevent·​this·​filesystem·​from·​being·​unmounted.​·​Changing·​to·​the·​root
122 ····​/​/​·​directory·​avoids·​this·​problem.​122 ····​/​/​·​directory·​avoids·​this·​problem.​
123 ····​chdir("/​")​;​123 ····​chdir("/​")​;​
124 124
125 ····​/​/​·​The·​file·​mode·​creation·​mask·​is·​also·​inherited·​from·​the·​parent·​process.​125 ····​/​/​·​The·​file·​mode·​creation·​mask·​is·​also·​inherited·​from·​the·​parent·​process.​
126 ····​/​/​·​We·​don't·​want·​to·​restrict·​the·​permissions·​on·​files·​created·​by·​the126 ····​/​/​·​We·​don't·​want·​to·​restrict·​the·​permissions·​on·​files·​created·​by·​the
127 ····​/​/​·​daemon,​·​so·​the·​mask·​is·​cleared.​127 ····​/​/​·​daemon,​·​so·​the·​mask·​is·​cleared.​
128 ····​umask(0)​;​128 ····​umask(0)​;​
129 129
130 ····​/​/​·​A·​second·​fork·​ensures·​the·​process·​cannot·​acquire·​a·​controlling·​terminal.​130 ····​/​/​·​A·​second·​fork·​ensures·​the·​process·​cannot·​acquire·​a·​controlling·​terminal.​
131 ····​if·​(pid_t·​pid·​=·​fork()​)​131 ····​if·​(pid_t·​pid·​=·​fork()​)​
132 ····​{132 ····​{
133 ······​if·​(pid·​>·​0)​133 ······​if·​(pid·​>·​0)​
134 ······​{134 ······​{
135 ········​exit(0)​;​135 ········​exit(0)​;​
136 ······​}136 ······​}
137 ······​else137 ······​else
138 ······​{138 ······​{
139 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"Second·​fork·​failed:​·​%m")​;​139 ········​syslog(LOG_ERR·​|·​LOG_USER,​·​"Second·​fork·​failed:​·​%m")​;​
140 ········​return·​1;​140 ········​return·​1;​
141 ······​}141 ······​}
142 ····​}142 ····​}
143 143
144 ····​/​/​·​Close·​the·​standard·​streams.​·​This·​decouples·​the·​daemon·​from·​the·​terminal144 ····​/​/​·​Close·​the·​standard·​streams.​·​This·​decouples·​the·​daemon·​from·​the·​terminal
145 ····​/​/​·​that·​started·​it.​145 ····​/​/​·​that·​started·​it.​
146 ····​close(0)​;​146 ····​close(0)​;​
147 ····​close(1)​;​147 ····​close(1)​;​
148 ····​close(2)​;​148 ····​close(2)​;​
149 149
150 ····​/​/​·​We·​don't·​want·​the·​daemon·​to·​have·​any·​standard·​input.​150 ····​/​/​·​We·​don't·​want·​the·​daemon·​to·​have·​any·​standard·​input.​
151 ····​if·​(open("/​dev/​null",​·​O_RDONLY)​·​<·​0)​151 ····​if·​(open("/​dev/​null",​·​O_RDONLY)​·​<·​0)​
152 ····​{152 ····​{
153 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​/​dev/​null:​·​%m")​;​153 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​/​dev/​null:​·​%m")​;​
154 ······​return·​1;​154 ······​return·​1;​
155 ····​}155 ····​}
156 156
157 ····​/​/​·​Send·​standard·​output·​to·​a·​log·​file.​157 ····​/​/​·​Send·​standard·​output·​to·​a·​log·​file.​
158 ····​const·​char*·​output·​=·​"/​tmp/​asio.​daemon.​out";​158 ····​const·​char*·​output·​=·​"/​tmp/​asio.​daemon.​out";​
159 ····​const·​int·​flags·​=·​O_WRONLY·​|·​O_CREAT·​|·​O_APPEND;​159 ····​const·​int·​flags·​=·​O_WRONLY·​|·​O_CREAT·​|·​O_APPEND;​
160 ····​const·​mode_t·​mode·​=·​S_IRUSR·​|·​S_IWUSR·​|·​S_IRGRP·​|·​S_IROTH;​160 ····​const·​mode_t·​mode·​=·​S_IRUSR·​|·​S_IWUSR·​|·​S_IRGRP·​|·​S_IROTH;​
161 ····​if·​(open(output,​·​flags,​·​mode)​·​<·​0)​161 ····​if·​(open(output,​·​flags,​·​mode)​·​<·​0)​
162 ····​{162 ····​{
163 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​output·​file·​%s:​·​%m",​·​output)​;​163 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​open·​output·​file·​%s:​·​%m",​·​output)​;​
164 ······​return·​1;​164 ······​return·​1;​
165 ····​}165 ····​}
166 166
167 ····​/​/​·​Also·​send·​standard·​error·​to·​the·​same·​log·​file.​167 ····​/​/​·​Also·​send·​standard·​error·​to·​the·​same·​log·​file.​
168 ····​if·​(dup(1)​·​<·​0)​168 ····​if·​(dup(1)​·​<·​0)​
169 ····​{169 ····​{
170 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​dup·​output·​descriptor:​·​%m")​;​170 ······​syslog(LOG_ERR·​|·​LOG_USER,​·​"Unable·​to·​dup·​output·​descriptor:​·​%m")​;​
171 ······​return·​1;​171 ······​return·​1;​
172 ····​}172 ····​}
173 173
174 ····​/​/​·​Inform·​the·​io_context·​that·​we·​have·​finished·​becoming·​a·​daemon.​·​The174 ····​/​/​·​Inform·​the·​io_context·​that·​we·​have·​finished·​becoming·​a·​daemon.​·​The
175 ····​/​/​·​io_context·​uses·​this·​opportunity·​to·​create·​any·​internal·​file·​descriptors175 ····​/​/​·​io_context·​uses·​this·​opportunity·​to·​create·​any·​internal·​file·​descriptors
176 ····​/​/​·​that·​need·​to·​be·​private·​to·​the·​new·​process.​176 ····​/​/​·​that·​need·​to·​be·​private·​to·​the·​new·​process.​
177 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_child)​;​177 ····​io_context.​notify_fork(asio:​:​io_context:​:​fork_child)​;​
178 178
179 ····​/​/​·​The·​io_context·​can·​now·​be·​used·​normally.​179 ····​/​/​·​The·​io_context·​can·​now·​be·​used·​normally.​
180 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​started")​;​180 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​started")​;​
181 ····​io_context.​run()​;​181 ····​io_context.​run()​;​
182 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​stopped")​;​182 ····​syslog(LOG_INFO·​|·​LOG_USER,​·​"Daemon·​stopped")​;​
183 ··​}183 ··​}
184 ··​catch·​(std:​:​exception&·​e)​184 ··​catch·​(std:​:​exception&·​e)​
185 ··​{185 ··​{
186 ····​syslog(LOG_ERR·​|·​LOG_USER,​·​"Exception:​·​%s",​·​e.​what()​)​;​186 ····​syslog(LOG_ERR·​|·​LOG_USER,​·​"Exception:​·​%s",​·​e.​what()​)​;​
187 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​187 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​
188 ··​}188 ··​}
189 }189 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/fork/process_per_connection.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/fork/process_per_connection.cpp.html deleted file mode 100644 index 7d96cb8..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/fork/process_per_connection.cpp.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - - - HTML Diff fork/process_per_connection.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​fork/​process_per_connectio​n.​cppsrc/​examples/​cpp11/​fork/​process_per_connectio​n.​cpp
1 /​/​1 /​/​
2 /​/​·​process_per_connectio​n.​cpp2 /​/​·​process_per_connectio​n.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio/​io_context.​hpp>11 #include·​<asio/​io_context.​hpp>
12 #include·​<asio/​ip/​tcp.​hpp>12 #include·​<asio/​ip/​tcp.​hpp>
13 #include·​<asio/​signal_set.​hpp>13 #include·​<asio/​signal_set.​hpp>
14 #include·​<asio/​write.​hpp>14 #include·​<asio/​write.​hpp>
15 #include·​<boost/​array.​hpp>
16 #include·​<boost/​bind.​hpp>
17 #include·​<cstdlib>15 #include·​<cstdlib>
18 #include·​<iostream>16 #include·​<iostream>
19 #include·​<sys/​types.​h>17 #include·​<sys/​types.​h>
20 #include·​<sys/​wait.​h>18 #include·​<sys/​wait.​h>
21 #include·​<unistd.​h>19 #include·​<unistd.​h>
22 20
23 using·​asio:​:​ip:​:​tcp;​21 using·​asio:​:​ip:​:​tcp;​
24 22
25 class·​server23 class·​server
26 {24 {
27 public:​25 public:​
28 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​26 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
29 ····​:​·​io_context_(io_contex​t)​,​27 ····​:​·​io_context_(io_contex​t)​,​
30 ······​signal_(io_context,​·​SIGCHLD)​,​28 ······​signal_(io_context,​·​SIGCHLD)​,​
31 ······​acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​,​29 ······​acceptor_(io_context,​·{tcp:​:​v4()​,​·​port})​,​
32 ······​socket_(io_context)​30 ······​socket_(io_context)​
33 ··​{31 ··​{
34 ····start_signal_wait()​;​32 ····wait_for_signal()​;​
35 ····start_accept()​;​33 ····​accept()​;​
36 ··​}34 ··​}
37 35
38 private:​36 private:​
39 ··​void·start_signal_wait()​37 ··​void·wait_for_signal()​
40 ··​{38 ··​{
41 ····​signal_.​async_wait(boost:​:​bind(&server:​:​handle_signal_wait,​·this)​)​;​39 ····​signal_.​async_wait(
40 ········​[this](std:​:​error_code·​/​*ec*/​,​·​int·​/​*signo*/​)​
41 ········​{
42 ··········​/​/​·​Only·​the·​parent·​process·​should·​check·​for·​this·​signal.​·​We·​can
43 ··········​/​/​·​determine·​whether·​we·​are·​in·​the·​parent·​by·​checking·​if·​the·​acceptor
44 ··········​/​/​·​is·​still·​open.​
45 ··········​if·​(acceptor_.​is_open()​)​
46 ··········​{
47 ············​/​/​·​Reap·​completed·​child·​processes·​so·​that·​we·​don't·​end·​up·​with
48 ············​/​/​·​zombies.​
49 ············​int·​status·​=·​0;​
50 ············​while·​(waitpid(-​1,​·​&status,​·​WNOHANG)​·​>·​0)​·​{}
51
52 ············​wait_for_signal()​;​
53 ··········​}
54 ········​})​;​
55 ··​}
56
57 ··​void·​accept()​
58 ··​{
59 ····​acceptor_.​async_accept(
60 ········​[this](std:​:​error_code·​ec,​·​tcp:​:​socket·​new_socket)​
61 ········​{
62 ··········​if·​(!ec)​
63 ··········​{
64 ············​/​/​·​Take·​ownership·​of·​the·​newly·​accepted·​socket.​
65 ············​socket_·​=·​std:​:​move(new_socket)​;​
66
67 ············​/​/​·​Inform·​the·​io_context·​that·​we·​are·​about·​to·​fork.​·​The·​io_context
68 ············​/​/​·​cleans·​up·​any·​internal·​resources,​·​such·​as·​threads,​·​that·​may
69 ············​/​/​·​interfere·​with·​forking.​
70 ············​io_context_.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
71
72 ············​if·​(fork()​·​==·​0)​
73 ············​{
74 ··············​/​/​·​Inform·​the·​io_context·​that·​the·​fork·​is·​finished·​and·​that·​this
75 ··············​/​/​·​is·​the·​child·​process.​·​The·​io_context·​uses·​this·​opportunity·​to
76 ··············​/​/​·​create·​any·​internal·​file·​descriptors·​that·​must·​be·​private·​to
77 ··············​/​/​·​the·​new·​process.​
78 ··············​io_context_.​notify_fork(asio:​:​io_context:​:​fork_child)​;​
79
80 ··············​/​/​·​The·​child·​won't·​be·​accepting·​new·​connections,​·​so·​we·​can·​close
81 ··············​/​/​·​the·​acceptor.​·​It·​remains·​open·​in·​the·​parent.​
82 ··············​acceptor_.​close()​;​
83
84 ··············​/​/​·​The·​child·​process·​is·​not·​interested·​in·​processing·​the·​SIGCHLD
85 ··············​/​/​·​signal.​
86 ··············​signal_.​cancel()​;​
87
88 ··············​read()​;​
89 ············​}
90 ············​else
91 ············​{
92
93 ··············​/​/​·​Inform·​the·​io_context·​that·​the·​fork·​is·​finished·​(or·​failed)​
94 ··············​/​/​·​and·​that·​this·​is·​the·​parent·​process.​·​The·​io_context·​uses·​this
95 ··············​/​/​·​opportunity·​to·​recreate·​any·​internal·​resources·​that·​were
96 ··············​/​/​·​cleaned·​up·​during·​preparation·​for·​the·​fork.​
97 ··············​io_context_.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​
98
99 ··············​/​/​·​The·​parent·​process·​can·​now·​close·​the·​newly·​accepted·​socket.​·​It
100 ··············​/​/​·​remains·​open·​in·​the·​child.​
101 ··············​socket_.​close()​;​
102
103 ··············​accept()​;​
104 ············​}
105 ··········​}
106 ··········​else
107 ··········​{
108 ············​std:​:​cerr·​<<·​"Accept·​error:​·​"·​<<·​ec.​message()​·​<<·​std:​:​endl;​
109 ············​accept()​;​
110 ··········​}
111 ········​})​;​
42 ··​}112 ··​}
43 113
44 ··​void·handle_signal_wait()​114 ··​void·read()​
45 ··{
46 ····/​/​·Only·the·parent·process·should·check·for·this·signal.​·We·can·determine
47 ····/​/​·whether·we·are·in·the·parent·by·checking·if·the·acceptor·is·still·open.​
48 ····if·(acceptor_.​is_open()​)​
49 ····{
50 ······/​/​·Reap·completed·child·processes·so·that·we·don't·end·up·with·zombies.​
51 ······int·status·=·0;​
52 ······while·(waitpid(-​1,​·&status,​·WNOHANG)​·>·0)​·{}
53
54 ······start_signal_wait()​;​
55 ····}
56 ··}
57
58 ··void·start_accept()​
59 ··{
60 ····acceptor_.​async_accept(socket_,​
61 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·_1)​)​;​
62 ··}
63
64 ··void·handle_accept(const·asio:​:​error_code&·ec)​
65 ··{
66 ····if·(!ec)​
67 ····{
68 ······/​/​·Inform·the·io_context·that·we·are·about·to·fork.​·The·io_context·cleans
69 ······/​/​·up·any·internal·resources,​·such·as·threads,​·that·may·interfere·with
70 ······/​/​·forking.​
71 ······io_context_.​notify_fork(asio:​:​io_context:​:​fork_prepare)​;​
72
73 ······if·(fork()​·==·0)​
74 ······{
75 ········/​/​·Inform·the·io_context·that·the·fork·is·finished·and·that·this·is·the
76 ········/​/​·child·process.​·The·io_context·uses·this·opportunity·to·create·any
77 ········/​/​·internal·file·descriptors·that·must·be·private·to·the·new·process.​
78 ········io_context_.​notify_fork(asio:​:​io_context:​:​fork_child)​;​
79
80 ········/​/​·The·child·won't·be·accepting·new·connections,​·so·we·can·close·the
81 ········/​/​·acceptor.​·It·remains·open·in·the·parent.​
82 ········acceptor_.​close()​;​
83
84 ········/​/​·The·child·process·is·not·interested·in·processing·the·SIGCHLD·signal.​
85 ········signal_.​cancel()​;​
86
87 ········start_read()​;​
88 ······}
89 ······else
90 ······{
91 ········/​/​·Inform·the·io_context·that·the·fork·is·finished·(or·failed)​·and·that
92 ········/​/​·this·is·the·parent·process.​·The·io_context·uses·this·opportunity·to
93 ········/​/​·recreate·any·internal·resources·that·were·cleaned·up·during
94 ········/​/​·preparation·for·the·fork.​
95 ········io_context_.​notify_fork(asio:​:​io_context:​:​fork_parent)​;​
96
97 ········socket_.​close()​;​
98 ········start_accept()​;​
99 ······}
100 ····}
101 ····else
102 ····{
103 ······std:​:​cerr·<<·"Accept·error:​·"·<<·ec.​message()​·<<·std:​:​endl;​
104 ······start_accept()​;​
105 ····}
106 ··}
107
108 ··void·start_read()​
109 ··​{115 ··​{
110 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​116 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
111 ········boost:​:​bind(&server:​:​handle_read,​·​this,​·_1,​·_2)​)​;​117 ········[this](std:​:​error_code·ec,​·std:​:​size_t·length)​
118 ········​{
119 ··········​if·​(!ec)​
120 ············​write(length)​;​
121 ········​})​;​
112 ··​}122 ··​}
113 123
114 ··​void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·​length)​124 ··​void·write(std:​:​size_t·​length)​
115 ··{
116 ····if·(!ec)​
117 ······start_write(length)​;​
118 ··}
119
120 ··void·start_write(std:​:​size_t·length)​
121 ··​{125 ··​{
122 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​126 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​
123 ········boost:​:​bind(&server:​:​handle_write,​·this,​·_1)​)​;​127 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
124 ··}128 ········{
125 129 ··········if·(!ec)​
126 ··void·handle_write(const·asio:​:​error_code&·ec)​130 ············read()​;​
127 ··{131 ········})​;​
128 ····if·(!ec)​
129 ······start_read()​;​
130 ··​}132 ··​}
131 133
132 ··​asio:​:​io_context&·​io_context_;​134 ··​asio:​:​io_context&·​io_context_;​
133 ··​asio:​:​signal_set·​signal_;​135 ··​asio:​:​signal_set·​signal_;​
134 ··​tcp:​:​acceptor·​acceptor_;​136 ··​tcp:​:​acceptor·​acceptor_;​
135 ··​tcp:​:​socket·​socket_;​137 ··​tcp:​:​socket·​socket_;​
136 ··boost:​:​array<char,​·​1024>·​data_;​138 ··​std:​:​array<char,​·​1024>·​data_;​
137 };​139 };​
138 140
139 int·​main(int·​argc,​·​char*·​argv[])​141 int·​main(int·​argc,​·​char*·​argv[])​
140 {142 {
141 ··​try143 ··​try
142 ··​{144 ··​{
143 ····​if·​(argc·​!=·​2)​145 ····​if·​(argc·​!=·​2)​
144 ····​{146 ····​{
145 ······​std:​:​cerr·​<<·​"Usage:​·​process_per_connectio​n·​<port>\n";​147 ······​std:​:​cerr·​<<·​"Usage:​·​process_per_connectio​n·​<port>\n";​
146 ······​return·​1;​148 ······​return·​1;​
147 ····​}149 ····​}
148 150
149 ····​asio:​:​io_context·​io_context;​151 ····​asio:​:​io_context·​io_context;​
150 152
151 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​153 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
152 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​154 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​
153 155
154 ····​io_context.​run()​;​156 ····​io_context.​run()​;​
155 ··​}157 ··​}
156 ··​catch·​(std:​:​exception&·​e)​158 ··​catch·​(std:​:​exception&·​e)​
157 ··​{159 ··​{
158 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​160 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​std:​:​endl;​
159 ··​}161 ··​}
160 }162 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/futures/daytime_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/futures/daytime_client.cpp.html deleted file mode 100644 index aca0cc1..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/futures/daytime_client.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff futures/daytime_client.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html deleted file mode 100644 index c004c9e..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/handler_tracking/custom_tracking.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff handler_tracking/custom_tracking.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.cpp.html deleted file mode 100644 index 91ef68f..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.cpp.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - HTML Diff http/server/connection.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​connection.​cppsrc/​examples/​cpp11/​http/​server/​connection.​cpp
1 /​/​1 /​/​
2 /​/​·​connection.​cpp2 /​/​·​connection.​cpp
3 /​/​·​~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"connection.​hpp"11 #include·​"connection.​hpp"
12 #include·​<utility>
12 #include·​<vector>13 #include·​<vector>
13 #include·​<boost/​bind.​hpp>
14 #include·​"connection_manager.​hpp"14 #include·​"connection_manager.​hpp"
15 #include·​"request_handler.​hpp"15 #include·​"request_handler.​hpp"
16 16
17 namespace·​http·​{17 namespace·​http·​{
18 namespace·​server·​{18 namespace·​server·​{
19 19
20 connection:​:​connection(asio:​:​io_context&·io_context,​20 connection:​:​connection(asio:​:​ip:​:​tcp:​:​socket·socket,​
21 ····​connection_manager&·​manager,​·​request_handler&·​handler)​21 ····​connection_manager&·​manager,​·​request_handler&·​handler)​
22 ··​:​·​socket_(io_context)​,​22 ··​:​·​socket_(std:​:​move(socket)​)​,​
23 ····​connection_manager_(m​anager)​,​23 ····​connection_manager_(m​anager)​,​
24 ····​request_handler_(hand​ler)​24 ····​request_handler_(hand​ler)​
25 {25 {
26 }26 }
27 27
28 asio:​:​ip:​:​tcp:​:​socket&·​connection:​:​socket()​
29 {
30 ··​return·​socket_;​
31 }
32
33 void·​connection:​:​start()​28 void·​connection:​:​start()​
34 {29 {
35 ··socket_.​async_read_some(asio:​:​buffer(buffer_)​,​30 ··do_read()​;​
36 ······boost:​:​bind(&connection:​:​handle_read,​·shared_from_this()​,​
37 ········asio:​:​placeholders:​:​error,​
38 ········asio:​:​placeholders:​:​bytes_transferred)​)​;​
39 }31 }
40 32
41 void·​connection:​:​stop()​33 void·​connection:​:​stop()​
42 {34 {
43 ··​socket_.​close()​;​35 ··​socket_.​close()​;​
44 }36 }
45 37
46 void·​connection:​:​handle_read(const·asio:​:​error_code&·e,​38 void·​connection:​:​do_read()​
47 ····std:​:​size_t·bytes_transferred)​
48 {39 {
49 ··if·​(!e)​40 ··auto·self(shared_from_this​()​)​;​
50 ··{41 ··socket_.​async_read_some(asio:​:​buffer(buffer_)​,​
51 ····boost:​:​tribool·result;​42 ······[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·bytes_transferred)​
52 ····boost:​:​tie(result,​·boost:​:​tuples:​:​ignore)​·=·request_parser_.​parse(43 ······{
53 ········request_,​·buffer_.​data()​,​·buffer_.​data()​·+·bytes_transferred)​;​44 ········if·​(!ec)​
54 45 ········{
55 ····if·(result)​46 ··········request_parser:​:​result_type·result;​
56 ····{47 ··········std:​:​tie(result,​·std:​:​ignore)​·=·request_parser_.​parse(
57 ······​request_handler_.​handle_request(reques​t_,​·reply_)​;​48 ··············​request_,​·buffer_.​data()​,​·buffer_.​data()​·+·bytes_transferred)​;​
58 ······asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​49
59 ··········boost:​:​bind(&connection:​:​handle_write,​·shared_from_this()​,​50 ··········​if·(result·==·request_parser:​:​good)​
60 ············asio:​:​placeholders:​:​error)​)​;​51 ··········{
61 ····}52 ············request_handler_.​handle_request(reques​t_,​·reply_)​;​
62 ····else·if·(!result)​53 ············do_write()​;​
63 ····{54 ··········}
64 ······reply_·=·​reply:​:​stock_reply(reply:​:​bad_request)​;​55 ··········else·if·(result·==·request_parser:​:​bad)​
65 ······asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​56 ··········{
66 ··········boost:​:​bind(&connection:​:​handle_write,​·shared_from_this()​,​57 ············reply_·=·reply:​:​stock_reply(reply:​:​bad_request)​;​
67 ············asio:​:​placeholders:​:​error)​)​;​58 ············do_write()​;​
68 ····​}59 ··········​}
69 ····​else60 ··········​else
70 ····​{61 ··········​{
71 ······socket_.​async_read_some(asio:​:​buffer(buffer_)​,​62 ············do_read()​;​
72 ··········boost:​:​bind(&connection:​:​handle_read,​·shared_from_this()​,​63 ··········}
73 ············asio:​:​placeholders:​:​error,​64 ········}
74 ············​asio:​:​placeholders:​:​bytes_transferred)​)​;​65 ········else·if·(ec·!=·​asio:​:​error:​:​operation_aborted)​
75 ····}66 ········{
76 ··}67 ··········connection_manager_.​stop(shared_from_this​()​)​;​
77 ··else·if·(e·!=·asio:​:​error:​:​operation_aborted)​68 ········}
78 ··{69 ······})​;​
79 ····connection_manager_.​stop(shared_from_this​()​)​;​70 }
80 ··}71
81 }72 void·connection:​:​do_write()​
82 73 {
83 void·connection:​:​handle_write(const·asio:​:​error_code&·e)​74 ··auto·self(shared_from_this​()​)​;​
84 {75 ··asio:​:​async_write(socket_,​·reply_.​to_buffers()​,​
85 ··​if·(!e)​76 ······[this,​·self](std:​:​error_code·ec,​·std:​:​size_t)​
86 ··​{77 ······​{
87 ····/​/​·Initiate·graceful·connection·closure.​78 ········if·(!ec)​
88 ····asio:​:​error_code·ignored_ec;​79 ········{
89 ····socket_.​shutdown(asio:​:​ip:​:​tcp:​:​socket:​:​shutdown_both,​·ignored_ec)​;​80 ··········/​/​·Initiate·graceful·connection·closure.​
90 ··}81 ··········asio:​:​error_code·ignored_ec;​
91 82 ··········socket_.​shutdown(asio:​:​ip:​:​tcp:​:​socket:​:​shutdown_both,​
92 ··if·(e·!=·asio:​:​error:​:​operation_aborted)​83 ············ignored_ec)​;​
93 ··{84 ········}
94 ····connection_manager_.​stop(shared_from_this​()​)​;​85
95 ··}86 ········if·(ec·!=·asio:​:​error:​:​operation_aborted)​
87 ········​{
88 ··········​connection_manager_.​stop(shared_from_this​()​)​;​
89 ········​}
90 ······​})​;​
96 }91 }
97 92
98 }·​/​/​·​namespace·​server93 }·​/​/​·​namespace·​server
99 }·​/​/​·​namespace·​http94 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.hpp.html deleted file mode 100644 index 7d605aa..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection.hpp.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - HTML Diff http/server/connection.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​connection.​hppsrc/​examples/​cpp11/​http/​server/​connection.​hpp
1 /​/​1 /​/​
2 /​/​·​connection.​hpp2 /​/​·​connection.​hpp
3 /​/​·​~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_CONNECTION_HPP11 #ifndef·​HTTP_CONNECTION_HPP
12 #define·​HTTP_CONNECTION_HPP12 #define·​HTTP_CONNECTION_HPP
13 13
14 #include·​<array>
15 #include·​<memory>
14 #include·​<asio.​hpp>16 #include·​<asio.​hpp>
15 #include·​<boost/​array.​hpp>
16 #include·​<boost/​noncopyable.​hpp>
17 #include·​<boost/​shared_ptr.​hpp>
18 #include·​<boost/​enable_shared_from_th​is.​hpp>
19 #include·​"reply.​hpp"17 #include·​"reply.​hpp"
20 #include·​"request.​hpp"18 #include·​"request.​hpp"
21 #include·​"request_handler.​hpp"19 #include·​"request_handler.​hpp"
22 #include·​"request_parser.​hpp"20 #include·​"request_parser.​hpp"
23 21
24 namespace·​http·​{22 namespace·​http·​{
25 namespace·​server·​{23 namespace·​server·​{
26 24
27 class·​connection_manager;​25 class·​connection_manager;​
28 26
29 /​/​/​·​Represents·​a·​single·​connection·​from·​a·​client.​27 /​/​/​·​Represents·​a·​single·​connection·​from·​a·​client.​
30 class·​connection28 class·​connection
31 ··​:​·​public·boost:​:​enable_shared_from_th​is<connection>,​29 ··​:​·​public·​std:​:​enable_shared_from_th​is<connection>
32 ····private·boost:​:​noncopyable
33 {30 {
34 public:​31 public:​
35 ··/​/​/​·Construct·a·​connection·with·the·given·io_context.​32 ··connection(const·​connection&)​·=·delete;​
36 ··explicit·connection(asio:​:​io_context&·io_context,​33 ··connection&·operator=(const·connection&)​·=·delete;​
37 ······connection_manager&·manager,​·request_handler&·handler)​;​
38 34
39 ··​/​/​/​·Get·the·socket·​associated·​with·​the·connection.​35 ··​/​/​/​·Construct·​a·connection·​with·​the·given·socket.​
40 ··​asio:​:​ip:​:​tcp:​:​socket&·​socket()​;​36 ··explicit·connection(asio:​:​ip:​:​tcp:​:​socket·​socket,​
37 ······​connection_manager&·​manager,​·​request_handler&·​handler)​;​
41 38
42 ··​/​/​/​·​Start·​the·​first·​asynchronous·​operation·​for·​the·​connection.​39 ··​/​/​/​·​Start·​the·​first·​asynchronous·​operation·​for·​the·​connection.​
43 ··​void·​start()​;​40 ··​void·​start()​;​
44 41
45 ··​/​/​/​·​Stop·​all·​asynchronous·​operations·​associated·​with·​the·​connection.​42 ··​/​/​/​·​Stop·​all·​asynchronous·​operations·​associated·​with·​the·​connection.​
46 ··​void·​stop()​;​43 ··​void·​stop()​;​
47 44
48 private:​45 private:​
49 ··​/​/​/​·Handle·completion·of·a·​read·​operation.​46 ··​/​/​/​·Perform·an·asynchronous·​read·​operation.​
50 ··​void·handle_read(const·asio:​:​error_code&·e,​47 ··​void·​do_read()​;​
51 ······std:​:​size_t·bytes_transferred)​;​
52 48
53 ··​/​/​/​·Handle·completion·of·a·​write·​operation.​49 ··​/​/​/​·Perform·an·asynchronous·​write·​operation.​
54 ··​void·handle_write(const·asio:​:​error_code&·e)​;​50 ··​void·​do_write()​;​
55 51
56 ··​/​/​/​·​Socket·​for·​the·​connection.​52 ··​/​/​/​·​Socket·​for·​the·​connection.​
57 ··​asio:​:​ip:​:​tcp:​:​socket·​socket_;​53 ··​asio:​:​ip:​:​tcp:​:​socket·​socket_;​
58 54
59 ··​/​/​/​·​The·​manager·​for·​this·​connection.​55 ··​/​/​/​·​The·​manager·​for·​this·​connection.​
60 ··​connection_manager&·​connection_manager_;​56 ··​connection_manager&·​connection_manager_;​
61 57
62 ··​/​/​/​·​The·​handler·​used·​to·​process·​the·​incoming·​request.​58 ··​/​/​/​·​The·​handler·​used·​to·​process·​the·​incoming·​request.​
63 ··​request_handler&·​request_handler_;​59 ··​request_handler&·​request_handler_;​
64 60
65 ··​/​/​/​·​Buffer·​for·​incoming·​data.​61 ··​/​/​/​·​Buffer·​for·​incoming·​data.​
66 ··boost:​:​array<char,​·​8192>·​buffer_;​62 ··​std:​:​array<char,​·​8192>·​buffer_;​
67 63
68 ··​/​/​/​·​The·​incoming·​request.​64 ··​/​/​/​·​The·​incoming·​request.​
69 ··​request·​request_;​65 ··​request·​request_;​
70 66
71 ··​/​/​/​·​The·​parser·​for·​the·​incoming·​request.​67 ··​/​/​/​·​The·​parser·​for·​the·​incoming·​request.​
72 ··​request_parser·​request_parser_;​68 ··​request_parser·​request_parser_;​
73 69
74 ··​/​/​/​·​The·​reply·​to·​be·​sent·​back·​to·​the·​client.​70 ··​/​/​/​·​The·​reply·​to·​be·​sent·​back·​to·​the·​client.​
75 ··​reply·​reply_;​71 ··​reply·​reply_;​
76 };​72 };​
77 73
78 typedef·boost:​:​shared_ptr<connection​>·​connection_ptr;​74 typedef·​std:​:​shared_ptr<connection​>·​connection_ptr;​
79 75
80 }·​/​/​·​namespace·​server76 }·​/​/​·​namespace·​server
81 }·​/​/​·​namespace·​http77 }·​/​/​·​namespace·​http
82 78
83 #endif·​/​/​·​HTTP_CONNECTION_HPP79 #endif·​/​/​·​HTTP_CONNECTION_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.cpp.html deleted file mode 100644 index 6755ab2..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.cpp.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - HTML Diff http/server/connection_manager.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​connection_manager.​cppsrc/​examples/​cpp11/​http/​server/​connection_manager.​cpp
1 /​/​1 /​/​
2 /​/​·​connection_manager.​cpp2 /​/​·​connection_manager.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"connection_manager.​hpp"11 #include·​"connection_manager.​hpp"
12 #include·​<algorithm>
13 #include·​<boost/​bind.​hpp>
14 12
15 namespace·​http·​{13 namespace·​http·​{
16 namespace·​server·​{14 namespace·​server·​{
17 15
16 connection_manager:​:​connection_manager()​
17 {
18 }
19
18 void·​connection_manager:​:​start(connection_ptr·​c)​20 void·​connection_manager:​:​start(connection_ptr·​c)​
19 {21 {
20 ··​connections_.​insert(c)​;​22 ··​connections_.​insert(c)​;​
21 ··​c-​>start()​;​23 ··​c-​>start()​;​
22 }24 }
23 25
24 void·​connection_manager:​:​stop(connection_ptr·​c)​26 void·​connection_manager:​:​stop(connection_ptr·​c)​
25 {27 {
26 ··​connections_.​erase(c)​;​28 ··​connections_.​erase(c)​;​
27 ··​c-​>stop()​;​29 ··​c-​>stop()​;​
28 }30 }
29 31
30 void·​connection_manager:​:​stop_all()​32 void·​connection_manager:​:​stop_all()​
31 {33 {
32 ··std:​:​for_each(connections_​.​begin()​,​·​connections_.​end()​,​34 ··​for·(auto·c:​·​connections_)​
33 ······boost:​:​bind(&connection:​:​stop,​·_1)​)​;​35 ····​c-​>stop()​;​
34 ··​connections_.​clear()​;​36 ··​connections_.​clear()​;​
35 }37 }
36 38
37 }·​/​/​·​namespace·​server39 }·​/​/​·​namespace·​server
38 }·​/​/​·​namespace·​http40 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.hpp.html deleted file mode 100644 index 02746ec..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/connection_manager.hpp.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - HTML Diff http/server/connection_manager.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​connection_manager.​hppsrc/​examples/​cpp11/​http/​server/​connection_manager.​hpp
1 /​/​1 /​/​
2 /​/​·​connection_manager.​hpp2 /​/​·​connection_manager.​hpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_CONNECTION_MANAG​ER_HPP11 #ifndef·​HTTP_CONNECTION_MANAG​ER_HPP
12 #define·​HTTP_CONNECTION_MANAG​ER_HPP12 #define·​HTTP_CONNECTION_MANAG​ER_HPP
13 13
14 #include·​<set>14 #include·​<set>
15 #include·​<boost/​noncopyable.​hpp>
16 #include·​"connection.​hpp"15 #include·​"connection.​hpp"
17 16
18 namespace·​http·​{17 namespace·​http·​{
19 namespace·​server·​{18 namespace·​server·​{
20 19
21 /​/​/​·​Manages·​open·​connections·​so·​that·​they·​may·​be·​cleanly·​stopped·​when·​the·​server20 /​/​/​·​Manages·​open·​connections·​so·​that·​they·​may·​be·​cleanly·​stopped·​when·​the·​server
22 /​/​/​·​needs·​to·​shut·​down.​21 /​/​/​·​needs·​to·​shut·​down.​
23 class·​connection_manager22 class·​connection_manager
24 ··​:​·​private·​boost:​:​noncopyable
25 {23 {
26 public:​24 public:​
25 ··​connection_manager(co​nst·​connection_manager&)​·​=·​delete;​
26 ··​connection_manager&·​operator=(const·​connection_manager&)​·​=·​delete;​
27
28 ··​/​/​/​·​Construct·​a·​connection·​manager.​
29 ··​connection_manager()​;​
30
27 ··​/​/​/​·​Add·​the·​specified·​connection·​to·​the·​manager·​and·​start·​it.​31 ··​/​/​/​·​Add·​the·​specified·​connection·​to·​the·​manager·​and·​start·​it.​
28 ··​void·​start(connection_ptr·​c)​;​32 ··​void·​start(connection_ptr·​c)​;​
29 33
30 ··​/​/​/​·​Stop·​the·​specified·​connection.​34 ··​/​/​/​·​Stop·​the·​specified·​connection.​
31 ··​void·​stop(connection_ptr·​c)​;​35 ··​void·​stop(connection_ptr·​c)​;​
32 36
33 ··​/​/​/​·​Stop·​all·​connections.​37 ··​/​/​/​·​Stop·​all·​connections.​
34 ··​void·​stop_all()​;​38 ··​void·​stop_all()​;​
35 39
36 private:​40 private:​
37 ··​/​/​/​·​The·​managed·​connections.​41 ··​/​/​/​·​The·​managed·​connections.​
38 ··​std:​:​set<connection_ptr>·​connections_;​42 ··​std:​:​set<connection_ptr>·​connections_;​
39 };​43 };​
40 44
41 }·​/​/​·​namespace·​server45 }·​/​/​·​namespace·​server
42 }·​/​/​·​namespace·​http46 }·​/​/​·​namespace·​http
43 47
44 #endif·​/​/​·​HTTP_CONNECTION_MANAG​ER_HPP48 #endif·​/​/​·​HTTP_CONNECTION_MANAG​ER_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/header.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/header.hpp.html deleted file mode 100644 index 12e761a..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/header.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff http/server/header.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/main.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/main.cpp.html deleted file mode 100644 index 3a26fcf..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/main.cpp.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - HTML Diff http/server/main.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​main.​cppsrc/​examples/​cpp11/​http/​server/​main.​cpp
1 /​/​1 /​/​
2 /​/​·​main.​cpp2 /​/​·​main.​cpp
3 /​/​·​~~~~~~~~3 /​/​·​~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<iostream>11 #include·​<iostream>
12 #include·​<string>12 #include·​<string>
13 #include·​<asio.​hpp>13 #include·​<asio.​hpp>
14 #include·​<boost/​bind.​hpp>
15 #include·​"server.​hpp"14 #include·​"server.​hpp"
16 15
17 int·​main(int·​argc,​·​char*·​argv[])​16 int·​main(int·​argc,​·​char*·​argv[])​
18 {17 {
19 ··​try18 ··​try
20 ··​{19 ··​{
21 ····​/​/​·​Check·​command·​line·​arguments.​20 ····​/​/​·​Check·​command·​line·​arguments.​
22 ····​if·​(argc·​!=·​4)​21 ····​if·​(argc·​!=·​4)​
23 ····​{22 ····​{
24 ······​std:​:​cerr·​<<·​"Usage:​·​http_server·​<address>·​<port>·​<doc_root>\n";​23 ······​std:​:​cerr·​<<·​"Usage:​·​http_server·​<address>·​<port>·​<doc_root>\n";​
25 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​24 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​
26 ······​std:​:​cerr·​<<·​"····​receiver·​0.​0.​0.​0·​80·​.​\n";​25 ······​std:​:​cerr·​<<·​"····​receiver·​0.​0.​0.​0·​80·​.​\n";​
27 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​26 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​
28 ······​std:​:​cerr·​<<·​"····​receiver·​0:​:​0·​80·​.​\n";​27 ······​std:​:​cerr·​<<·​"····​receiver·​0:​:​0·​80·​.​\n";​
29 ······​return·​1;​28 ······​return·​1;​
30 ····​}29 ····​}
31 30
32 ····​/​/​·​Initialise·​the·​server.​31 ····​/​/​·​Initialise·​the·​server.​
33 ····​http:​:​server:​:​server·​s(argv[1],​·​argv[2],​·​argv[3])​;​32 ····​http:​:​server:​:​server·​s(argv[1],​·​argv[2],​·​argv[3])​;​
34 33
35 ····​/​/​·​Run·​the·​server·​until·​stopped.​34 ····​/​/​·​Run·​the·​server·​until·​stopped.​
36 ····​s.​run()​;​35 ····​s.​run()​;​
37 ··​}36 ··​}
38 ··​catch·​(std:​:​exception&·​e)​37 ··​catch·​(std:​:​exception&·​e)​
39 ··​{38 ··​{
40 ····​std:​:​cerr·​<<·​"exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​39 ····​std:​:​cerr·​<<·​"exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
41 ··​}40 ··​}
42 41
43 ··​return·​0;​42 ··​return·​0;​
44 }43 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.cpp.html deleted file mode 100644 index 4fd5e57..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.cpp.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - HTML Diff http/server/mime_types.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​mime_types.​cppsrc/​examples/​cpp11/​http/​server/​mime_types.​cpp
1 /​/​1 /​/​
2 /​/​·​mime_types.​cpp2 /​/​·​mime_types.​cpp
3 /​/​·​~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"mime_types.​hpp"11 #include·​"mime_types.​hpp"
12 12
13 namespace·​http·​{13 namespace·​http·​{
14 namespace·​server·​{14 namespace·​server·​{
15 namespace·​mime_types·​{15 namespace·​mime_types·​{
16 16
17 struct·​mapping17 struct·​mapping
18 {18 {
19 ··​const·​char*·​extension;​19 ··​const·​char*·​extension;​
20 ··​const·​char*·​mime_type;​20 ··​const·​char*·​mime_type;​
21 }·​mappings[]·​=21 }·​mappings[]·​=
22 {22 {
23 ··​{·​"gif",​·​"image/​gif"·​},​23 ··​{·​"gif",​·​"image/​gif"·​},​
24 ··​{·​"htm",​·​"text/​html"·​},​24 ··​{·​"htm",​·​"text/​html"·​},​
25 ··​{·​"html",​·​"text/​html"·​},​25 ··​{·​"html",​·​"text/​html"·​},​
26 ··​{·​"jpg",​·​"image/​jpeg"·​},​26 ··​{·​"jpg",​·​"image/​jpeg"·​},​
27 ··​{·​"png",​·​"image/​png"·​},​27 ··​{·​"png",​·​"image/​png"·​}
28 ··{·0,​·0·}·/​/​·Marks·end·of·list.​
29 };​28 };​
30 29
31 std:​:​string·​extension_to_type(con​st·​std:​:​string&·​extension)​30 std:​:​string·​extension_to_type(con​st·​std:​:​string&·​extension)​
32 {31 {
33 ··​for·​(mapping*·​m·=·​mappings;​·m-​>extension;​·++m)​32 ··​for·​(mapping·​m:​·​mappings)​
34 ··​{33 ··​{
35 ····​if·​(m-​>extension·​==·​extension)​34 ····​if·​(m.​extension·​==·​extension)​
36 ····​{35 ····​{
37 ······​return·​m-​>mime_type;​36 ······​return·​m.​mime_type;​
38 ····​}37 ····​}
39 ··​}38 ··​}
40 39
41 ··​return·​"text/​plain";​40 ··​return·​"text/​plain";​
42 }41 }
43 42
44 }·​/​/​·​namespace·​mime_types43 }·​/​/​·​namespace·​mime_types
45 }·​/​/​·​namespace·​server44 }·​/​/​·​namespace·​server
46 }·​/​/​·​namespace·​http45 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.hpp.html deleted file mode 100644 index de3bdae..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/mime_types.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff http/server/mime_types.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.cpp.html deleted file mode 100644 index ade8330..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.cpp.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - - - - HTML Diff http/server/reply.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​reply.​cppsrc/​examples/​cpp11/​http/​server/​reply.​cpp
1 /​/​1 /​/​
2 /​/​·​reply.​cpp2 /​/​·​reply.​cpp
3 /​/​·​~~~~~~~~~3 /​/​·​~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"reply.​hpp"11 #include·​"reply.​hpp"
12 #include·​<string>12 #include·​<string>
13 #include·​<boost/​lexical_cast.​hpp>
14 13
15 namespace·​http·​{14 namespace·​http·​{
16 namespace·​server·​{15 namespace·​server·​{
17 16
18 namespace·​status_strings·​{17 namespace·​status_strings·​{
19 18
20 const·​std:​:​string·​ok·​=19 const·​std:​:​string·​ok·​=
21 ··​"HTTP/​1.​0·​200·​OK\r\n";​20 ··​"HTTP/​1.​0·​200·​OK\r\n";​
22 const·​std:​:​string·​created·​=21 const·​std:​:​string·​created·​=
23 ··​"HTTP/​1.​0·​201·​Created\r\n";​22 ··​"HTTP/​1.​0·​201·​Created\r\n";​
24 const·​std:​:​string·​accepted·​=23 const·​std:​:​string·​accepted·​=
25 ··​"HTTP/​1.​0·​202·​Accepted\r\n";​24 ··​"HTTP/​1.​0·​202·​Accepted\r\n";​
26 const·​std:​:​string·​no_content·​=25 const·​std:​:​string·​no_content·​=
27 ··​"HTTP/​1.​0·​204·​No·​Content\r\n";​26 ··​"HTTP/​1.​0·​204·​No·​Content\r\n";​
28 const·​std:​:​string·​multiple_choices·​=27 const·​std:​:​string·​multiple_choices·​=
29 ··​"HTTP/​1.​0·​300·​Multiple·​Choices\r\n";​28 ··​"HTTP/​1.​0·​300·​Multiple·​Choices\r\n";​
30 const·​std:​:​string·​moved_permanently·​=29 const·​std:​:​string·​moved_permanently·​=
31 ··​"HTTP/​1.​0·​301·​Moved·​Permanently\r\n";​30 ··​"HTTP/​1.​0·​301·​Moved·​Permanently\r\n";​
32 const·​std:​:​string·​moved_temporarily·​=31 const·​std:​:​string·​moved_temporarily·​=
33 ··​"HTTP/​1.​0·​302·​Moved·​Temporarily\r\n";​32 ··​"HTTP/​1.​0·​302·​Moved·​Temporarily\r\n";​
34 const·​std:​:​string·​not_modified·​=33 const·​std:​:​string·​not_modified·​=
35 ··​"HTTP/​1.​0·​304·​Not·​Modified\r\n";​34 ··​"HTTP/​1.​0·​304·​Not·​Modified\r\n";​
36 const·​std:​:​string·​bad_request·​=35 const·​std:​:​string·​bad_request·​=
37 ··​"HTTP/​1.​0·​400·​Bad·​Request\r\n";​36 ··​"HTTP/​1.​0·​400·​Bad·​Request\r\n";​
38 const·​std:​:​string·​unauthorized·​=37 const·​std:​:​string·​unauthorized·​=
39 ··​"HTTP/​1.​0·​401·​Unauthorized\r\n";​38 ··​"HTTP/​1.​0·​401·​Unauthorized\r\n";​
40 const·​std:​:​string·​forbidden·​=39 const·​std:​:​string·​forbidden·​=
41 ··​"HTTP/​1.​0·​403·​Forbidden\r\n";​40 ··​"HTTP/​1.​0·​403·​Forbidden\r\n";​
42 const·​std:​:​string·​not_found·​=41 const·​std:​:​string·​not_found·​=
43 ··​"HTTP/​1.​0·​404·​Not·​Found\r\n";​42 ··​"HTTP/​1.​0·​404·​Not·​Found\r\n";​
44 const·​std:​:​string·​internal_server_error​·​=43 const·​std:​:​string·​internal_server_error​·​=
45 ··​"HTTP/​1.​0·​500·​Internal·​Server·​Error\r\n";​44 ··​"HTTP/​1.​0·​500·​Internal·​Server·​Error\r\n";​
46 const·​std:​:​string·​not_implemented·​=45 const·​std:​:​string·​not_implemented·​=
47 ··​"HTTP/​1.​0·​501·​Not·​Implemented\r\n";​46 ··​"HTTP/​1.​0·​501·​Not·​Implemented\r\n";​
48 const·​std:​:​string·​bad_gateway·​=47 const·​std:​:​string·​bad_gateway·​=
49 ··​"HTTP/​1.​0·​502·​Bad·​Gateway\r\n";​48 ··​"HTTP/​1.​0·​502·​Bad·​Gateway\r\n";​
50 const·​std:​:​string·​service_unavailable·​=49 const·​std:​:​string·​service_unavailable·​=
51 ··​"HTTP/​1.​0·​503·​Service·​Unavailable\r\n";​50 ··​"HTTP/​1.​0·​503·​Service·​Unavailable\r\n";​
52 51
53 asio:​:​const_buffer·​to_buffer(reply:​:​status_type·​status)​52 asio:​:​const_buffer·​to_buffer(reply:​:​status_type·​status)​
54 {53 {
55 ··​switch·​(status)​54 ··​switch·​(status)​
56 ··​{55 ··​{
57 ··​case·​reply:​:​ok:​56 ··​case·​reply:​:​ok:​
58 ····​return·​asio:​:​buffer(ok)​;​57 ····​return·​asio:​:​buffer(ok)​;​
59 ··​case·​reply:​:​created:​58 ··​case·​reply:​:​created:​
60 ····​return·​asio:​:​buffer(created)​;​59 ····​return·​asio:​:​buffer(created)​;​
61 ··​case·​reply:​:​accepted:​60 ··​case·​reply:​:​accepted:​
62 ····​return·​asio:​:​buffer(accepted)​;​61 ····​return·​asio:​:​buffer(accepted)​;​
63 ··​case·​reply:​:​no_content:​62 ··​case·​reply:​:​no_content:​
64 ····​return·​asio:​:​buffer(no_content)​;​63 ····​return·​asio:​:​buffer(no_content)​;​
65 ··​case·​reply:​:​multiple_choices:​64 ··​case·​reply:​:​multiple_choices:​
66 ····​return·​asio:​:​buffer(multiple_choic​es)​;​65 ····​return·​asio:​:​buffer(multiple_choic​es)​;​
67 ··​case·​reply:​:​moved_permanently:​66 ··​case·​reply:​:​moved_permanently:​
68 ····​return·​asio:​:​buffer(moved_permanen​tly)​;​67 ····​return·​asio:​:​buffer(moved_permanen​tly)​;​
69 ··​case·​reply:​:​moved_temporarily:​68 ··​case·​reply:​:​moved_temporarily:​
70 ····​return·​asio:​:​buffer(moved_temporar​ily)​;​69 ····​return·​asio:​:​buffer(moved_temporar​ily)​;​
71 ··​case·​reply:​:​not_modified:​70 ··​case·​reply:​:​not_modified:​
72 ····​return·​asio:​:​buffer(not_modified)​;​71 ····​return·​asio:​:​buffer(not_modified)​;​
73 ··​case·​reply:​:​bad_request:​72 ··​case·​reply:​:​bad_request:​
74 ····​return·​asio:​:​buffer(bad_request)​;​73 ····​return·​asio:​:​buffer(bad_request)​;​
75 ··​case·​reply:​:​unauthorized:​74 ··​case·​reply:​:​unauthorized:​
76 ····​return·​asio:​:​buffer(unauthorized)​;​75 ····​return·​asio:​:​buffer(unauthorized)​;​
77 ··​case·​reply:​:​forbidden:​76 ··​case·​reply:​:​forbidden:​
78 ····​return·​asio:​:​buffer(forbidden)​;​77 ····​return·​asio:​:​buffer(forbidden)​;​
79 ··​case·​reply:​:​not_found:​78 ··​case·​reply:​:​not_found:​
80 ····​return·​asio:​:​buffer(not_found)​;​79 ····​return·​asio:​:​buffer(not_found)​;​
81 ··​case·​reply:​:​internal_server_error​:​80 ··​case·​reply:​:​internal_server_error​:​
82 ····​return·​asio:​:​buffer(internal_serve​r_error)​;​81 ····​return·​asio:​:​buffer(internal_serve​r_error)​;​
83 ··​case·​reply:​:​not_implemented:​82 ··​case·​reply:​:​not_implemented:​
84 ····​return·​asio:​:​buffer(not_implemente​d)​;​83 ····​return·​asio:​:​buffer(not_implemente​d)​;​
85 ··​case·​reply:​:​bad_gateway:​84 ··​case·​reply:​:​bad_gateway:​
86 ····​return·​asio:​:​buffer(bad_gateway)​;​85 ····​return·​asio:​:​buffer(bad_gateway)​;​
87 ··​case·​reply:​:​service_unavailable:​86 ··​case·​reply:​:​service_unavailable:​
88 ····​return·​asio:​:​buffer(service_unavai​lable)​;​87 ····​return·​asio:​:​buffer(service_unavai​lable)​;​
89 ··​default:​88 ··​default:​
90 ····​return·​asio:​:​buffer(internal_serve​r_error)​;​89 ····​return·​asio:​:​buffer(internal_serve​r_error)​;​
91 ··​}90 ··​}
92 }91 }
93 92
94 }·​/​/​·​namespace·​status_strings93 }·​/​/​·​namespace·​status_strings
95 94
96 namespace·​misc_strings·​{95 namespace·​misc_strings·​{
97 96
98 const·​char·​name_value_separator[​]·​=·​{·​':​',​·​'·​'·​};​97 const·​char·​name_value_separator[​]·​=·​{·​':​',​·​'·​'·​};​
99 const·​char·​crlf[]·​=·​{·​'\r',​·​'\n'·​};​98 const·​char·​crlf[]·​=·​{·​'\r',​·​'\n'·​};​
100 99
101 }·​/​/​·​namespace·​misc_strings100 }·​/​/​·​namespace·​misc_strings
102 101
103 std:​:​vector<asio:​:​const_buffer>·​reply:​:​to_buffers()​102 std:​:​vector<asio:​:​const_buffer>·​reply:​:​to_buffers()​
104 {103 {
105 ··​std:​:​vector<asio:​:​const_buffer>·​buffers;​104 ··​std:​:​vector<asio:​:​const_buffer>·​buffers;​
106 ··​buffers.​push_back(status_stri​ngs:​:​to_buffer(status)​)​;​105 ··​buffers.​push_back(status_stri​ngs:​:​to_buffer(status)​)​;​
107 ··​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​headers.​size()​;​·​++i)​106 ··​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​headers.​size()​;​·​++i)​
108 ··​{107 ··​{
109 ····​header&·​h·​=·​headers[i];​108 ····​header&·​h·​=·​headers[i];​
110 ····​buffers.​push_back(asio:​:​buffer(h.​name)​)​;​109 ····​buffers.​push_back(asio:​:​buffer(h.​name)​)​;​
111 ····​buffers.​push_back(asio:​:​buffer(misc_strings:​:​name_value_separator)​)​;​110 ····​buffers.​push_back(asio:​:​buffer(misc_strings:​:​name_value_separator)​)​;​
112 ····​buffers.​push_back(asio:​:​buffer(h.​value)​)​;​111 ····​buffers.​push_back(asio:​:​buffer(h.​value)​)​;​
113 ····​buffers.​push_back(asio:​:​buffer(misc_strings:​:​crlf)​)​;​112 ····​buffers.​push_back(asio:​:​buffer(misc_strings:​:​crlf)​)​;​
114 ··​}113 ··​}
115 ··​buffers.​push_back(asio:​:​buffer(misc_strings:​:​crlf)​)​;​114 ··​buffers.​push_back(asio:​:​buffer(misc_strings:​:​crlf)​)​;​
116 ··​buffers.​push_back(asio:​:​buffer(content)​)​;​115 ··​buffers.​push_back(asio:​:​buffer(content)​)​;​
117 ··​return·​buffers;​116 ··​return·​buffers;​
118 }117 }
119 118
120 namespace·​stock_replies·​{119 namespace·​stock_replies·​{
121 120
122 const·​char·​ok[]·​=·​"";​121 const·​char·​ok[]·​=·​"";​
123 const·​char·​created[]·​=122 const·​char·​created[]·​=
124 ··​"<html>"123 ··​"<html>"
125 ··​"<head><title>Created​</​title></​head>"124 ··​"<head><title>Created​</​title></​head>"
126 ··​"<body><h1>201·​Created</​h1></​body>"125 ··​"<body><h1>201·​Created</​h1></​body>"
127 ··​"</​html>";​126 ··​"</​html>";​
128 const·​char·​accepted[]·​=127 const·​char·​accepted[]·​=
129 ··​"<html>"128 ··​"<html>"
130 ··​"<head><title>Accepte​d</​title></​head>"129 ··​"<head><title>Accepte​d</​title></​head>"
131 ··​"<body><h1>202·​Accepted</​h1></​body>"130 ··​"<body><h1>202·​Accepted</​h1></​body>"
132 ··​"</​html>";​131 ··​"</​html>";​
133 const·​char·​no_content[]·​=132 const·​char·​no_content[]·​=
134 ··​"<html>"133 ··​"<html>"
135 ··​"<head><title>No·​Content</​title></​head>"134 ··​"<head><title>No·​Content</​title></​head>"
136 ··​"<body><h1>204·​Content</​h1></​body>"135 ··​"<body><h1>204·​Content</​h1></​body>"
137 ··​"</​html>";​136 ··​"</​html>";​
138 const·​char·​multiple_choices[]·​=137 const·​char·​multiple_choices[]·​=
139 ··​"<html>"138 ··​"<html>"
140 ··​"<head><title>Multipl​e·​Choices</​title></​head>"139 ··​"<head><title>Multipl​e·​Choices</​title></​head>"
141 ··​"<body><h1>300·​Multiple·​Choices</​h1></​body>"140 ··​"<body><h1>300·​Multiple·​Choices</​h1></​body>"
142 ··​"</​html>";​141 ··​"</​html>";​
143 const·​char·​moved_permanently[]·​=142 const·​char·​moved_permanently[]·​=
144 ··​"<html>"143 ··​"<html>"
145 ··​"<head><title>Moved·​Permanently</​title></​head>"144 ··​"<head><title>Moved·​Permanently</​title></​head>"
146 ··​"<body><h1>301·​Moved·​Permanently</​h1></​body>"145 ··​"<body><h1>301·​Moved·​Permanently</​h1></​body>"
147 ··​"</​html>";​146 ··​"</​html>";​
148 const·​char·​moved_temporarily[]·​=147 const·​char·​moved_temporarily[]·​=
149 ··​"<html>"148 ··​"<html>"
150 ··​"<head><title>Moved·​Temporarily</​title></​head>"149 ··​"<head><title>Moved·​Temporarily</​title></​head>"
151 ··​"<body><h1>302·​Moved·​Temporarily</​h1></​body>"150 ··​"<body><h1>302·​Moved·​Temporarily</​h1></​body>"
152 ··​"</​html>";​151 ··​"</​html>";​
153 const·​char·​not_modified[]·​=152 const·​char·​not_modified[]·​=
154 ··​"<html>"153 ··​"<html>"
155 ··​"<head><title>Not·​Modified</​title></​head>"154 ··​"<head><title>Not·​Modified</​title></​head>"
156 ··​"<body><h1>304·​Not·​Modified</​h1></​body>"155 ··​"<body><h1>304·​Not·​Modified</​h1></​body>"
157 ··​"</​html>";​156 ··​"</​html>";​
158 const·​char·​bad_request[]·​=157 const·​char·​bad_request[]·​=
159 ··​"<html>"158 ··​"<html>"
160 ··​"<head><title>Bad·​Request</​title></​head>"159 ··​"<head><title>Bad·​Request</​title></​head>"
161 ··​"<body><h1>400·​Bad·​Request</​h1></​body>"160 ··​"<body><h1>400·​Bad·​Request</​h1></​body>"
162 ··​"</​html>";​161 ··​"</​html>";​
163 const·​char·​unauthorized[]·​=162 const·​char·​unauthorized[]·​=
164 ··​"<html>"163 ··​"<html>"
165 ··​"<head><title>Unautho​rized</​title></​head>"164 ··​"<head><title>Unautho​rized</​title></​head>"
166 ··​"<body><h1>401·​Unauthorized</​h1></​body>"165 ··​"<body><h1>401·​Unauthorized</​h1></​body>"
167 ··​"</​html>";​166 ··​"</​html>";​
168 const·​char·​forbidden[]·​=167 const·​char·​forbidden[]·​=
169 ··​"<html>"168 ··​"<html>"
170 ··​"<head><title>Forbidd​en</​title></​head>"169 ··​"<head><title>Forbidd​en</​title></​head>"
171 ··​"<body><h1>403·​Forbidden</​h1></​body>"170 ··​"<body><h1>403·​Forbidden</​h1></​body>"
172 ··​"</​html>";​171 ··​"</​html>";​
173 const·​char·​not_found[]·​=172 const·​char·​not_found[]·​=
174 ··​"<html>"173 ··​"<html>"
175 ··​"<head><title>Not·​Found</​title></​head>"174 ··​"<head><title>Not·​Found</​title></​head>"
176 ··​"<body><h1>404·​Not·​Found</​h1></​body>"175 ··​"<body><h1>404·​Not·​Found</​h1></​body>"
177 ··​"</​html>";​176 ··​"</​html>";​
178 const·​char·​internal_server_error​[]·​=177 const·​char·​internal_server_error​[]·​=
179 ··​"<html>"178 ··​"<html>"
180 ··​"<head><title>Interna​l·​Server·​Error</​title></​head>"179 ··​"<head><title>Interna​l·​Server·​Error</​title></​head>"
181 ··​"<body><h1>500·​Internal·​Server·​Error</​h1></​body>"180 ··​"<body><h1>500·​Internal·​Server·​Error</​h1></​body>"
182 ··​"</​html>";​181 ··​"</​html>";​
183 const·​char·​not_implemented[]·​=182 const·​char·​not_implemented[]·​=
184 ··​"<html>"183 ··​"<html>"
185 ··​"<head><title>Not·​Implemented</​title></​head>"184 ··​"<head><title>Not·​Implemented</​title></​head>"
186 ··​"<body><h1>501·​Not·​Implemented</​h1></​body>"185 ··​"<body><h1>501·​Not·​Implemented</​h1></​body>"
187 ··​"</​html>";​186 ··​"</​html>";​
188 const·​char·​bad_gateway[]·​=187 const·​char·​bad_gateway[]·​=
189 ··​"<html>"188 ··​"<html>"
190 ··​"<head><title>Bad·​Gateway</​title></​head>"189 ··​"<head><title>Bad·​Gateway</​title></​head>"
191 ··​"<body><h1>502·​Bad·​Gateway</​h1></​body>"190 ··​"<body><h1>502·​Bad·​Gateway</​h1></​body>"
192 ··​"</​html>";​191 ··​"</​html>";​
193 const·​char·​service_unavailable[]​·​=192 const·​char·​service_unavailable[]​·​=
194 ··​"<html>"193 ··​"<html>"
195 ··​"<head><title>Service​·​Unavailable</​title></​head>"194 ··​"<head><title>Service​·​Unavailable</​title></​head>"
196 ··​"<body><h1>503·​Service·​Unavailable</​h1></​body>"195 ··​"<body><h1>503·​Service·​Unavailable</​h1></​body>"
197 ··​"</​html>";​196 ··​"</​html>";​
198 197
199 std:​:​string·​to_string(reply:​:​status_type·​status)​198 std:​:​string·​to_string(reply:​:​status_type·​status)​
200 {199 {
201 ··​switch·​(status)​200 ··​switch·​(status)​
202 ··​{201 ··​{
203 ··​case·​reply:​:​ok:​202 ··​case·​reply:​:​ok:​
204 ····​return·​ok;​203 ····​return·​ok;​
205 ··​case·​reply:​:​created:​204 ··​case·​reply:​:​created:​
206 ····​return·​created;​205 ····​return·​created;​
207 ··​case·​reply:​:​accepted:​206 ··​case·​reply:​:​accepted:​
208 ····​return·​accepted;​207 ····​return·​accepted;​
209 ··​case·​reply:​:​no_content:​208 ··​case·​reply:​:​no_content:​
210 ····​return·​no_content;​209 ····​return·​no_content;​
211 ··​case·​reply:​:​multiple_choices:​210 ··​case·​reply:​:​multiple_choices:​
212 ····​return·​multiple_choices;​211 ····​return·​multiple_choices;​
213 ··​case·​reply:​:​moved_permanently:​212 ··​case·​reply:​:​moved_permanently:​
214 ····​return·​moved_permanently;​213 ····​return·​moved_permanently;​
215 ··​case·​reply:​:​moved_temporarily:​214 ··​case·​reply:​:​moved_temporarily:​
216 ····​return·​moved_temporarily;​215 ····​return·​moved_temporarily;​
217 ··​case·​reply:​:​not_modified:​216 ··​case·​reply:​:​not_modified:​
218 ····​return·​not_modified;​217 ····​return·​not_modified;​
219 ··​case·​reply:​:​bad_request:​218 ··​case·​reply:​:​bad_request:​
220 ····​return·​bad_request;​219 ····​return·​bad_request;​
221 ··​case·​reply:​:​unauthorized:​220 ··​case·​reply:​:​unauthorized:​
222 ····​return·​unauthorized;​221 ····​return·​unauthorized;​
223 ··​case·​reply:​:​forbidden:​222 ··​case·​reply:​:​forbidden:​
224 ····​return·​forbidden;​223 ····​return·​forbidden;​
225 ··​case·​reply:​:​not_found:​224 ··​case·​reply:​:​not_found:​
226 ····​return·​not_found;​225 ····​return·​not_found;​
227 ··​case·​reply:​:​internal_server_error​:​226 ··​case·​reply:​:​internal_server_error​:​
228 ····​return·​internal_server_error​;​227 ····​return·​internal_server_error​;​
229 ··​case·​reply:​:​not_implemented:​228 ··​case·​reply:​:​not_implemented:​
230 ····​return·​not_implemented;​229 ····​return·​not_implemented;​
231 ··​case·​reply:​:​bad_gateway:​230 ··​case·​reply:​:​bad_gateway:​
232 ····​return·​bad_gateway;​231 ····​return·​bad_gateway;​
233 ··​case·​reply:​:​service_unavailable:​232 ··​case·​reply:​:​service_unavailable:​
234 ····​return·​service_unavailable;​233 ····​return·​service_unavailable;​
235 ··​default:​234 ··​default:​
236 ····​return·​internal_server_error​;​235 ····​return·​internal_server_error​;​
237 ··​}236 ··​}
238 }237 }
239 238
240 }·​/​/​·​namespace·​stock_replies239 }·​/​/​·​namespace·​stock_replies
241 240
242 reply·​reply:​:​stock_reply(reply:​:​status_type·​status)​241 reply·​reply:​:​stock_reply(reply:​:​status_type·​status)​
243 {242 {
244 ··​reply·​rep;​243 ··​reply·​rep;​
245 ··​rep.​status·​=·​status;​244 ··​rep.​status·​=·​status;​
246 ··​rep.​content·​=·​stock_replies:​:​to_string(status)​;​245 ··​rep.​content·​=·​stock_replies:​:​to_string(status)​;​
247 ··​rep.​headers.​resize(2)​;​246 ··​rep.​headers.​resize(2)​;​
248 ··​rep.​headers[0].​name·​=·​"Content-​Length";​247 ··​rep.​headers[0].​name·​=·​"Content-​Length";​
249 ··​rep.​headers[0].​value·​=·boost:​:​lexical_cast<std:​:​string>(rep.​content.​size()​)​;​248 ··​rep.​headers[0].​value·​=·​std:​:​to_string(rep.​content.​size()​)​;​
250 ··​rep.​headers[1].​name·​=·​"Content-​Type";​249 ··​rep.​headers[1].​name·​=·​"Content-​Type";​
251 ··​rep.​headers[1].​value·​=·​"text/​html";​250 ··​rep.​headers[1].​value·​=·​"text/​html";​
252 ··​return·​rep;​251 ··​return·​rep;​
253 }252 }
254 253
255 }·​/​/​·​namespace·​server254 }·​/​/​·​namespace·​server
256 }·​/​/​·​namespace·​http255 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.hpp.html deleted file mode 100644 index e8b28d5..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/reply.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff http/server/reply.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request.hpp.html deleted file mode 100644 index e0c9296..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request.hpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff http/server/request.hpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.cpp.html deleted file mode 100644 index b8fb26e..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.cpp.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - HTML Diff http/server/request_handler.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​request_handler.​cppsrc/​examples/​cpp11/​http/​server/​request_handler.​cpp
1 /​/​1 /​/​
2 /​/​·​request_handler.​cpp2 /​/​·​request_handler.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"request_handler.​hpp"11 #include·​"request_handler.​hpp"
12 #include·​<fstream>12 #include·​<fstream>
13 #include·​<sstream>13 #include·​<sstream>
14 #include·​<string>14 #include·​<string>
15 #include·​<boost/​lexical_cast.​hpp>
16 #include·​"mime_types.​hpp"15 #include·​"mime_types.​hpp"
17 #include·​"reply.​hpp"16 #include·​"reply.​hpp"
18 #include·​"request.​hpp"17 #include·​"request.​hpp"
19 18
20 namespace·​http·​{19 namespace·​http·​{
21 namespace·​server·​{20 namespace·​server·​{
22 21
23 request_handler:​:​request_handler(const​·​std:​:​string&·​doc_root)​22 request_handler:​:​request_handler(const​·​std:​:​string&·​doc_root)​
24 ··​:​·​doc_root_(doc_root)​23 ··​:​·​doc_root_(doc_root)​
25 {24 {
26 }25 }
27 26
28 void·​request_handler:​:​handle_request(const·​request&·​req,​·​reply&·​rep)​27 void·​request_handler:​:​handle_request(const·​request&·​req,​·​reply&·​rep)​
29 {28 {
30 ··​/​/​·​Decode·​url·​to·​path.​29 ··​/​/​·​Decode·​url·​to·​path.​
31 ··​std:​:​string·​request_path;​30 ··​std:​:​string·​request_path;​
32 ··​if·​(!url_decode(req.​uri,​·​request_path)​)​31 ··​if·​(!url_decode(req.​uri,​·​request_path)​)​
33 ··​{32 ··​{
34 ····​rep·​=·​reply:​:​stock_reply(reply:​:​bad_request)​;​33 ····​rep·​=·​reply:​:​stock_reply(reply:​:​bad_request)​;​
35 ····​return;​34 ····​return;​
36 ··​}35 ··​}
37 36
38 ··​/​/​·​Request·​path·​must·​be·​absolute·​and·​not·​contain·​".​.​".​37 ··​/​/​·​Request·​path·​must·​be·​absolute·​and·​not·​contain·​".​.​".​
39 ··​if·​(request_path.​empty()​·​||·​request_path[0]·​!=·​'/​'38 ··​if·​(request_path.​empty()​·​||·​request_path[0]·​!=·​'/​'
40 ······​||·​request_path.​find(".​.​")​·​!=·​std:​:​string:​:​npos)​39 ······​||·​request_path.​find(".​.​")​·​!=·​std:​:​string:​:​npos)​
41 ··​{40 ··​{
42 ····​rep·​=·​reply:​:​stock_reply(reply:​:​bad_request)​;​41 ····​rep·​=·​reply:​:​stock_reply(reply:​:​bad_request)​;​
43 ····​return;​42 ····​return;​
44 ··​}43 ··​}
45 44
46 ··​/​/​·​If·​path·​ends·​in·​slash·​(i.​e.​·​is·​a·​directory)​·​then·​add·​"index.​html".​45 ··​/​/​·​If·​path·​ends·​in·​slash·​(i.​e.​·​is·​a·​directory)​·​then·​add·​"index.​html".​
47 ··​if·​(request_path[request​_path.​size()​·​-​·​1]·​==·​'/​')​46 ··​if·​(request_path[request​_path.​size()​·​-​·​1]·​==·​'/​')​
48 ··​{47 ··​{
49 ····​request_path·​+=·​"index.​html";​48 ····​request_path·​+=·​"index.​html";​
50 ··​}49 ··​}
51 50
52 ··​/​/​·​Determine·​the·​file·​extension.​51 ··​/​/​·​Determine·​the·​file·​extension.​
53 ··​std:​:​size_t·​last_slash_pos·​=·​request_path.​find_last_of("/​")​;​52 ··​std:​:​size_t·​last_slash_pos·​=·​request_path.​find_last_of("/​")​;​
54 ··​std:​:​size_t·​last_dot_pos·​=·​request_path.​find_last_of(".​")​;​53 ··​std:​:​size_t·​last_dot_pos·​=·​request_path.​find_last_of(".​")​;​
55 ··​std:​:​string·​extension;​54 ··​std:​:​string·​extension;​
56 ··​if·​(last_dot_pos·​!=·​std:​:​string:​:​npos·​&&·​last_dot_pos·​>·​last_slash_pos)​55 ··​if·​(last_dot_pos·​!=·​std:​:​string:​:​npos·​&&·​last_dot_pos·​>·​last_slash_pos)​
57 ··​{56 ··​{
58 ····​extension·​=·​request_path.​substr(last_dot_pos·​+·​1)​;​57 ····​extension·​=·​request_path.​substr(last_dot_pos·​+·​1)​;​
59 ··​}58 ··​}
60 59
61 ··​/​/​·​Open·​the·​file·​to·​send·​back.​60 ··​/​/​·​Open·​the·​file·​to·​send·​back.​
62 ··​std:​:​string·​full_path·​=·​doc_root_·​+·​request_path;​61 ··​std:​:​string·​full_path·​=·​doc_root_·​+·​request_path;​
63 ··​std:​:​ifstream·​is(full_path.​c_str()​,​·​std:​:​ios:​:​in·​|·​std:​:​ios:​:​binary)​;​62 ··​std:​:​ifstream·​is(full_path.​c_str()​,​·​std:​:​ios:​:​in·​|·​std:​:​ios:​:​binary)​;​
64 ··​if·​(!is)​63 ··​if·​(!is)​
65 ··​{64 ··​{
66 ····​rep·​=·​reply:​:​stock_reply(reply:​:​not_found)​;​65 ····​rep·​=·​reply:​:​stock_reply(reply:​:​not_found)​;​
67 ····​return;​66 ····​return;​
68 ··​}67 ··​}
69 68
70 ··​/​/​·​Fill·​out·​the·​reply·​to·​be·​sent·​to·​the·​client.​69 ··​/​/​·​Fill·​out·​the·​reply·​to·​be·​sent·​to·​the·​client.​
71 ··​rep.​status·​=·​reply:​:​ok;​70 ··​rep.​status·​=·​reply:​:​ok;​
72 ··​char·​buf[512];​71 ··​char·​buf[512];​
73 ··​while·​(is.​read(buf,​·​sizeof(buf)​)​.​gcount()​·​>·​0)​72 ··​while·​(is.​read(buf,​·​sizeof(buf)​)​.​gcount()​·​>·​0)​
74 ····​rep.​content.​append(buf,​·​is.​gcount()​)​;​73 ····​rep.​content.​append(buf,​·​is.​gcount()​)​;​
75 ··​rep.​headers.​resize(2)​;​74 ··​rep.​headers.​resize(2)​;​
76 ··​rep.​headers[0].​name·​=·​"Content-​Length";​75 ··​rep.​headers[0].​name·​=·​"Content-​Length";​
77 ··​rep.​headers[0].​value·​=·boost:​:​lexical_cast<std:​:​string>(rep.​content.​size()​)​;​76 ··​rep.​headers[0].​value·​=·​std:​:​to_string(rep.​content.​size()​)​;​
78 ··​rep.​headers[1].​name·​=·​"Content-​Type";​77 ··​rep.​headers[1].​name·​=·​"Content-​Type";​
79 ··​rep.​headers[1].​value·​=·​mime_types:​:​extension_to_type(ext​ension)​;​78 ··​rep.​headers[1].​value·​=·​mime_types:​:​extension_to_type(ext​ension)​;​
80 }79 }
81 80
82 bool·​request_handler:​:​url_decode(const·​std:​:​string&·​in,​·​std:​:​string&·​out)​81 bool·​request_handler:​:​url_decode(const·​std:​:​string&·​in,​·​std:​:​string&·​out)​
83 {82 {
84 ··​out.​clear()​;​83 ··​out.​clear()​;​
85 ··​out.​reserve(in.​size()​)​;​84 ··​out.​reserve(in.​size()​)​;​
86 ··​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​in.​size()​;​·​++i)​85 ··​for·​(std:​:​size_t·​i·​=·​0;​·​i·​<·​in.​size()​;​·​++i)​
87 ··​{86 ··​{
88 ····​if·​(in[i]·​==·​'%')​87 ····​if·​(in[i]·​==·​'%')​
89 ····​{88 ····​{
90 ······​if·​(i·​+·​3·​<=·​in.​size()​)​89 ······​if·​(i·​+·​3·​<=·​in.​size()​)​
91 ······​{90 ······​{
92 ········​int·​value·​=·​0;​91 ········​int·​value·​=·​0;​
93 ········​std:​:​istringstream·​is(in.​substr(i·​+·​1,​·​2)​)​;​92 ········​std:​:​istringstream·​is(in.​substr(i·​+·​1,​·​2)​)​;​
94 ········​if·​(is·​>>·​std:​:​hex·​>>·​value)​93 ········​if·​(is·​>>·​std:​:​hex·​>>·​value)​
95 ········​{94 ········​{
96 ··········​out·​+=·​static_cast<char>(val​ue)​;​95 ··········​out·​+=·​static_cast<char>(val​ue)​;​
97 ··········​i·​+=·​2;​96 ··········​i·​+=·​2;​
98 ········​}97 ········​}
99 ········​else98 ········​else
100 ········​{99 ········​{
101 ··········​return·​false;​100 ··········​return·​false;​
102 ········​}101 ········​}
103 ······​}102 ······​}
104 ······​else103 ······​else
105 ······​{104 ······​{
106 ········​return·​false;​105 ········​return·​false;​
107 ······​}106 ······​}
108 ····​}107 ····​}
109 ····​else·​if·​(in[i]·​==·​'+')​108 ····​else·​if·​(in[i]·​==·​'+')​
110 ····​{109 ····​{
111 ······​out·​+=·​'·​';​110 ······​out·​+=·​'·​';​
112 ····​}111 ····​}
113 ····​else112 ····​else
114 ····​{113 ····​{
115 ······​out·​+=·​in[i];​114 ······​out·​+=·​in[i];​
116 ····​}115 ····​}
117 ··​}116 ··​}
118 ··​return·​true;​117 ··​return·​true;​
119 }118 }
120 119
121 }·​/​/​·​namespace·​server120 }·​/​/​·​namespace·​server
122 }·​/​/​·​namespace·​http121 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.hpp.html deleted file mode 100644 index 70a9741..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_handler.hpp.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - HTML Diff http/server/request_handler.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​request_handler.​hppsrc/​examples/​cpp11/​http/​server/​request_handler.​hpp
1 /​/​1 /​/​
2 /​/​·​request_handler.​hpp2 /​/​·​request_handler.​hpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_REQUEST_HANDLER_​HPP11 #ifndef·​HTTP_REQUEST_HANDLER_​HPP
12 #define·​HTTP_REQUEST_HANDLER_​HPP12 #define·​HTTP_REQUEST_HANDLER_​HPP
13 13
14 #include·​<string>14 #include·​<string>
15 #include·​<boost/​noncopyable.​hpp>
16 15
17 namespace·​http·​{16 namespace·​http·​{
18 namespace·​server·​{17 namespace·​server·​{
19 18
20 struct·​reply;​19 struct·​reply;​
21 struct·​request;​20 struct·​request;​
22 21
23 /​/​/​·​The·​common·​handler·​for·​all·​incoming·​requests.​22 /​/​/​·​The·​common·​handler·​for·​all·​incoming·​requests.​
24 class·​request_handler23 class·​request_handler
25 ··​:​·​private·​boost:​:​noncopyable
26 {24 {
27 public:​25 public:​
26 ··​request_handler(const​·​request_handler&)​·​=·​delete;​
27 ··​request_handler&·​operator=(const·​request_handler&)​·​=·​delete;​
28
28 ··​/​/​/​·​Construct·​with·​a·​directory·​containing·​files·​to·​be·​served.​29 ··​/​/​/​·​Construct·​with·​a·​directory·​containing·​files·​to·​be·​served.​
29 ··​explicit·​request_handler(const​·​std:​:​string&·​doc_root)​;​30 ··​explicit·​request_handler(const​·​std:​:​string&·​doc_root)​;​
30 31
31 ··​/​/​/​·​Handle·​a·​request·​and·​produce·​a·​reply.​32 ··​/​/​/​·​Handle·​a·​request·​and·​produce·​a·​reply.​
32 ··​void·​handle_request(const·​request&·​req,​·​reply&·​rep)​;​33 ··​void·​handle_request(const·​request&·​req,​·​reply&·​rep)​;​
33 34
34 private:​35 private:​
35 ··​/​/​/​·​The·​directory·​containing·​the·​files·​to·​be·​served.​36 ··​/​/​/​·​The·​directory·​containing·​the·​files·​to·​be·​served.​
36 ··​std:​:​string·​doc_root_;​37 ··​std:​:​string·​doc_root_;​
37 38
38 ··​/​/​/​·​Perform·​URL-​decoding·​on·​a·​string.​·​Returns·​false·​if·​the·​encoding·​was39 ··​/​/​/​·​Perform·​URL-​decoding·​on·​a·​string.​·​Returns·​false·​if·​the·​encoding·​was
39 ··​/​/​/​·​invalid.​40 ··​/​/​/​·​invalid.​
40 ··​static·​bool·​url_decode(const·​std:​:​string&·​in,​·​std:​:​string&·​out)​;​41 ··​static·​bool·​url_decode(const·​std:​:​string&·​in,​·​std:​:​string&·​out)​;​
41 };​42 };​
42 43
43 }·​/​/​·​namespace·​server44 }·​/​/​·​namespace·​server
44 }·​/​/​·​namespace·​http45 }·​/​/​·​namespace·​http
45 46
46 #endif·​/​/​·​HTTP_REQUEST_HANDLER_​HPP47 #endif·​/​/​·​HTTP_REQUEST_HANDLER_​HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.cpp.html deleted file mode 100644 index f7d6b92..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.cpp.html +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - HTML Diff http/server/request_parser.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​request_parser.​cppsrc/​examples/​cpp11/​http/​server/​request_parser.​cpp
1 /​/​1 /​/​
2 /​/​·​request_parser.​cpp2 /​/​·​request_parser.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"request_parser.​hpp"11 #include·​"request_parser.​hpp"
12 #include·​"request.​hpp"12 #include·​"request.​hpp"
13 13
14 namespace·​http·​{14 namespace·​http·​{
15 namespace·​server·​{15 namespace·​server·​{
16 16
17 request_parser:​:​request_parser()​17 request_parser:​:​request_parser()​
18 ··​:​·​state_(method_start)​18 ··​:​·​state_(method_start)​
19 {19 {
20 }20 }
21 21
22 void·​request_parser:​:​reset()​22 void·​request_parser:​:​reset()​
23 {23 {
24 ··​state_·​=·​method_start;​24 ··​state_·​=·​method_start;​
25 }25 }
26 26
27 boost:​:​tribool·​request_parser:​:​consume(request&·​req,​·​char·​input)​27 request_parser:​:​result_type·​request_parser:​:​consume(request&·​req,​·​char·​input)​
28 {28 {
29 ··​switch·​(state_)​29 ··​switch·​(state_)​
30 ··​{30 ··​{
31 ··​case·​method_start:​31 ··​case·​method_start:​
32 ····​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​32 ····​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​
33 ····​{33 ····​{
34 ······​return·false;​34 ······​return·bad;​
35 ····​}35 ····​}
36 ····​else36 ····​else
37 ····​{37 ····​{
38 ······​state_·​=·​method;​38 ······​state_·​=·​method;​
39 ······​req.​method.​push_back(input)​;​39 ······​req.​method.​push_back(input)​;​
40 ······​return·boost:​:​indeterminate;​40 ······​return·​indeterminate;​
41 ····​}41 ····​}
42 ··​case·​method:​42 ··​case·​method:​
43 ····​if·​(input·​==·​'·​')​43 ····​if·​(input·​==·​'·​')​
44 ····​{44 ····​{
45 ······​state_·​=·​uri;​45 ······​state_·​=·​uri;​
46 ······​return·boost:​:​indeterminate;​46 ······​return·​indeterminate;​
47 ····​}47 ····​}
48 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​48 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​
49 ····​{49 ····​{
50 ······​return·false;​50 ······​return·bad;​
51 ····​}51 ····​}
52 ····​else52 ····​else
53 ····​{53 ····​{
54 ······​req.​method.​push_back(input)​;​54 ······​req.​method.​push_back(input)​;​
55 ······​return·boost:​:​indeterminate;​55 ······​return·​indeterminate;​
56 ····​}56 ····​}
57 ··​case·​uri:​57 ··​case·​uri:​
58 ····​if·​(input·​==·​'·​')​58 ····​if·​(input·​==·​'·​')​
59 ····​{59 ····​{
60 ······​state_·​=·​http_version_h;​60 ······​state_·​=·​http_version_h;​
61 ······​return·boost:​:​indeterminate;​61 ······​return·​indeterminate;​
62 ····​}62 ····​}
63 ····​else·​if·​(is_ctl(input)​)​63 ····​else·​if·​(is_ctl(input)​)​
64 ····​{64 ····​{
65 ······​return·false;​65 ······​return·bad;​
66 ····​}66 ····​}
67 ····​else67 ····​else
68 ····​{68 ····​{
69 ······​req.​uri.​push_back(input)​;​69 ······​req.​uri.​push_back(input)​;​
70 ······​return·boost:​:​indeterminate;​70 ······​return·​indeterminate;​
71 ····​}71 ····​}
72 ··​case·​http_version_h:​72 ··​case·​http_version_h:​
73 ····​if·​(input·​==·​'H')​73 ····​if·​(input·​==·​'H')​
74 ····​{74 ····​{
75 ······​state_·​=·​http_version_t_1;​75 ······​state_·​=·​http_version_t_1;​
76 ······​return·boost:​:​indeterminate;​76 ······​return·​indeterminate;​
77 ····​}77 ····​}
78 ····​else78 ····​else
79 ····​{79 ····​{
80 ······​return·false;​80 ······​return·bad;​
81 ····​}81 ····​}
82 ··​case·​http_version_t_1:​82 ··​case·​http_version_t_1:​
83 ····​if·​(input·​==·​'T')​83 ····​if·​(input·​==·​'T')​
84 ····​{84 ····​{
85 ······​state_·​=·​http_version_t_2;​85 ······​state_·​=·​http_version_t_2;​
86 ······​return·boost:​:​indeterminate;​86 ······​return·​indeterminate;​
87 ····​}87 ····​}
88 ····​else88 ····​else
89 ····​{89 ····​{
90 ······​return·false;​90 ······​return·bad;​
91 ····​}91 ····​}
92 ··​case·​http_version_t_2:​92 ··​case·​http_version_t_2:​
93 ····​if·​(input·​==·​'T')​93 ····​if·​(input·​==·​'T')​
94 ····​{94 ····​{
95 ······​state_·​=·​http_version_p;​95 ······​state_·​=·​http_version_p;​
96 ······​return·boost:​:​indeterminate;​96 ······​return·​indeterminate;​
97 ····​}97 ····​}
98 ····​else98 ····​else
99 ····​{99 ····​{
100 ······​return·false;​100 ······​return·bad;​
101 ····​}101 ····​}
102 ··​case·​http_version_p:​102 ··​case·​http_version_p:​
103 ····​if·​(input·​==·​'P')​103 ····​if·​(input·​==·​'P')​
104 ····​{104 ····​{
105 ······​state_·​=·​http_version_slash;​105 ······​state_·​=·​http_version_slash;​
106 ······​return·boost:​:​indeterminate;​106 ······​return·​indeterminate;​
107 ····​}107 ····​}
108 ····​else108 ····​else
109 ····​{109 ····​{
110 ······​return·false;​110 ······​return·bad;​
111 ····​}111 ····​}
112 ··​case·​http_version_slash:​112 ··​case·​http_version_slash:​
113 ····​if·​(input·​==·​'/​')​113 ····​if·​(input·​==·​'/​')​
114 ····​{114 ····​{
115 ······​req.​http_version_major·​=·​0;​115 ······​req.​http_version_major·​=·​0;​
116 ······​req.​http_version_minor·​=·​0;​116 ······​req.​http_version_minor·​=·​0;​
117 ······​state_·​=·​http_version_major_st​art;​117 ······​state_·​=·​http_version_major_st​art;​
118 ······​return·boost:​:​indeterminate;​118 ······​return·​indeterminate;​
119 ····​}119 ····​}
120 ····​else120 ····​else
121 ····​{121 ····​{
122 ······​return·false;​122 ······​return·bad;​
123 ····​}123 ····​}
124 ··​case·​http_version_major_st​art:​124 ··​case·​http_version_major_st​art:​
125 ····​if·​(is_digit(input)​)​125 ····​if·​(is_digit(input)​)​
126 ····​{126 ····​{
127 ······​req.​http_version_major·​=·​req.​http_version_major·​*·​10·​+·​input·​-​·​'0';​127 ······​req.​http_version_major·​=·​req.​http_version_major·​*·​10·​+·​input·​-​·​'0';​
128 ······​state_·​=·​http_version_major;​128 ······​state_·​=·​http_version_major;​
129 ······​return·boost:​:​indeterminate;​129 ······​return·​indeterminate;​
130 ····​}130 ····​}
131 ····​else131 ····​else
132 ····​{132 ····​{
133 ······​return·false;​133 ······​return·bad;​
134 ····​}134 ····​}
135 ··​case·​http_version_major:​135 ··​case·​http_version_major:​
136 ····​if·​(input·​==·​'.​')​136 ····​if·​(input·​==·​'.​')​
137 ····​{137 ····​{
138 ······​state_·​=·​http_version_minor_st​art;​138 ······​state_·​=·​http_version_minor_st​art;​
139 ······​return·boost:​:​indeterminate;​139 ······​return·​indeterminate;​
140 ····​}140 ····​}
141 ····​else·​if·​(is_digit(input)​)​141 ····​else·​if·​(is_digit(input)​)​
142 ····​{142 ····​{
143 ······​req.​http_version_major·​=·​req.​http_version_major·​*·​10·​+·​input·​-​·​'0';​143 ······​req.​http_version_major·​=·​req.​http_version_major·​*·​10·​+·​input·​-​·​'0';​
144 ······​return·boost:​:​indeterminate;​144 ······​return·​indeterminate;​
145 ····​}145 ····​}
146 ····​else146 ····​else
147 ····​{147 ····​{
148 ······​return·false;​148 ······​return·bad;​
149 ····​}149 ····​}
150 ··​case·​http_version_minor_st​art:​150 ··​case·​http_version_minor_st​art:​
151 ····​if·​(is_digit(input)​)​151 ····​if·​(is_digit(input)​)​
152 ····​{152 ····​{
153 ······​req.​http_version_minor·​=·​req.​http_version_minor·​*·​10·​+·​input·​-​·​'0';​153 ······​req.​http_version_minor·​=·​req.​http_version_minor·​*·​10·​+·​input·​-​·​'0';​
154 ······​state_·​=·​http_version_minor;​154 ······​state_·​=·​http_version_minor;​
155 ······​return·boost:​:​indeterminate;​155 ······​return·​indeterminate;​
156 ····​}156 ····​}
157 ····​else157 ····​else
158 ····​{158 ····​{
159 ······​return·false;​159 ······​return·bad;​
160 ····​}160 ····​}
161 ··​case·​http_version_minor:​161 ··​case·​http_version_minor:​
162 ····​if·​(input·​==·​'\r')​162 ····​if·​(input·​==·​'\r')​
163 ····​{163 ····​{
164 ······​state_·​=·​expecting_newline_1;​164 ······​state_·​=·​expecting_newline_1;​
165 ······​return·boost:​:​indeterminate;​165 ······​return·​indeterminate;​
166 ····​}166 ····​}
167 ····​else·​if·​(is_digit(input)​)​167 ····​else·​if·​(is_digit(input)​)​
168 ····​{168 ····​{
169 ······​req.​http_version_minor·​=·​req.​http_version_minor·​*·​10·​+·​input·​-​·​'0';​169 ······​req.​http_version_minor·​=·​req.​http_version_minor·​*·​10·​+·​input·​-​·​'0';​
170 ······​return·boost:​:​indeterminate;​170 ······​return·​indeterminate;​
171 ····​}171 ····​}
172 ····​else172 ····​else
173 ····​{173 ····​{
174 ······​return·false;​174 ······​return·bad;​
175 ····​}175 ····​}
176 ··​case·​expecting_newline_1:​176 ··​case·​expecting_newline_1:​
177 ····​if·​(input·​==·​'\n')​177 ····​if·​(input·​==·​'\n')​
178 ····​{178 ····​{
179 ······​state_·​=·​header_line_start;​179 ······​state_·​=·​header_line_start;​
180 ······​return·boost:​:​indeterminate;​180 ······​return·​indeterminate;​
181 ····​}181 ····​}
182 ····​else182 ····​else
183 ····​{183 ····​{
184 ······​return·false;​184 ······​return·bad;​
185 ····​}185 ····​}
186 ··​case·​header_line_start:​186 ··​case·​header_line_start:​
187 ····​if·​(input·​==·​'\r')​187 ····​if·​(input·​==·​'\r')​
188 ····​{188 ····​{
189 ······​state_·​=·​expecting_newline_3;​189 ······​state_·​=·​expecting_newline_3;​
190 ······​return·boost:​:​indeterminate;​190 ······​return·​indeterminate;​
191 ····​}191 ····​}
192 ····​else·​if·​(!req.​headers.​empty()​·​&&·​(input·​==·​'·​'·​||·​input·​==·​'\t')​)​192 ····​else·​if·​(!req.​headers.​empty()​·​&&·​(input·​==·​'·​'·​||·​input·​==·​'\t')​)​
193 ····​{193 ····​{
194 ······​state_·​=·​header_lws;​194 ······​state_·​=·​header_lws;​
195 ······​return·boost:​:​indeterminate;​195 ······​return·​indeterminate;​
196 ····​}196 ····​}
197 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​197 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​
198 ····​{198 ····​{
199 ······​return·false;​199 ······​return·bad;​
200 ····​}200 ····​}
201 ····​else201 ····​else
202 ····​{202 ····​{
203 ······​req.​headers.​push_back(header()​)​;​203 ······​req.​headers.​push_back(header()​)​;​
204 ······​req.​headers.​back()​.​name.​push_back(input)​;​204 ······​req.​headers.​back()​.​name.​push_back(input)​;​
205 ······​state_·​=·​header_name;​205 ······​state_·​=·​header_name;​
206 ······​return·boost:​:​indeterminate;​206 ······​return·​indeterminate;​
207 ····​}207 ····​}
208 ··​case·​header_lws:​208 ··​case·​header_lws:​
209 ····​if·​(input·​==·​'\r')​209 ····​if·​(input·​==·​'\r')​
210 ····​{210 ····​{
211 ······​state_·​=·​expecting_newline_2;​211 ······​state_·​=·​expecting_newline_2;​
212 ······​return·boost:​:​indeterminate;​212 ······​return·​indeterminate;​
213 ····​}213 ····​}
214 ····​else·​if·​(input·​==·​'·​'·​||·​input·​==·​'\t')​214 ····​else·​if·​(input·​==·​'·​'·​||·​input·​==·​'\t')​
215 ····​{215 ····​{
216 ······​return·boost:​:​indeterminate;​216 ······​return·​indeterminate;​
217 ····​}217 ····​}
218 ····​else·​if·​(is_ctl(input)​)​218 ····​else·​if·​(is_ctl(input)​)​
219 ····​{219 ····​{
220 ······​return·false;​220 ······​return·bad;​
221 ····​}221 ····​}
222 ····​else222 ····​else
223 ····​{223 ····​{
224 ······​state_·​=·​header_value;​224 ······​state_·​=·​header_value;​
225 ······​req.​headers.​back()​.​value.​push_back(input)​;​225 ······​req.​headers.​back()​.​value.​push_back(input)​;​
226 ······​return·boost:​:​indeterminate;​226 ······​return·​indeterminate;​
227 ····​}227 ····​}
228 ··​case·​header_name:​228 ··​case·​header_name:​
229 ····​if·​(input·​==·​':​')​229 ····​if·​(input·​==·​':​')​
230 ····​{230 ····​{
231 ······​state_·​=·​space_before_header_v​alue;​231 ······​state_·​=·​space_before_header_v​alue;​
232 ······​return·boost:​:​indeterminate;​232 ······​return·​indeterminate;​
233 ····​}233 ····​}
234 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​234 ····​else·​if·​(!is_char(input)​·​||·​is_ctl(input)​·​||·​is_tspecial(input)​)​
235 ····​{235 ····​{
236 ······​return·false;​236 ······​return·bad;​
237 ····​}237 ····​}
238 ····​else238 ····​else
239 ····​{239 ····​{
240 ······​req.​headers.​back()​.​name.​push_back(input)​;​240 ······​req.​headers.​back()​.​name.​push_back(input)​;​
241 ······​return·boost:​:​indeterminate;​241 ······​return·​indeterminate;​
242 ····​}242 ····​}
243 ··​case·​space_before_header_v​alue:​243 ··​case·​space_before_header_v​alue:​
244 ····​if·​(input·​==·​'·​')​244 ····​if·​(input·​==·​'·​')​
245 ····​{245 ····​{
246 ······​state_·​=·​header_value;​246 ······​state_·​=·​header_value;​
247 ······​return·boost:​:​indeterminate;​247 ······​return·​indeterminate;​
248 ····​}248 ····​}
249 ····​else249 ····​else
250 ····​{250 ····​{
251 ······​return·false;​251 ······​return·bad;​
252 ····​}252 ····​}
253 ··​case·​header_value:​253 ··​case·​header_value:​
254 ····​if·​(input·​==·​'\r')​254 ····​if·​(input·​==·​'\r')​
255 ····​{255 ····​{
256 ······​state_·​=·​expecting_newline_2;​256 ······​state_·​=·​expecting_newline_2;​
257 ······​return·boost:​:​indeterminate;​257 ······​return·​indeterminate;​
258 ····​}258 ····​}
259 ····​else·​if·​(is_ctl(input)​)​259 ····​else·​if·​(is_ctl(input)​)​
260 ····​{260 ····​{
261 ······​return·false;​261 ······​return·bad;​
262 ····​}262 ····​}
263 ····​else263 ····​else
264 ····​{264 ····​{
265 ······​req.​headers.​back()​.​value.​push_back(input)​;​265 ······​req.​headers.​back()​.​value.​push_back(input)​;​
266 ······​return·boost:​:​indeterminate;​266 ······​return·​indeterminate;​
267 ····​}267 ····​}
268 ··​case·​expecting_newline_2:​268 ··​case·​expecting_newline_2:​
269 ····​if·​(input·​==·​'\n')​269 ····​if·​(input·​==·​'\n')​
270 ····​{270 ····​{
271 ······​state_·​=·​header_line_start;​271 ······​state_·​=·​header_line_start;​
272 ······​return·boost:​:​indeterminate;​272 ······​return·​indeterminate;​
273 ····​}273 ····​}
274 ····​else274 ····​else
275 ····​{275 ····​{
276 ······​return·false;​276 ······​return·bad;​
277 ····​}277 ····​}
278 ··​case·​expecting_newline_3:​278 ··​case·​expecting_newline_3:​
279 ····​return·​(input·​==·​'\n')​;​279 ····​return·​(input·​==·​'\n')​·?·good·:​·bad;​
280 ··​default:​280 ··​default:​
281 ····​return·false;​281 ····​return·bad;​
282 ··​}282 ··​}
283 }283 }
284 284
285 bool·​request_parser:​:​is_char(int·​c)​285 bool·​request_parser:​:​is_char(int·​c)​
286 {286 {
287 ··​return·​c·​>=·​0·​&&·​c·​<=·​127;​287 ··​return·​c·​>=·​0·​&&·​c·​<=·​127;​
288 }288 }
289 289
290 bool·​request_parser:​:​is_ctl(int·​c)​290 bool·​request_parser:​:​is_ctl(int·​c)​
291 {291 {
292 ··​return·​(c·​>=·​0·​&&·​c·​<=·​31)​·​||·​(c·​==·​127)​;​292 ··​return·​(c·​>=·​0·​&&·​c·​<=·​31)​·​||·​(c·​==·​127)​;​
293 }293 }
294 294
295 bool·​request_parser:​:​is_tspecial(int·​c)​295 bool·​request_parser:​:​is_tspecial(int·​c)​
296 {296 {
297 ··​switch·​(c)​297 ··​switch·​(c)​
298 ··​{298 ··​{
299 ··​case·​'(':​·​case·​')​':​·​case·​'<':​·​case·​'>':​·​case·​'@':​299 ··​case·​'(':​·​case·​')​':​·​case·​'<':​·​case·​'>':​·​case·​'@':​
300 ··​case·​',​':​·​case·​';​':​·​case·​':​':​·​case·​'\\':​·​case·​'"':​300 ··​case·​',​':​·​case·​';​':​·​case·​':​':​·​case·​'\\':​·​case·​'"':​
301 ··​case·​'/​':​·​case·​'[':​·​case·​']':​·​case·​'?':​·​case·​'=':​301 ··​case·​'/​':​·​case·​'[':​·​case·​']':​·​case·​'?':​·​case·​'=':​
302 ··​case·​'{':​·​case·​'}':​·​case·​'·​':​·​case·​'\t':​302 ··​case·​'{':​·​case·​'}':​·​case·​'·​':​·​case·​'\t':​
303 ····​return·​true;​303 ····​return·​true;​
304 ··​default:​304 ··​default:​
305 ····​return·​false;​305 ····​return·​false;​
306 ··​}306 ··​}
307 }307 }
308 308
309 bool·​request_parser:​:​is_digit(int·​c)​309 bool·​request_parser:​:​is_digit(int·​c)​
310 {310 {
311 ··​return·​c·​>=·​'0'·​&&·​c·​<=·​'9';​311 ··​return·​c·​>=·​'0'·​&&·​c·​<=·​'9';​
312 }312 }
313 313
314 }·​/​/​·​namespace·​server314 }·​/​/​·​namespace·​server
315 }·​/​/​·​namespace·​http315 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.hpp.html deleted file mode 100644 index f480bcf..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/request_parser.hpp.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - HTML Diff http/server/request_parser.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​request_parser.​hppsrc/​examples/​cpp11/​http/​server/​request_parser.​hpp
1 /​/​1 /​/​
2 /​/​·​request_parser.​hpp2 /​/​·​request_parser.​hpp
3 /​/​·​~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_REQUEST_PARSER_H​PP11 #ifndef·​HTTP_REQUEST_PARSER_H​PP
12 #define·​HTTP_REQUEST_PARSER_H​PP12 #define·​HTTP_REQUEST_PARSER_H​PP
13 13
14 #include·​<boost/​logic/​tribool.​hpp>14 #include·​<tuple>
15 #include·<boost/​tuple/​tuple.​hpp>
16 15
17 namespace·​http·​{16 namespace·​http·​{
18 namespace·​server·​{17 namespace·​server·​{
19 18
20 struct·​request;​19 struct·​request;​
21 20
22 /​/​/​·​Parser·​for·​incoming·​requests.​21 /​/​/​·​Parser·​for·​incoming·​requests.​
23 class·​request_parser22 class·​request_parser
24 {23 {
25 public:​24 public:​
26 ··​/​/​/​·​Construct·​ready·​to·​parse·​the·​request·​method.​25 ··​/​/​/​·​Construct·​ready·​to·​parse·​the·​request·​method.​
27 ··​request_parser()​;​26 ··​request_parser()​;​
28 27
29 ··​/​/​/​·​Reset·​to·​initial·​parser·​state.​28 ··​/​/​/​·​Reset·​to·​initial·​parser·​state.​
30 ··​void·​reset()​;​29 ··​void·​reset()​;​
31 30
32 ··​/​/​/​·Parse·some·data.​·The·tribool·return·value·is·true·when·a·complete·request31 ··​/​/​/​·Result·of·​parse.​
33 ··/​/​/​·has·been·parsed,​·false·if·the·data·is·invalid,​·​indeterminate·when·more32 ··​enum·result_type·{·good,​·bad,​·​indeterminate·};​
34 ··/​/​/​·data·is·required.​·The·InputIterator·return·value·indicates·how·much·of·the33
35 ··​/​/​/​·input·has·been·​consumed.​34 ··​/​/​/​·Parse·some·data.​·The·enum·return·value·is·good·when·a·​complete·request·has
35 ··​/​/​/​·​been·​parsed,​·​bad·​if·​the·​data·​is·​invalid,​·​indeterminate·​when·​more·​data·​is
36 ··​/​/​/​·​required.​·​The·​InputIterator·​return·​value·​indicates·​how·​much·​of·​the·​input
37 ··​/​/​/​·​has·​been·​consumed.​
36 ··​template·​<typename·​InputIterator>38 ··​template·​<typename·​InputIterator>
37 ··boost:​:​tuple<boost:​:​tribool,​·​InputIterator>·​parse(request&·​req,​39 ··​std:​:​tuple<result_type,​·​InputIterator>·​parse(request&·​req,​
38 ······​InputIterator·​begin,​·​InputIterator·​end)​40 ······​InputIterator·​begin,​·​InputIterator·​end)​
39 ··​{41 ··​{
40 ····​while·​(begin·​!=·​end)​42 ····​while·​(begin·​!=·​end)​
41 ····​{43 ····​{
42 ······boost:​:​tribool·​result·​=·​consume(req,​·​*begin++)​;​44 ······result_type·​result·​=·​consume(req,​·​*begin++)​;​
43 ······​if·​(result·​||·!result)​45 ······​if·​(result·==·good·​||·​result·==·bad)​
44 ········​return·boost:​:​make_tuple(result,​·​begin)​;​46 ········​return·​std:​:​make_tuple(result,​·​begin)​;​
45 ····​}47 ····​}
46 ····boost:​:​tribool·result·=·boost:​:​indeterminate;​48 ····return·std:​:​make_tuple(indetermin​ate,​·begin)​;​
47 ····return·boost:​:​make_tuple(result,​·begin)​;​
48 ··​}49 ··​}
49 50
50 private:​51 private:​
51 ··​/​/​/​·​Handle·​the·​next·​character·​of·​input.​52 ··​/​/​/​·​Handle·​the·​next·​character·​of·​input.​
52 ··boost:​:​tribool·​consume(request&·​req,​·​char·​input)​;​53 ··result_type·​consume(request&·​req,​·​char·​input)​;​
53 54
54 ··​/​/​/​·​Check·​if·​a·​byte·​is·​an·​HTTP·​character.​55 ··​/​/​/​·​Check·​if·​a·​byte·​is·​an·​HTTP·​character.​
55 ··​static·​bool·​is_char(int·​c)​;​56 ··​static·​bool·​is_char(int·​c)​;​
56 57
57 ··​/​/​/​·​Check·​if·​a·​byte·​is·​an·​HTTP·​control·​character.​58 ··​/​/​/​·​Check·​if·​a·​byte·​is·​an·​HTTP·​control·​character.​
58 ··​static·​bool·​is_ctl(int·​c)​;​59 ··​static·​bool·​is_ctl(int·​c)​;​
59 60
60 ··​/​/​/​·​Check·​if·​a·​byte·​is·​defined·​as·​an·​HTTP·​tspecial·​character.​61 ··​/​/​/​·​Check·​if·​a·​byte·​is·​defined·​as·​an·​HTTP·​tspecial·​character.​
61 ··​static·​bool·​is_tspecial(int·​c)​;​62 ··​static·​bool·​is_tspecial(int·​c)​;​
62 63
63 ··​/​/​/​·​Check·​if·​a·​byte·​is·​a·​digit.​64 ··​/​/​/​·​Check·​if·​a·​byte·​is·​a·​digit.​
64 ··​static·​bool·​is_digit(int·​c)​;​65 ··​static·​bool·​is_digit(int·​c)​;​
65 66
66 ··​/​/​/​·​The·​current·​state·​of·​the·​parser.​67 ··​/​/​/​·​The·​current·​state·​of·​the·​parser.​
67 ··​enum·​state68 ··​enum·​state
68 ··​{69 ··​{
69 ····​method_start,​70 ····​method_start,​
70 ····​method,​71 ····​method,​
71 ····​uri,​72 ····​uri,​
72 ····​http_version_h,​73 ····​http_version_h,​
73 ····​http_version_t_1,​74 ····​http_version_t_1,​
74 ····​http_version_t_2,​75 ····​http_version_t_2,​
75 ····​http_version_p,​76 ····​http_version_p,​
76 ····​http_version_slash,​77 ····​http_version_slash,​
77 ····​http_version_major_st​art,​78 ····​http_version_major_st​art,​
78 ····​http_version_major,​79 ····​http_version_major,​
79 ····​http_version_minor_st​art,​80 ····​http_version_minor_st​art,​
80 ····​http_version_minor,​81 ····​http_version_minor,​
81 ····​expecting_newline_1,​82 ····​expecting_newline_1,​
82 ····​header_line_start,​83 ····​header_line_start,​
83 ····​header_lws,​84 ····​header_lws,​
84 ····​header_name,​85 ····​header_name,​
85 ····​space_before_header_v​alue,​86 ····​space_before_header_v​alue,​
86 ····​header_value,​87 ····​header_value,​
87 ····​expecting_newline_2,​88 ····​expecting_newline_2,​
88 ····​expecting_newline_389 ····​expecting_newline_3
89 ··​}·​state_;​90 ··​}·​state_;​
90 };​91 };​
91 92
92 }·​/​/​·​namespace·​server93 }·​/​/​·​namespace·​server
93 }·​/​/​·​namespace·​http94 }·​/​/​·​namespace·​http
94 95
95 #endif·​/​/​·​HTTP_REQUEST_PARSER_H​PP96 #endif·​/​/​·​HTTP_REQUEST_PARSER_H​PP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/server.cpp.html deleted file mode 100644 index e71fce4..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/server.cpp.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - HTML Diff http/server/server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​server.​cppsrc/​examples/​cpp11/​http/​server/​server.​cpp
1 /​/​1 /​/​
2 /​/​·​server.​cpp2 /​/​·​server.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"server.​hpp"11 #include·​"server.​hpp"
12 #include·​<boost/​bind.​hpp>
13 #include·​<signal.​h>12 #include·​<signal.​h>
13 #include·​<utility>
14 14
15 namespace·​http·​{15 namespace·​http·​{
16 namespace·​server·​{16 namespace·​server·​{
17 17
18 server:​:​server(const·​std:​:​string&·​address,​·​const·​std:​:​string&·​port,​18 server:​:​server(const·​std:​:​string&·​address,​·​const·​std:​:​string&·​port,​
19 ····​const·​std:​:​string&·​doc_root)​19 ····​const·​std:​:​string&·​doc_root)​
20 ··​:​·​io_context_()​,​20 ··​:​·​io_context_(1)​,​
21 ····​signals_(io_context_)​,​21 ····​signals_(io_context_)​,​
22 ····​acceptor_(io_context_​)​,​22 ····​acceptor_(io_context_​)​,​
23 ····​connection_manager_()​,​23 ····​connection_manager_()​,​
24 ····​new_connection_()​,​
25 ····​request_handler_(doc_​root)​24 ····​request_handler_(doc_​root)​
26 {25 {
27 ··​/​/​·​Register·​to·​handle·​the·​signals·​that·​indicate·​when·​the·​server·​should·​exit.​26 ··​/​/​·​Register·​to·​handle·​the·​signals·​that·​indicate·​when·​the·​server·​should·​exit.​
28 ··​/​/​·​It·​is·​safe·​to·​register·​for·​the·​same·​signal·​multiple·​times·​in·​a·​program,​27 ··​/​/​·​It·​is·​safe·​to·​register·​for·​the·​same·​signal·​multiple·​times·​in·​a·​program,​
29 ··​/​/​·​provided·​all·​registration·​for·​the·​specified·​signal·​is·​made·​through·​Asio.​28 ··​/​/​·​provided·​all·​registration·​for·​the·​specified·​signal·​is·​made·​through·​Asio.​
30 ··​signals_.​add(SIGINT)​;​29 ··​signals_.​add(SIGINT)​;​
31 ··​signals_.​add(SIGTERM)​;​30 ··​signals_.​add(SIGTERM)​;​
32 #if·​defined(SIGQUIT)​31 #if·​defined(SIGQUIT)​
33 ··​signals_.​add(SIGQUIT)​;​32 ··​signals_.​add(SIGQUIT)​;​
34 #endif·​/​/​·​defined(SIGQUIT)​33 #endif·​/​/​·​defined(SIGQUIT)​
35 ··signals_.​async_wait(boost:​:​bind(&server:​:​handle_stop,​·this)​)​;​34
35 ··​do_await_stop()​;​
36 36
37 ··​/​/​·​Open·​the·​acceptor·​with·​the·​option·​to·​reuse·​the·​address·​(i.​e.​·​SO_REUSEADDR)​.​37 ··​/​/​·​Open·​the·​acceptor·​with·​the·​option·​to·​reuse·​the·​address·​(i.​e.​·​SO_REUSEADDR)​.​
38 ··​asio:​:​ip:​:​tcp:​:​resolver·​resolver(io_context_)​;​38 ··​asio:​:​ip:​:​tcp:​:​resolver·​resolver(io_context_)​;​
39 ··​asio:​:​ip:​:​tcp:​:​endpoint·​endpoint·​=39 ··​asio:​:​ip:​:​tcp:​:​endpoint·​endpoint·​=
40 ····​*resolver.​resolve(address,​·​port)​.​begin()​;​40 ····​*resolver.​resolve(address,​·​port)​.​begin()​;​
41 ··​acceptor_.​open(endpoint.​protocol()​)​;​41 ··​acceptor_.​open(endpoint.​protocol()​)​;​
42 ··​acceptor_.​set_option(asio:​:​ip:​:​tcp:​:​acceptor:​:​reuse_address(true)​)​;​42 ··​acceptor_.​set_option(asio:​:​ip:​:​tcp:​:​acceptor:​:​reuse_address(true)​)​;​
43 ··​acceptor_.​bind(endpoint)​;​43 ··​acceptor_.​bind(endpoint)​;​
44 ··​acceptor_.​listen()​;​44 ··​acceptor_.​listen()​;​
45 45
46 ··start_accept()​;​46 ··do_accept()​;​
47 }47 }
48 48
49 void·​server:​:​run()​49 void·​server:​:​run()​
50 {50 {
51 ··​/​/​·​The·​io_context:​:​run()​·​call·​will·​block·​until·​all·​asynchronous·​operations51 ··​/​/​·​The·​io_context:​:​run()​·​call·​will·​block·​until·​all·​asynchronous·​operations
52 ··​/​/​·​have·​finished.​·​While·​the·​server·​is·​running,​·​there·​is·​always·​at·​least·​one52 ··​/​/​·​have·​finished.​·​While·​the·​server·​is·​running,​·​there·​is·​always·​at·​least·​one
53 ··​/​/​·​asynchronous·​operation·​outstanding:​·​the·​asynchronous·​accept·​call·​waiting53 ··​/​/​·​asynchronous·​operation·​outstanding:​·​the·​asynchronous·​accept·​call·​waiting
54 ··​/​/​·​for·​new·​incoming·​connections.​54 ··​/​/​·​for·​new·​incoming·​connections.​
55 ··​io_context_.​run()​;​55 ··​io_context_.​run()​;​
56 }56 }
57 57
58 void·​server:​:​start_accept()​58 void·​server:​:​do_accept()​
59 {
60 ··new_connection_.​reset(new·connection(io_context​_,​
61 ········connection_manager_,​·request_handler_)​)​;​
62 ··acceptor_.​async_accept(new_conn​ection_-​>socket()​,​
63 ······boost:​:​bind(&server:​:​handle_accept,​·this,​
64 ········asio:​:​placeholders:​:​error)​)​;​
65 }
66
67 void·server:​:​handle_accept(const·asio:​:​error_code&·e)​
68 {59 {
69 ··/​/​·Check·whether·the·server·was·stopped·by·a·signal·before·this·completion60 ··acceptor_.​async_accept(
70 ··/​/​·​handler·had·​a·chance·to·run.​61 ······[this](std:​:​error_code·ec,​·​asio:​:​ip:​:​tcp:​:​socket·socket)​
71 ··if·(!acceptor_.​is_open()​)​62 ······{
72 ··{63 ········/​/​·Check·whether·the·server·was·stopped·by·a·signal·before·this
73 ····​return;​64 ········/​/​·completion·handler·had·a·chance·to·run.​
74 ··}65 ········if·(!acceptor_.​is_open()​)​
75 66 ········{
76 ··if·(!e)​67 ··········return;​
77 ··{68 ········}
78 ····connection_manager_.​start(new_connection_​)​;​69
79 ··}70 ········if·(!ec)​
71 ········​{
72 ··········​connection_manager_.​start(std:​:​make_shared<connectio​n>(
73 ··············​std:​:​move(socket)​,​·​connection_manager_,​·​request_handler_)​)​;​
74 ········​}
80 75
81 ··start_accept()​;​76 ········do_accept()​;​
77 ······​})​;​
82 }78 }
83 79
84 void·​server:​:​handle_stop()​80 void·​server:​:​do_await_stop()​
85 {81 {
86 ··/​/​·The·server·is·​stopped·by·cancelling·all·outstanding·asynchronous82 ··​signals_.​async_wait(
87 ··/​/​·operations.​·Once·all·operations·have·finished·the·​io_context:​:​run()​·call83 ······[this](std:​:​error_code·/​*ec*/​,​·​int·/​*signo*/​)​
88 ··/​/​·will·exit.​84 ······{
89 ··acceptor_.​close()​;​85 ········/​/​·The·server·is·stopped·by·cancelling·all·outstanding·asynchronous
90 ··connection_manager_.​stop_all()​;​86 ········/​/​·operations.​·Once·all·operations·have·finished·the·io_context:​:​run()​
87 ········​/​/​·​call·​will·​exit.​
88 ········​acceptor_.​close()​;​
89 ········​connection_manager_.​stop_all()​;​
90 ······​})​;​
91 }91 }
92 92
93 }·​/​/​·​namespace·​server93 }·​/​/​·​namespace·​server
94 }·​/​/​·​namespace·​http94 }·​/​/​·​namespace·​http
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/http/server/server.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/http/server/server.hpp.html deleted file mode 100644 index 546a043..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/http/server/server.hpp.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - HTML Diff http/server/server.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​http/​server/​server.​hppsrc/​examples/​cpp11/​http/​server/​server.​hpp
1 /​/​1 /​/​
2 /​/​·​server.​hpp2 /​/​·​server.​hpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​HTTP_SERVER_HPP11 #ifndef·​HTTP_SERVER_HPP
12 #define·​HTTP_SERVER_HPP12 #define·​HTTP_SERVER_HPP
13 13
14 #include·​<asio.​hpp>14 #include·​<asio.​hpp>
15 #include·​<string>15 #include·​<string>
16 #include·​<boost/​noncopyable.​hpp>
17 #include·​"connection.​hpp"16 #include·​"connection.​hpp"
18 #include·​"connection_manager.​hpp"17 #include·​"connection_manager.​hpp"
19 #include·​"request_handler.​hpp"18 #include·​"request_handler.​hpp"
20 19
21 namespace·​http·​{20 namespace·​http·​{
22 namespace·​server·​{21 namespace·​server·​{
23 22
24 /​/​/​·​The·​top-​level·​class·​of·​the·​HTTP·​server.​23 /​/​/​·​The·​top-​level·​class·​of·​the·​HTTP·​server.​
25 class·​server24 class·​server
26 ··​:​·​private·​boost:​:​noncopyable
27 {25 {
28 public:​26 public:​
27 ··​server(const·​server&)​·​=·​delete;​
28 ··​server&·​operator=(const·​server&)​·​=·​delete;​
29
29 ··​/​/​/​·​Construct·​the·​server·​to·​listen·​on·​the·​specified·​TCP·​address·​and·​port,​·​and30 ··​/​/​/​·​Construct·​the·​server·​to·​listen·​on·​the·​specified·​TCP·​address·​and·​port,​·​and
30 ··​/​/​/​·​serve·​up·​files·​from·​the·​given·​directory.​31 ··​/​/​/​·​serve·​up·​files·​from·​the·​given·​directory.​
31 ··​explicit·​server(const·​std:​:​string&·​address,​·​const·​std:​:​string&·​port,​32 ··​explicit·​server(const·​std:​:​string&·​address,​·​const·​std:​:​string&·​port,​
32 ······​const·​std:​:​string&·​doc_root)​;​33 ······​const·​std:​:​string&·​doc_root)​;​
33 34
34 ··​/​/​/​·​Run·​the·​server's·​io_context·​loop.​35 ··​/​/​/​·​Run·​the·​server's·​io_context·​loop.​
35 ··​void·​run()​;​36 ··​void·​run()​;​
36 37
37 private:​38 private:​
38 ··​/​/​/​·Initiate·​an·​asynchronous·​accept·​operation.​39 ··​/​/​/​·Perform·​an·​asynchronous·​accept·​operation.​
39 ··​void·start_accept()​;​40 ··​void·do_accept()​;​
40
41 ··/​/​/​·Handle·completion·of·an·asynchronous·accept·operation.​
42 ··void·handle_accept(const·asio:​:​error_code&·e)​;​
43 41
44 ··​/​/​/​·Handle·​a·​request·​to·​stop·​the·​server.​42 ··​/​/​/​·Wait·for·​a·​request·​to·​stop·​the·​server.​
45 ··​void·handle_stop()​;​43 ··​void·do_await_stop()​;​
46 44
47 ··​/​/​/​·​The·​io_context·​used·​to·​perform·​asynchronous·​operations.​45 ··​/​/​/​·​The·​io_context·​used·​to·​perform·​asynchronous·​operations.​
48 ··​asio:​:​io_context·​io_context_;​46 ··​asio:​:​io_context·​io_context_;​
49 47
50 ··​/​/​/​·​The·​signal_set·​is·​used·​to·​register·​for·​process·​termination·​notifications.​48 ··​/​/​/​·​The·​signal_set·​is·​used·​to·​register·​for·​process·​termination·​notifications.​
51 ··​asio:​:​signal_set·​signals_;​49 ··​asio:​:​signal_set·​signals_;​
52 50
53 ··​/​/​/​·​Acceptor·​used·​to·​listen·​for·​incoming·​connections.​51 ··​/​/​/​·​Acceptor·​used·​to·​listen·​for·​incoming·​connections.​
54 ··​asio:​:​ip:​:​tcp:​:​acceptor·​acceptor_;​52 ··​asio:​:​ip:​:​tcp:​:​acceptor·​acceptor_;​
55 53
56 ··​/​/​/​·​The·​connection·​manager·​which·​owns·​all·​live·​connections.​54 ··​/​/​/​·​The·​connection·​manager·​which·​owns·​all·​live·​connections.​
57 ··​connection_manager·​connection_manager_;​55 ··​connection_manager·​connection_manager_;​
58 56
59 ··​/​/​/​·​The·​next·​connection·​to·​be·​accepted.​
60 ··​connection_ptr·​new_connection_;​
61
62 ··​/​/​/​·​The·​handler·​for·​all·​incoming·​requests.​57 ··​/​/​/​·​The·​handler·​for·​all·​incoming·​requests.​
63 ··​request_handler·​request_handler_;​58 ··​request_handler·​request_handler_;​
64 };​59 };​
65 60
66 }·​/​/​·​namespace·​server61 }·​/​/​·​namespace·​server
67 }·​/​/​·​namespace·​http62 }·​/​/​·​namespace·​http
68 63
69 #endif·​/​/​·​HTTP_SERVER_HPP64 #endif·​/​/​·​HTTP_SERVER_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html deleted file mode 100644 index eb99616..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/invocation/prioritised_handlers.cpp.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - HTML Diff invocation/prioritised_handlers.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​invocation/​prioritised_handlers.​cppsrc/​examples/​cpp11/​invocation/​prioritised_handlers.​cpp
1 /​/​1 /​/​
2 /​/​·​prioritised_handlers.​cpp2 /​/​·​prioritised_handlers.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio.​hpp"11 #include·​"asio.​hpp"
12 #include·​<boost/​function.​hpp>
13 #include·​<iostream>12 #include·​<iostream>
13 #include·​<memory>
14 #include·​<queue>14 #include·​<queue>
15 15
16 using·​asio:​:​ip:​:​tcp;​16 using·​asio:​:​ip:​:​tcp;​
17 17
18 class·​handler_priority_queu​e·​:​·public·​asio:​:​execution_context18 class·​handler_priority_queu​e·​:​·​asio:​:​execution_context
19 {19 {
20 public:​20 public:​
21 ··void·add(int·priority,​·boost:​:​function<void()​>·function)​21 ··​template·<typename·Function>
22 ··​void·​add(int·​priority,​·​Function·​function)​
22 ··​{23 ··​{
23 ····handlers_.​push(queued_handler(p​riority,​·function)​)​;​24 ····std:​:​unique_ptr<queued_han​dler_base>·handler(
25 ········​new·​queued_handler<Functi​on>(
26 ··········​priority,​·​std:​:​move(function)​)​)​;​
27
28 ····​handlers_.​push(std:​:​move(handler)​)​;​
24 ··​}29 ··​}
25 30
26 ··​void·​execute_all()​31 ··​void·​execute_all()​
27 ··​{32 ··​{
28 ····​while·​(!handlers_.​empty()​)​33 ····​while·​(!handlers_.​empty()​)​
29 ····​{34 ····​{
30 ······queued_handler·handler·=·handlers_.​top()​;​35 ······​handlers_.​top()​-​>execute()​;​
31 ······handler.​execute()​;​
32 ······​handlers_.​pop()​;​36 ······​handlers_.​pop()​;​
33 ····​}37 ····​}
34 ··​}38 ··​}
35 39
36 ··​class·​executor40 ··​class·​executor
37 ··​{41 ··​{
38 ··​public:​42 ··​public:​
39 ····​executor(handler_prio​rity_queue&·​q,​·​int·​p)​43 ····​executor(handler_prio​rity_queue&·​q,​·​int·​p)​
40 ······​:​·​context_(q)​,​·​priority_(p)​44 ······​:​·​context_(q)​,​·​priority_(p)​
41 ····​{45 ····​{
42 ····​}46 ····​}
43 47
44 ····​handler_priority_queu​e&·​context()​·​const48 ····​handler_priority_queu​e&·​context()​·​const·noexcept
45 ····​{49 ····​{
46 ······​return·​context_;​50 ······​return·​context_;​
47 ····​}51 ····​}
48 52
49 ····​template·​<typename·​Function,​·​typename·​Allocator>53 ····​template·​<typename·​Function,​·​typename·​Allocator>
50 ····​void·​dispatch(const·Function&·​f,​·​const·​Allocator&)​·​const54 ····​void·​dispatch(Function·​f,​·​const·​Allocator&)​·​const
51 ····​{55 ····​{
52 ······​context_.​add(priority_,​·​f)​;​56 ······​context_.​add(priority_,​·std:​:​move(f)​)​;​
53 ····​}57 ····​}
54 58
55 ····​template·​<typename·​Function,​·​typename·​Allocator>59 ····​template·​<typename·​Function,​·​typename·​Allocator>
56 ····​void·​post(const·Function&·​f,​·​const·​Allocator&)​·​const60 ····​void·​post(Function·​f,​·​const·​Allocator&)​·​const
57 ····​{61 ····​{
58 ······​context_.​add(priority_,​·​f)​;​62 ······​context_.​add(priority_,​·std:​:​move(f)​)​;​
59 ····​}63 ····​}
60 64
61 ····​template·​<typename·​Function,​·​typename·​Allocator>65 ····​template·​<typename·​Function,​·​typename·​Allocator>
62 ····​void·​defer(const·Function&·​f,​·​const·​Allocator&)​·​const66 ····​void·​defer(Function·​f,​·​const·​Allocator&)​·​const
63 ····​{67 ····​{
64 ······​context_.​add(priority_,​·​f)​;​68 ······​context_.​add(priority_,​·std:​:​move(f)​)​;​
65 ····​}69 ····​}
66 70
67 ····​void·​on_work_started()​·​const·​{}71 ····​void·​on_work_started()​·​const·noexcept·​{}
68 ····​void·​on_work_finished()​·​const·​{}72 ····​void·​on_work_finished()​·​const·noexcept·​{}
69 73
70 ····​bool·​operator==(const·​executor&·​other)​·​const74 ····​bool·​operator==(const·​executor&·​other)​·​const·noexcept
71 ····​{75 ····​{
72 ······​return·​&context_·​==·​&other.​context_·​&&·​priority_·​==·​other.​priority_;​76 ······​return·​&context_·​==·​&other.​context_·​&&·​priority_·​==·​other.​priority_;​
73 ····​}77 ····​}
74 78
75 ····​bool·​operator!=(const·​executor&·​other)​·​const79 ····​bool·​operator!=(const·​executor&·​other)​·​const·noexcept
76 ····​{80 ····​{
77 ······​return·​!operator==(other)​;​81 ······​return·​!operator==(other)​;​
78 ····​}82 ····​}
79 83
80 ··​private:​84 ··​private:​
81 ····​handler_priority_queu​e&·​context_;​85 ····​handler_priority_queu​e&·​context_;​
82 ····​int·​priority_;​86 ····​int·​priority_;​
83 ··​};​87 ··​};​
84 88
85 ··​template·​<typename·​Handler>89 ··​template·​<typename·​Handler>
86 ··​asio:​:​executor_binder<Handl​er,​·​executor>90 ··​asio:​:​executor_binder<Handl​er,​·​executor>
87 ··​wrap(int·​priority,​·​Handler·​handler)​91 ··​wrap(int·​priority,​·​Handler·​handler)​
88 ··​{92 ··​{
89 ····​return·​asio:​:​bind_executor(executo​r(*this,​·priority)​,​·handler)​;​93 ····​return·​asio:​:​bind_executor(
94 ········​executor(*this,​·​priority)​,​·​std:​:​move(handler)​)​;​
90 ··​}95 ··​}
91 96
92 private:​97 private:​
93 ··​class·​queued_handler98 ··​class·​queued_handler_base
94 ··​{99 ··​{
95 ··​public:​100 ··​public:​
96 ····​queued_handler(int·p,​·boost:​:​function<void()​>·f)​101 ····​queued_handler_base(i​nt·p)​
97 ······​:​·​priority_(p)​,​·function_(f)​102 ······​:​·​priority_(p)​
98 ····​{103 ····​{
99 ····​}104 ····​}
100 105
101 ····​void·​execute()​106 ····​virtual·~queued_handler_base(​)​
102 ····​{107 ····​{
103 ······​function_()​;​
104 ····​}108 ····​}
105 109
106 ····friend·bool·operator<(const·queued_handler&·a,​110 ····virtual·void·​execute()​·=·0;​
107 ········const·queued_handler&·b)​111
112 ····​friend·​bool·​operator<(const·​std:​:​unique_ptr<queued_han​dler_base>&·​a,​
113 ········​const·​std:​:​unique_ptr<queued_han​dler_base>&·​b)​·​noexcept
108 ····​{114 ····​{
109 ······​return·​a.​priority_·​<·​b.​priority_;​115 ······​return·​a-​>priority_·​<·​b-​>priority_;​
110 ····​}116 ····​}
111 117
112 ··​private:​118 ··​private:​
113 ····​int·​priority_;​119 ····​int·​priority_;​
114 ····​boost:​:​function<void()​>·​function_;​
115 ··​};​120 ··​};​
116 121
117 ··std:​:​priority_queue<queued​_handler>·handlers_;​122 ··​template·<typename·Function>
123 ··​class·​queued_handler·​:​·​public·​queued_handler_base
124 ··​{
125 ··​public:​
126 ····​queued_handler(int·​p,​·​Function·​f)​
127 ······​:​·​queued_handler_base(p​)​,​·​function_(std:​:​move(f)​)​
128 ····​{
129 ····​}
130
131 ····​void·​execute()​·​override
132 ····​{
133 ······​function_()​;​
134 ····​}
135
136 ··​private:​
137 ····​Function·​function_;​
138 ··​};​
139
140 ··​std:​:​priority_queue<std:​:​unique_ptr<queued_han​dler_base>>·​handlers_;​
118 };​141 };​
119 142
120 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​143 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
121 144
122 void·​high_priority_handler​(const·​asio:​:​error_code&·​/​*ec*/​)​145 void·​high_priority_handler​(const·​asio:​:​error_code&·​/​*ec*/​,​
146 ····​tcp:​:​socket·​/​*socket*/​)​
123 {147 {
124 ··​std:​:​cout·​<<·​"High·​priority·​handler\n";​148 ··​std:​:​cout·​<<·​"High·​priority·​handler\n";​
125 }149 }
126 150
127 void·​middle_priority_handl​er(const·​asio:​:​error_code&·​/​*ec*/​)​151 void·​middle_priority_handl​er(const·​asio:​:​error_code&·​/​*ec*/​)​
128 {152 {
129 ··​std:​:​cout·​<<·​"Middle·​priority·​handler\n";​153 ··​std:​:​cout·​<<·​"Middle·​priority·​handler\n";​
130 }154 }
131 155
132 void·​low_priority_handler(​)​156 struct·​low_priority_handler
133 {157 {
134 ··std:​:​cout·<<·"Low·priority·handler\n";​158 ··/​/​·Make·the·handler·a·move-​only·type.​
135 }159 ··low_priority_handler(​)​·=·default;​
160 ··​low_priority_handler(​const·​low_priority_handler&​)​·​=·​delete;​
161 ··​low_priority_handler(​low_priority_handler&​&)​·​=·​default;​
162
163 ··​void·​operator()​()​
164 ··​{
165 ····​std:​:​cout·​<<·​"Low·​priority·​handler\n";​
166 ··​}
167 };​
136 168
137 int·​main()​169 int·​main()​
138 {170 {
139 ··​asio:​:​io_context·​io_context;​171 ··​asio:​:​io_context·​io_context;​
140 172
141 ··​handler_priority_queu​e·​pri_queue;​173 ··​handler_priority_queu​e·​pri_queue;​
142 174
143 ··​/​/​·​Post·​a·​completion·​handler·​to·​be·​run·​immediately.​175 ··​/​/​·​Post·​a·​completion·​handler·​to·​be·​run·​immediately.​
144 ··​asio:​:​post(io_context,​·​pri_queue.​wrap(0,​·​low_priority_handler)​)​;​176 ··​asio:​:​post(io_context,​·​pri_queue.​wrap(0,​·​low_priority_handler(​)​)​)​;​
145 177
146 ··​/​/​·​Start·​an·​asynchronous·​accept·​that·​will·​complete·​immediately.​178 ··​/​/​·​Start·​an·​asynchronous·​accept·​that·​will·​complete·​immediately.​
147 ··​tcp:​:​endpoint·​endpoint(asio:​:​ip:​:​address_v4:​:​loopback()​,​·​0)​;​179 ··​tcp:​:​endpoint·​endpoint(asio:​:​ip:​:​address_v4:​:​loopback()​,​·​0)​;​
148 ··​tcp:​:​acceptor·​acceptor(io_context,​·​endpoint)​;​180 ··​tcp:​:​acceptor·​acceptor(io_context,​·​endpoint)​;​
149 ··​tcp:​:​socket·​server_socket(io_cont​ext)​;​181 ··​tcp:​:​socket·​server_socket(io_cont​ext)​;​
150 ··​acceptor.​async_accept(server_s​ocket,​182 ··​acceptor.​async_accept(pri_queu​e.​wrap(100,​·high_priority_handler​)​)​;​
151 ······pri_queue.​wrap(100,​·high_priority_handler​)​)​;​
152 ··​tcp:​:​socket·​client_socket(io_cont​ext)​;​183 ··​tcp:​:​socket·​client_socket(io_cont​ext)​;​
153 ··​client_socket.​connect(acceptor.​local_endpoint()​)​;​184 ··​client_socket.​connect(acceptor.​local_endpoint()​)​;​
154 185
155 ··​/​/​·​Set·​a·​deadline·​timer·​to·​expire·​immediately.​186 ··​/​/​·​Set·​a·​deadline·​timer·​to·​expire·​immediately.​
156 ··​asio:​:​steady_timer·​timer(io_context)​;​187 ··​asio:​:​steady_timer·​timer(io_context)​;​
157 ··​timer.​expires_at(asio:​:​steady_timer:​:​time_point:​:​min()​)​;​188 ··​timer.​expires_at(asio:​:​steady_timer:​:​clock_type:​:​time_point:​:​min()​)​;​
158 ··​timer.​async_wait(pri_queue.​wrap(42,​·​middle_priority_handl​er)​)​;​189 ··​timer.​async_wait(pri_queue.​wrap(42,​·​middle_priority_handl​er)​)​;​
159 190
160 ··​while·​(io_context.​run_one()​)​191 ··​while·​(io_context.​run_one()​)​
161 ··​{192 ··​{
162 ····​/​/​·​The·​custom·​invocation·​hook·​adds·​the·​handlers·​to·​the·​priority·​queue193 ····​/​/​·​The·​custom·​invocation·​hook·​adds·​the·​handlers·​to·​the·​priority·​queue
163 ····​/​/​·​rather·​than·​executing·​them·​from·​within·​the·​poll_one()​·​call.​194 ····​/​/​·​rather·​than·​executing·​them·​from·​within·​the·​poll_one()​·​call.​
164 ····​while·​(io_context.​poll_one()​)​195 ····​while·​(io_context.​poll_one()​)​
165 ······​;​196 ······​;​
166 197
167 ····​pri_queue.​execute_all()​;​198 ····​pri_queue.​execute_all()​;​
168 ··​}199 ··​}
169 200
170 ··​return·​0;​201 ··​return·​0;​
171 }202 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/iostreams/http_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/iostreams/http_client.cpp.html deleted file mode 100644 index d47326a..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/iostreams/http_client.cpp.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - HTML Diff iostreams/http_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​iostreams/​http_client.​cppsrc/​examples/​cpp11/​iostreams/​http_client.​cpp
1 /​/​1 /​/​
2 /​/​·​http_client.​cpp2 /​/​·​http_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<iostream>11 #include·​<iostream>
12 #include·​<istream>12 #include·​<istream>
13 #include·​<ostream>13 #include·​<ostream>
14 #include·​<string>14 #include·​<string>
15 #include·​<asio/​ip/​tcp.​hpp>15 #include·​<asio/​ip/​tcp.​hpp>
16 16
17 using·​asio:​:​ip:​:​tcp;​17 using·​asio:​:​ip:​:​tcp;​
18 18
19 int·​main(int·​argc,​·​char*·​argv[])​19 int·​main(int·​argc,​·​char*·​argv[])​
20 {20 {
21 ··​try21 ··​try
22 ··​{22 ··​{
23 ····​if·​(argc·​!=·​3)​23 ····​if·​(argc·​!=·​3)​
24 ····​{24 ····​{
25 ······​std:​:​cout·​<<·​"Usage:​·​http_client·​<server>·​<path>\n";​25 ······​std:​:​cout·​<<·​"Usage:​·​http_client·​<server>·​<path>\n";​
26 ······​std:​:​cout·​<<·​"Example:​\n";​26 ······​std:​:​cout·​<<·​"Example:​\n";​
27 ······​std:​:​cout·​<<·​"··​http_client·​www.​boost.​org·​/​LICENSE_1_0.​txt\n";​27 ······​std:​:​cout·​<<·​"··​http_client·​www.​boost.​org·​/​LICENSE_1_0.​txt\n";​
28 ······​return·​1;​28 ······​return·​1;​
29 ····​}29 ····​}
30 30
31 ····​asio:​:​ip:​:​tcp:​:​iostream·​s;​31 ····​asio:​:​ip:​:​tcp:​:​iostream·​s;​
32 32
33 ····​/​/​·​The·​entire·​sequence·​of·​I/​O·​operations·​must·​complete·​within·​60·​seconds.​33 ····​/​/​·​The·​entire·​sequence·​of·​I/​O·​operations·​must·​complete·​within·​60·​seconds.​
34 ····​/​/​·​If·​an·​expiry·​occurs,​·​the·​socket·​is·​automatically·​closed·​and·​the·​stream34 ····​/​/​·​If·​an·​expiry·​occurs,​·​the·​socket·​is·​automatically·​closed·​and·​the·​stream
35 ····​/​/​·​becomes·​bad.​35 ····​/​/​·​becomes·​bad.​
36 ····​s.​expires_after(asio:​:​chrono:​:​seconds(60)​)​;​36 ····​s.​expires_after(std:​:​chrono:​:​seconds(60)​)​;​
37 37
38 ····​/​/​·​Establish·​a·​connection·​to·​the·​server.​38 ····​/​/​·​Establish·​a·​connection·​to·​the·​server.​
39 ····​s.​connect(argv[1],​·​"http")​;​39 ····​s.​connect(argv[1],​·​"http")​;​
40 ····​if·​(!s)​40 ····​if·​(!s)​
41 ····​{41 ····​{
42 ······​std:​:​cout·​<<·​"Unable·​to·​connect:​·​"·​<<·​s.​error()​.​message()​·​<<·​"\n";​42 ······​std:​:​cout·​<<·​"Unable·​to·​connect:​·​"·​<<·​s.​error()​.​message()​·​<<·​"\n";​
43 ······​return·​1;​43 ······​return·​1;​
44 ····​}44 ····​}
45 45
46 ····​/​/​·​Send·​the·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that·​the46 ····​/​/​·​Send·​the·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that·​the
47 ····​/​/​·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This·​will47 ····​/​/​·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This·​will
48 ····​/​/​·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​content.​48 ····​/​/​·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​content.​
49 ····​s·​<<·​"GET·​"·​<<·​argv[2]·​<<·​"·​HTTP/​1.​0\r\n";​49 ····​s·​<<·​"GET·​"·​<<·​argv[2]·​<<·​"·​HTTP/​1.​0\r\n";​
50 ····​s·​<<·​"Host:​·​"·​<<·​argv[1]·​<<·​"\r\n";​50 ····​s·​<<·​"Host:​·​"·​<<·​argv[1]·​<<·​"\r\n";​
51 ····​s·​<<·​"Accept:​·​*/​*\r\n";​51 ····​s·​<<·​"Accept:​·​*/​*\r\n";​
52 ····​s·​<<·​"Connection:​·​close\r\n\r\n";​52 ····​s·​<<·​"Connection:​·​close\r\n\r\n";​
53 53
54 ····​/​/​·​By·​default,​·​the·​stream·​is·​tied·​with·​itself.​·​This·​means·​that·​the·​stream54 ····​/​/​·​By·​default,​·​the·​stream·​is·​tied·​with·​itself.​·​This·​means·​that·​the·​stream
55 ····​/​/​·​automatically·​flush·​the·​buffered·​output·​before·​attempting·​a·​read.​·​It·​is55 ····​/​/​·​automatically·​flush·​the·​buffered·​output·​before·​attempting·​a·​read.​·​It·​is
56 ····​/​/​·​not·​necessary·​not·​explicitly·​flush·​the·​stream·​at·​this·​point.​56 ····​/​/​·​not·​necessary·​not·​explicitly·​flush·​the·​stream·​at·​this·​point.​
57 57
58 ····​/​/​·​Check·​that·​response·​is·​OK.​58 ····​/​/​·​Check·​that·​response·​is·​OK.​
59 ····​std:​:​string·​http_version;​59 ····​std:​:​string·​http_version;​
60 ····​s·​>>·​http_version;​60 ····​s·​>>·​http_version;​
61 ····​unsigned·​int·​status_code;​61 ····​unsigned·​int·​status_code;​
62 ····​s·​>>·​status_code;​62 ····​s·​>>·​status_code;​
63 ····​std:​:​string·​status_message;​63 ····​std:​:​string·​status_message;​
64 ····​std:​:​getline(s,​·​status_message)​;​64 ····​std:​:​getline(s,​·​status_message)​;​
65 ····​if·​(!s·​||·​http_version.​substr(0,​·​5)​·​!=·​"HTTP/​")​65 ····​if·​(!s·​||·​http_version.​substr(0,​·​5)​·​!=·​"HTTP/​")​
66 ····​{66 ····​{
67 ······​std:​:​cout·​<<·​"Invalid·​response\n";​67 ······​std:​:​cout·​<<·​"Invalid·​response\n";​
68 ······​return·​1;​68 ······​return·​1;​
69 ····​}69 ····​}
70 ····​if·​(status_code·​!=·​200)​70 ····​if·​(status_code·​!=·​200)​
71 ····​{71 ····​{
72 ······​std:​:​cout·​<<·​"Response·​returned·​with·​status·​code·​"·​<<·​status_code·​<<·​"\n";​72 ······​std:​:​cout·​<<·​"Response·​returned·​with·​status·​code·​"·​<<·​status_code·​<<·​"\n";​
73 ······​return·​1;​73 ······​return·​1;​
74 ····​}74 ····​}
75 75
76 ····​/​/​·​Process·​the·​response·​headers,​·​which·​are·​terminated·​by·​a·​blank·​line.​76 ····​/​/​·​Process·​the·​response·​headers,​·​which·​are·​terminated·​by·​a·​blank·​line.​
77 ····​std:​:​string·​header;​77 ····​std:​:​string·​header;​
78 ····​while·​(std:​:​getline(s,​·​header)​·​&&·​header·​!=·​"\r")​78 ····​while·​(std:​:​getline(s,​·​header)​·​&&·​header·​!=·​"\r")​
79 ······​std:​:​cout·​<<·​header·​<<·​"\n";​79 ······​std:​:​cout·​<<·​header·​<<·​"\n";​
80 ····​std:​:​cout·​<<·​"\n";​80 ····​std:​:​cout·​<<·​"\n";​
81 81
82 ····​/​/​·​Write·​the·​remaining·​data·​to·​output.​82 ····​/​/​·​Write·​the·​remaining·​data·​to·​output.​
83 ····​std:​:​cout·​<<·​s.​rdbuf()​;​83 ····​std:​:​cout·​<<·​s.​rdbuf()​;​
84 ··​}84 ··​}
85 ··​catch·​(std:​:​exception&·​e)​85 ··​catch·​(std:​:​exception&·​e)​
86 ··​{86 ··​{
87 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​87 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
88 ··​}88 ··​}
89 89
90 ··​return·​0;​90 ··​return·​0;​
91 }91 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/local/connect_pair.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/local/connect_pair.cpp.html deleted file mode 100644 index 020cb05..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/local/connect_pair.cpp.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - HTML Diff local/connect_pair.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​local/​connect_pair.​cppsrc/​examples/​cpp11/​local/​connect_pair.​cpp
1 /​/​1 /​/​
2 /​/​·​connect_pair.​cpp2 /​/​·​connect_pair.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<iostream>12 #include·​<iostream>
12 #include·​<string>13 #include·​<string>
13 #include·​<cctype>14 #include·​<cctype>
14 #include·​<asio.​hpp>15 #include·​<asio.​hpp>
15 #include·​<boost/​array.​hpp>
16 #include·​<boost/​bind.​hpp>
17 16
18 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​17 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
19 18
20 using·​asio:​:​local:​:​stream_protocol;​19 using·​asio:​:​local:​:​stream_protocol;​
21 20
22 class·​uppercase_filter21 class·​uppercase_filter
23 {22 {
24 public:​23 public:​
25 ··​uppercase_filter(asio​:​:​io_context&·io_context)​24 ··​uppercase_filter(stre​am_protocol:​:​socket·sock)​
26 ····​:​·​socket_(io_context)​25 ····​:​·​socket_(std:​:​move(sock)​)​
27 ··​{26 ··​{
28 ··}27 ····read()​;​
29
30 ··stream_protocol:​:​socket&·socket()​
31 ··{
32 ····return·socket_;​
33 ··}
34
35 ··void·start()​
36 ··{
37 ····/​/​·Wait·for·request.​
38 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​
39 ········boost:​:​bind(&uppercase_filte​r:​:​handle_read,​
40 ··········this,​·asio:​:​placeholders:​:​error,​
41 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
42 ··​}28 ··​}
43 29
44 private:​30 private:​
45 ··​void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·size)​31 ··​void·​read()​
46 ··​{32 ··​{
47 ····​if·(!ec)​33 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​
48 ····{34 ········[this](std:​:​error_code·ec,​·std:​:​size_t·size)​
49 ······/​/​·Compute·result.​35 ········{
50 ······for·(std:​:​size_t·i·=·0;​·​i·<·size;​·++i)​36 ··········​if·(!ec)​
51 ········data_[i]·=·std:​:​toupper(data_[i])​;​37 ··········{
52 38 ············/​/​·Compute·result.​
53 ······/​/​·Send·result.​39 ············for·(std:​:​size_t·i·=·0;​·i·<·size;​·++i)​
54 ······asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·size)​,​40 ··············data_[i]·=·​std:​:​toupper(data_[i])​;​
55 ··········boost:​:​bind(&uppercase_filte​r:​:​handle_write,​41
56 ············this,​·asio:​:​placeholders:​:​error)​)​;​42 ············/​/​·Send·result.​
57 ····}43 ············write(size)​;​
58 ····else44 ··········}
59 ····{45 ··········else
60 ······throw·asio:​:​system_error(ec)​;​46 ··········{
61 ····}47 ············throw·asio:​:​system_error(ec)​;​
62 ··​}48 ··········​}
63 49 ········})​;​
64 ··void·handle_write(const·asio:​:​error_code&·ec)​50 ··}
65 ··{51
66 ····if·(!ec)​52 ··void·write(std:​:​size_t·size)​
67 ····​{53 ··​{
68 ······/​/​·Wait·for·request.​54 ····asio:​:​async_write(socket_,​·asio:​:​buffer(data_,​·size)​,​
69 ······socket_.​async_read_some(asio:​:​buffer(data_)​,​55 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*size*/​)​
70 ··········boost:​:​bind(&uppercase_filte​r:​:​handle_read,​56 ········{
71 ············this,​·asio:​:​placeholders:​:​error,​57 ··········​if·(!ec)​
72 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​58 ··········{
73 ····}59 ············/​/​·Wait·for·request.​
74 ····​else60 ············read()​;​
75 ····{61 ··········}
76 ······throw·asio:​:​system_error(ec)​;​62 ··········else
77 ····}63 ··········{
64 ············​throw·​asio:​:​system_error(ec)​;​
65 ··········​}
66 ········​})​;​
78 ··​}67 ··​}
79 68
80 ··​stream_protocol:​:​socket·​socket_;​69 ··​stream_protocol:​:​socket·​socket_;​
81 ··boost:​:​array<char,​·​512>·​data_;​70 ··​std:​:​array<char,​·​512>·​data_;​
82 };​71 };​
83 72
84 void·​run(asio:​:​io_context*·​io_context)​
85 {
86 ··​try
87 ··​{
88 ····​io_context-​>run()​;​
89 ··​}
90 ··​catch·​(std:​:​exception&·​e)​
91 ··​{
92 ····​std:​:​cerr·​<<·​"Exception·​in·​thread:​·​"·​<<·​e.​what()​·​<<·​"\n";​
93 ····​std:​:​exit(1)​;​
94 ··​}
95 }
96
97 int·​main()​73 int·​main()​
98 {74 {
99 ··​try75 ··​try
100 ··​{76 ··​{
101 ····​asio:​:​io_context·​io_context;​77 ····​asio:​:​io_context·​io_context;​
102 78
103 ····​/​/​·​Create·filter·​and·establish·a·connection·to·it.​79 ····​/​/​·​Create·a·connected·pair·and·pass·one·end·to·a·filter.​
104 ····uppercase_filter·filter(io_context)​;​
105 ····​stream_protocol:​:​socket·​socket(io_context)​;​80 ····​stream_protocol:​:​socket·​socket(io_context)​;​
106 ····asio:​:​local:​:​connect_pair(socket,​·​filter.​socket()​)​;​81 ····​stream_protocol:​:​socket·​filter_socket(io_cont​ext)​;​
107 ····​filter.​start()​;​82 ····asio:​:​local:​:​connect_pair(socket,​·​filter_socket)​;​
83 ····​uppercase_filter·​filter(std:​:​move(filter_socket)​)​;​
108 84
109 ····​/​/​·​The·​io_context·​runs·​in·​a·​background·​thread·​to·​perform·​filtering.​85 ····​/​/​·​The·​io_context·​runs·​in·​a·​background·​thread·​to·​perform·​filtering.​
110 ····​asio:​:​thread·​thread(boost:​:​bind(run,​·&io_context)​)​;​86 ····​asio:​:​thread·​thread(
87 ········​[&io_context]()​
88 ········​{
89 ··········​try
90 ··········​{
91 ············​io_context.​run()​;​
92 ··········​}
93 ··········​catch·​(std:​:​exception&·​e)​
94 ··········​{
95 ············​std:​:​cerr·​<<·​"Exception·​in·​thread:​·​"·​<<·​e.​what()​·​<<·​"\n";​
96 ············​std:​:​exit(1)​;​
97 ··········​}
98 ········​})​;​
111 99
112 ····​for·​(;​;​)​100 ····​for·​(;​;​)​
113 ····​{101 ····​{
114 ······​/​/​·​Collect·​request·​from·​user.​102 ······​/​/​·​Collect·​request·​from·​user.​
115 ······​std:​:​cout·​<<·​"Enter·​a·​string:​·​";​103 ······​std:​:​cout·​<<·​"Enter·​a·​string:​·​";​
116 ······​std:​:​string·​request;​104 ······​std:​:​string·​request;​
117 ······​std:​:​getline(std:​:​cin,​·​request)​;​105 ······​std:​:​getline(std:​:​cin,​·​request)​;​
118 106
119 ······​/​/​·​Send·​request·​to·​filter.​107 ······​/​/​·​Send·​request·​to·​filter.​
120 ······​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​108 ······​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​
121 109
122 ······​/​/​·​Wait·​for·​reply·​from·​filter.​110 ······​/​/​·​Wait·​for·​reply·​from·​filter.​
123 ······​std:​:​vector<char>·​reply(request.​size()​)​;​111 ······​std:​:​vector<char>·​reply(request.​size()​)​;​
124 ······​asio:​:​read(socket,​·​asio:​:​buffer(reply)​)​;​112 ······​asio:​:​read(socket,​·​asio:​:​buffer(reply)​)​;​
125 113
126 ······​/​/​·​Show·​reply·​to·​user.​114 ······​/​/​·​Show·​reply·​to·​user.​
127 ······​std:​:​cout·​<<·​"Result:​·​";​115 ······​std:​:​cout·​<<·​"Result:​·​";​
128 ······​std:​:​cout.​write(&reply[0],​·​request.​size()​)​;​116 ······​std:​:​cout.​write(&reply[0],​·​request.​size()​)​;​
129 ······​std:​:​cout·​<<·​std:​:​endl;​117 ······​std:​:​cout·​<<·​std:​:​endl;​
130 ····​}118 ····​}
131 ··​}119 ··​}
132 ··​catch·​(std:​:​exception&·​e)​120 ··​catch·​(std:​:​exception&·​e)​
133 ··​{121 ··​{
134 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​122 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
135 ····​std:​:​exit(1)​;​123 ····​std:​:​exit(1)​;​
136 ··​}124 ··​}
137 }125 }
138 126
139 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​127 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
140 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​128 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​
141 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​129 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/local/iostream_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/local/iostream_client.cpp.html deleted file mode 100644 index add88a7..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/local/iostream_client.cpp.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - HTML Diff local/iostream_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​local/​iostream_client.​cppsrc/​examples/​cpp11/​local/​iostream_client.​cpp
1 /​/​1 /​/​
2 /​/​·​stream_client.​cpp2 /​/​·​stream_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstring>11 #include·​<cstring>
12 #include·​<iostream>12 #include·​<iostream>
13 #include·​"asio.​hpp"13 #include·​"asio.​hpp"
14 14
15 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​15 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
16 16
17 using·​asio:​:​local:​:​stream_protocol;​17 using·​asio:​:​local:​:​stream_protocol;​
18 18
19 enum·{·​max_length·​=·​1024·};​19 constexpr·std:​:​size_t·​max_length·​=·​1024;​
20 20
21 int·​main(int·​argc,​·​char*·​argv[])​21 int·​main(int·​argc,​·​char*·​argv[])​
22 {22 {
23 ··​try23 ··​try
24 ··​{24 ··​{
25 ····​if·​(argc·​!=·​2)​25 ····​if·​(argc·​!=·​2)​
26 ····​{26 ····​{
27 ······​std:​:​cerr·​<<·​"Usage:​·​iostream_client·​<file>\n";​27 ······​std:​:​cerr·​<<·​"Usage:​·​iostream_client·​<file>\n";​
28 ······​return·​1;​28 ······​return·​1;​
29 ····​}29 ····​}
30 30
31 ····​stream_protocol:​:​endpoint·​ep(argv[1])​;​31 ····​stream_protocol:​:​endpoint·​ep(argv[1])​;​
32 ····​stream_protocol:​:​iostream·​s(ep)​;​32 ····​stream_protocol:​:​iostream·​s(ep)​;​
33 ····​if·​(!s)​33 ····​if·​(!s)​
34 ····​{34 ····​{
35 ······​std:​:​cerr·​<<·​"Unable·​to·​connect:​·​"·​<<·​s.​error()​.​message()​·​<<·​std:​:​endl;​35 ······​std:​:​cerr·​<<·​"Unable·​to·​connect:​·​"·​<<·​s.​error()​.​message()​·​<<·​std:​:​endl;​
36 ······​return·​1;​36 ······​return·​1;​
37 ····​}37 ····​}
38 38
39 ····​using·​namespace·​std;​·​/​/​·​For·​strlen.​
40 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​39 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
41 ····​char·​request[max_length];​40 ····​char·​request[max_length];​
42 ····​std:​:​cin.​getline(request,​·​max_length)​;​41 ····​std:​:​cin.​getline(request,​·​max_length)​;​
43 ····​size_t·​length·​=·​strlen(request)​;​42 ····​size_t·​length·​=·std:​:​strlen(request)​;​
44 ····​s·​<<·​request;​43 ····​s·​<<·​request;​
45 44
46 ····​char·​reply[max_length];​45 ····​char·​reply[max_length];​
47 ····​s.​read(reply,​·​length)​;​46 ····​s.​read(reply,​·​length)​;​
48 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​47 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​
49 ····​std:​:​cout.​write(reply,​·​length)​;​48 ····​std:​:​cout.​write(reply,​·​length)​;​
50 ····​std:​:​cout·​<<·​"\n";​49 ····​std:​:​cout·​<<·​"\n";​
51 ··​}50 ··​}
52 ··​catch·​(std:​:​exception&·​e)​51 ··​catch·​(std:​:​exception&·​e)​
53 ··​{52 ··​{
54 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​53 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
55 ··​}54 ··​}
56 55
57 ··​return·​0;​56 ··​return·​0;​
58 }57 }
59 58
60 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​59 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
61 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​60 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​
62 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​61 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/local/stream_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/local/stream_client.cpp.html deleted file mode 100644 index a517ebb..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/local/stream_client.cpp.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - HTML Diff local/stream_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​local/​stream_client.​cppsrc/​examples/​cpp11/​local/​stream_client.​cpp
1 /​/​1 /​/​
2 /​/​·​stream_client.​cpp2 /​/​·​stream_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<cstring>12 #include·​<cstring>
13 #include·​<iostream>13 #include·​<iostream>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 15
16 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​16 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
17 17
18 using·​asio:​:​local:​:​stream_protocol;​18 using·​asio:​:​local:​:​stream_protocol;​
19 19
20 enum·{·​max_length·​=·​1024·};​20 constexpr·std:​:​size_t·​max_length·​=·​1024;​
21 21
22 int·​main(int·​argc,​·​char*·​argv[])​22 int·​main(int·​argc,​·​char*·​argv[])​
23 {23 {
24 ··​try24 ··​try
25 ··​{25 ··​{
26 ····​if·​(argc·​!=·​2)​26 ····​if·​(argc·​!=·​2)​
27 ····​{27 ····​{
28 ······​std:​:​cerr·​<<·​"Usage:​·​stream_client·​<file>\n";​28 ······​std:​:​cerr·​<<·​"Usage:​·​stream_client·​<file>\n";​
29 ······​return·​1;​29 ······​return·​1;​
30 ····​}30 ····​}
31 31
32 ····​asio:​:​io_context·​io_context;​32 ····​asio:​:​io_context·​io_context;​
33 33
34 ····​stream_protocol:​:​socket·​s(io_context)​;​34 ····​stream_protocol:​:​socket·​s(io_context)​;​
35 ····​s.​connect(stream_protoc​ol:​:​endpoint(argv[1])​)​;​35 ····​s.​connect(stream_protoc​ol:​:​endpoint(argv[1])​)​;​
36 36
37 ····​using·​namespace·​std;​·​/​/​·​For·​strlen.​
38 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​37 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
39 ····​char·​request[max_length];​38 ····​char·​request[max_length];​
40 ····​std:​:​cin.​getline(request,​·​max_length)​;​39 ····​std:​:​cin.​getline(request,​·​max_length)​;​
41 ····​size_t·​request_length·​=·​strlen(request)​;​40 ····​size_t·​request_length·​=·std:​:​strlen(request)​;​
42 ····​asio:​:​write(s,​·​asio:​:​buffer(request,​·​request_length)​)​;​41 ····​asio:​:​write(s,​·​asio:​:​buffer(request,​·​request_length)​)​;​
43 42
44 ····​char·​reply[max_length];​43 ····​char·​reply[max_length];​
45 ····​size_t·​reply_length·​=·​asio:​:​read(s,​44 ····​size_t·​reply_length·​=·​asio:​:​read(s,​
46 ········​asio:​:​buffer(reply,​·​request_length)​)​;​45 ········​asio:​:​buffer(reply,​·​request_length)​)​;​
47 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​46 ····​std:​:​cout·​<<·​"Reply·​is:​·​";​
48 ····​std:​:​cout.​write(reply,​·​reply_length)​;​47 ····​std:​:​cout.​write(reply,​·​reply_length)​;​
49 ····​std:​:​cout·​<<·​"\n";​48 ····​std:​:​cout·​<<·​"\n";​
50 ··​}49 ··​}
51 ··​catch·​(std:​:​exception&·​e)​50 ··​catch·​(std:​:​exception&·​e)​
52 ··​{51 ··​{
53 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​52 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
54 ··​}53 ··​}
55 54
56 ··​return·​0;​55 ··​return·​0;​
57 }56 }
58 57
59 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​58 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
60 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​59 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​
61 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​60 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/local/stream_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/local/stream_server.cpp.html deleted file mode 100644 index 142e4e9..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/local/stream_server.cpp.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - HTML Diff local/stream_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​local/​stream_server.​cppsrc/​examples/​cpp11/​local/​stream_server.​cpp
1 /​/​1 /​/​
2 /​/​·​stream_server.​cpp2 /​/​·​stream_server.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<cstdio>12 #include·​<cstdio>
12 #include·​<iostream>13 #include·​<iostream>
13 #include·​<boost/​array.​hpp>14 #include·​<memory>
14 #include·<boost/​bind.​hpp>
15 #include·<boost/​enable_shared_from_th​is.​hpp>
16 #include·<boost/​shared_ptr.​hpp>
17 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
18 16
19 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​17 #if·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
20 18
21 using·​asio:​:​local:​:​stream_protocol;​19 using·​asio:​:​local:​:​stream_protocol;​
22 20
23 class·​session21 class·​session
24 ··​:​·​public·boost:​:​enable_shared_from_th​is<session>22 ··​:​·​public·​std:​:​enable_shared_from_th​is<session>
25 {23 {
26 public:​24 public:​
27 ··​session(asio:​:​io_context&·io_context)​25 ··​session(stream_protoc​ol:​:​socket·sock)​
28 ····​:​·​socket_(io_context)​26 ····​:​·​socket_(std:​:​move(sock)​)​
29 ··​{27 ··​{
30 ··​}28 ··​}
31 29
32 ··​stream_protocol:​:​socket&·​socket()​
33 ··​{
34 ····​return·​socket_;​
35 ··​}
36
37 ··​void·​start()​30 ··​void·​start()​
38 ··​{31 ··​{
39 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​32 ····do_read()​;​
40 ········boost:​:​bind(&session:​:​handle_read,​
41 ··········shared_from_this()​,​
42 ··········asio:​:​placeholders:​:​error,​
43 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
44 ··}
45
46 ··void·handle_read(const·asio:​:​error_code&·error,​
47 ······size_t·bytes_transferred)​
48 ··{
49 ····if·(!error)​
50 ····{
51 ······asio:​:​async_write(socket_,​
52 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​
53 ··········boost:​:​bind(&session:​:​handle_write,​
54 ············shared_from_this()​,​
55 ············asio:​:​placeholders:​:​error)​)​;​
56 ····}
57 ··​}33 ··​}
58 34
59 ··void·handle_write(const·asio:​:​error_code&·error)​35 private:​
36 ··​void·​do_read()​
60 ··​{37 ··​{
61 ····if·​(!error)​38 ····auto·self(shared_from_this​()​)​;​
62 ····{39 ····socket_.​async_read_some(asio:​:​buffer(data_)​,​
63 ······​socket_.​async_read_some(asio:​:​buffer(data_)​,​40 ········[this,​·self](std:​:​error_code·ec,​·std:​:​size_t·length)​
64 ··········boost:​:​bind(&session:​:​handle_read,​41 ········{
65 ············shared_from_this()​,​42 ··········if·(!ec)​
66 ············asio:​:​placeholders:​:​error,​43 ············do_write(length)​;​
67 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​44 ········})​;​
68 ····​}45 ··​}
46
47 ··​void·​do_write(std:​:​size_t·​length)​
48 ··​{
49 ····​auto·​self(shared_from_this​()​)​;​
50 ····​asio:​:​async_write(socket_,​
51 ········​asio:​:​buffer(data_,​·​length)​,​
52 ········​[this,​·​self](std:​:​error_code·​ec,​·​std:​:​size_t·​/​*length*/​)​
53 ········​{
54 ··········​if·​(!ec)​
55 ············​do_read()​;​
56 ········​})​;​
69 ··​}57 ··​}
70 58
71 private:​
72 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​59 ··​/​/​·​The·​socket·​used·​to·​communicate·​with·​the·​client.​
73 ··​stream_protocol:​:​socket·​socket_;​60 ··​stream_protocol:​:​socket·​socket_;​
74 61
75 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​62 ··​/​/​·​Buffer·​used·​to·​store·​data·​received·​from·​the·​client.​
76 ··boost:​:​array<char,​·​1024>·​data_;​63 ··​std:​:​array<char,​·​1024>·​data_;​
77 };​64 };​
78 65
79 typedef·​boost:​:​shared_ptr<session>·​session_ptr;​
80
81 class·​server66 class·​server
82 {67 {
83 public:​68 public:​
84 ··​server(asio:​:​io_context&·​io_context,​·​const·​std:​:​string&·​file)​69 ··​server(asio:​:​io_context&·​io_context,​·​const·​std:​:​string&·​file)​
85 ····​:​·​io_context_(io_contex​t)​,​70 ····​:​·acceptor_(io_context,​·stream_protocol:​:​endpoint(file)​)​
86 ······acceptor_(io_context,​·stream_protocol:​:​endpoint(file)​)​
87 ··​{71 ··​{
88 ····session_ptr·new_session(new·session(io_context_)​)​;​72 ····do_accept()​;​
89 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
90 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
91 ··········asio:​:​placeholders:​:​error)​)​;​
92 ··​}73 ··​}
93 74
94 ··void·handle_accept(session​_ptr·new_session,​75 private:​
95 ······const·asio:​:​error_code&·error)​76 ··void·do_accept()​
96 ··​{77 ··​{
97 ····if·(!error)​78 ····acceptor_.​async_accept(
98 ····{79 ········[this](std:​:​error_code·ec,​·stream_protocol:​:​socket·socket)​
99 ······new_session-​>start()​;​80 ········{
100 ····}81 ··········if·(!ec)​
82 ··········​{
83 ············​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>start()​;​
84 ··········​}
101 85
102 ····new_session.​reset(new·session(io_context_)​)​;​86 ··········do_accept()​;​
103 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​87 ········})​;​
104 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​
105 ··········asio:​:​placeholders:​:​error)​)​;​
106 ··​}88 ··​}
107 89
108 private:​
109 ··​asio:​:​io_context&·​io_context_;​
110 ··​stream_protocol:​:​acceptor·​acceptor_;​90 ··​stream_protocol:​:​acceptor·​acceptor_;​
111 };​91 };​
112 92
113 int·​main(int·​argc,​·​char*·​argv[])​93 int·​main(int·​argc,​·​char*·​argv[])​
114 {94 {
115 ··​try95 ··​try
116 ··​{96 ··​{
117 ····​if·​(argc·​!=·​2)​97 ····​if·​(argc·​!=·​2)​
118 ····​{98 ····​{
119 ······​std:​:​cerr·​<<·​"Usage:​·​stream_server·​<file>\n";​99 ······​std:​:​cerr·​<<·​"Usage:​·​stream_server·​<file>\n";​
120 ······​std:​:​cerr·​<<·​"***·​WARNING:​·​existing·​file·​is·​removed·​***\n";​100 ······​std:​:​cerr·​<<·​"***·​WARNING:​·​existing·​file·​is·​removed·​***\n";​
121 ······​return·​1;​101 ······​return·​1;​
122 ····​}102 ····​}
123 103
124 ····​asio:​:​io_context·​io_context;​104 ····​asio:​:​io_context·​io_context;​
125 105
126 ····​std:​:​remove(argv[1])​;​106 ····​std:​:​remove(argv[1])​;​
127 ····​server·​s(io_context,​·​argv[1])​;​107 ····​server·​s(io_context,​·​argv[1])​;​
128 108
129 ····​io_context.​run()​;​109 ····​io_context.​run()​;​
130 ··​}110 ··​}
131 ··​catch·​(std:​:​exception&·​e)​111 ··​catch·​(std:​:​exception&·​e)​
132 ··​{112 ··​{
133 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​113 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
134 ··​}114 ··​}
135 115
136 ··​return·​0;​116 ··​return·​0;​
137 }117 }
138 118
139 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​119 #else·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
140 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​120 #·​error·​Local·​sockets·​not·​available·​on·​this·​platform.​
141 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​121 #endif·​/​/​·​defined(ASIO_HAS_LOCA​L_SOCKETS)​
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/multicast/receiver.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/multicast/receiver.cpp.html deleted file mode 100644 index d967d13..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/multicast/receiver.cpp.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - HTML Diff multicast/receiver.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​multicast/​receiver.​cppsrc/​examples/​cpp11/​multicast/​receiver.​cpp
1 /​/​1 /​/​
2 /​/​·​receiver.​cpp2 /​/​·​receiver.​cpp
3 /​/​·​~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<iostream>12 #include·​<iostream>
12 #include·​<string>13 #include·​<string>
13 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
14 #include·​"boost/​bind.​hpp"
15 15
16 const·​short·​multicast_port·​=·​30001;​16 constexpr·​short·​multicast_port·​=·​30001;​
17 17
18 class·​receiver18 class·​receiver
19 {19 {
20 public:​20 public:​
21 ··​receiver(asio:​:​io_context&·​io_context,​21 ··​receiver(asio:​:​io_context&·​io_context,​
22 ······​const·​asio:​:​ip:​:​address&·​listen_address,​22 ······​const·​asio:​:​ip:​:​address&·​listen_address,​
23 ······​const·​asio:​:​ip:​:​address&·​multicast_address)​23 ······​const·​asio:​:​ip:​:​address&·​multicast_address)​
24 ····​:​·​socket_(io_context)​24 ····​:​·​socket_(io_context)​
25 ··​{25 ··​{
26 ····​/​/​·​Create·​the·​socket·​so·​that·​multiple·​may·​be·​bound·​to·​the·​same·​address.​26 ····​/​/​·​Create·​the·​socket·​so·​that·​multiple·​may·​be·​bound·​to·​the·​same·​address.​
27 ····​asio:​:​ip:​:​udp:​:​endpoint·​listen_endpoint(27 ····​asio:​:​ip:​:​udp:​:​endpoint·​listen_endpoint(
28 ········​listen_address,​·​multicast_port)​;​28 ········​listen_address,​·​multicast_port)​;​
29 ····​socket_.​open(listen_endpoint.​protocol()​)​;​29 ····​socket_.​open(listen_endpoint.​protocol()​)​;​
30 ····​socket_.​set_option(asio:​:​ip:​:​udp:​:​socket:​:​reuse_address(true)​)​;​30 ····​socket_.​set_option(asio:​:​ip:​:​udp:​:​socket:​:​reuse_address(true)​)​;​
31 ····​socket_.​bind(listen_endpoint)​;​31 ····​socket_.​bind(listen_endpoint)​;​
32 32
33 ····​/​/​·​Join·​the·​multicast·​group.​33 ····​/​/​·​Join·​the·​multicast·​group.​
34 ····​socket_.​set_option(34 ····​socket_.​set_option(
35 ········​asio:​:​ip:​:​multicast:​:​join_group(multicast_​address)​)​;​35 ········​asio:​:​ip:​:​multicast:​:​join_group(multicast_​address)​)​;​
36 36
37 ····socket_.​async_receive_from(37 ····do_receive()​;​
38 ········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​
39 ········boost:​:​bind(&receiver:​:​handle_receive_from,​·this,​
40 ··········asio:​:​placeholders:​:​error,​
41 ··········asio:​:​placeholders:​:​bytes_transferred)​)​;​
42 ··​}38 ··​}
43 39
44 ··void·handle_receive_from(c​onst·asio:​:​error_code&·error,​40 private:​
45 ······size_t·bytes_recvd)​41 ··void·do_receive()​
46 ··​{42 ··​{
47 ····if·(!error)​43 ····socket_.​async_receive_from(
48 ····{44 ········asio:​:​buffer(data_)​,​·sender_endpoint_,​
49 ······​std:​:​cout.​write(data_,​·bytes_recvd)​;​45 ········[this](std:​:​error_code·ec,​·std:​:​size_t·length)​
50 ······std:​:​cout·<<·std:​:​endl;​46 ········{
51 47 ··········if·(!ec)​
52 ······socket_.​async_receive_from(48 ··········{
53 ··········asio:​:​buffer(data_,​·max_length)​,​·sender_endpoint_,​49 ············std:​:​cout.​write(data_.​data()​,​·length)​;​
54 ··········boost:​:​bind(&receiver:​:​handle_receive_from,​·this,​50 ············std:​:​cout·<<·std:​:​endl;​
55 ············asio:​:​placeholders:​:​error,​51
56 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​52 ············​do_receive()​;​
57 ····​}53 ··········​}
54 ········​})​;​
58 ··​}55 ··​}
59 56
60 private:​
61 ··​asio:​:​ip:​:​udp:​:​socket·​socket_;​57 ··​asio:​:​ip:​:​udp:​:​socket·​socket_;​
62 ··​asio:​:​ip:​:​udp:​:​endpoint·​sender_endpoint_;​58 ··​asio:​:​ip:​:​udp:​:​endpoint·​sender_endpoint_;​
63 ··enum·{·max_length·=·​1024·};​59 ··std:​:​array<char,​·​1024>·data_;​
64 ··char·data_[max_length];​
65 };​60 };​
66 61
67 int·​main(int·​argc,​·​char*·​argv[])​62 int·​main(int·​argc,​·​char*·​argv[])​
68 {63 {
69 ··​try64 ··​try
70 ··​{65 ··​{
71 ····​if·​(argc·​!=·​3)​66 ····​if·​(argc·​!=·​3)​
72 ····​{67 ····​{
73 ······​std:​:​cerr·​<<·​"Usage:​·​receiver·​<listen_address>·​<multicast_address>\n​";​68 ······​std:​:​cerr·​<<·​"Usage:​·​receiver·​<listen_address>·​<multicast_address>\n​";​
74 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​69 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​
75 ······​std:​:​cerr·​<<·​"····​receiver·​0.​0.​0.​0·​239.​255.​0.​1\n";​70 ······​std:​:​cerr·​<<·​"····​receiver·​0.​0.​0.​0·​239.​255.​0.​1\n";​
76 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​71 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​
77 ······​std:​:​cerr·​<<·​"····​receiver·​0:​:​0·​ff31:​:​8000:​1234\n";​72 ······​std:​:​cerr·​<<·​"····​receiver·​0:​:​0·​ff31:​:​8000:​1234\n";​
78 ······​return·​1;​73 ······​return·​1;​
79 ····​}74 ····​}
80 75
81 ····​asio:​:​io_context·​io_context;​76 ····​asio:​:​io_context·​io_context;​
82 ····​receiver·​r(io_context,​77 ····​receiver·​r(io_context,​
83 ········​asio:​:​ip:​:​make_address(argv[1])​,​78 ········​asio:​:​ip:​:​make_address(argv[1])​,​
84 ········​asio:​:​ip:​:​make_address(argv[2])​)​;​79 ········​asio:​:​ip:​:​make_address(argv[2])​)​;​
85 ····​io_context.​run()​;​80 ····​io_context.​run()​;​
86 ··​}81 ··​}
87 ··​catch·​(std:​:​exception&·​e)​82 ··​catch·​(std:​:​exception&·​e)​
88 ··​{83 ··​{
89 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​84 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
90 ··​}85 ··​}
91 86
92 ··​return·​0;​87 ··​return·​0;​
93 }88 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/multicast/sender.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/multicast/sender.cpp.html deleted file mode 100644 index 390418e..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/multicast/sender.cpp.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - HTML Diff multicast/sender.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​multicast/​sender.​cppsrc/​examples/​cpp11/​multicast/​sender.​cpp
1 /​/​1 /​/​
2 /​/​·​sender.​cpp2 /​/​·​sender.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<iostream>11 #include·​<iostream>
12 #include·​<sstream>12 #include·​<sstream>
13 #include·​<string>13 #include·​<string>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 #include·​"boost/​bind.​hpp"
16 15
17 const·​short·​multicast_port·​=·​30001;​16 constexpr·​short·​multicast_port·​=·​30001;​
18 const·​int·​max_message_count·​=·​10;​17 constexpr·​int·​max_message_count·​=·​10;​
19 18
20 class·​sender19 class·​sender
21 {20 {
22 public:​21 public:​
23 ··​sender(asio:​:​io_context&·​io_context,​22 ··​sender(asio:​:​io_context&·​io_context,​
24 ······​const·​asio:​:​ip:​:​address&·​multicast_address)​23 ······​const·​asio:​:​ip:​:​address&·​multicast_address)​
25 ····​:​·​endpoint_(multicast_a​ddress,​·​multicast_port)​,​24 ····​:​·​endpoint_(multicast_a​ddress,​·​multicast_port)​,​
26 ······​socket_(io_context,​·​endpoint_.​protocol()​)​,​25 ······​socket_(io_context,​·​endpoint_.​protocol()​)​,​
27 ······​timer_(io_context)​,​26 ······​timer_(io_context)​,​
28 ······​message_count_(0)​27 ······​message_count_(0)​
29 ··​{28 ··​{
29 ····​do_send()​;​
30 ··​}
31
32 private:​
33 ··​void·​do_send()​
34 ··​{
30 ····​std:​:​ostringstream·​os;​35 ····​std:​:​ostringstream·​os;​
31 ····​os·​<<·​"Message·​"·​<<·​message_count_++;​36 ····​os·​<<·​"Message·​"·​<<·​message_count_++;​
32 ····​message_·​=·​os.​str()​;​37 ····​message_·​=·​os.​str()​;​
33 38
34 ····​socket_.​async_send_to(39 ····​socket_.​async_send_to(
35 ········​asio:​:​buffer(message_)​,​·​endpoint_,​40 ········​asio:​:​buffer(message_)​,​·​endpoint_,​
36 ········boost:​:​bind(&sender:​:​handle_send_to,​·this,​41 ········[this](std:​:​error_code·ec,​·std:​:​size_t·/​*length*/​)​
37 ··········asio:​:​placeholders:​:​error)​)​;​42 ········{
43 ··········​if·​(!ec·​&&·​message_count_·​<·​max_message_count)​
44 ············​do_timeout()​;​
45 ········​})​;​
38 ··​}46 ··​}
39 47
40 ··​void·handle_send_to(const·asio:​:​error_code&·error)​48 ··​void·​do_timeout()​
41 ··​{49 ··​{
42 ····if·(!error·&&·message_count_·<·max_message_count)​50 ····timer_.​expires_after(std:​:​chrono:​:​seconds(1)​)​;​
43 ····{51 ····timer_.​async_wait(
44 ······timer_.​expires_after(asio:​:​chrono:​:​seconds(1)​)​;​52 ········[this](std:​:​error_code·ec)​
45 ······timer_.​async_wait(53 ········{
46 ··········boost:​:​bind(&sender:​:​handle_timeout,​·this,​54 ··········​if·(!ec)​
47 ············asio:​:​placeholders:​:​error)​)​;​55 ············​do_send()​;​
48 ····​}56 ········​})​;​
49 ··}
50
51 ··void·handle_timeout(const·asio:​:​error_code&·error)​
52 ··{
53 ····if·(!error)​
54 ····{
55 ······std:​:​ostringstream·os;​
56 ······os·<<·"Message·"·<<·message_count_++;​
57 ······message_·=·os.​str()​;​
58
59 ······socket_.​async_send_to(
60 ··········asio:​:​buffer(message_)​,​·endpoint_,​
61 ··········boost:​:​bind(&sender:​:​handle_send_to,​·this,​
62 ············asio:​:​placeholders:​:​error)​)​;​
63 ····}
64 ··​}57 ··​}
65 58
66 private:​59 private:​
67 ··​asio:​:​ip:​:​udp:​:​endpoint·​endpoint_;​60 ··​asio:​:​ip:​:​udp:​:​endpoint·​endpoint_;​
68 ··​asio:​:​ip:​:​udp:​:​socket·​socket_;​61 ··​asio:​:​ip:​:​udp:​:​socket·​socket_;​
69 ··​asio:​:​steady_timer·​timer_;​62 ··​asio:​:​steady_timer·​timer_;​
70 ··​int·​message_count_;​63 ··​int·​message_count_;​
71 ··​std:​:​string·​message_;​64 ··​std:​:​string·​message_;​
72 };​65 };​
73 66
74 int·​main(int·​argc,​·​char*·​argv[])​67 int·​main(int·​argc,​·​char*·​argv[])​
75 {68 {
76 ··​try69 ··​try
77 ··​{70 ··​{
78 ····​if·​(argc·​!=·​2)​71 ····​if·​(argc·​!=·​2)​
79 ····​{72 ····​{
80 ······​std:​:​cerr·​<<·​"Usage:​·​sender·​<multicast_address>\n​";​73 ······​std:​:​cerr·​<<·​"Usage:​·​sender·​<multicast_address>\n​";​
81 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​74 ······​std:​:​cerr·​<<·​"··​For·​IPv4,​·​try:​\n";​
82 ······​std:​:​cerr·​<<·​"····​sender·​239.​255.​0.​1\n";​75 ······​std:​:​cerr·​<<·​"····​sender·​239.​255.​0.​1\n";​
83 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​76 ······​std:​:​cerr·​<<·​"··​For·​IPv6,​·​try:​\n";​
84 ······​std:​:​cerr·​<<·​"····​sender·​ff31:​:​8000:​1234\n";​77 ······​std:​:​cerr·​<<·​"····​sender·​ff31:​:​8000:​1234\n";​
85 ······​return·​1;​78 ······​return·​1;​
86 ····​}79 ····​}
87 80
88 ····​asio:​:​io_context·​io_context;​81 ····​asio:​:​io_context·​io_context;​
89 ····​sender·​s(io_context,​·​asio:​:​ip:​:​make_address(argv[1])​)​;​82 ····​sender·​s(io_context,​·​asio:​:​ip:​:​make_address(argv[1])​)​;​
90 ····​io_context.​run()​;​83 ····​io_context.​run()​;​
91 ··​}84 ··​}
92 ··​catch·​(std:​:​exception&·​e)​85 ··​catch·​(std:​:​exception&·​e)​
93 ··​{86 ··​{
94 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​87 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
95 ··​}88 ··​}
96 89
97 ··​return·​0;​90 ··​return·​0;​
98 }91 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html deleted file mode 100644 index 3e0318f..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/nonblocking/third_party_lib.cpp.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - HTML Diff nonblocking/third_party_lib.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​nonblocking/​third_party_lib.​cppsrc/​examples/​cpp11/​nonblocking/​third_party_lib.​cpp
1 /​/​1 /​/​
2 /​/​·​third_party_lib.​cpp2 /​/​·​third_party_lib.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio.​hpp>11 #include·​<asio.​hpp>
12 #include·​<boost/​array.​hpp>12 #include·​<array>
13 #include·<boost/​bind.​hpp>
14 #include·<boost/​shared_ptr.​hpp>
15 #include·<boost/​enable_shared_from_th​is.​hpp>
16 #include·​<iostream>13 #include·​<iostream>
14 #include·​<memory>
17 15
18 using·​asio:​:​ip:​:​tcp;​16 using·​asio:​:​ip:​:​tcp;​
19 17
20 namespace·​third_party_lib·​{18 namespace·​third_party_lib·​{
21 19
22 /​/​·​Simulation·​of·​a·​third·​party·​library·​that·​wants·​to·​perform·​read·​and·​write20 /​/​·​Simulation·​of·​a·​third·​party·​library·​that·​wants·​to·​perform·​read·​and·​write
23 /​/​·​operations·​directly·​on·​a·​socket.​·​It·​needs·​to·​be·​polled·​to·​determine·​whether21 /​/​·​operations·​directly·​on·​a·​socket.​·​It·​needs·​to·​be·​polled·​to·​determine·​whether
24 /​/​·​it·​requires·​a·​read·​or·​write·​operation,​·​and·​notified·​when·​the·​socket·​is·​ready22 /​/​·​it·​requires·​a·​read·​or·​write·​operation,​·​and·​notified·​when·​the·​socket·​is·​ready
25 /​/​·​for·​reading·​or·​writing.​23 /​/​·​for·​reading·​or·​writing.​
26 class·​session24 class·​session
27 {25 {
28 public:​26 public:​
29 ··​session(tcp:​:​socket&·​socket)​27 ··​session(tcp:​:​socket&·​socket)​
30 ····​:​·​socket_(socket)​,​28 ····​:​·​socket_(socket)​
31 ······state_(reading)​
32 ··​{29 ··​{
33 ··​}30 ··​}
34 31
35 ··​/​/​·​Returns·​true·​if·​the·​third·​party·​library·​wants·​to·​be·​notified·​when·​the32 ··​/​/​·​Returns·​true·​if·​the·​third·​party·​library·​wants·​to·​be·​notified·​when·​the
36 ··​/​/​·​socket·​is·​ready·​for·​reading.​33 ··​/​/​·​socket·​is·​ready·​for·​reading.​
37 ··​bool·​want_read()​·​const34 ··​bool·​want_read()​·​const
38 ··​{35 ··​{
39 ····​return·​state_·​==·​reading;​36 ····​return·​state_·​==·​reading;​
40 ··​}37 ··​}
41 38
42 ··​/​/​·​Notify·​that·​third·​party·​library·​that·​it·​should·​perform·​its·​read·​operation.​39 ··​/​/​·​Notify·​that·​third·​party·​library·​that·​it·​should·​perform·​its·​read·​operation.​
43 ··​void·​do_read(asio:​:​error_code&·​ec)​40 ··​void·​do_read(std:​:​error_code&·​ec)​
44 ··​{41 ··​{
45 ····​if·​(std:​:​size_t·​len·​=·​socket_.​read_some(asio:​:​buffer(data_)​,​·​ec)​)​42 ····​if·​(std:​:​size_t·​len·​=·​socket_.​read_some(asio:​:​buffer(data_)​,​·​ec)​)​
46 ····​{43 ····​{
47 ······​write_buffer_·​=·​asio:​:​buffer(data_,​·​len)​;​44 ······​write_buffer_·​=·​asio:​:​buffer(data_,​·​len)​;​
48 ······​state_·​=·​writing;​45 ······​state_·​=·​writing;​
49 ····​}46 ····​}
50 ··​}47 ··​}
51 48
52 ··​/​/​·​Returns·​true·​if·​the·​third·​party·​library·​wants·​to·​be·​notified·​when·​the49 ··​/​/​·​Returns·​true·​if·​the·​third·​party·​library·​wants·​to·​be·​notified·​when·​the
53 ··​/​/​·​socket·​is·​ready·​for·​writing.​50 ··​/​/​·​socket·​is·​ready·​for·​writing.​
54 ··​bool·​want_write()​·​const51 ··​bool·​want_write()​·​const
55 ··​{52 ··​{
56 ····​return·​state_·​==·​writing;​53 ····​return·​state_·​==·​writing;​
57 ··​}54 ··​}
58 55
59 ··​/​/​·​Notify·​that·​third·​party·​library·​that·​it·​should·​perform·​its·​write·​operation.​56 ··​/​/​·​Notify·​that·​third·​party·​library·​that·​it·​should·​perform·​its·​write·​operation.​
60 ··​void·​do_write(asio:​:​error_code&·​ec)​57 ··​void·​do_write(std:​:​error_code&·​ec)​
61 ··​{58 ··​{
62 ····​if·​(std:​:​size_t·​len·​=·​socket_.​write_some(59 ····​if·​(std:​:​size_t·​len·​=·​socket_.​write_some(
63 ··········​asio:​:​buffer(write_buffer_)​,​·​ec)​)​60 ··········​asio:​:​buffer(write_buffer_)​,​·​ec)​)​
64 ····​{61 ····​{
65 ······​write_buffer_·​=·​write_buffer_·​+·​len;​62 ······​write_buffer_·​=·​write_buffer_·​+·​len;​
66 ······​state_·​=·​asio:​:​buffer_size(write_buf​fer_)​·​>·​0·​?·​writing·​:​·​reading;​63 ······​state_·​=·​asio:​:​buffer_size(write_buf​fer_)​·​>·​0·​?·​writing·​:​·​reading;​
67 ····​}64 ····​}
68 ··​}65 ··​}
69 66
70 private:​67 private:​
71 ··​tcp:​:​socket&·​socket_;​68 ··​tcp:​:​socket&·​socket_;​
72 ··​enum·​{·​reading,​·​writing·​}·​state_;​69 ··​enum·​{·​reading,​·​writing·​}·​state_·=·reading;​
73 ··boost:​:​array<char,​·​128>·​data_;​70 ··​std:​:​array<char,​·​128>·​data_;​
74 ··​asio:​:​const_buffer·​write_buffer_;​71 ··​asio:​:​const_buffer·​write_buffer_;​
75 };​72 };​
76 73
77 }·​/​/​·​namespace·​third_party_lib74 }·​/​/​·​namespace·​third_party_lib
78 75
79 /​/​·​The·​glue·​between·​asio's·​sockets·​and·​the·​third·​party·​library.​76 /​/​·​The·​glue·​between·​asio's·​sockets·​and·​the·​third·​party·​library.​
80 class·​connection77 class·​connection
81 ··​:​·​public·boost:​:​enable_shared_from_th​is<connection>78 ··​:​·​public·​std:​:​enable_shared_from_th​is<connection>
82 {79 {
83 public:​80 public:​
84 ··typedef·boost:​:​shared_ptr<connection​>·pointer;​81 ··connection(tcp:​:​socket·socket)​
85 82 ····:​·socket_(std:​:​move(socket)​)​
86 ··static·pointer·create(asio:​:​io_context&·io_context)​
87 ··{
88 ····return·pointer(new·connection(io_context​)​)​;​
89 ··}
90
91 ··tcp:​:​socket&·socket()​
92 ··​{83 ··​{
93 ····​return·​socket_;​
94 ··​}84 ··​}
95 85
96 ··​void·​start()​86 ··​void·​start()​
97 ··​{87 ··​{
98 ····​/​/​·​Put·​the·​socket·​into·​non-​blocking·​mode.​88 ····​/​/​·​Put·​the·​socket·​into·​non-​blocking·​mode.​
99 ····​socket_.​non_blocking(true)​;​89 ····​socket_.​non_blocking(true)​;​
100 90
101 ····start_operations()​;​91 ····do_operations()​;​
102 ··​}92 ··​}
103 93
104 private:​94 private:​
105 ··connection(asio:​:​io_context&·io_context)​95 ··void·do_operations()​
106 ····:​·socket_(io_context)​,​
107 ······session_impl_(socket_​)​,​
108 ······read_in_progress_(fal​se)​,​
109 ······write_in_progress_(fa​lse)​
110 ··​{96 ··​{
111 ··}97 ····auto·self(shared_from_this​()​)​;​
112 98
113 ··​void·​start_operations()​
114 ··​{
115 ····​/​/​·​Start·​a·​read·​operation·​if·​the·​third·​party·​library·​wants·​one.​99 ····​/​/​·​Start·​a·​read·​operation·​if·​the·​third·​party·​library·​wants·​one.​
116 ····​if·​(session_impl_.​want_read()​·​&&·​!read_in_progress_)​100 ····​if·​(session_impl_.​want_read()​·​&&·​!read_in_progress_)​
117 ····​{101 ····​{
118 ······​read_in_progress_·​=·​true;​102 ······​read_in_progress_·​=·​true;​
119 ······​socket_.​async_wait(tcp:​:​socket:​:​wait_read,​103 ······​socket_.​async_wait(tcp:​:​socket:​:​wait_read,​
120 ··········boost:​:​bind(&connection:​:​handle_read,​104 ··········[this,​·self](std:​:​error_code·ec)​
121 ············shared_from_this()​,​105 ··········{
122 ············asio:​:​placeholders:​:​error)​)​;​106 ············read_in_progress_·=·false;​
107
108 ············​/​/​·​Notify·​third·​party·​library·​that·​it·​can·​perform·​a·​read.​
109 ············​if·​(!ec)​
110 ··············​session_impl_.​do_read(ec)​;​
111
112 ············​/​/​·​The·​third·​party·​library·​successfully·​performed·​a·​read·​on·​the
113 ············​/​/​·​socket.​·​Start·​new·​read·​or·​write·​operations·​based·​on·​what·​it·​now
114 ············​/​/​·​wants.​
115 ············​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
116 ··············​do_operations()​;​
117
118 ············​/​/​·​Otherwise,​·​an·​error·​occurred.​·​Closing·​the·​socket·​cancels·​any
119 ············​/​/​·​outstanding·​asynchronous·​read·​or·​write·​operations.​·​The
120 ············​/​/​·​connection·​object·​will·​be·​destroyed·​automatically·​once·​those
121 ············​/​/​·​outstanding·​operations·​complete.​
122 ············​else
123 ··············​socket_.​close()​;​
124 ··········​})​;​
123 ····​}125 ····​}
124 126
125 ····​/​/​·​Start·​a·​write·​operation·​if·​the·​third·​party·​library·​wants·​one.​127 ····​/​/​·​Start·​a·​write·​operation·​if·​the·​third·​party·​library·​wants·​one.​
126 ····​if·​(session_impl_.​want_write()​·​&&·​!write_in_progress_)​128 ····​if·​(session_impl_.​want_write()​·​&&·​!write_in_progress_)​
127 ····​{129 ····​{
128 ······​write_in_progress_·​=·​true;​130 ······​write_in_progress_·​=·​true;​
129 ······​socket_.​async_wait(tcp:​:​socket:​:​wait_write,​131 ······​socket_.​async_wait(tcp:​:​socket:​:​wait_write,​
130 ··········boost:​:​bind(&connection:​:​handle_write,​132 ··········[this,​·self](std:​:​error_code·ec)​
131 ············shared_from_this()​,​133 ··········{
132 ············asio:​:​placeholders:​:​error)​)​;​134 ············write_in_progress_·=·false;​
135
136 ············​/​/​·​Notify·​third·​party·​library·​that·​it·​can·​perform·​a·​write.​
137 ············​if·​(!ec)​
138 ··············​session_impl_.​do_write(ec)​;​
139
140 ············​/​/​·​The·​third·​party·​library·​successfully·​performed·​a·​write·​on·​the
141 ············​/​/​·​socket.​·​Start·​new·​read·​or·​write·​operations·​based·​on·​what·​it·​now
142 ············​/​/​·​wants.​
143 ············​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
144 ··············​do_operations()​;​
145
146 ············​/​/​·​Otherwise,​·​an·​error·​occurred.​·​Closing·​the·​socket·​cancels·​any
147 ············​/​/​·​outstanding·​asynchronous·​read·​or·​write·​operations.​·​The
148 ············​/​/​·​connection·​object·​will·​be·​destroyed·​automatically·​once·​those
149 ············​/​/​·​outstanding·​operations·​complete.​
150 ············​else
151 ··············​socket_.​close()​;​
152 ··········​})​;​
133 ····​}153 ····​}
134 ··​}154 ··​}
135 155
136 ··​void·​handle_read(asio:​:​error_code·​ec)​
137 ··​{
138 ····​read_in_progress_·​=·​false;​
139
140 ····​/​/​·​Notify·​third·​party·​library·​that·​it·​can·​perform·​a·​read.​
141 ····​if·​(!ec)​
142 ······​session_impl_.​do_read(ec)​;​
143
144 ····​/​/​·​The·​third·​party·​library·​successfully·​performed·​a·​read·​on·​the·​socket.​
145 ····​/​/​·​Start·​new·​read·​or·​write·​operations·​based·​on·​what·​it·​now·​wants.​
146 ····​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
147 ······​start_operations()​;​
148
149 ····​/​/​·​Otherwise,​·​an·​error·​occurred.​·​Closing·​the·​socket·​cancels·​any·​outstanding
150 ····​/​/​·​asynchronous·​read·​or·​write·​operations.​·​The·​connection·​object·​will·​be
151 ····​/​/​·​destroyed·​automatically·​once·​those·​outstanding·​operations·​complete.​
152 ····​else
153 ······​socket_.​close()​;​
154 ··​}
155
156 ··​void·​handle_write(asio:​:​error_code·​ec)​
157 ··​{
158 ····​write_in_progress_·​=·​false;​
159
160 ····​/​/​·​Notify·​third·​party·​library·​that·​it·​can·​perform·​a·​write.​
161 ····​if·​(!ec)​
162 ······​session_impl_.​do_write(ec)​;​
163
164 ····​/​/​·​The·​third·​party·​library·​successfully·​performed·​a·​write·​on·​the·​socket.​
165 ····​/​/​·​Start·​new·​read·​or·​write·​operations·​based·​on·​what·​it·​now·​wants.​
166 ····​if·​(!ec·​||·​ec·​==·​asio:​:​error:​:​would_block)​
167 ······​start_operations()​;​
168
169 ····​/​/​·​Otherwise,​·​an·​error·​occurred.​·​Closing·​the·​socket·​cancels·​any·​outstanding
170 ····​/​/​·​asynchronous·​read·​or·​write·​operations.​·​The·​connection·​object·​will·​be
171 ····​/​/​·​destroyed·​automatically·​once·​those·​outstanding·​operations·​complete.​
172 ····​else
173 ······​socket_.​close()​;​
174 ··​}
175
176 private:​156 private:​
177 ··​tcp:​:​socket·​socket_;​157 ··​tcp:​:​socket·​socket_;​
178 ··​third_party_lib:​:​session·​session_impl_;​158 ··​third_party_lib:​:​session·​session_impl_{socket_​};​
179 ··​bool·​read_in_progress_;​159 ··​bool·​read_in_progress_·=·false;​
180 ··​bool·​write_in_progress_;​160 ··​bool·​write_in_progress_·=·false;​
181 };​161 };​
182 162
183 class·​server163 class·​server
184 {164 {
185 public:​165 public:​
186 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​166 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
187 ····​:​·​acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​167 ····​:​·​acceptor_(io_context,​·{tcp:​:​v4()​,​·​port})​
188 ··​{168 ··​{
189 ····start_accept()​;​169 ····do_accept()​;​
190 ··​}170 ··​}
191 171
192 private:​172 private:​
193 ··​void·start_accept()​173 ··​void·do_accept()​
194 ··​{174 ··​{
195 ····connection:​:​pointer·new_connection·=175 ····acceptor_.​async_accept(
196 ······connection:​:​create(acceptor_.​get_executor()​.​context()​)​;​176 ········[this](std:​:​error_code·ec,​·tcp:​:​socket·socket)​
197 177 ········{
198 ····acceptor_.​async_accept(new_conn​ection-​>socket()​,​178 ··········if·(!ec)​
199 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_connection,​179 ··········{
200 ··········asio:​:​placeholders:​:​error)​)​;​180 ············std:​:​make_shared<connectio​n>(std:​:​move(socket)​)​-​>start()​;​
201 ··​}181 ··········​}
202
203 ··void·handle_accept(connect​ion:​:​pointer·new_connection,​
204 ······const·asio:​:​error_code&·error)​
205 ··{
206 ····if·(!error)​
207 ····{
208 ······new_connection-​>start()​;​
209 ····}
210 182
211 ····start_accept()​;​183 ··········do_accept()​;​
184 ········​})​;​
212 ··​}185 ··​}
213 186
214 ··​tcp:​:​acceptor·​acceptor_;​187 ··​tcp:​:​acceptor·​acceptor_;​
215 };​188 };​
216 189
217 int·​main(int·​argc,​·​char*·​argv[])​190 int·​main(int·​argc,​·​char*·​argv[])​
218 {191 {
219 ··​try192 ··​try
220 ··​{193 ··​{
221 ····​if·​(argc·​!=·​2)​194 ····​if·​(argc·​!=·​2)​
222 ····​{195 ····​{
223 ······​std:​:​cerr·​<<·​"Usage:​·​third_party_lib·​<port>\n";​196 ······​std:​:​cerr·​<<·​"Usage:​·​third_party_lib·​<port>\n";​
224 ······​return·​1;​197 ······​return·​1;​
225 ····​}198 ····​}
226 199
227 ····​asio:​:​io_context·​io_context;​200 ····​asio:​:​io_context·​io_context;​
228 201
229 ····using·namespace·​std;​·/​/​·For·atoi.​202 ····server·s(io_context,​·​std:​:​atoi(argv[1])​)​;​
230 ····server·s(io_context,​·atoi(argv[1])​)​;​
231 203
232 ····​io_context.​run()​;​204 ····​io_context.​run()​;​
233 ··​}205 ··​}
234 ··​catch·​(std:​:​exception&·​e)​206 ··​catch·​(std:​:​exception&·​e)​
235 ··​{207 ··​{
236 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​208 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
237 ··​}209 ··​}
238 210
239 ··​return·​0;​211 ··​return·​0;​
240 }212 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_1.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_1.cpp.html deleted file mode 100644 index b690156..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_1.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_1.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_2.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_2.cpp.html deleted file mode 100644 index c9ca32b..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_2.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_2.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_3.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_3.cpp.html deleted file mode 100644 index c6acb73..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_3.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_3.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_4.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_4.cpp.html deleted file mode 100644 index 80e884c..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_4.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_4.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_5.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/operations/composed_5.cpp.html deleted file mode 100644 index fadafe2..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/operations/composed_5.cpp.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - HTML Diff operations/composed_5.cpp - - - - - - - - - - - - -
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/socks4/socks4.hpp.html b/Sources/Vendor/asio/doc/examples/diffs/socks4/socks4.hpp.html deleted file mode 100644 index 643819a..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/socks4/socks4.hpp.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - HTML Diff socks4/socks4.hpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​socks4/​socks4.​hppsrc/​examples/​cpp11/​socks4/​socks4.​hpp
1 /​/​1 /​/​
2 /​/​·​socks4.​hpp2 /​/​·​socks4.​hpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #ifndef·​SOCKS4_HPP11 #ifndef·​SOCKS4_HPP
12 #define·​SOCKS4_HPP12 #define·​SOCKS4_HPP
13 13
14 #include·​<array>
14 #include·​<string>15 #include·​<string>
15 #include·​<asio.​hpp>16 #include·​<asio/​buffer.​hpp>
16 #include·​<boost/​array.​hpp>17 #include·​<asio/​ip/​tcp.​hpp>
17 18
18 namespace·​socks4·​{19 namespace·​socks4·​{
19 20
20 const·​unsigned·​char·​version·​=·​0x04;​21 const·​unsigned·​char·​version·​=·​0x04;​
21 22
22 class·​request23 class·​request
23 {24 {
24 public:​25 public:​
25 ··​enum·​command_type26 ··​enum·​command_type
26 ··​{27 ··​{
27 ····​connect·​=·​0x01,​28 ····​connect·​=·​0x01,​
28 ····​bind·​=·​0x0229 ····​bind·​=·​0x02
29 ··​};​30 ··​};​
30 31
31 ··​request(command_type·​cmd,​·​const·​asio:​:​ip:​:​tcp:​:​endpoint&·​endpoint,​32 ··​request(command_type·​cmd,​·​const·​asio:​:​ip:​:​tcp:​:​endpoint&·​endpoint,​
32 ······​const·​std:​:​string&·​user_id)​33 ······​const·​std:​:​string&·​user_id)​
33 ····​:​·​version_(version)​,​34 ····​:​·​version_(version)​,​
34 ······​command_(cmd)​,​35 ······​command_(cmd)​,​
35 ······​user_id_(user_id)​,​36 ······​user_id_(user_id)​,​
36 ······​null_byte_(0)​37 ······​null_byte_(0)​
37 ··​{38 ··​{
38 ····​/​/​·​Only·​IPv4·​is·​supported·​by·​the·​SOCKS·​4·​protocol.​39 ····​/​/​·​Only·​IPv4·​is·​supported·​by·​the·​SOCKS·​4·​protocol.​
39 ····​if·​(endpoint.​protocol()​·​!=·​asio:​:​ip:​:​tcp:​:​v4()​)​40 ····​if·​(endpoint.​protocol()​·​!=·​asio:​:​ip:​:​tcp:​:​v4()​)​
40 ····​{41 ····​{
41 ······​throw·​asio:​:​system_error(42 ······​throw·​asio:​:​system_error(
42 ··········​asio:​:​error:​:​address_family_not_su​pported)​;​43 ··········​asio:​:​error:​:​address_family_not_su​pported)​;​
43 ····​}44 ····​}
44 45
45 ····​/​/​·​Convert·​port·​number·​to·​network·​byte·​order.​46 ····​/​/​·​Convert·​port·​number·​to·​network·​byte·​order.​
46 ····​unsigned·​short·​port·​=·​endpoint.​port()​;​47 ····​unsigned·​short·​port·​=·​endpoint.​port()​;​
47 ····​port_high_byte_·​=·​(port·​>>·​8)​·​&·​0xff;​48 ····​port_high_byte_·​=·​(port·​>>·​8)​·​&·​0xff;​
48 ····​port_low_byte_·​=·​port·​&·​0xff;​49 ····​port_low_byte_·​=·​port·​&·​0xff;​
49 50
50 ····​/​/​·​Save·​IP·​address·​in·​network·​byte·​order.​51 ····​/​/​·​Save·​IP·​address·​in·​network·​byte·​order.​
51 ····​address_·​=·​endpoint.​address()​.​to_v4()​.​to_bytes()​;​52 ····​address_·​=·​endpoint.​address()​.​to_v4()​.​to_bytes()​;​
52 ··​}53 ··​}
53 54
54 ··boost:​:​array<asio:​:​const_buffer,​·​7>·​buffers()​·​const55 ··​std:​:​array<asio:​:​const_buffer,​·​7>·​buffers()​·​const
55 ··​{56 ··​{
56 ····boost:​:​array<asio:​:​const_buffer,​·7>·bufs·=57 ····​return
57 ····​{58 ····​{
58 ······​{59 ······​{
59 ········​asio:​:​buffer(&version_,​·​1)​,​60 ········​asio:​:​buffer(&version_,​·​1)​,​
60 ········​asio:​:​buffer(&command_,​·​1)​,​61 ········​asio:​:​buffer(&command_,​·​1)​,​
61 ········​asio:​:​buffer(&port_high_byt​e_,​·​1)​,​62 ········​asio:​:​buffer(&port_high_byt​e_,​·​1)​,​
62 ········​asio:​:​buffer(&port_low_byte​_,​·​1)​,​63 ········​asio:​:​buffer(&port_low_byte​_,​·​1)​,​
63 ········​asio:​:​buffer(address_)​,​64 ········​asio:​:​buffer(address_)​,​
64 ········​asio:​:​buffer(user_id_)​,​65 ········​asio:​:​buffer(user_id_)​,​
65 ········​asio:​:​buffer(&null_byte_,​·​1)​66 ········​asio:​:​buffer(&null_byte_,​·​1)​
66 ······​}67 ······​}
67 ····​};​68 ····​};​
68 ····​return·​bufs;​
69 ··​}69 ··​}
70 70
71 private:​71 private:​
72 ··​unsigned·​char·​version_;​72 ··​unsigned·​char·​version_;​
73 ··​unsigned·​char·​command_;​73 ··​unsigned·​char·​command_;​
74 ··​unsigned·​char·​port_high_byte_;​74 ··​unsigned·​char·​port_high_byte_;​
75 ··​unsigned·​char·​port_low_byte_;​75 ··​unsigned·​char·​port_low_byte_;​
76 ··​asio:​:​ip:​:​address_v4:​:​bytes_type·​address_;​76 ··​asio:​:​ip:​:​address_v4:​:​bytes_type·​address_;​
77 ··​std:​:​string·​user_id_;​77 ··​std:​:​string·​user_id_;​
78 ··​unsigned·​char·​null_byte_;​78 ··​unsigned·​char·​null_byte_;​
79 };​79 };​
80 80
81 class·​reply81 class·​reply
82 {82 {
83 public:​83 public:​
84 ··​enum·​status_type84 ··​enum·​status_type
85 ··​{85 ··​{
86 ····​request_granted·​=·​0x5a,​86 ····​request_granted·​=·​0x5a,​
87 ····​request_failed·​=·​0x5b,​87 ····​request_failed·​=·​0x5b,​
88 ····​request_failed_no_ide​ntd·​=·​0x5c,​88 ····​request_failed_no_ide​ntd·​=·​0x5c,​
89 ····​request_failed_bad_us​er_id·​=·​0x5d89 ····​request_failed_bad_us​er_id·​=·​0x5d
90 ··​};​90 ··​};​
91 91
92 ··​reply()​92 ··​reply()​
93 ····​:​·​null_byte_(0)​,​93 ····​:​·​null_byte_(0)​,​
94 ······​status_()​94 ······​status_()​
95 ··​{95 ··​{
96 ··​}96 ··​}
97 97
98 ··boost:​:​array<asio:​:​mutable_buffer,​·​5>·​buffers()​98 ··​std:​:​array<asio:​:​mutable_buffer,​·​5>·​buffers()​
99 ··​{99 ··​{
100 ····boost:​:​array<asio:​:​mutable_buffer,​·5>·bufs·=100 ····​return
101 ····​{101 ····​{
102 ······​{102 ······​{
103 ········​asio:​:​buffer(&null_byte_,​·​1)​,​103 ········​asio:​:​buffer(&null_byte_,​·​1)​,​
104 ········​asio:​:​buffer(&status_,​·​1)​,​104 ········​asio:​:​buffer(&status_,​·​1)​,​
105 ········​asio:​:​buffer(&port_high_byt​e_,​·​1)​,​105 ········​asio:​:​buffer(&port_high_byt​e_,​·​1)​,​
106 ········​asio:​:​buffer(&port_low_byte​_,​·​1)​,​106 ········​asio:​:​buffer(&port_low_byte​_,​·​1)​,​
107 ········​asio:​:​buffer(address_)​107 ········​asio:​:​buffer(address_)​
108 ······​}108 ······​}
109 ····​};​109 ····​};​
110 ····​return·​bufs;​
111 ··​}110 ··​}
112 111
113 ··​bool·​success()​·​const112 ··​bool·​success()​·​const
114 ··​{113 ··​{
115 ····​return·​null_byte_·​==·​0·​&&·​status_·​==·​request_granted;​114 ····​return·​null_byte_·​==·​0·​&&·​status_·​==·​request_granted;​
116 ··​}115 ··​}
117 116
118 ··​unsigned·​char·​status()​·​const117 ··​unsigned·​char·​status()​·​const
119 ··​{118 ··​{
120 ····​return·​status_;​119 ····​return·​status_;​
121 ··​}120 ··​}
122 121
123 ··​asio:​:​ip:​:​tcp:​:​endpoint·​endpoint()​·​const122 ··​asio:​:​ip:​:​tcp:​:​endpoint·​endpoint()​·​const
124 ··​{123 ··​{
125 ····​unsigned·​short·​port·​=·​port_high_byte_;​124 ····​unsigned·​short·​port·​=·​port_high_byte_;​
126 ····​port·​=·​(port·​<<·​8)​·​&·​0xff00;​125 ····​port·​=·​(port·​<<·​8)​·​&·​0xff00;​
127 ····​port·​=·​port·​|·​port_low_byte_;​126 ····​port·​=·​port·​|·​port_low_byte_;​
128 127
129 ····​asio:​:​ip:​:​address_v4·​address(address_)​;​128 ····​asio:​:​ip:​:​address_v4·​address(address_)​;​
130 129
131 ····​return·​asio:​:​ip:​:​tcp:​:​endpoint(address,​·​port)​;​130 ····​return·​asio:​:​ip:​:​tcp:​:​endpoint(address,​·​port)​;​
132 ··​}131 ··​}
133 132
134 private:​133 private:​
135 ··​unsigned·​char·​null_byte_;​134 ··​unsigned·​char·​null_byte_;​
136 ··​unsigned·​char·​status_;​135 ··​unsigned·​char·​status_;​
137 ··​unsigned·​char·​port_high_byte_;​136 ··​unsigned·​char·​port_high_byte_;​
138 ··​unsigned·​char·​port_low_byte_;​137 ··​unsigned·​char·​port_low_byte_;​
139 ··​asio:​:​ip:​:​address_v4:​:​bytes_type·​address_;​138 ··​asio:​:​ip:​:​address_v4:​:​bytes_type·​address_;​
140 };​139 };​
141 140
142 }·​/​/​·​namespace·​socks4141 }·​/​/​·​namespace·​socks4
143 142
144 #endif·​/​/​·​SOCKS4_HPP143 #endif·​/​/​·​SOCKS4_HPP
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/socks4/sync_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/socks4/sync_client.cpp.html deleted file mode 100644 index a0729eb..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/socks4/sync_client.cpp.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - HTML Diff socks4/sync_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​socks4/​sync_client.​cppsrc/​examples/​cpp11/​socks4/​sync_client.​cpp
1 /​/​1 /​/​
2 /​/​·​sync_client.​cpp2 /​/​·​sync_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<array>
11 #include·​<iostream>12 #include·​<iostream>
12 #include·​<iomanip>13 #include·​<iomanip>
13 #include·​<ostream>14 #include·​<ostream>
14 #include·​<string>15 #include·​<string>
15 #include·​<asio.​hpp>16 #include·​<asio.​hpp>
16 #include·​<boost/​array.​hpp>
17 #include·​"socks4.​hpp"17 #include·​"socks4.​hpp"
18 18
19 using·​asio:​:​ip:​:​tcp;​19 using·​asio:​:​ip:​:​tcp;​
20 20
21 int·​main(int·​argc,​·​char*·​argv[])​21 int·​main(int·​argc,​·​char*·​argv[])​
22 {22 {
23 ··​try23 ··​try
24 ··​{24 ··​{
25 ····​if·​(argc·​!=·​4)​25 ····​if·​(argc·​!=·​4)​
26 ····​{26 ····​{
27 ······​std:​:​cout·​<<·​"Usage:​·​sync_client·​<socks4server>·​<socks4port>·​<user>\n";​27 ······​std:​:​cout·​<<·​"Usage:​·​sync_client·​<socks4server>·​<socks4port>·​<user>\n";​
28 ······​std:​:​cout·​<<·​"Examples:​\n";​28 ······​std:​:​cout·​<<·​"Examples:​\n";​
29 ······​std:​:​cout·​<<·​"··​sync_client·​127.​0.​0.​1·​1080·​chris\n";​29 ······​std:​:​cout·​<<·​"··​sync_client·​127.​0.​0.​1·​1080·​chris\n";​
30 ······​std:​:​cout·​<<·​"··​sync_client·​localhost·​socks·​chris\n";​30 ······​std:​:​cout·​<<·​"··​sync_client·​localhost·​socks·​chris\n";​
31 ······​return·​1;​31 ······​return·​1;​
32 ····​}32 ····​}
33 33
34 ····​asio:​:​io_context·​io_context;​34 ····​asio:​:​io_context·​io_context;​
35 35
36 ····​/​/​·​Get·​a·​list·​of·​endpoints·​corresponding·​to·​the·​SOCKS·​4·​server·​name.​36 ····​/​/​·​Get·​a·​list·​of·​endpoints·​corresponding·​to·​the·​SOCKS·​4·​server·​name.​
37 ····​tcp:​:​resolver·​resolver(io_context)​;​37 ····​tcp:​:​resolver·​resolver(io_context)​;​
38 ····tcp:​:​resolver:​:​results_type·​endpoints·​=·​resolver.​resolve(argv[1],​·​argv[2])​;​38 ····auto·​endpoints·​=·​resolver.​resolve(argv[1],​·​argv[2])​;​
39 39
40 ····​/​/​·​Try·​each·​endpoint·​until·​we·​successfully·​establish·​a·​connection·​to·​the40 ····​/​/​·​Try·​each·​endpoint·​until·​we·​successfully·​establish·​a·​connection·​to·​the
41 ····​/​/​·​SOCKS·​4·​server.​41 ····​/​/​·​SOCKS·​4·​server.​
42 ····​tcp:​:​socket·​socket(io_context)​;​42 ····​tcp:​:​socket·​socket(io_context)​;​
43 ····​asio:​:​connect(socket,​·​endpoints)​;​43 ····​asio:​:​connect(socket,​·​endpoints)​;​
44 44
45 ····​/​/​·​Get·​an·​endpoint·​for·​the·​Boost·​website.​·​This·​will·​be·​passed·​to·​the·​SOCKS45 ····​/​/​·​Get·​an·​endpoint·​for·​the·​Boost·​website.​·​This·​will·​be·​passed·​to·​the·​SOCKS
46 ····​/​/​·​4·​server.​·​Explicitly·​specify·​IPv4·​since·​SOCKS·​4·​does·​not·​support·​IPv6.​46 ····​/​/​·​4·​server.​·​Explicitly·​specify·​IPv4·​since·​SOCKS·​4·​does·​not·​support·​IPv6.​
47 ····​tcp:​:​endpoint·http_endpoint·=47 ····auto·http_endpoint·=·*resolver.​resolve(tcp:​:​v4()​,​·"www.​boost.​org",​·"http")​;​
48 ······*resolver.​resolve(tcp:​:​v4()​,​·"www.​boost.​org",​·"http")​.​begin()​;​
49 48
50 ····​/​/​·​Send·​the·​request·​to·​the·​SOCKS·​4·​server.​49 ····​/​/​·​Send·​the·​request·​to·​the·​SOCKS·​4·​server.​
51 ····​socks4:​:​request·​socks_request(50 ····​socks4:​:​request·​socks_request(
52 ········​socks4:​:​request:​:​connect,​·​http_endpoint,​·​argv[3])​;​51 ········​socks4:​:​request:​:​connect,​·​http_endpoint,​·​argv[3])​;​
53 ····​asio:​:​write(socket,​·​socks_request.​buffers()​)​;​52 ····​asio:​:​write(socket,​·​socks_request.​buffers()​)​;​
54 53
55 ····​/​/​·​Receive·​a·​response·​from·​the·​SOCKS·​4·​server.​54 ····​/​/​·​Receive·​a·​response·​from·​the·​SOCKS·​4·​server.​
56 ····​socks4:​:​reply·​socks_reply;​55 ····​socks4:​:​reply·​socks_reply;​
57 ····​asio:​:​read(socket,​·​socks_reply.​buffers()​)​;​56 ····​asio:​:​read(socket,​·​socks_reply.​buffers()​)​;​
58 57
59 ····​/​/​·​Check·​whether·​we·​successfully·​negotiated·​with·​the·​SOCKS·​4·​server.​58 ····​/​/​·​Check·​whether·​we·​successfully·​negotiated·​with·​the·​SOCKS·​4·​server.​
60 ····​if·​(!socks_reply.​success()​)​59 ····​if·​(!socks_reply.​success()​)​
61 ····​{60 ····​{
62 ······​std:​:​cout·​<<·​"Connection·​failed.​\n";​61 ······​std:​:​cout·​<<·​"Connection·​failed.​\n";​
63 ······​std:​:​cout·​<<·​"status·​=·​0x"·​<<·​std:​:​hex·​<<·​socks_reply.​status()​;​62 ······​std:​:​cout·​<<·​"status·​=·​0x"·​<<·​std:​:​hex·​<<·​socks_reply.​status()​;​
64 ······​return·​1;​63 ······​return·​1;​
65 ····​}64 ····​}
66 65
67 ····​/​/​·​Form·​the·​HTTP·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that66 ····​/​/​·​Form·​the·​HTTP·​request.​·​We·​specify·​the·​"Connection:​·​close"·​header·​so·​that
68 ····​/​/​·​the·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This67 ····​/​/​·​the·​server·​will·​close·​the·​socket·​after·​transmitting·​the·​response.​·​This
69 ····​/​/​·​will·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​response.​68 ····​/​/​·​will·​allow·​us·​to·​treat·​all·​data·​up·​until·​the·​EOF·​as·​the·​response.​
70 ····​std:​:​string·​request·​=69 ····​std:​:​string·​request·​=
71 ······​"GET·​/​·​HTTP/​1.​0\r\n"70 ······​"GET·​/​·​HTTP/​1.​0\r\n"
72 ······​"Host:​·​www.​boost.​org\r\n"71 ······​"Host:​·​www.​boost.​org\r\n"
73 ······​"Accept:​·​*/​*\r\n"72 ······​"Accept:​·​*/​*\r\n"
74 ······​"Connection:​·​close\r\n\r\n";​73 ······​"Connection:​·​close\r\n\r\n";​
75 74
76 ····​/​/​·​Send·​the·​HTTP·​request.​75 ····​/​/​·​Send·​the·​HTTP·​request.​
77 ····​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​76 ····​asio:​:​write(socket,​·​asio:​:​buffer(request)​)​;​
78 77
79 ····​/​/​·​Read·​until·​EOF,​·​writing·​data·​to·​output·​as·​we·​go.​78 ····​/​/​·​Read·​until·​EOF,​·​writing·​data·​to·​output·​as·​we·​go.​
80 ····boost:​:​array<char,​·​512>·​response;​79 ····​std:​:​array<char,​·​512>·​response;​
81 ····asio:​:​error_code·​error;​80 ····​std:​:​error_code·​error;​
82 ····​while·​(std:​:​size_t·​s·​=·​socket.​read_some(81 ····​while·​(std:​:​size_t·​s·​=·​socket.​read_some(
83 ··········​asio:​:​buffer(response)​,​·​error)​)​82 ··········​asio:​:​buffer(response)​,​·​error)​)​
84 ······​std:​:​cout.​write(response.​data()​,​·​s)​;​83 ······​std:​:​cout.​write(response.​data()​,​·​s)​;​
85 ····​if·​(error·​!=·​asio:​:​error:​:​eof)​84 ····​if·​(error·​!=·​asio:​:​error:​:​eof)​
86 ······​throw·asio:​:​system_error(error)​;​85 ······​throw·​std:​:​system_error(error)​;​
87 ··​}86 ··​}
88 ··​catch·​(std:​:​exception&·​e)​87 ··​catch·​(std:​:​exception&·​e)​
89 ··​{88 ··​{
90 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​89 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
91 ··​}90 ··​}
92 91
93 ··​return·​0;​92 ··​return·​0;​
94 }93 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/spawn/echo_server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/spawn/echo_server.cpp.html deleted file mode 100644 index 87d9c2b..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/spawn/echo_server.cpp.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - HTML Diff spawn/echo_server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​spawn/​echo_server.​cppsrc/​examples/​cpp11/​spawn/​echo_server.​cpp
1 /​/​1 /​/​
2 /​/​·​echo_server.​cpp2 /​/​·​echo_server.​cpp
3 /​/​·​~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio/​io_context.​hpp>11 #include·​<asio/​io_context.​hpp>
12 #include·​<asio/​ip/​tcp.​hpp>12 #include·​<asio/​ip/​tcp.​hpp>
13 #include·​<asio/​spawn.​hpp>13 #include·​<asio/​spawn.​hpp>
14 #include·​<asio/​steady_timer.​hpp>14 #include·​<asio/​steady_timer.​hpp>
15 #include·​<asio/​write.​hpp>15 #include·​<asio/​write.​hpp>
16 #include·​<boost/​bind.​hpp>
17 #include·​<boost/​shared_ptr.​hpp>
18 #include·​<boost/​enable_shared_from_th​is.​hpp>
19 #include·​<iostream>16 #include·​<iostream>
17 #include·​<memory>
20 18
21 using·​asio:​:​ip:​:​tcp;​19 using·​asio:​:​ip:​:​tcp;​
22 20
23 class·​session·​:​·​public·boost:​:​enable_shared_from_th​is<session>21 class·​session·​:​·​public·​std:​:​enable_shared_from_th​is<session>
24 {22 {
25 public:​23 public:​
26 ··​explicit·​session(asio:​:​io_context&·io_context)​24 ··​explicit·​session(tcp:​:​socket·socket)​
27 ····​:​·​strand_(io_context)​,​25 ····​:​·​socket_(std:​:​move(socket)​)​,​
28 ······​socket_(io_context)​,​26 ······timer_(socket_.​get_io_context()​)​,​
29 ······​timer_(io_context)​27 ······strand_(socket_.​get_io_context()​)​
30 ··​{28 ··​{
31 ··​}29 ··​}
32 30
33 ··​tcp:​:​socket&·​socket()​
34 ··​{
35 ····​return·​socket_;​
36 ··​}
37
38 ··​void·​go()​31 ··​void·​go()​
39 ··​{32 ··​{
33 ····​auto·​self(shared_from_this​()​)​;​
40 ····​asio:​:​spawn(strand_,​34 ····​asio:​:​spawn(strand_,​
41 ········boost:​:​bind(&session:​:​echo,​35 ········[this,​·self](asio:​:​yield_context·yield)​
42 ··········shared_from_this()​,​·_1)​)​;​36 ········{
37 ··········​try
38 ··········​{
39 ············​char·​data[128];​
40 ············​for·​(;​;​)​
41 ············​{
42 ··············​timer_.​expires_from_now(std:​:​chrono:​:​seconds(10)​)​;​
43 ··············​std:​:​size_t·​n·​=·​socket_.​async_read_some(asio:​:​buffer(data)​,​·​yield)​;​
44 ··············​asio:​:​async_write(socket_,​·​asio:​:​buffer(data,​·​n)​,​·​yield)​;​
45 ············​}
46 ··········​}
47 ··········​catch·​(std:​:​exception&·​e)​
48 ··········​{
49 ············​socket_.​close()​;​
50 ············​timer_.​cancel()​;​
51 ··········​}
52 ········​})​;​
53
43 ····​asio:​:​spawn(strand_,​54 ····​asio:​:​spawn(strand_,​
44 ········boost:​:​bind(&session:​:​timeout,​55 ········[this,​·self](asio:​:​yield_context·yield)​
45 ··········shared_from_this()​,​·_1)​)​;​56 ········{
57 ··········​while·​(socket_.​is_open()​)​
58 ··········​{
59 ············​asio:​:​error_code·​ignored_ec;​
60 ············​timer_.​async_wait(yield[igno​red_ec])​;​
61 ············​if·​(timer_.​expires_from_now()​·​<=·​std:​:​chrono:​:​seconds(0)​)​
62 ··············​socket_.​close()​;​
63 ··········​}
64 ········​})​;​
46 ··​}65 ··​}
47 66
48 private:​67 private:​
49 ··​void·​echo(asio:​:​yield_context·​yield)​
50 ··​{
51 ····​try
52 ····​{
53 ······​char·​data[128];​
54 ······​for·​(;​;​)​
55 ······​{
56 ········​timer_.​expires_after(asio:​:​chrono:​:​seconds(10)​)​;​
57 ········​std:​:​size_t·​n·​=·​socket_.​async_read_some(asio:​:​buffer(data)​,​·​yield)​;​
58 ········​asio:​:​async_write(socket_,​·​asio:​:​buffer(data,​·​n)​,​·​yield)​;​
59 ······​}
60 ····​}
61 ····​catch·​(std:​:​exception&·​e)​
62 ····​{
63 ······​socket_.​close()​;​
64 ······​timer_.​cancel()​;​
65 ····​}
66 ··​}
67
68 ··​void·​timeout(asio:​:​yield_context·​yield)​
69 ··​{
70 ····​while·​(socket_.​is_open()​)​
71 ····​{
72 ······​asio:​:​error_code·​ignored_ec;​
73 ······​timer_.​async_wait(yield[igno​red_ec])​;​
74 ······​if·​(timer_.​expiry()​·​<=·​asio:​:​steady_timer:​:​clock_type:​:​now()​)​
75 ········​socket_.​close()​;​
76 ····​}
77 ··​}
78
79 ··​asio:​:​io_context:​:​strand·​strand_;​
80 ··​tcp:​:​socket·​socket_;​68 ··​tcp:​:​socket·​socket_;​
81 ··​asio:​:​steady_timer·​timer_;​69 ··​asio:​:​steady_timer·​timer_;​
70 ··​asio:​:​io_context:​:​strand·​strand_;​
82 };​71 };​
83 72
84 void·​do_accept(asio:​:​io_context&·​io_context,​
85 ····​unsigned·​short·​port,​·​asio:​:​yield_context·​yield)​
86 {
87 ··​tcp:​:​acceptor·​acceptor(io_context,​·​tcp:​:​endpoint(tcp:​:​v4()​,​·​port)​)​;​
88
89 ··​for·​(;​;​)​
90 ··​{
91 ····​asio:​:​error_code·​ec;​
92 ····​boost:​:​shared_ptr<session>·​new_session(new·​session(io_context)​)​;​
93 ····​acceptor.​async_accept(new_sess​ion-​>socket()​,​·​yield[ec])​;​
94 ····​if·​(!ec)​·​new_session-​>go()​;​
95 ··​}
96 }
97
98 int·​main(int·​argc,​·​char*·​argv[])​73 int·​main(int·​argc,​·​char*·​argv[])​
99 {74 {
100 ··​try75 ··​try
101 ··​{76 ··​{
102 ····​if·​(argc·​!=·​2)​77 ····​if·​(argc·​!=·​2)​
103 ····​{78 ····​{
104 ······​std:​:​cerr·​<<·​"Usage:​·​echo_server·​<port>\n";​79 ······​std:​:​cerr·​<<·​"Usage:​·​echo_server·​<port>\n";​
105 ······​return·​1;​80 ······​return·​1;​
106 ····​}81 ····​}
107 82
108 ····​asio:​:​io_context·​io_context;​83 ····​asio:​:​io_context·​io_context;​
109 84
110 ····​asio:​:​spawn(io_context,​85 ····​asio:​:​spawn(io_context,​
111 ········boost:​:​bind(do_accept,​86 ········[&](asio:​:​yield_context·yield)​
112 ··········boost:​:​ref(io_context)​,​·atoi(argv[1])​,​·_1)​)​;​87 ········{
88 ··········​tcp:​:​acceptor·​acceptor(io_context,​
89 ············​tcp:​:​endpoint(tcp:​:​v4()​,​·​std:​:​atoi(argv[1])​)​)​;​
90
91 ··········​for·​(;​;​)​
92 ··········​{
93 ············​asio:​:​error_code·​ec;​
94 ············​tcp:​:​socket·​socket(io_context)​;​
95 ············​acceptor.​async_accept(socket,​·​yield[ec])​;​
96 ············​if·​(!ec)​·​std:​:​make_shared<session>(​std:​:​move(socket)​)​-​>go()​;​
97 ··········​}
98 ········​})​;​
113 99
114 ····​io_context.​run()​;​100 ····​io_context.​run()​;​
115 ··​}101 ··​}
116 ··​catch·​(std:​:​exception&·​e)​102 ··​catch·​(std:​:​exception&·​e)​
117 ··​{103 ··​{
118 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​104 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
119 ··​}105 ··​}
120 106
121 ··​return·​0;​107 ··​return·​0;​
122 }108 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html deleted file mode 100644 index 32bae6d..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/spawn/parallel_grep.cpp.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - HTML Diff spawn/parallel_grep.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​spawn/​parallel_grep.​cppsrc/​examples/​cpp11/​spawn/​parallel_grep.​cpp
1 /​/​1 /​/​
2 /​/​·​parallel_grep.​cpp2 /​/​·​parallel_grep.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio/​dispatch.​hpp>11 #include·​<asio/​dispatch.​hpp>
12 #include·​<asio/​post.​hpp>12 #include·​<asio/​post.​hpp>
13 #include·​<asio/​spawn.​hpp>13 #include·​<asio/​spawn.​hpp>
14 #include·​<asio/​strand.​hpp>14 #include·​<asio/​strand.​hpp>
15 #include·​<asio/​thread_pool.​hpp>15 #include·​<asio/​thread_pool.​hpp>
16 #include·​<boost/​bind.​hpp>
17 #include·​<fstream>16 #include·​<fstream>
18 #include·​<iostream>17 #include·​<iostream>
19 #include·​<string>18 #include·​<string>
20 19
21 using·​asio:​:​dispatch;​20 using·​asio:​:​dispatch;​
22 using·​asio:​:​spawn;​21 using·​asio:​:​spawn;​
23 using·​asio:​:​strand;​22 using·​asio:​:​strand;​
24 using·​asio:​:​thread_pool;​23 using·​asio:​:​thread_pool;​
25 using·​asio:​:​yield_context;​24 using·​asio:​:​yield_context;​
26 25
27 void·​print_match(std:​:​string·​input_file,​·​std:​:​string·​line)​
28 {
29 ··​std:​:​cout·​<<·​input_file·​<<·​':​'·​<<·​line·​<<·​std:​:​endl;​
30 }
31
32 void·​search_file(std:​:​string·​search_string,​·​std:​:​string·​input_file,​
33 ····​strand<thread_pool:​:​executor_type>·​output_strand,​·​yield_context·​yield)​
34 {
35 ··​std:​:​ifstream·​is(input_file.​c_str()​)​;​
36 ··​std:​:​string·​line;​
37 ··​std:​:​size_t·​line_num·​=·​0;​
38 ··​while·​(std:​:​getline(is,​·​line)​)​
39 ··​{
40 ····​/​/​·​If·​we·​find·​a·​match,​·​send·​a·​message·​to·​the·​output.​
41 ····​if·​(line.​find(search_string)​·​!=·​std:​:​string:​:​npos)​
42 ····​{
43 ······​dispatch(output_stran​d,​·​boost:​:​bind(&print_match,​·​input_file,​·​line)​)​;​
44 ····​}
45
46 ····​/​/​·​Every·​so·​often·​we·​yield·​control·​to·​another·​coroutine.​
47 ····​if·​(++line_num·​%·​10·​==·​0)​
48 ······​post(yield)​;​
49 ··​}
50 }
51
52 int·​main(int·​argc,​·​char*·​argv[])​26 int·​main(int·​argc,​·​char*·​argv[])​
53 {27 {
54 ··​try28 ··​try
55 ··​{29 ··​{
56 ····​if·​(argc·​<·​2)​30 ····​if·​(argc·​<·​2)​
57 ····​{31 ····​{
58 ······​std:​:​cerr·​<<·​"Usage:​·​parallel_grep·​<string>·​<files.​.​.​>\n";​32 ······​std:​:​cerr·​<<·​"Usage:​·​parallel_grep·​<string>·​<files.​.​.​>\n";​
59 ······​return·​1;​33 ······​return·​1;​
60 ····​}34 ····​}
61 35
62 ····​/​/​·​We·​use·​a·​fixed·​size·​pool·​of·​threads·​for·​reading·​the·​input·​files.​·​The36 ····​/​/​·​We·​use·​a·​fixed·​size·​pool·​of·​threads·​for·​reading·​the·​input·​files.​·​The
63 ····​/​/​·​number·​of·​threads·​is·​automatically·​determined·​based·​on·​the·​number·​of37 ····​/​/​·​number·​of·​threads·​is·​automatically·​determined·​based·​on·​the·​number·​of
64 ····​/​/​·​CPUs·​available·​in·​the·​system.​38 ····​/​/​·​CPUs·​available·​in·​the·​system.​
65 ····​thread_pool·​pool;​39 ····​thread_pool·​pool;​
66 40
67 ····​/​/​·​To·​prevent·​the·​output·​from·​being·​garbled,​·​we·​use·​a·​strand·​to·​synchronise41 ····​/​/​·​To·​prevent·​the·​output·​from·​being·​garbled,​·​we·​use·​a·​strand·​to·​synchronise
68 ····​/​/​·​printing.​42 ····​/​/​·​printing.​
69 ····​strand<thread_pool:​:​executor_type>·​output_strand(pool.​get_executor()​)​;​43 ····​strand<thread_pool:​:​executor_type>·​output_strand(pool.​get_executor()​)​;​
70 44
71 ····​/​/​·​Spawn·​a·​new·​coroutine·​for·​each·​file·​specified·​on·​the·​command·​line.​45 ····​/​/​·​Spawn·​a·​new·​coroutine·​for·​each·​file·​specified·​on·​the·​command·​line.​
72 ····​std:​:​string·​search_string·​=·​argv[1];​46 ····​std:​:​string·​search_string·​=·​argv[1];​
73 ····​for·​(int·​argn·​=·​2;​·​argn·​<·​argc;​·​++argn)​47 ····​for·​(int·​argn·​=·​2;​·​argn·​<·​argc;​·​++argn)​
74 ····​{48 ····​{
75 ······​std:​:​string·​input_file·​=·​argv[argn];​49 ······​std:​:​string·​input_file·​=·​argv[argn];​
76 ······​spawn(pool,​·boost:​:​bind(&search_file,​50 ······​spawn(pool,​
77 ············search_string,​·input_file,​·output_strand,​·_1)​)​;​51 ········[=](yield_context·yield)​
52 ········​{
53 ··········​std:​:​ifstream·​is(input_file.​c_str()​)​;​
54 ··········​std:​:​string·​line;​
55 ··········​std:​:​size_t·​line_num·​=·​0;​
56 ··········​while·​(std:​:​getline(is,​·​line)​)​
57 ··········​{
58 ············​/​/​·​If·​we·​find·​a·​match,​·​send·​a·​message·​to·​the·​output.​
59 ············​if·​(line.​find(search_string)​·​!=·​std:​:​string:​:​npos)​
60 ············​{
61 ··············​dispatch(output_stran​d,​
62 ··················​[=]
63 ··················​{
64 ····················​std:​:​cout·​<<·​input_file·​<<·​':​'·​<<·​line·​<<·​std:​:​endl;​
65 ··················​})​;​
66 ············​}
67
68 ············​/​/​·​Every·​so·​often·​we·​yield·​control·​to·​another·​coroutine.​
69 ············​if·​(++line_num·​%·​10·​==·​0)​
70 ··············​post(yield)​;​
71 ··········​}
72 ········​})​;​
78 ····​}73 ····​}
79 74
80 ····​/​/​·​Join·​the·​thread·​pool·​to·​wait·​for·​all·​the·​spawned·​tasks·​to·​complete.​75 ····​/​/​·​Join·​the·​thread·​pool·​to·​wait·​for·​all·​the·​spawned·​tasks·​to·​complete.​
81 ····​pool.​join()​;​76 ····​pool.​join()​;​
82 ··​}77 ··​}
83 ··​catch·​(std:​:​exception&·​e)​78 ··​catch·​(std:​:​exception&·​e)​
84 ··​{79 ··​{
85 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​80 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
86 ··​}81 ··​}
87 82
88 ··​return·​0;​83 ··​return·​0;​
89 }84 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/ssl/client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/ssl/client.cpp.html deleted file mode 100644 index 620e8b8..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/ssl/client.cpp.html +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - HTML Diff ssl/client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​ssl/​client.​cppsrc/​examples/​cpp11/​ssl/​client.​cpp
1 /​/​1 /​/​
2 /​/​·​client.​cpp2 /​/​·​client.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<cstring>
13 #include·​<functional>
12 #include·​<iostream>14 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>
14 #include·​"asio.​hpp"15 #include·​"asio.​hpp"
15 #include·​"asio/​ssl.​hpp"16 #include·​"asio/​ssl.​hpp"
16 17
18 using·​asio:​:​ip:​:​tcp;​
19 using·​std:​:​placeholders:​:​_1;​
20 using·​std:​:​placeholders:​:​_2;​
21
17 enum·​{·​max_length·​=·​1024·​};​22 enum·​{·​max_length·​=·​1024·​};​
18 23
19 class·​client24 class·​client
20 {25 {
21 public:​26 public:​
22 ··​client(asio:​:​io_context&·​io_context,​27 ··​client(asio:​:​io_context&·​io_context,​
23 ······​asio:​:​ssl:​:​context&·​context,​28 ······​asio:​:​ssl:​:​context&·​context,​
24 ······asio:​:​ip:​:​tcp:​:​resolver:​:​results_type·​endpoints)​29 ······const·tcp:​:​resolver:​:​results_type&·​endpoints)​
25 ····​:​·​socket_(io_context,​·​context)​30 ····​:​·​socket_(io_context,​·​context)​
26 ··​{31 ··​{
27 ····​socket_.​set_verify_mode(asio:​:​ssl:​:​verify_peer)​;​32 ····​socket_.​set_verify_mode(asio:​:​ssl:​:​verify_peer)​;​
28 ····​socket_.​set_verify_callback(33 ····​socket_.​set_verify_callback(
29 ········boost:​:​bind(&client:​:​verify_certificate,​·​this,​·​_1,​·​_2)​)​;​34 ········​std:​:​bind(&client:​:​verify_certificate,​·​this,​·​_1,​·​_2)​)​;​
30 35
31 ····asio:​:​async_connect(socket_​.​lowest_layer()​,​·endpoints,​36 ····​connect(endpoints)​;​
32 ········boost:​:​bind(&client:​:​handle_connect,​·this,​
33 ··········asio:​:​placeholders:​:​error)​)​;​
34 ··​}37 ··​}
35 38
39 private:​
36 ··​bool·​verify_certificate(bo​ol·​preverified,​40 ··​bool·​verify_certificate(bo​ol·​preverified,​
37 ······​asio:​:​ssl:​:​verify_context&·​ctx)​41 ······​asio:​:​ssl:​:​verify_context&·​ctx)​
38 ··​{42 ··​{
39 ····​/​/​·​The·​verify·​callback·​can·​be·​used·​to·​check·​whether·​the·​certificate·​that·​is43 ····​/​/​·​The·​verify·​callback·​can·​be·​used·​to·​check·​whether·​the·​certificate·​that·​is
40 ····​/​/​·​being·​presented·​is·​valid·​for·​the·​peer.​·​For·​example,​·​RFC·​2818·​describes44 ····​/​/​·​being·​presented·​is·​valid·​for·​the·​peer.​·​For·​example,​·​RFC·​2818·​describes
41 ····​/​/​·​the·​steps·​involved·​in·​doing·​this·​for·​HTTPS.​·​Consult·​the·​OpenSSL45 ····​/​/​·​the·​steps·​involved·​in·​doing·​this·​for·​HTTPS.​·​Consult·​the·​OpenSSL
42 ····​/​/​·​documentation·​for·​more·​details.​·​Note·​that·​the·​callback·​is·​called·​once46 ····​/​/​·​documentation·​for·​more·​details.​·​Note·​that·​the·​callback·​is·​called·​once
43 ····​/​/​·​for·​each·​certificate·​in·​the·​certificate·​chain,​·​starting·​from·​the·​root47 ····​/​/​·​for·​each·​certificate·​in·​the·​certificate·​chain,​·​starting·​from·​the·​root
44 ····​/​/​·​certificate·​authority.​48 ····​/​/​·​certificate·​authority.​
45 49
46 ····​/​/​·​In·​this·​example·​we·​will·​simply·​print·​the·​certificate's·​subject·​name.​50 ····​/​/​·​In·​this·​example·​we·​will·​simply·​print·​the·​certificate's·​subject·​name.​
47 ····​char·​subject_name[256];​51 ····​char·​subject_name[256];​
48 ····​X509*·​cert·​=·​X509_STORE_CTX_get_cu​rrent_cert(ctx.​native_handle()​)​;​52 ····​X509*·​cert·​=·​X509_STORE_CTX_get_cu​rrent_cert(ctx.​native_handle()​)​;​
49 ····​X509_NAME_oneline(X50​9_get_subject_name(ce​rt)​,​·​subject_name,​·​256)​;​53 ····​X509_NAME_oneline(X50​9_get_subject_name(ce​rt)​,​·​subject_name,​·​256)​;​
50 ····​std:​:​cout·​<<·​"Verifying·​"·​<<·​subject_name·​<<·​"\n";​54 ····​std:​:​cout·​<<·​"Verifying·​"·​<<·​subject_name·​<<·​"\n";​
51 55
52 ····​return·​preverified;​56 ····​return·​preverified;​
53 ··​}57 ··​}
54 58
55 ··​void·handle_connect(const·asio:​:​error_code&·​error)​59 ··​void·​connect(const·tcp:​:​resolver:​:​results_type&·​endpoints)​
56 ··{
57 ····if·(!error)​
58 ····{
59 ······socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​client,​
60 ··········boost:​:​bind(&client:​:​handle_handshake,​·this,​
61 ············asio:​:​placeholders:​:​error)​)​;​
62 ····}
63 ····else
64 ····{
65 ······std:​:​cout·<<·"Connect·failed:​·"·<<·error.​message()​·<<·"\n";​
66 ····}
67 ··}
68
69 ··void·handle_handshake(cons​t·asio:​:​error_code&·error)​
70 ··{
71 ····if·(!error)​
72 ····{
73 ······std:​:​cout·<<·"Enter·message:​·";​
74 ······std:​:​cin.​getline(request_,​·max_length)​;​
75 ······size_t·request_length·=·strlen(request_)​;​
76
77 ······asio:​:​async_write(socket_,​
78 ··········asio:​:​buffer(request_,​·request_length)​,​
79 ··········boost:​:​bind(&client:​:​handle_write,​·this,​
80 ············asio:​:​placeholders:​:​error,​
81 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​
82 ····}
83 ····else
84 ····{
85 ······std:​:​cout·<<·"Handshake·failed:​·"·<<·error.​message()​·<<·"\n";​
86 ····}
87 ··}
88
89 ··void·handle_write(const·asio:​:​error_code&·error,​
90 ······size_t·bytes_transferred)​
91 ··​{60 ··​{
92 ····​if·(!error)​61 ····asio:​:​async_connect(socket_​.​lowest_layer()​,​·endpoints,​
93 ····{62 ········[this](const·std:​:​error_code&·error,​
94 ······asio:​:​async_read(socket_,​63 ··········const·tcp:​:​endpoint&·/​*endpoint*/​)​
95 ··········asio:​:​buffer(reply_,​·bytes_transferred)​,​64 ········{
96 ··········boost:​:​bind(&client:​:​handle_read,​·this,​65 ··········​if·(!error)​
97 ············asio:​:​placeholders:​:​error,​66 ··········{
98 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​67 ············​handshake()​;​
99 ····​}68 ··········​}
100 ····​else69 ··········​else
101 ····​{70 ··········​{
102 ······​std:​:​cout·​<<·​"Write·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​71 ············​std:​:​cout·​<<·​"Connect·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
103 ····​}72 ··········​}
104 ··​}73 ········​})​;​
105 74 ··}
106 ··void·handle_read(const·asio:​:​error_code&·error,​75
107 ······size_t·bytes_transferred)​76 ··void·handshake()​
108 ··​{77 ··​{
109 ····if·(!error)​78 ····socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​client,​
110 ····{79 ········[this](const·std:​:​error_code&·error)​
111 ······std:​:​cout·<<·"Reply:​·";​80 ········{
112 ······std:​:​cout.​write(reply_,​·bytes_transferred)​;​81 ··········if·(!error)​
113 ······std:​:​cout·<<·"\n";​82 ··········{
114 ····}83 ············send_request()​;​
115 ····else84 ··········}
116 ····{85 ··········else
117 ······std:​:​cout·<<·"Read·failed:​·"·<<·error.​message()​·<<·"\n";​86 ··········{
118 ····}87 ············std:​:​cout·<<·"Handshake·failed:​·"·<<·error.​message()​·<<·"\n";​
88 ··········​}
89 ········​})​;​
90 ··​}
91
92 ··​void·​send_request()​
93 ··​{
94 ····​std:​:​cout·​<<·​"Enter·​message:​·​";​
95 ····​std:​:​cin.​getline(request_,​·​max_length)​;​
96 ····​size_t·​request_length·​=·​std:​:​strlen(request_)​;​
97
98 ····​asio:​:​async_write(socket_,​
99 ········​asio:​:​buffer(request_,​·​request_length)​,​
100 ········​[this](const·​std:​:​error_code&·​error,​·​std:​:​size_t·​length)​
101 ········​{
102 ··········​if·​(!error)​
103 ··········​{
104 ············​receive_response(leng​th)​;​
105 ··········​}
106 ··········​else
107 ··········​{
108 ············​std:​:​cout·​<<·​"Write·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
109 ··········​}
110 ········​})​;​
111 ··​}
112
113 ··​void·​receive_response(std:​:​size_t·​length)​
114 ··​{
115 ····​asio:​:​async_read(socket_,​
116 ········​asio:​:​buffer(reply_,​·​length)​,​
117 ········​[this](const·​std:​:​error_code&·​error,​·​std:​:​size_t·​length)​
118 ········​{
119 ··········​if·​(!error)​
120 ··········​{
121 ············​std:​:​cout·​<<·​"Reply:​·​";​
122 ············​std:​:​cout.​write(reply_,​·​length)​;​
123 ············​std:​:​cout·​<<·​"\n";​
124 ··········​}
125 ··········​else
126 ··········​{
127 ············​std:​:​cout·​<<·​"Read·​failed:​·​"·​<<·​error.​message()​·​<<·​"\n";​
128 ··········​}
129 ········​})​;​
119 ··​}130 ··​}
120 131
121 private:​132 ··asio:​:​ssl:​:​stream<tcp:​:​socket>·socket_;​
122 ··asio:​:​ssl:​:​stream<asio:​:​ip:​:​tcp:​:​socket>·socket_;​
123 ··​char·​request_[max_length];​133 ··​char·​request_[max_length];​
124 ··​char·​reply_[max_length];​134 ··​char·​reply_[max_length];​
125 };​135 };​
126 136
127 int·​main(int·​argc,​·​char*·​argv[])​137 int·​main(int·​argc,​·​char*·​argv[])​
128 {138 {
129 ··​try139 ··​try
130 ··​{140 ··​{
131 ····​if·​(argc·​!=·​3)​141 ····​if·​(argc·​!=·​3)​
132 ····​{142 ····​{
133 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​143 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​
134 ······​return·​1;​144 ······​return·​1;​
135 ····​}145 ····​}
136 146
137 ····​asio:​:​io_context·​io_context;​147 ····​asio:​:​io_context·​io_context;​
138 148
139 ····asio:​:​ip:​:​tcp:​:​resolver·​resolver(io_context)​;​149 ····​tcp:​:​resolver·​resolver(io_context)​;​
140 ····​asio:​:​ip:​:​tcp:​:​resolver:​:​results_type·endpoints·=150 ····​auto·endpoints·=·resolver.​resolve(argv[1],​·argv[2])​;​
141 ······resolver.​resolve(argv[1],​·argv[2])​;​
142 151
143 ····​asio:​:​ssl:​:​context·​ctx(asio:​:​ssl:​:​context:​:​sslv23)​;​152 ····​asio:​:​ssl:​:​context·​ctx(asio:​:​ssl:​:​context:​:​sslv23)​;​
144 ····​ctx.​load_verify_file("ca.​pem")​;​153 ····​ctx.​load_verify_file("ca.​pem")​;​
145 154
146 ····​client·​c(io_context,​·​ctx,​·​endpoints)​;​155 ····​client·​c(io_context,​·​ctx,​·​endpoints)​;​
147 156
148 ····​io_context.​run()​;​157 ····​io_context.​run()​;​
149 ··​}158 ··​}
150 ··​catch·​(std:​:​exception&·​e)​159 ··​catch·​(std:​:​exception&·​e)​
151 ··​{160 ··​{
152 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​161 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
153 ··​}162 ··​}
154 163
155 ··​return·​0;​164 ··​return·​0;​
156 }165 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/ssl/server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/ssl/server.cpp.html deleted file mode 100644 index 3c4ef6b..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/ssl/server.cpp.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - - - HTML Diff ssl/server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​ssl/​server.​cppsrc/​examples/​cpp11/​ssl/​server.​cpp
1 /​/​1 /​/​
2 /​/​·​server.​cpp2 /​/​·​server.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<cstdlib>11 #include·​<cstdlib>
12 #include·​<functional>
12 #include·​<iostream>13 #include·​<iostream>
13 #include·​<boost/​bind.​hpp>
14 #include·​"asio.​hpp"14 #include·​"asio.​hpp"
15 #include·​"asio/​ssl.​hpp"15 #include·​"asio/​ssl.​hpp"
16 16
17 typedef·asio:​:​ssl:​:​stream<asio:​:​ip:​:​tcp:​:​socket>·ssl_socket;​17 using·asio:​:​ip:​:​tcp;​
18 18
19 class·​session19 class·session·:​·public·std:​:​enable_shared_from_th​is<session>
20 {20 {
21 public:​21 public:​
22 ··​session(asio:​:​io_context&·io_context,​22 ··​session(tcp:​:​socket·socket,​·asio:​:​ssl:​:​context&·​context)​
23 ······asio:​:​ssl:​:​context&·​context)​23 ····:​·socket_(std:​:​move(socket)​,​·​context)​
24 ····:​·socket_(io_context,​·context)​
25 ··​{24 ··​{
26 ··​}25 ··​}
27 26
28 ··​ssl_socket:​:​lowest_layer_type&·​socket()​
29 ··​{
30 ····​return·​socket_.​lowest_layer()​;​
31 ··​}
32
33 ··​void·​start()​27 ··​void·​start()​
34 ··​{28 ··​{
35 ····socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​server,​29 ····do_handshake()​;​
36 ········boost:​:​bind(&session:​:​handle_handshake,​·this,​
37 ··········asio:​:​placeholders:​:​error)​)​;​
38 ··}
39
40 ··void·handle_handshake(cons​t·asio:​:​error_code&·error)​
41 ··{
42 ····if·(!error)​
43 ····{
44 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​
45 ··········boost:​:​bind(&session:​:​handle_read,​·this,​
46 ············asio:​:​placeholders:​:​error,​
47 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​
48 ····}
49 ····else
50 ····{
51 ······delete·this;​
52 ····}
53 ··}
54
55 ··void·handle_read(const·asio:​:​error_code&·error,​
56 ······size_t·bytes_transferred)​
57 ··{
58 ····if·(!error)​
59 ····{
60 ······asio:​:​async_write(socket_,​
61 ··········asio:​:​buffer(data_,​·bytes_transferred)​,​
62 ··········boost:​:​bind(&session:​:​handle_write,​·this,​
63 ············asio:​:​placeholders:​:​error)​)​;​
64 ····}
65 ····else
66 ····{
67 ······delete·this;​
68 ····}
69 ··​}30 ··​}
70 31
71 ··void·handle_write(const·asio:​:​error_code&·error)​32 private:​
33 ··​void·​do_handshake()​
72 ··​{34 ··​{
73 ····if·​(!error)​35 ····auto·self(shared_from_this​()​)​;​
74 ····{36 ····socket_.​async_handshake(asio:​:​ssl:​:​stream_base:​:​server,​·
75 ······socket_.​async_read_some(asio:​:​buffer(data_,​·max_length)​,​37 ········[this,​·self](const·std:​:​error_code&·error)​
76 ··········boost:​:​bind(&session:​:​handle_read,​·this,​38 ········{
77 ············asio:​:​placeholders:​:​error,​39 ··········​if·(!error)​
78 ············asio:​:​placeholders:​:​bytes_transferred)​)​;​40 ··········{
79 ····}41 ············do_read()​;​
80 ····else42 ··········}
81 ····{43 ········})​;​
82 ······delete·this;​44 ··}
83 ····}45
46 ··​void·​do_read()​
47 ··​{
48 ····​auto·​self(shared_from_this​()​)​;​
49 ····​socket_.​async_read_some(asio:​:​buffer(data_)​,​
50 ········​[this,​·​self](const·​std:​:​error_code&·​ec,​·​std:​:​size_t·​length)​
51 ········​{
52 ··········​if·​(!ec)​
53 ··········​{
54 ············​do_write(length)​;​
55 ··········​}
56 ········​})​;​
57 ··​}
58
59 ··​void·​do_write(std:​:​size_t·​length)​
60 ··​{
61 ····​auto·​self(shared_from_this​()​)​;​
62 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data_,​·​length)​,​
63 ········​[this,​·​self](const·​std:​:​error_code&·​ec,​
64 ··········​std:​:​size_t·​/​*length*/​)​
65 ········​{
66 ··········​if·​(!ec)​
67 ··········​{
68 ············​do_read()​;​
69 ··········​}
70 ········​})​;​
84 ··​}71 ··​}
85 72
86 private:​73 ··asio:​:​ssl:​:​stream<tcp:​:​socket>·socket_;​
87 ··ssl_socket·socket_;​74 ··char·data_[1024];​
88 ··enum·{·max_length·=·1024·};​
89 ··char·data_[max_length];​
90 };​75 };​
91 76
92 class·​server77 class·​server
93 {78 {
94 public:​79 public:​
95 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​80 ··​server(asio:​:​io_context&·​io_context,​·​unsigned·​short·​port)​
96 ····​:​·​io_context_(io_contex​t)​,​81 ····​:​·acceptor_(io_context,​·tcp:​:​endpoint(tcp:​:​v4()​,​·port)​)​,​
97 ······acceptor_(io_context,​
98 ··········asio:​:​ip:​:​tcp:​:​endpoint(asio:​:​ip:​:​tcp:​:​v4()​,​·port)​)​,​
99 ······​context_(asio:​:​ssl:​:​context:​:​sslv23)​82 ······​context_(asio:​:​ssl:​:​context:​:​sslv23)​
100 ··​{83 ··​{
101 ····​context_.​set_options(84 ····​context_.​set_options(
102 ········​asio:​:​ssl:​:​context:​:​default_workarounds85 ········​asio:​:​ssl:​:​context:​:​default_workarounds
103 ········​|·​asio:​:​ssl:​:​context:​:​no_sslv286 ········​|·​asio:​:​ssl:​:​context:​:​no_sslv2
104 ········​|·​asio:​:​ssl:​:​context:​:​single_dh_use)​;​87 ········​|·​asio:​:​ssl:​:​context:​:​single_dh_use)​;​
105 ····​context_.​set_password_callback​(boost:​:​bind(&server:​:​get_password,​·​this)​)​;​88 ····​context_.​set_password_callback​(std:​:​bind(&server:​:​get_password,​·​this)​)​;​
106 ····​context_.​use_certificate_chain​_file("server.​pem")​;​89 ····​context_.​use_certificate_chain​_file("server.​pem")​;​
107 ····​context_.​use_private_key_file(​"server.​pem",​·​asio:​:​ssl:​:​context:​:​pem)​;​90 ····​context_.​use_private_key_file(​"server.​pem",​·​asio:​:​ssl:​:​context:​:​pem)​;​
108 ····​context_.​use_tmp_dh_file("dh20​48.​pem")​;​91 ····​context_.​use_tmp_dh_file("dh20​48.​pem")​;​
109 92
110 ····start_accept()​;​93 ····do_accept()​;​
111 ··​}94 ··​}
112 95
96 private:​
113 ··​std:​:​string·​get_password()​·​const97 ··​std:​:​string·​get_password()​·​const
114 ··​{98 ··​{
115 ····​return·​"test";​99 ····​return·​"test";​
116 ··​}100 ··​}
117 101
118 ··​void·start_accept()​102 ··​void·do_accept()​
119 ··​{103 ··​{
120 ····session*·new_session·=·new·session(io_context_,​·context_)​;​104 ····acceptor_.​async_accept(
121 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​105 ········[this](const·std:​:​error_code&·error,​·tcp:​:​socket·socket)​
122 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​106 ········{
123 ··········asio:​:​placeholders:​:​error)​)​;​107 ··········​if·(!error)​
124 ··}108 ··········{
125 109 ············std:​:​make_shared<session>(​std:​:​move(socket)​,​·context_)​-​>start()​;​
126 ··void·handle_accept(session​*·new_session,​110 ··········}
127 ······const·asio:​:​error_code&·error)​
128 ··{
129 ····if·(!error)​
130 ····{
131 ······new_session-​>start()​;​
132 ····}
133 ····else
134 ····{
135 ······delete·new_session;​
136 ····}
137 111
138 ····start_accept()​;​112 ··········do_accept()​;​
113 ········​})​;​
139 ··​}114 ··​}
140 115
141 private:​116 ··tcp:​:​acceptor·acceptor_;​
142 ··asio:​:​io_context&·io_context_;​
143 ··asio:​:​ip:​:​tcp:​:​acceptor·acceptor_;​
144 ··​asio:​:​ssl:​:​context·​context_;​117 ··​asio:​:​ssl:​:​context·​context_;​
145 };​118 };​
146 119
147 int·​main(int·​argc,​·​char*·​argv[])​120 int·​main(int·​argc,​·​char*·​argv[])​
148 {121 {
149 ··​try122 ··​try
150 ··​{123 ··​{
151 ····​if·​(argc·​!=·​2)​124 ····​if·​(argc·​!=·​2)​
152 ····​{125 ····​{
153 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​126 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<port>\n";​
154 ······​return·​1;​127 ······​return·​1;​
155 ····​}128 ····​}
156 129
157 ····​asio:​:​io_context·​io_context;​130 ····​asio:​:​io_context·​io_context;​
158 131
159 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​132 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
160 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​133 ····​server·​s(io_context,​·​atoi(argv[1])​)​;​
161 134
162 ····​io_context.​run()​;​135 ····​io_context.​run()​;​
163 ··​}136 ··​}
164 ··​catch·​(std:​:​exception&·​e)​137 ··​catch·​(std:​:​exception&·​e)​
165 ··​{138 ··​{
166 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​139 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
167 ··​}140 ··​}
168 141
169 ··​return·​0;​142 ··​return·​0;​
170 }143 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html deleted file mode 100644 index 3ad831d..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/async_tcp_client.cpp.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - - - HTML Diff timeouts/async_tcp_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​async_tcp_client.​cppsrc/​examples/​cpp11/​timeouts/​async_tcp_client.​cpp
1 /​/​1 /​/​
2 /​/​·​async_tcp_client.​cpp2 /​/​·​async_tcp_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio/​buffer.​hpp"11 #include·​"asio/​buffer.​hpp"
12 #include·​"asio/​io_context.​hpp"12 #include·​"asio/​io_context.​hpp"
13 #include·​"asio/​ip/​tcp.​hpp"13 #include·​"asio/​ip/​tcp.​hpp"
14 #include·​"asio/​read_until.​hpp"14 #include·​"asio/​read_until.​hpp"
15 #include·​"asio/​steady_timer.​hpp"15 #include·​"asio/​steady_timer.​hpp"
16 #include·​"asio/​write.​hpp"16 #include·​"asio/​write.​hpp"
17 #include·​<boost/​bind.​hpp>17 #include·​<functional>
18 #include·​<iostream>18 #include·​<iostream>
19 #include·​<string>19 #include·​<string>
20 20
21 using·​asio:​:​steady_timer;​21 using·​asio:​:​steady_timer;​
22 using·​asio:​:​ip:​:​tcp;​22 using·​asio:​:​ip:​:​tcp;​
23 using·​std:​:​placeholders:​:​_1;​
24 using·​std:​:​placeholders:​:​_2;​
23 25
24 /​/​26 /​/​
25 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​applying·​the·​concept·​of·​a·​deadline.​27 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​applying·​the·​concept·​of·​a·​deadline.​
26 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​28 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​
27 /​/​·​Deadlines·​are·​enforced·​by·​an·​"actor"·​that·​persists·​for·​the·​lifetime·​of·​the29 /​/​·​Deadlines·​are·​enforced·​by·​an·​"actor"·​that·​persists·​for·​the·​lifetime·​of·​the
28 /​/​·​client·​object:​30 /​/​·​client·​object:​
29 /​/​31 /​/​
30 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+32 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
31 /​/​··​|················​|33 /​/​··​|················​|
32 /​/​··​|·​check_deadline·​|<-​-​-​+34 /​/​··​|·​check_deadline·​|<-​-​-​+
33 /​/​··​|················​|····​|35 /​/​··​|················​|····​|
34 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|·​async_wait()​36 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|·​async_wait()​
35 /​/​··············​|·········​|37 /​/​··············​|·········​|
36 /​/​··············​+-​-​-​-​-​-​-​-​-​+38 /​/​··············​+-​-​-​-​-​-​-​-​-​+
37 /​/​39 /​/​
38 /​/​·​If·​the·​deadline·​actor·​determines·​that·​the·​deadline·​has·​expired,​·​the·​socket40 /​/​·​If·​the·​deadline·​actor·​determines·​that·​the·​deadline·​has·​expired,​·​the·​socket
39 /​/​·​is·​closed·​and·​any·​outstanding·​operations·​are·​consequently·​cancelled.​41 /​/​·​is·​closed·​and·​any·​outstanding·​operations·​are·​consequently·​cancelled.​
40 /​/​42 /​/​
41 /​/​·​Connection·​establishment·​involves·​trying·​each·​endpoint·​in·​turn·​until·​a43 /​/​·​Connection·​establishment·​involves·​trying·​each·​endpoint·​in·​turn·​until·​a
42 /​/​·​connection·​is·​successful,​·​or·​the·​available·​endpoints·​are·​exhausted.​·​If·​the44 /​/​·​connection·​is·​successful,​·​or·​the·​available·​endpoints·​are·​exhausted.​·​If·​the
43 /​/​·​deadline·​actor·​closes·​the·​socket,​·​the·​connect·​actor·​is·​woken·​up·​and·​moves·​to45 /​/​·​deadline·​actor·​closes·​the·​socket,​·​the·​connect·​actor·​is·​woken·​up·​and·​moves·​to
44 /​/​·​the·​next·​endpoint.​46 /​/​·​the·​next·​endpoint.​
45 /​/​47 /​/​
46 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+48 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
47 /​/​··​|···············​|49 /​/​··​|···············​|
48 /​/​··​|·​start_connect·​|<-​-​-​+50 /​/​··​|·​start_connect·​|<-​-​-​+
49 /​/​··​|···············​|····​|51 /​/​··​|···············​|····​|
50 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|52 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|
51 /​/​···········​|···········​|53 /​/​···········​|···········​|
52 /​/​··​async_-​··​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+54 /​/​··​async_-​··​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
53 /​/​·​connect()​·​|····​|················​|55 /​/​·​connect()​·​|····​|················​|
54 /​/​···········​+-​-​-​>|·​handle_connect·​|56 /​/​···········​+-​-​-​>|·​handle_connect·​|
55 /​/​················​|················​|57 /​/​················​|················​|
56 /​/​················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+58 /​/​················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
57 /​/​··························​:​59 /​/​··························​:​
58 /​/​·​Once·​a·​connection·​is·····​:​60 /​/​·​Once·​a·​connection·​is·····​:​
59 /​/​·​made,​·​the·​connect········​:​61 /​/​·​made,​·​the·​connect········​:​
60 /​/​·​actor·​forks·​in·​two·​-​·····​:​62 /​/​·​actor·​forks·​in·​two·​-​·····​:​
61 /​/​··························​:​63 /​/​··························​:​
62 /​/​·​an·​actor·​for·​reading·····​:​·······​and·​an·​actor·​for64 /​/​·​an·​actor·​for·​reading·····​:​·······​and·​an·​actor·​for
63 /​/​·​inbound·​messages:​········​:​·······​sending·​heartbeats:​65 /​/​·​inbound·​messages:​········​:​·······​sending·​heartbeats:​
64 /​/​··························​:​66 /​/​··························​:​
65 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+··········​:​··········​+-​-​-​-​-​-​-​-​-​-​-​-​-​+67 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+··········​:​··········​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
66 /​/​··​|············​|<-​·​-​·​-​·​-​·​-​+-​·​-​·​-​·​-​·​-​>|·············​|68 /​/​··​|············​|<-​·​-​·​-​·​-​·​-​+-​·​-​·​-​·​-​·​-​>|·············​|
67 /​/​··​|·​start_read·​|·····················​|·​start_write·​|<-​-​-​+69 /​/​··​|·​start_read·​|·····················​|·​start_write·​|<-​-​-​+
68 /​/​··​|············​|<-​-​-​+················​|·············​|····​|70 /​/​··​|············​|<-​-​-​+················​|·············​|····​|
69 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+····​|················​+-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|·​async_wait()​71 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+····​|················​+-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|·​async_wait()​
70 /​/​··········​|·········​|························​|··········​|72 /​/​··········​|·········​|························​|··········​|
71 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+·······​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+73 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+·······​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
72 /​/​···​read_-​·​|····​|·············​|·······​write()​·​|····​|··············​|74 /​/​···​read_-​·​|····​|·············​|·······​write()​·​|····​|··············​|
73 /​/​··​until()​·​+-​-​-​>|·​handle_read·​|···············​+-​-​-​>|·​handle_write·​|75 /​/​··​until()​·​+-​-​-​>|·​handle_read·​|···············​+-​-​-​>|·​handle_write·​|
74 /​/​···············​|·············​|····················​|··············​|76 /​/​···············​|·············​|····················​|··············​|
75 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+77 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
76 /​/​78 /​/​
77 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited79 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited
78 /​/​·​by·​the·​newline·​character.​·​The·​deadline·​for·​a·​complete·​message·​is·​30·​seconds.​80 /​/​·​by·​the·​newline·​character.​·​The·​deadline·​for·​a·​complete·​message·​is·​30·​seconds.​
79 /​/​81 /​/​
80 /​/​·​The·​heartbeat·​actor·​sends·​a·​heartbeat·​(a·​message·​that·​consists·​of·​a·​single82 /​/​·​The·​heartbeat·​actor·​sends·​a·​heartbeat·​(a·​message·​that·​consists·​of·​a·​single
81 /​/​·​newline·​character)​·​every·​10·​seconds.​·​In·​this·​example,​·​no·​deadline·​is·​applied83 /​/​·​newline·​character)​·​every·​10·​seconds.​·​In·​this·​example,​·​no·​deadline·​is·​applied
82 /​/​·​to·​message·​sending.​84 /​/​·​to·​message·​sending.​
83 /​/​85 /​/​
84 class·​client86 class·​client
85 {87 {
86 public:​88 public:​
87 ··​client(asio:​:​io_context&·​io_context)​89 ··​client(asio:​:​io_context&·​io_context)​
88 ····​:​·​stopped_(false)​,​90 ····​:​·​socket_(io_context)​,​
89 ······socket_(io_context)​,​
90 ······​deadline_(io_context)​,​91 ······​deadline_(io_context)​,​
91 ······​heartbeat_timer_(io_c​ontext)​92 ······​heartbeat_timer_(io_c​ontext)​
92 ··​{93 ··​{
93 ··​}94 ··​}
94 95
95 ··​/​/​·​Called·​by·​the·​user·​of·​the·​client·​class·​to·​initiate·​the·​connection·​process.​96 ··​/​/​·​Called·​by·​the·​user·​of·​the·​client·​class·​to·​initiate·​the·​connection·​process.​
96 ··​/​/​·​The·​endpoints·​will·​have·​been·​obtained·​using·​a·​tcp:​:​resolver.​97 ··​/​/​·​The·​endpoints·​will·​have·​been·​obtained·​using·​a·​tcp:​:​resolver.​
97 ··​void·​start(tcp:​:​resolver:​:​results_type·​endpoints)​98 ··​void·​start(tcp:​:​resolver:​:​results_type·​endpoints)​
98 ··​{99 ··​{
99 ····​/​/​·​Start·​the·​connect·​actor.​100 ····​/​/​·​Start·​the·​connect·​actor.​
100 ····​endpoints_·​=·​endpoints;​101 ····​endpoints_·​=·​endpoints;​
101 ····​start_connect(endpoin​ts_.​begin()​)​;​102 ····​start_connect(endpoin​ts_.​begin()​)​;​
102 103
103 ····​/​/​·​Start·​the·​deadline·​actor.​·​You·​will·​note·​that·​we're·​not·​setting·​any104 ····​/​/​·​Start·​the·​deadline·​actor.​·​You·​will·​note·​that·​we're·​not·​setting·​any
104 ····​/​/​·​particular·​deadline·​here.​·​Instead,​·​the·​connect·​and·​input·​actors·​will105 ····​/​/​·​particular·​deadline·​here.​·​Instead,​·​the·​connect·​and·​input·​actors·​will
105 ····​/​/​·​update·​the·​deadline·​prior·​to·​each·​asynchronous·​operation.​106 ····​/​/​·​update·​the·​deadline·​prior·​to·​each·​asynchronous·​operation.​
106 ····​deadline_.​async_wait(boost:​:​bind(&client:​:​check_deadline,​·​this)​)​;​107 ····​deadline_.​async_wait(std:​:​bind(&client:​:​check_deadline,​·​this)​)​;​
107 ··​}108 ··​}
108 109
109 ··​/​/​·​This·​function·​terminates·​all·​the·​actors·​to·​shut·​down·​the·​connection.​·​It110 ··​/​/​·​This·​function·​terminates·​all·​the·​actors·​to·​shut·​down·​the·​connection.​·​It
110 ··​/​/​·​may·​be·​called·​by·​the·​user·​of·​the·​client·​class,​·​or·​by·​the·​class·​itself·​in111 ··​/​/​·​may·​be·​called·​by·​the·​user·​of·​the·​client·​class,​·​or·​by·​the·​class·​itself·​in
111 ··​/​/​·​response·​to·​graceful·​termination·​or·​an·​unrecoverable·​error.​112 ··​/​/​·​response·​to·​graceful·​termination·​or·​an·​unrecoverable·​error.​
112 ··​void·​stop()​113 ··​void·​stop()​
113 ··​{114 ··​{
114 ····​stopped_·​=·​true;​115 ····​stopped_·​=·​true;​
115 ····asio:​:​error_code·​ignored_ec;​116 ····​std:​:​error_code·​ignored_error;​
116 ····​socket_.​close(ignored_ec)​;​117 ····​socket_.​close(ignored_error)​;​
117 ····​deadline_.​cancel()​;​118 ····​deadline_.​cancel()​;​
118 ····​heartbeat_timer_.​cancel()​;​119 ····​heartbeat_timer_.​cancel()​;​
119 ··​}120 ··​}
120 121
121 private:​122 private:​
122 ··​void·​start_connect(tcp:​:​resolver:​:​results_type:​:​iterator·​endpoint_iter)​123 ··​void·​start_connect(tcp:​:​resolver:​:​results_type:​:​iterator·​endpoint_iter)​
123 ··​{124 ··​{
124 ····​if·​(endpoint_iter·​!=·​endpoints_.​end()​)​125 ····​if·​(endpoint_iter·​!=·​endpoints_.​end()​)​
125 ····​{126 ····​{
126 ······​std:​:​cout·​<<·​"Trying·​"·​<<·​endpoint_iter-​>endpoint()​·​<<·​".​.​.​\n";​127 ······​std:​:​cout·​<<·​"Trying·​"·​<<·​endpoint_iter-​>endpoint()​·​<<·​".​.​.​\n";​
127 128
128 ······​/​/​·​Set·​a·​deadline·​for·​the·​connect·​operation.​129 ······​/​/​·​Set·​a·​deadline·​for·​the·​connect·​operation.​
129 ······​deadline_.​expires_after(asio:​:​chrono:​:​seconds(60)​)​;​130 ······​deadline_.​expires_after(std:​:​chrono:​:​seconds(60)​)​;​
130 131
131 ······​/​/​·​Start·​the·​asynchronous·​connect·​operation.​132 ······​/​/​·​Start·​the·​asynchronous·​connect·​operation.​
132 ······​socket_.​async_connect(endpoin​t_iter-​>endpoint()​,​133 ······​socket_.​async_connect(endpoin​t_iter-​>endpoint()​,​
133 ··········boost:​:​bind(&client:​:​handle_connect,​134 ··········​std:​:​bind(&client:​:​handle_connect,​
134 ············​this,​·​_1,​·​endpoint_iter)​)​;​135 ············​this,​·​_1,​·​endpoint_iter)​)​;​
135 ····​}136 ····​}
136 ····​else137 ····​else
137 ····​{138 ····​{
138 ······​/​/​·​There·​are·​no·​more·​endpoints·​to·​try.​·​Shut·​down·​the·​client.​139 ······​/​/​·​There·​are·​no·​more·​endpoints·​to·​try.​·​Shut·​down·​the·​client.​
139 ······​stop()​;​140 ······​stop()​;​
140 ····​}141 ····​}
141 ··​}142 ··​}
142 143
143 ··​void·​handle_connect(const·asio:​:​error_code&·​ec,​144 ··​void·​handle_connect(const·​std:​:​error_code&·​error,​
144 ······​tcp:​:​resolver:​:​results_type:​:​iterator·​endpoint_iter)​145 ······​tcp:​:​resolver:​:​results_type:​:​iterator·​endpoint_iter)​
145 ··​{146 ··​{
146 ····​if·​(stopped_)​147 ····​if·​(stopped_)​
147 ······​return;​148 ······​return;​
148 149
149 ····​/​/​·​The·​async_connect()​·​function·​automatically·​opens·​the·​socket·​at·​the·​start150 ····​/​/​·​The·​async_connect()​·​function·​automatically·​opens·​the·​socket·​at·​the·​start
150 ····​/​/​·​of·​the·​asynchronous·​operation.​·​If·​the·​socket·​is·​closed·​at·​this·​time·​then151 ····​/​/​·​of·​the·​asynchronous·​operation.​·​If·​the·​socket·​is·​closed·​at·​this·​time·​then
151 ····​/​/​·​the·​timeout·​handler·​must·​have·​run·​first.​152 ····​/​/​·​the·​timeout·​handler·​must·​have·​run·​first.​
152 ····​if·​(!socket_.​is_open()​)​153 ····​if·​(!socket_.​is_open()​)​
153 ····​{154 ····​{
154 ······​std:​:​cout·​<<·​"Connect·​timed·​out\n";​155 ······​std:​:​cout·​<<·​"Connect·​timed·​out\n";​
155 156
156 ······​/​/​·​Try·​the·​next·​available·​endpoint.​157 ······​/​/​·​Try·​the·​next·​available·​endpoint.​
157 ······​start_connect(++endpo​int_iter)​;​158 ······​start_connect(++endpo​int_iter)​;​
158 ····​}159 ····​}
159 160
160 ····​/​/​·​Check·​if·​the·​connect·​operation·​failed·​before·​the·​deadline·​expired.​161 ····​/​/​·​Check·​if·​the·​connect·​operation·​failed·​before·​the·​deadline·​expired.​
161 ····​else·​if·​(ec)​162 ····​else·​if·​(error)​
162 ····​{163 ····​{
163 ······​std:​:​cout·​<<·​"Connect·​error:​·​"·​<<·​ec.​message()​·​<<·​"\n";​164 ······​std:​:​cout·​<<·​"Connect·​error:​·​"·​<<·​error.​message()​·​<<·​"\n";​
164 165
165 ······​/​/​·​We·​need·​to·​close·​the·​socket·​used·​in·​the·​previous·​connection·​attempt166 ······​/​/​·​We·​need·​to·​close·​the·​socket·​used·​in·​the·​previous·​connection·​attempt
166 ······​/​/​·​before·​starting·​a·​new·​one.​167 ······​/​/​·​before·​starting·​a·​new·​one.​
167 ······​socket_.​close()​;​168 ······​socket_.​close()​;​
168 169
169 ······​/​/​·​Try·​the·​next·​available·​endpoint.​170 ······​/​/​·​Try·​the·​next·​available·​endpoint.​
170 ······​start_connect(++endpo​int_iter)​;​171 ······​start_connect(++endpo​int_iter)​;​
171 ····​}172 ····​}
172 173
173 ····​/​/​·​Otherwise·​we·​have·​successfully·​established·​a·​connection.​174 ····​/​/​·​Otherwise·​we·​have·​successfully·​established·​a·​connection.​
174 ····​else175 ····​else
175 ····​{176 ····​{
176 ······​std:​:​cout·​<<·​"Connected·​to·​"·​<<·​endpoint_iter-​>endpoint()​·​<<·​"\n";​177 ······​std:​:​cout·​<<·​"Connected·​to·​"·​<<·​endpoint_iter-​>endpoint()​·​<<·​"\n";​
177 178
178 ······​/​/​·​Start·​the·​input·​actor.​179 ······​/​/​·​Start·​the·​input·​actor.​
179 ······​start_read()​;​180 ······​start_read()​;​
180 181
181 ······​/​/​·​Start·​the·​heartbeat·​actor.​182 ······​/​/​·​Start·​the·​heartbeat·​actor.​
182 ······​start_write()​;​183 ······​start_write()​;​
183 ····​}184 ····​}
184 ··​}185 ··​}
185 186
186 ··​void·​start_read()​187 ··​void·​start_read()​
187 ··​{188 ··​{
188 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​189 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​
189 ····​deadline_.​expires_after(asio:​:​chrono:​:​seconds(30)​)​;​190 ····​deadline_.​expires_after(std:​:​chrono:​:​seconds(30)​)​;​
190 191
191 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​read·​a·​newline-​delimited·​message.​192 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​read·​a·​newline-​delimited·​message.​
192 ····​asio:​:​async_read_until(sock​et_,​193 ····​asio:​:​async_read_until(sock​et_,​
193 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​194 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​
194 ········boost:​:​bind(&client:​:​handle_read,​·​this,​·​_1,​·​_2)​)​;​195 ········​std:​:​bind(&client:​:​handle_read,​·​this,​·​_1,​·​_2)​)​;​
195 ··​}196 ··​}
196 197
197 ··​void·​handle_read(const·asio:​:​error_code&·​ec,​·​std:​:​size_t·​n)​198 ··​void·​handle_read(const·​std:​:​error_code&·​error,​·​std:​:​size_t·​n)​
198 ··​{199 ··​{
199 ····​if·​(stopped_)​200 ····​if·​(stopped_)​
200 ······​return;​201 ······​return;​
201 202
202 ····​if·​(!ec)​203 ····​if·​(!error)​
203 ····​{204 ····​{
204 ······​/​/​·​Extract·​the·​newline-​delimited·​message·​from·​the·​buffer.​205 ······​/​/​·​Extract·​the·​newline-​delimited·​message·​from·​the·​buffer.​
205 ······​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​206 ······​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​
206 ······​input_buffer_.​erase(0,​·​n)​;​207 ······​input_buffer_.​erase(0,​·​n)​;​
207 208
208 ······​/​/​·​Empty·​messages·​are·​heartbeats·​and·​so·​ignored.​209 ······​/​/​·​Empty·​messages·​are·​heartbeats·​and·​so·​ignored.​
209 ······​if·​(!line.​empty()​)​210 ······​if·​(!line.​empty()​)​
210 ······​{211 ······​{
211 ········​std:​:​cout·​<<·​"Received:​·​"·​<<·​line·​<<·​"\n";​212 ········​std:​:​cout·​<<·​"Received:​·​"·​<<·​line·​<<·​"\n";​
212 ······​}213 ······​}
213 214
214 ······​start_read()​;​215 ······​start_read()​;​
215 ····​}216 ····​}
216 ····​else217 ····​else
217 ····​{218 ····​{
218 ······​std:​:​cout·​<<·​"Error·​on·​receive:​·​"·​<<·​ec.​message()​·​<<·​"\n";​219 ······​std:​:​cout·​<<·​"Error·​on·​receive:​·​"·​<<·​error.​message()​·​<<·​"\n";​
219 220
220 ······​stop()​;​221 ······​stop()​;​
221 ····​}222 ····​}
222 ··​}223 ··​}
223 224
224 ··​void·​start_write()​225 ··​void·​start_write()​
225 ··​{226 ··​{
226 ····​if·​(stopped_)​227 ····​if·​(stopped_)​
227 ······​return;​228 ······​return;​
228 229
229 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​heartbeat·​message.​230 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​heartbeat·​message.​
230 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer("\n",​·​1)​,​231 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer("\n",​·​1)​,​
231 ········boost:​:​bind(&client:​:​handle_write,​·​this,​·​_1)​)​;​232 ········​std:​:​bind(&client:​:​handle_write,​·​this,​·​_1)​)​;​
232 ··​}233 ··​}
233 234
234 ··​void·​handle_write(const·asio:​:​error_code&·​ec)​235 ··​void·​handle_write(const·​std:​:​error_code&·​error)​
235 ··​{236 ··​{
236 ····​if·​(stopped_)​237 ····​if·​(stopped_)​
237 ······​return;​238 ······​return;​
238 239
239 ····​if·​(!ec)​240 ····​if·​(!error)​
240 ····​{241 ····​{
241 ······​/​/​·​Wait·​10·​seconds·​before·​sending·​the·​next·​heartbeat.​242 ······​/​/​·​Wait·​10·​seconds·​before·​sending·​the·​next·​heartbeat.​
242 ······​heartbeat_timer_.​expires_after(asio:​:​chrono:​:​seconds(10)​)​;​243 ······​heartbeat_timer_.​expires_after(std:​:​chrono:​:​seconds(10)​)​;​
243 ······​heartbeat_timer_.​async_wait(boost:​:​bind(&client:​:​start_write,​·​this)​)​;​244 ······​heartbeat_timer_.​async_wait(std:​:​bind(&client:​:​start_write,​·​this)​)​;​
244 ····​}245 ····​}
245 ····​else246 ····​else
246 ····​{247 ····​{
247 ······​std:​:​cout·​<<·​"Error·​on·​heartbeat:​·​"·​<<·​ec.​message()​·​<<·​"\n";​248 ······​std:​:​cout·​<<·​"Error·​on·​heartbeat:​·​"·​<<·​error.​message()​·​<<·​"\n";​
248 249
249 ······​stop()​;​250 ······​stop()​;​
250 ····​}251 ····​}
251 ··​}252 ··​}
252 253
253 ··​void·​check_deadline()​254 ··​void·​check_deadline()​
254 ··​{255 ··​{
255 ····​if·​(stopped_)​256 ····​if·​(stopped_)​
256 ······​return;​257 ······​return;​
257 258
258 ····​/​/​·​Check·​whether·​the·​deadline·​has·​passed.​·​We·​compare·​the·​deadline·​against259 ····​/​/​·​Check·​whether·​the·​deadline·​has·​passed.​·​We·​compare·​the·​deadline·​against
259 ····​/​/​·​the·​current·​time·​since·​a·​new·​asynchronous·​operation·​may·​have·​moved·​the260 ····​/​/​·​the·​current·​time·​since·​a·​new·​asynchronous·​operation·​may·​have·​moved·​the
260 ····​/​/​·​deadline·​before·​this·​actor·​had·​a·​chance·​to·​run.​261 ····​/​/​·​deadline·​before·​this·​actor·​had·​a·​chance·​to·​run.​
261 ····​if·​(deadline_.​expiry()​·​<=·​steady_timer:​:​clock_type:​:​now()​)​262 ····​if·​(deadline_.​expiry()​·​<=·​steady_timer:​:​clock_type:​:​now()​)​
262 ····​{263 ····​{
263 ······​/​/​·​The·​deadline·​has·​passed.​·​The·​socket·​is·​closed·​so·​that·​any·​outstanding264 ······​/​/​·​The·​deadline·​has·​passed.​·​The·​socket·​is·​closed·​so·​that·​any·​outstanding
264 ······​/​/​·​asynchronous·​operations·​are·​cancelled.​265 ······​/​/​·​asynchronous·​operations·​are·​cancelled.​
265 ······​socket_.​close()​;​266 ······​socket_.​close()​;​
266 267
267 ······​/​/​·​There·​is·​no·​longer·​an·​active·​deadline.​·​The·​expiry·​is·​set·​to·​the268 ······​/​/​·​There·​is·​no·​longer·​an·​active·​deadline.​·​The·​expiry·​is·​set·​to·​the
268 ······​/​/​·​maximum·​time·​point·​so·​that·​the·​actor·​takes·​no·​action·​until·​a·​new269 ······​/​/​·​maximum·​time·​point·​so·​that·​the·​actor·​takes·​no·​action·​until·​a·​new
269 ······​/​/​·​deadline·​is·​set.​270 ······​/​/​·​deadline·​is·​set.​
270 ······​deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​271 ······​deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
271 ····​}272 ····​}
272 273
273 ····​/​/​·​Put·​the·​actor·​back·​to·​sleep.​274 ····​/​/​·​Put·​the·​actor·​back·​to·​sleep.​
274 ····​deadline_.​async_wait(boost:​:​bind(&client:​:​check_deadline,​·​this)​)​;​275 ····​deadline_.​async_wait(std:​:​bind(&client:​:​check_deadline,​·​this)​)​;​
275 ··​}276 ··​}
276 277
277 private:​278 private:​
278 ··​bool·​stopped_;​279 ··​bool·​stopped_·=·false;​
279 ··​tcp:​:​resolver:​:​results_type·​endpoints_;​280 ··​tcp:​:​resolver:​:​results_type·​endpoints_;​
280 ··​tcp:​:​socket·​socket_;​281 ··​tcp:​:​socket·​socket_;​
281 ··​std:​:​string·​input_buffer_;​282 ··​std:​:​string·​input_buffer_;​
282 ··​steady_timer·​deadline_;​283 ··​steady_timer·​deadline_;​
283 ··​steady_timer·​heartbeat_timer_;​284 ··​steady_timer·​heartbeat_timer_;​
284 };​285 };​
285 286
286 int·​main(int·​argc,​·​char*·​argv[])​287 int·​main(int·​argc,​·​char*·​argv[])​
287 {288 {
288 ··​try289 ··​try
289 ··​{290 ··​{
290 ····​if·​(argc·​!=·​3)​291 ····​if·​(argc·​!=·​3)​
291 ····​{292 ····​{
292 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​293 ······​std:​:​cerr·​<<·​"Usage:​·​client·​<host>·​<port>\n";​
293 ······​return·​1;​294 ······​return·​1;​
294 ····​}295 ····​}
295 296
296 ····​asio:​:​io_context·​io_context;​297 ····​asio:​:​io_context·​io_context;​
297 ····​tcp:​:​resolver·​r(io_context)​;​298 ····​tcp:​:​resolver·​r(io_context)​;​
298 ····​client·​c(io_context)​;​299 ····​client·​c(io_context)​;​
299 300
300 ····​c.​start(r.​resolve(argv[1],​·​argv[2])​)​;​301 ····​c.​start(r.​resolve(argv[1],​·​argv[2])​)​;​
301 302
302 ····​io_context.​run()​;​303 ····​io_context.​run()​;​
303 ··​}304 ··​}
304 ··​catch·​(std:​:​exception&·​e)​305 ··​catch·​(std:​:​exception&·​e)​
305 ··​{306 ··​{
306 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​307 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
307 ··​}308 ··​}
308 309
309 ··​return·​0;​310 ··​return·​0;​
310 }311 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html deleted file mode 100644 index a31b507..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_tcp_client.cpp.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - - - HTML Diff timeouts/blocking_tcp_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​blocking_tcp_client.​cppsrc/​examples/​cpp11/​timeouts/​blocking_tcp_client.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_tcp_client.​cpp2 /​/​·​blocking_tcp_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio/​buffer.​hpp"11 #include·​"asio/​buffer.​hpp"
12 #include·​"asio/​connect.​hpp"12 #include·​"asio/​connect.​hpp"
13 #include·​"asio/​io_context.​hpp"13 #include·​"asio/​io_context.​hpp"
14 #include·​"asio/​ip/​tcp.​hpp"14 #include·​"asio/​ip/​tcp.​hpp"
15 #include·​"asio/​read_until.​hpp"15 #include·​"asio/​read_until.​hpp"
16 #include·​"asio/​system_error.​hpp"16 #include·​"asio/​system_error.​hpp"
17 #include·​"asio/​write.​hpp"17 #include·​"asio/​write.​hpp"
18 #include·​<cstdlib>18 #include·​<cstdlib>
19 #include·​<iostream>19 #include·​<iostream>
20 #include·​<string>20 #include·​<string>
21 #include·​<boost/​lambda/​bind.​hpp>
22 #include·​<boost/​lambda/​lambda.​hpp>
23 21
24 using·​asio:​:​ip:​:​tcp;​22 using·​asio:​:​ip:​:​tcp;​
25 using·​boost:​:​lambda:​:​bind;​
26 using·​boost:​:​lambda:​:​var;​
27 using·​boost:​:​lambda:​:​_1;​
28 using·​boost:​:​lambda:​:​_2;​
29 23
30 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​24 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
31 25
32 /​/​26 /​/​
33 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​running·​the·​io_context·​using·​the·​timed27 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​running·​the·​io_context·​using·​the·​timed
34 /​/​·​io_context:​:​run_for()​·​member·​function.​·​Each·​asynchronous·​operation·​is·​given28 /​/​·​io_context:​:​run_for()​·​member·​function.​·​Each·​asynchronous·​operation·​is·​given
35 /​/​·​a·​timeout·​within·​which·​it·​must·​complete.​·​The·​socket·​operations·​themselves29 /​/​·​a·​timeout·​within·​which·​it·​must·​complete.​·​The·​socket·​operations·​themselves
36 /​/​·​use·boost:​:​lambda·function·objects·​as·​completion·​handlers.​·​For·​a·​given30 /​/​·​use·​lambdas·​as·​completion·​handlers.​·​For·​a·​given·socket·operation,​·the·client
37 /​/​·socket·operation,​·​the·​client·​object·runs·the·io_context·​to·block·thread31 /​/​·​object·​runs·​the·io_context·to·block·thread·execution·until·​the·operation
38 /​/​·execution·until·​the·operation·completes·or·​the·timeout·is·reached.​·If·the32 /​/​·​completes·or·​the·timeout·is·reached.​·If·​the·io_context:​:​run_for()​·function
39 /​/​·​io_context:​:​run_for()​·function·​times·​out,​·the·​socket·is·closed·and·the33 /​/​·times·out,​·the·socket·is·closed·and·​the·​outstanding·asynchronous·​operation
40 /​/​·outstanding·asynchronous·operation·​is·​cancelled.​34 /​/​·​is·​cancelled.​
41 /​/​35 /​/​
42 class·​client36 class·​client
43 {37 {
44 public:​38 public:​
45 ··​client()​
46 ····​:​·​socket_(io_context_)​
47 ··​{
48 ··​}
49
50 ··​void·​connect(const·​std:​:​string&·​host,​·​const·​std:​:​string&·​service,​39 ··​void·​connect(const·​std:​:​string&·​host,​·​const·​std:​:​string&·​service,​
51 ······asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​40 ······​std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
52 ··​{41 ··​{
53 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​42 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​
54 ····​tcp:​:​resolver:​:​results_type·endpoints·=43 ····auto·endpoints·=·​tcp:​:​resolver(io_context_)​.​resolve(host,​·service)​;​
55 ······tcp:​:​resolver(io_context_)​.​resolve(host,​·service)​;​
56 44
57 ····​/​/​·​Start·​the·​asynchronous·​operation·​itself.​·​The·boost:​:​lambda·function45 ····​/​/​·​Start·​the·​asynchronous·​operation·​itself.​·​The·lambda·that·is·used·as·a
58 ····​/​/​·object·is·used·as·a·​callback·and·​will·​update·​the·​ec·​variable·​when·​the46 ····​/​/​·​callback·​will·​update·​the·​error·​variable·​when·​the·operation·completes.​
59 ····​/​/​·operation·completes.​·​The·​blocking_udp_client.​cpp·​example·​shows·​how·​you47 ····​/​/​·​The·​blocking_udp_client.​cpp·​example·​shows·​how·​you·can·use·std:​:​bind
60 ····​/​/​·can·use·boost:​:​bind·​rather·​than·boost:​:​lambda.​48 ····​/​/​·​rather·​than·a·lambda.​
61 ····asio:​:​error_code·​ec;​49 ····​std:​:​error_code·​error;​
62 ····​asio:​:​async_connect(socket_​,​·​endpoints,​·var(ec)​·=·_1)​;​50 ····​asio:​:​async_connect(socket_​,​·​endpoints,​
51 ········​[&](const·​std:​:​error_code&·​result_error,​
52 ············​const·​tcp:​:​endpoint&·​/​*result_endpoint*/​)​
53 ········​{
54 ··········​error·​=·​result_error;​
55 ········​})​;​
63 56
64 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​57 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
65 ····​run(timeout)​;​58 ····​run(timeout)​;​
66 59
67 ····​/​/​·​Determine·​whether·​a·​connection·​was·​successfully·​established.​60 ····​/​/​·​Determine·​whether·​a·​connection·​was·​successfully·​established.​
68 ····​if·​(ec)​61 ····​if·​(error)​
69 ······​throw·asio:​:​system_error(ec)​;​62 ······​throw·​std:​:​system_error(error)​;​
70 ··​}63 ··​}
71 64
72 ··​std:​:​string·​read_line(asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​65 ··​std:​:​string·​read_line(std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
73 ··​{66 ··​{
74 ····​/​/​·​Start·​the·​asynchronous·​operation.​·​The·boost:​:​lambda·function·object·is67 ····​/​/​·​Start·​the·​asynchronous·​operation.​·​The·lambda·that·is·​used·as·a·callback
75 ····​/​/​·used·as·a·callback·and·​will·​update·​the·​ec·​variable·​when·​the·​operation68 ····​/​/​·​will·​update·​the·​error·and·n·​variables·​when·​the·​operation·completes.​·The
76 ····​/​/​·completes.​·The·​blocking_udp_client.​cpp·​example·​shows·​how·​you·​can·​use69 ····​/​/​·​blocking_udp_client.​cpp·​example·​shows·​how·​you·​can·​use·std:​:​bind·rather
77 ····​/​/​·boost:​:​bind·rather·​than·boost:​:​lambda.​70 ····​/​/​·​than·a·lambda.​
78 ····asio:​:​error_code·​ec;​71 ····​std:​:​error_code·​error;​
79 ····​std:​:​size_t·​n·​=·​0;​72 ····​std:​:​size_t·​n·​=·​0;​
80 ····​asio:​:​async_read_until(sock​et_,​73 ····​asio:​:​async_read_until(sock​et_,​
81 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​74 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·'\n',​
82 ········'\n',​·(var(ec)​·=·_1,​·var(n)​·=·_2)​)​;​75 ········[&](const·std:​:​error_code&·result_error,​
76 ············​std:​:​size_t·​result_n)​
77 ········​{
78 ··········​error·​=·​result_error;​
79 ··········​n·​=·​result_n;​
80 ········​})​;​
83 81
84 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​82 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
85 ····​run(timeout)​;​83 ····​run(timeout)​;​
86 84
87 ····​/​/​·​Determine·​whether·​the·​read·​completed·​successfully.​85 ····​/​/​·​Determine·​whether·​the·​read·​completed·​successfully.​
88 ····​if·​(ec)​86 ····​if·​(error)​
89 ······​throw·asio:​:​system_error(ec)​;​87 ······​throw·​std:​:​system_error(error)​;​
90 88
91 ····​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​89 ····​std:​:​string·​line(input_buffer_.​substr(0,​·​n·​-​·​1)​)​;​
92 ····​input_buffer_.​erase(0,​·​n)​;​90 ····​input_buffer_.​erase(0,​·​n)​;​
93 ····​return·​line;​91 ····​return·​line;​
94 ··​}92 ··​}
95 93
96 ··​void·​write_line(const·​std:​:​string&·​line,​94 ··​void·​write_line(const·​std:​:​string&·​line,​
97 ······asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​95 ······​std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
98 ··​{96 ··​{
99 ····​std:​:​string·​data·​=·​line·​+·​"\n";​97 ····​std:​:​string·​data·​=·​line·​+·​"\n";​
100 98
101 ····​/​/​·​Start·​the·​asynchronous·​operation.​·The·boost:​:​lambda·function·object·is99 ····​/​/​·​Start·​the·​asynchronous·​operation·itself.​·The·lambda·that·is·used·as·a
102 ····​/​/​·used·as·a·​callback·and·​will·​update·​the·​ec·​variable·​when·​the·​operation100 ····​/​/​·​callback·​will·​update·​the·​error·​variable·​when·​the·​operation·completes.​
103 ····​/​/​·completes.​·​The·​blocking_udp_client.​cpp·​example·​shows·​how·​you·​can·​use101 ····​/​/​·​The·​blocking_udp_client.​cpp·​example·​shows·​how·​you·​can·​use·std:​:​bind
104 ····​/​/​·boost:​:​bind·​rather·​than·boost:​:​lambda.​102 ····​/​/​·​rather·​than·a·lambda.​
105 ····asio:​:​error_code·​ec;​103 ····​std:​:​error_code·​error;​
106 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data)​,​·var(ec)​·=·_1)​;​104 ····​asio:​:​async_write(socket_,​·​asio:​:​buffer(data)​,​
105 ········​[&](const·​std:​:​error_code&·​result_error,​
106 ············​std:​:​size_t·​/​*result_n*/​)​
107 ········​{
108 ··········​error·​=·​result_error;​
109 ········​})​;​
107 110
108 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​111 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
109 ····​run(timeout)​;​112 ····​run(timeout)​;​
110 113
111 ····​/​/​·​Determine·​whether·​the·​read·​completed·​successfully.​114 ····​/​/​·​Determine·​whether·​the·​read·​completed·​successfully.​
112 ····​if·​(ec)​115 ····​if·​(error)​
113 ······​throw·asio:​:​system_error(ec)​;​116 ······​throw·​std:​:​system_error(error)​;​
114 ··​}117 ··​}
115 118
116 private:​119 private:​
117 ··​void·​run(asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​120 ··​void·​run(std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
118 ··​{121 ··​{
119 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state122 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state
120 ····​/​/​·​by·​a·​previous·​operation.​123 ····​/​/​·​by·​a·​previous·​operation.​
121 ····​io_context_.​restart()​;​124 ····​io_context_.​restart()​;​
122 125
123 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If126 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If
124 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline127 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline
125 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on128 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on
126 ····​/​/​·​the·​socket.​129 ····​/​/​·​the·​socket.​
127 ····​io_context_.​run_for(timeout)​;​130 ····​io_context_.​run_for(timeout)​;​
128 131
129 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context132 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context
130 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not133 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not
131 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out.​134 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out.​
132 ····​if·​(!io_context_.​stopped()​)​135 ····​if·​(!io_context_.​stopped()​)​
133 ····​{136 ····​{
134 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​137 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​
135 ······​socket_.​close()​;​138 ······​socket_.​close()​;​
136 139
137 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​140 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​
138 ······​io_context_.​run()​;​141 ······​io_context_.​run()​;​
139 ····​}142 ····​}
140 ··​}143 ··​}
141 144
142 ··​asio:​:​io_context·​io_context_;​145 ··​asio:​:​io_context·​io_context_;​
143 ··​tcp:​:​socket·​socket_;​146 ··​tcp:​:​socket·​socket_{io_context_};​
144 ··​std:​:​string·​input_buffer_;​147 ··​std:​:​string·​input_buffer_;​
145 };​148 };​
146 149
147 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​150 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
148 151
149 int·​main(int·​argc,​·​char*·​argv[])​152 int·​main(int·​argc,​·​char*·​argv[])​
150 {153 {
151 ··​try154 ··​try
152 ··​{155 ··​{
153 ····​if·​(argc·​!=·​4)​156 ····​if·​(argc·​!=·​4)​
154 ····​{157 ····​{
155 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​158 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​
156 ······​return·​1;​159 ······​return·​1;​
157 ····​}160 ····​}
158 161
159 ····​client·​c;​162 ····​client·​c;​
160 ····​c.​connect(argv[1],​·​argv[2],​·asio:​:​chrono:​:​seconds(10)​)​;​163 ····​c.​connect(argv[1],​·​argv[2],​·​std:​:​chrono:​:​seconds(10)​)​;​
161 164
162 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_sent·=165 ····​auto·time_sent·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
163 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
164 166
165 ····​c.​write_line(argv[3],​·asio:​:​chrono:​:​seconds(10)​)​;​167 ····​c.​write_line(argv[3],​·​std:​:​chrono:​:​seconds(10)​)​;​
166 168
167 ····​for·​(;​;​)​169 ····​for·​(;​;​)​
168 ····​{170 ····​{
169 ······​std:​:​string·​line·​=·​c.​read_line(asio:​:​chrono:​:​seconds(10)​)​;​171 ······​std:​:​string·​line·​=·​c.​read_line(std:​:​chrono:​:​seconds(10)​)​;​
170 172
171 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​173 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​
172 ······​if·​(line·​==·​argv[3])​174 ······​if·​(line·​==·​argv[3])​
173 ········​break;​175 ········​break;​
174 ····​}176 ····​}
175 177
176 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_received·=178 ····​auto·time_received·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
177 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
178 179
179 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​180 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​
180 ····​std:​:​cout·​<<·asio:​:​chrono:​:​duration_cast<181 ····​std:​:​cout·​<<·​std:​:​chrono:​:​duration_cast<
181 ······asio:​:​chrono:​:​microseconds>(182 ······​std:​:​chrono:​:​microseconds>(
182 ········​time_received·​-​·​time_sent)​.​count()​;​183 ········​time_received·​-​·​time_sent)​.​count()​;​
183 ····​std:​:​cout·​<<·​"·​microseconds\n";​184 ····​std:​:​cout·​<<·​"·​microseconds\n";​
184 ··​}185 ··​}
185 ··​catch·​(std:​:​exception&·​e)​186 ··​catch·​(std:​:​exception&·​e)​
186 ··​{187 ··​{
187 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​188 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
188 ··​}189 ··​}
189 190
190 ··​return·​0;​191 ··​return·​0;​
191 }192 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html deleted file mode 100644 index 36d2dba..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_token_tcp_client.cpp.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - - HTML Diff timeouts/blocking_token_tcp_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​blocking_token_tcp_cl​ient.​cppsrc/​examples/​cpp11/​timeouts/​blocking_token_tcp_cl​ient.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_token_tcp_cl​ient.​cpp2 /​/​·​blocking_token_tcp_cl​ient.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio/​connect.​hpp"11 #include·​"asio/​connect.​hpp"
12 #include·​"asio/​io_context.​hpp"12 #include·​"asio/​io_context.​hpp"
13 #include·​"asio/​ip/​tcp.​hpp"13 #include·​"asio/​ip/​tcp.​hpp"
14 #include·​"asio/​read_until.​hpp"14 #include·​"asio/​read_until.​hpp"
15 #include·​"asio/​streambuf.​hpp"15 #include·​"asio/​streambuf.​hpp"
16 #include·​"asio/​system_error.​hpp"16 #include·​"asio/​system_error.​hpp"
17 #include·​"asio/​write.​hpp"17 #include·​"asio/​write.​hpp"
18 #include·​<cstdlib>18 #include·​<cstdlib>
19 #include·​<iostream>19 #include·​<iostream>
20 #include·​<memory>20 #include·​<memory>
21 #include·​<string>21 #include·​<string>
22 22
23 using·​asio:​:​ip:​:​tcp;​23 using·​asio:​:​ip:​:​tcp;​
24 24
25 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​25 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
26 26
27 /​/​·​A·​custom·​completion·​token·​that·​makes·​asynchronous·​operations·​behave·​as27 /​/​·​A·​custom·​completion·​token·​that·​makes·​asynchronous·​operations·​behave·​as
28 /​/​·​though·​they·​are·​blocking·​calls·​with·​a·​timeout.​28 /​/​·​though·​they·​are·​blocking·​calls·​with·​a·​timeout.​
29 struct·​close_after29 struct·​close_after
30 {30 {
31 ··​close_after(asio:​:​chrono:​:​steady_clock:​:​duration·​t,​·​tcp:​:​socket&·​s)​31 ··​close_after(std:​:​chrono:​:​steady_clock:​:​duration·​t,​·​tcp:​:​socket&·​s)​
32 ····​:​·​timeout_(t)​,​·​socket_(s)​32 ····​:​·​timeout_(t)​,​·​socket_(s)​
33 ··​{33 ··​{
34 ··​}34 ··​}
35 35
36 ··​/​/​·​The·​maximum·​time·​to·​wait·​for·​an·​asynchronous·​operation·​to·​complete.​36 ··​/​/​·​The·​maximum·​time·​to·​wait·​for·​an·​asynchronous·​operation·​to·​complete.​
37 ··asio:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​37 ··​std:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​
38 38
39 ··​/​/​·​The·​socket·​to·​be·​closed·​if·​the·​operation·​does·​not·​complete·​in·​time.​39 ··​/​/​·​The·​socket·​to·​be·​closed·​if·​the·​operation·​does·​not·​complete·​in·​time.​
40 ··​tcp:​:​socket&·​socket_;​40 ··​tcp:​:​socket&·​socket_;​
41 };​41 };​
42 42
43 namespace·​asio·​{43 namespace·​asio·​{
44 44
45 /​/​·​The·​async_result·​template·​is·​specialised·​to·​allow·​the·​close_after·​token·​to45 /​/​·​The·​async_result·​template·​is·​specialised·​to·​allow·​the·​close_after·​token·​to
46 /​/​·​be·​used·​with·​asynchronous·​operations·​that·​have·​a·​completion·​signature·​of46 /​/​·​be·​used·​with·​asynchronous·​operations·​that·​have·​a·​completion·​signature·​of
47 /​/​·​void(error_code,​·​T)​.​·​Generalising·​this·​for·​all·​completion·​signature·​forms·​is47 /​/​·​void(error_code,​·​T)​.​·​Generalising·​this·​for·​all·​completion·​signature·​forms·​is
48 /​/​·​left·​as·​an·​exercise·​for·​the·​reader.​48 /​/​·​left·​as·​an·​exercise·​for·​the·​reader.​
49 template·​<typename·​T>49 template·​<typename·​T>
50 class·​async_result<close_af​ter,​·​void(asio:​:​error_code,​·​T)​>50 class·​async_result<close_af​ter,​·​void(std:​:​error_code,​·​T)​>
51 {51 {
52 public:​52 public:​
53 ··​/​/​·​An·​asynchronous·​operation's·​initiating·​function·​automatically·​creates·​an53 ··​/​/​·​An·​asynchronous·​operation's·​initiating·​function·​automatically·​creates·​an
54 ··​/​/​·​completion_handler_ty​pe·​object·​from·​the·​token.​·​This·​function·​object·​is54 ··​/​/​·​completion_handler_ty​pe·​object·​from·​the·​token.​·​This·​function·​object·​is
55 ··​/​/​·​then·​called·​on·​completion·​of·​the·​asynchronous·​operation.​55 ··​/​/​·​then·​called·​on·​completion·​of·​the·​asynchronous·​operation.​
56 ··​class·​completion_handler_ty​pe56 ··​class·​completion_handler_ty​pe
57 ··​{57 ··​{
58 ··​public:​58 ··​public:​
59 ····​completion_handler_ty​pe(const·​close_after&·​token)​59 ····​completion_handler_ty​pe(const·​close_after&·​token)​
60 ······​:​·​token_(token)​60 ······​:​·​token_(token)​
61 ····​{61 ····​{
62 ····​}62 ····​}
63 63
64 ····​void·​operator()​(asio:​:​error_code·​ec,​·​T·​t)​64 ····​void·​operator()​(const·std:​:​error_code&·​error,​·​T·​t)​
65 ····​{65 ····​{
66 ······​*ec_·​=·​ec;​66 ······​*error_·​=·​error;​
67 ······​*t_·​=·​t;​67 ······​*t_·​=·​t;​
68 ····​}68 ····​}
69 69
70 ··​private:​70 ··​private:​
71 ····​friend·​class·​async_result;​71 ····​friend·​class·​async_result;​
72 ····​close_after·​token_;​72 ····​close_after·​token_;​
73 ····asio:​:​error_code*·​ec_;​73 ····​std:​:​error_code*·​error_;​
74 ····​T*·​t_;​74 ····​T*·​t_;​
75 ··​};​75 ··​};​
76 76
77 ··​/​/​·​The·​async_result·​constructor·​associates·​the·​completion·​handler·​object·​with77 ··​/​/​·​The·​async_result·​constructor·​associates·​the·​completion·​handler·​object·​with
78 ··​/​/​·​the·​result·​of·​the·​initiating·​function.​78 ··​/​/​·​the·​result·​of·​the·​initiating·​function.​
79 ··​explicit·​async_result(completi​on_handler_type&·​h)​79 ··​explicit·​async_result(completi​on_handler_type&·​h)​
80 ····​:​·​timeout_(h.​token_.​timeout_)​,​80 ····​:​·​timeout_(h.​token_.​timeout_)​,​
81 ······​socket_(h.​token_.​socket_)​81 ······​socket_(h.​token_.​socket_)​
82 ··​{82 ··​{
83 ····​h.​ec_·​=·​&ec_;​83 ····​h.​error_·​=·​&error_;​
84 ····​h.​t_·​=·​&t_;​84 ····​h.​t_·​=·​&t_;​
85 ··​}85 ··​}
86 86
87 ··​/​/​·​The·​return_type·​typedef·​determines·​the·​result·​type·​of·​the·​asynchronous87 ··​/​/​·​The·​return_type·​typedef·​determines·​the·​result·​type·​of·​the·​asynchronous
88 ··​/​/​·​operation's·​initiating·​function.​88 ··​/​/​·​operation's·​initiating·​function.​
89 ··​typedef·​T·​return_type;​89 ··​typedef·​T·​return_type;​
90 90
91 ··​/​/​·​The·​get()​·​function·​is·​used·​to·​obtain·​the·​result·​of·​the·​asynchronous91 ··​/​/​·​The·​get()​·​function·​is·​used·​to·​obtain·​the·​result·​of·​the·​asynchronous
92 ··​/​/​·​operation's·​initiating·​function.​·​For·​the·​close_after·​completion·​token,​·​we92 ··​/​/​·​operation's·​initiating·​function.​·​For·​the·​close_after·​completion·​token,​·​we
93 ··​/​/​·​use·​this·​function·​to·​run·​the·​io_context·​until·​the·​operation·​is·​complete.​93 ··​/​/​·​use·​this·​function·​to·​run·​the·​io_context·​until·​the·​operation·​is·​complete.​
94 ··​return_type·​get()​94 ··​return_type·​get()​
95 ··​{95 ··​{
96 ····​asio:​:​io_context&·​io_context·​=·​socket_.​get_executor()​.​context()​;​96 ····​asio:​:​io_context&·​io_context·​=·​socket_.​get_executor()​.​context()​;​
97 97
98 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state98 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state
99 ····​/​/​·​by·​a·​previous·​operation.​99 ····​/​/​·​by·​a·​previous·​operation.​
100 ····​io_context.​restart()​;​100 ····​io_context.​restart()​;​
101 101
102 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If102 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If
103 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline103 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline
104 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on104 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on
105 ····​/​/​·​the·​socket.​105 ····​/​/​·​the·​socket.​
106 ····​io_context.​run_for(timeout_)​;​106 ····​io_context.​run_for(timeout_)​;​
107 107
108 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context108 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context
109 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not109 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not
110 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out·​and·​the110 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out·​and·​the
111 ····​/​/​·​operation·​is·​still·​incomplete.​111 ····​/​/​·​operation·​is·​still·​incomplete.​
112 ····​if·​(!io_context.​stopped()​)​112 ····​if·​(!io_context.​stopped()​)​
113 ····​{113 ····​{
114 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​114 ······​/​/​·​Close·​the·​socket·​to·​cancel·​the·​outstanding·​asynchronous·​operation.​
115 ······​socket_.​close()​;​115 ······​socket_.​close()​;​
116 116
117 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​117 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​
118 ······​io_context.​run()​;​118 ······​io_context.​run()​;​
119 ····​}119 ····​}
120 120
121 ····​/​/​·​If·​the·​operation·​failed,​·​throw·​an·​exception.​·​Otherwise·​return·​the·​result.​121 ····​/​/​·​If·​the·​operation·​failed,​·​throw·​an·​exception.​·​Otherwise·​return·​the·​result.​
122 ····​return·​ec_·​?·​throw·asio:​:​system_error(ec_)​·​:​·​t_;​122 ····​return·​error_·​?·​throw·​std:​:​system_error(error_)​·​:​·​t_;​
123 ··​}123 ··​}
124 124
125 private:​125 private:​
126 ··asio:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​126 ··​std:​:​chrono:​:​steady_clock:​:​duration·​timeout_;​
127 ··​tcp:​:​socket&·​socket_;​127 ··​tcp:​:​socket&·​socket_;​
128 ··asio:​:​error_code·​ec_;​128 ··​std:​:​error_code·​error_;​
129 ··​T·​t_;​129 ··​T·​t_;​
130 };​130 };​
131 131
132 }·​/​/​·​namespace·​asio132 }·​/​/​·​namespace·​asio
133 133
134 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​134 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
135 135
136 int·​main(int·​argc,​·​char*·​argv[])​136 int·​main(int·​argc,​·​char*·​argv[])​
137 {137 {
138 ··​try138 ··​try
139 ··​{139 ··​{
140 ····​if·​(argc·​!=·​4)​140 ····​if·​(argc·​!=·​4)​
141 ····​{141 ····​{
142 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​142 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_tcp_client·​<host>·​<port>·​<message>\n";​
143 ······​return·​1;​143 ······​return·​1;​
144 ····​}144 ····​}
145 145
146 ····​asio:​:​io_context·​io_context;​146 ····​asio:​:​io_context·​io_context;​
147 147
148 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​148 ····​/​/​·​Resolve·​the·​host·​name·​and·​service·​to·​a·​list·​of·​endpoints.​
149 ····​tcp:​:​resolver:​:​results_type·endpoints·=149 ····auto·endpoints·=·​tcp:​:​resolver(io_context)​.​resolve(argv[1],​·argv[2])​;​
150 ······tcp:​:​resolver(io_context)​.​resolve(argv[1],​·argv[2])​;​
151 150
152 ····​tcp:​:​socket·​socket(io_context)​;​151 ····​tcp:​:​socket·​socket(io_context)​;​
153 152
154 ····​/​/​·​Run·​an·​asynchronous·​connect·​operation·​with·​a·​timeout.​153 ····​/​/​·​Run·​an·​asynchronous·​connect·​operation·​with·​a·​timeout.​
155 ····​asio:​:​async_connect(socket,​·​endpoints,​154 ····​asio:​:​async_connect(socket,​·​endpoints,​
156 ········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​155 ········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
157 156
158 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_sent·=157 ····​auto·time_sent·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
159 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
160 158
161 ····​/​/​·​Run·​an·​asynchronous·​write·​operation·​with·​a·​timeout.​159 ····​/​/​·​Run·​an·​asynchronous·​write·​operation·​with·​a·​timeout.​
162 ····​std:​:​string·​msg·​=·​argv[3]·​+·​std:​:​string("\n")​;​160 ····​std:​:​string·​msg·​=·​argv[3]·​+·​std:​:​string("\n")​;​
163 ····​asio:​:​async_write(socket,​·​asio:​:​buffer(msg)​,​161 ····​asio:​:​async_write(socket,​·​asio:​:​buffer(msg)​,​
164 ········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​162 ········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
165 163
166 ····​for·​(std:​:​string·​input_buffer;​;​)​164 ····​for·​(std:​:​string·​input_buffer;​;​)​
167 ····​{165 ····​{
168 ······​/​/​·​Run·​an·​asynchronous·​read·​operation·​with·​a·​timeout.​166 ······​/​/​·​Run·​an·​asynchronous·​read·​operation·​with·​a·​timeout.​
169 ······​std:​:​size_t·​n·​=·​asio:​:​async_read_until(sock​et,​167 ······​std:​:​size_t·​n·​=·​asio:​:​async_read_until(sock​et,​
170 ··········​asio:​:​dynamic_buffer(input_​buffer)​,​·​'\n',​168 ··········​asio:​:​dynamic_buffer(input_​buffer)​,​·​'\n',​
171 ··········​close_after(asio:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​169 ··········​close_after(std:​:​chrono:​:​seconds(10)​,​·​socket)​)​;​
172 170
173 ······​std:​:​string·​line(input_buffer.​substr(0,​·​n·​-​·​1)​)​;​171 ······​std:​:​string·​line(input_buffer.​substr(0,​·​n·​-​·​1)​)​;​
174 ······​input_buffer.​erase(0,​·​n)​;​172 ······​input_buffer.​erase(0,​·​n)​;​
175 173
176 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​174 ······​/​/​·​Keep·​going·​until·​we·​get·​back·​the·​line·​that·​was·​sent.​
177 ······​if·​(line·​==·​argv[3])​175 ······​if·​(line·​==·​argv[3])​
178 ········​break;​176 ········​break;​
179 ····​}177 ····​}
180 178
181 ····​asio:​:​chrono:​:​steady_clock:​:​time_point·time_received·=179 ····​auto·time_received·=·std:​:​chrono:​:​steady_clock:​:​now()​;​
182 ······asio:​:​chrono:​:​steady_clock:​:​now()​;​
183 180
184 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​181 ····​std:​:​cout·​<<·​"Round·​trip·​time:​·​";​
185 ····​std:​:​cout·​<<·asio:​:​chrono:​:​duration_cast<182 ····​std:​:​cout·​<<·​std:​:​chrono:​:​duration_cast<
186 ······asio:​:​chrono:​:​microseconds>(183 ······​std:​:​chrono:​:​microseconds>(
187 ········​time_received·​-​·​time_sent)​.​count()​;​184 ········​time_received·​-​·​time_sent)​.​count()​;​
188 ····​std:​:​cout·​<<·​"·​microseconds\n";​185 ····​std:​:​cout·​<<·​"·​microseconds\n";​
189 ··​}186 ··​}
190 ··​catch·​(std:​:​exception&·​e)​187 ··​catch·​(std:​:​exception&·​e)​
191 ··​{188 ··​{
192 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​189 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
193 ··​}190 ··​}
194 191
195 ··​return·​0;​192 ··​return·​0;​
196 }193 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html deleted file mode 100644 index 58858ce..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/blocking_udp_client.cpp.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - HTML Diff timeouts/blocking_udp_client.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​blocking_udp_client.​cppsrc/​examples/​cpp11/​timeouts/​blocking_udp_client.​cpp
1 /​/​1 /​/​
2 /​/​·​blocking_udp_client.​cpp2 /​/​·​blocking_udp_client.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~3 /​/​·​~~~~~~~~~~~~~~~~~~~~~​~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​"asio/​buffer.​hpp"11 #include·​"asio/​buffer.​hpp"
12 #include·​"asio/​io_context.​hpp"12 #include·​"asio/​io_context.​hpp"
13 #include·​"asio/​ip/​udp.​hpp"13 #include·​"asio/​ip/​udp.​hpp"
14 #include·​<cstdlib>14 #include·​<cstdlib>
15 #include·​<boost/​bind.​hpp>15 #include·​<functional>
16 #include·​<iostream>16 #include·​<iostream>
17 17
18 using·​asio:​:​ip:​:​udp;​18 using·​asio:​:​ip:​:​udp;​
19 using·​std:​:​placeholders:​:​_1;​
20 using·​std:​:​placeholders:​:​_2;​
19 21
20 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​22 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
21 23
22 /​/​24 /​/​
23 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​running·​the·​io_context·​using·​the·​timed25 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​running·​the·​io_context·​using·​the·​timed
24 /​/​·​io_context:​:​run_for()​·​member·​function.​·​Each·​asynchronous·​operation·​is·​given26 /​/​·​io_context:​:​run_for()​·​member·​function.​·​Each·​asynchronous·​operation·​is·​given
25 /​/​·​a·​timeout·​within·​which·​it·​must·​complete.​·​The·​socket·​operations·​themselves27 /​/​·​a·​timeout·​within·​which·​it·​must·​complete.​·​The·​socket·​operations·​themselves
26 /​/​·​use·boost:​:​bind·​to·​specify·​the·​completion·​handler:​28 /​/​·​use·​std:​:​bind·​to·​specify·​the·​completion·​handler:​
27 /​/​29 /​/​
28 /​/​···​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+30 /​/​···​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
29 /​/​···​|···············​|31 /​/​···​|···············​|
30 /​/​···​|····​receive····​|32 /​/​···​|····​receive····​|
31 /​/​···​|···············​|33 /​/​···​|···············​|
32 /​/​···​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+34 /​/​···​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
33 /​/​···········​|35 /​/​···········​|
34 /​/​··​async_-​··​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+36 /​/​··​async_-​··​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
35 /​/​·​receive()​·​|····​|················​|37 /​/​·​receive()​·​|····​|················​|
36 /​/​···········​+-​-​-​>|·​handle_receive·​|38 /​/​···········​+-​-​-​>|·​handle_receive·​|
37 /​/​················​|················​|39 /​/​················​|················​|
38 /​/​················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+40 /​/​················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
39 /​/​41 /​/​
40 /​/​·​For·​a·​given·​socket·​operation,​·​the·​client·​object·​runs·​the·​io_context·​to·​block42 /​/​·​For·​a·​given·​socket·​operation,​·​the·​client·​object·​runs·​the·​io_context·​to·​block
41 /​/​·​thread·​execution·​until·​the·​operation·​completes·​or·​the·​timeout·​is·​reached.​·​If43 /​/​·​thread·​execution·​until·​the·​operation·​completes·​or·​the·​timeout·​is·​reached.​·​If
42 /​/​·​the·​io_context:​:​run_for()​·​function·​times·​out,​·​the·​socket·​is·​closed·​and·​the44 /​/​·​the·​io_context:​:​run_for()​·​function·​times·​out,​·​the·​socket·​is·​closed·​and·​the
43 /​/​·​outstanding·​asynchronous·​operation·​is·​cancelled.​45 /​/​·​outstanding·​asynchronous·​operation·​is·​cancelled.​
44 /​/​46 /​/​
45 class·​client47 class·​client
46 {48 {
47 public:​49 public:​
48 ··​client(const·​udp:​:​endpoint&·​listen_endpoint)​50 ··​client(const·​udp:​:​endpoint&·​listen_endpoint)​
49 ····​:​·​socket_(io_context_,​·​listen_endpoint)​51 ····​:​·​socket_(io_context_,​·​listen_endpoint)​
50 ··​{52 ··​{
51 ··​}53 ··​}
52 54
53 ··​std:​:​size_t·​receive(const·​asio:​:​mutable_buffer&·​buffer,​55 ··​std:​:​size_t·​receive(const·​asio:​:​mutable_buffer&·​buffer,​
54 ······asio:​:​chrono:​:​steady_clock:​:​duration·​timeout,​56 ······​std:​:​chrono:​:​steady_clock:​:​duration·​timeout,​
55 ······asio:​:​error_code&·​ec)​57 ······​std:​:​error_code&·​error)​
56 ··​{58 ··​{
57 ····​/​/​·​Start·​the·​asynchronous·​operation.​·​The·​handle_receive·​function·​used·​as·​a59 ····​/​/​·​Start·​the·​asynchronous·​operation.​·​The·​handle_receive·​function·​used·​as·​a
58 ····​/​/​·​callback·​will·​update·​the·​ec·​and·​length·​variables.​60 ····​/​/​·​callback·​will·​update·​the·​error·​and·​length·​variables.​
59 ····​std:​:​size_t·​length·​=·​0;​61 ····​std:​:​size_t·​length·​=·​0;​
60 ····​socket_.​async_receive(asio:​:​buffer(buffer)​,​62 ····​socket_.​async_receive(asio:​:​buffer(buffer)​,​
61 ········boost:​:​bind(&client:​:​handle_receive,​·​_1,​·​_2,​·​&ec,​·​&length)​)​;​63 ········​std:​:​bind(&client:​:​handle_receive,​·​_1,​·​_2,​·​&error,​·​&length)​)​;​
62 64
63 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​65 ····​/​/​·​Run·​the·​operation·​until·​it·​completes,​·​or·​until·​the·​timeout.​
64 ····​run(timeout)​;​66 ····​run(timeout)​;​
65 67
66 ····​return·​length;​68 ····​return·​length;​
67 ··​}69 ··​}
68 70
69 private:​71 private:​
70 ··​void·​run(asio:​:​chrono:​:​steady_clock:​:​duration·​timeout)​72 ··​void·​run(std:​:​chrono:​:​steady_clock:​:​duration·​timeout)​
71 ··​{73 ··​{
72 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state74 ····​/​/​·​Restart·​the·​io_context,​·​as·​it·​may·​have·​been·​left·​in·​the·​"stopped"·​state
73 ····​/​/​·​by·​a·​previous·​operation.​75 ····​/​/​·​by·​a·​previous·​operation.​
74 ····​io_context_.​restart()​;​76 ····​io_context_.​restart()​;​
75 77
76 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If78 ····​/​/​·​Block·​until·​the·​asynchronous·​operation·​has·​completed,​·​or·​timed·​out.​·​If
77 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline79 ····​/​/​·​the·​pending·​asynchronous·​operation·​is·​a·​composed·​operation,​·​the·​deadline
78 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on80 ····​/​/​·​applies·​to·​the·​entire·​operation,​·​rather·​than·​individual·​operations·​on
79 ····​/​/​·​the·​socket.​81 ····​/​/​·​the·​socket.​
80 ····​io_context_.​run_for(timeout)​;​82 ····​io_context_.​run_for(timeout)​;​
81 83
82 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context84 ····​/​/​·​If·​the·​asynchronous·​operation·​completed·​successfully·​then·​the·​io_context
83 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not85 ····​/​/​·​would·​have·​been·​stopped·​due·​to·​running·​out·​of·​work.​·​If·​it·​was·​not
84 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out.​86 ····​/​/​·​stopped,​·​then·​the·​io_context:​:​run_for·​call·​must·​have·​timed·​out.​
85 ····​if·​(!io_context_.​stopped()​)​87 ····​if·​(!io_context_.​stopped()​)​
86 ····​{88 ····​{
87 ······​/​/​·​Cancel·​the·​outstanding·​asynchronous·​operation.​89 ······​/​/​·​Cancel·​the·​outstanding·​asynchronous·​operation.​
88 ······​socket_.​cancel()​;​90 ······​socket_.​cancel()​;​
89 91
90 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​92 ······​/​/​·​Run·​the·​io_context·​again·​until·​the·​operation·​completes.​
91 ······​io_context_.​run()​;​93 ······​io_context_.​run()​;​
92 ····​}94 ····​}
93 ··​}95 ··​}
94 96
95 ··​static·​void·​handle_receive(97 ··​static·​void·​handle_receive(
96 ······​const·asio:​:​error_code&·​ec,​·​std:​:​size_t·​length,​98 ······​const·​std:​:​error_code&·​error,​·​std:​:​size_t·​length,​
97 ······asio:​:​error_code*·​out_ec,​·​std:​:​size_t*·​out_length)​99 ······​std:​:​error_code*·​out_error,​·​std:​:​size_t*·​out_length)​
98 ··​{100 ··​{
99 ····​*out_ec·​=·​ec;​101 ····​*out_error·​=·​error;​
100 ····​*out_length·​=·​length;​102 ····​*out_length·​=·​length;​
101 ··​}103 ··​}
102 104
103 private:​105 private:​
104 ··​asio:​:​io_context·​io_context_;​106 ··​asio:​:​io_context·​io_context_;​
105 ··​udp:​:​socket·​socket_;​107 ··​udp:​:​socket·​socket_;​
106 };​108 };​
107 109
108 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​110 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
109 111
110 int·​main(int·​argc,​·​char*·​argv[])​112 int·​main(int·​argc,​·​char*·​argv[])​
111 {113 {
112 ··​try114 ··​try
113 ··​{115 ··​{
114 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​116 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
115 117
116 ····​if·​(argc·​!=·​3)​118 ····​if·​(argc·​!=·​3)​
117 ····​{119 ····​{
118 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_client·​<listen_addr>·​<listen_port>\n";​120 ······​std:​:​cerr·​<<·​"Usage:​·​blocking_udp_client·​<listen_addr>·​<listen_port>\n";​
119 ······​return·​1;​121 ······​return·​1;​
120 ····​}122 ····​}
121 123
122 ····​udp:​:​endpoint·​listen_endpoint(124 ····​udp:​:​endpoint·​listen_endpoint(
123 ········​asio:​:​ip:​:​make_address(argv[1])​,​125 ········​asio:​:​ip:​:​make_address(argv[1])​,​
124 ········​std:​:​atoi(argv[2])​)​;​126 ········​std:​:​atoi(argv[2])​)​;​
125 127
126 ····​client·​c(listen_endpoint)​;​128 ····​client·​c(listen_endpoint)​;​
127 129
128 ····​for·​(;​;​)​130 ····​for·​(;​;​)​
129 ····​{131 ····​{
130 ······​char·​data[1024];​132 ······​char·​data[1024];​
131 ······asio:​:​error_code·​ec;​133 ······​std:​:​error_code·​error;​
132 ······​std:​:​size_t·​n·​=·​c.​receive(asio:​:​buffer(data)​,​134 ······​std:​:​size_t·​n·​=·​c.​receive(asio:​:​buffer(data)​,​
133 ··········asio:​:​chrono:​:​seconds(10)​,​·​ec)​;​135 ··········​std:​:​chrono:​:​seconds(10)​,​·​error)​;​
134 136
135 ······​if·​(ec)​137 ······​if·​(error)​
136 ······​{138 ······​{
137 ········​std:​:​cout·​<<·​"Receive·​error:​·​"·​<<·​ec.​message()​·​<<·​"\n";​·139 ········​std:​:​cout·​<<·​"Receive·​error:​·​"·​<<·​error.​message()​·​<<·​"\n";​·
138 ······​}140 ······​}
139 ······​else141 ······​else
140 ······​{142 ······​{
141 ········​std:​:​cout·​<<·​"Received:​·​";​143 ········​std:​:​cout·​<<·​"Received:​·​";​
142 ········​std:​:​cout.​write(data,​·​n)​;​144 ········​std:​:​cout.​write(data,​·​n)​;​
143 ········​std:​:​cout·​<<·​"\n";​145 ········​std:​:​cout·​<<·​"\n";​
144 ······​}146 ······​}
145 ····​}147 ····​}
146 ··​}148 ··​}
147 ··​catch·​(std:​:​exception&·​e)​149 ··​catch·​(std:​:​exception&·​e)​
148 ··​{150 ··​{
149 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​151 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
150 ··​}152 ··​}
151 153
152 ··​return·​0;​154 ··​return·​0;​
153 }155 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timeouts/server.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timeouts/server.cpp.html deleted file mode 100644 index 8e60f24..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timeouts/server.cpp.html +++ /dev/null @@ -1,521 +0,0 @@ - - - - - - - HTML Diff timeouts/server.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timeouts/​server.​cppsrc/​examples/​cpp11/​timeouts/​server.​cpp
1 /​/​1 /​/​
2 /​/​·​server.​cpp2 /​/​·​server.​cpp
3 /​/​·​~~~~~~~~~~3 /​/​·​~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<algorithm>11 #include·​<algorithm>
12 #include·​<cstdlib>12 #include·​<cstdlib>
13 #include·​<deque>13 #include·​<deque>
14 #include·​<iostream>14 #include·​<iostream>
15 #include·​<memory>
15 #include·​<set>16 #include·​<set>
16 #include·​<string>17 #include·​<string>
17 #include·​<boost/​bind.​hpp>
18 #include·​<boost/​shared_ptr.​hpp>
19 #include·​<boost/​enable_shared_from_th​is.​hpp>
20 #include·​"asio/​buffer.​hpp"18 #include·​"asio/​buffer.​hpp"
21 #include·​"asio/​io_context.​hpp"19 #include·​"asio/​io_context.​hpp"
22 #include·​"asio/​ip/​tcp.​hpp"20 #include·​"asio/​ip/​tcp.​hpp"
23 #include·​"asio/​ip/​udp.​hpp"21 #include·​"asio/​ip/​udp.​hpp"
24 #include·​"asio/​read_until.​hpp"22 #include·​"asio/​read_until.​hpp"
25 #include·​"asio/​steady_timer.​hpp"23 #include·​"asio/​steady_timer.​hpp"
26 #include·​"asio/​write.​hpp"24 #include·​"asio/​write.​hpp"
27 25
28 using·​asio:​:​steady_timer;​26 using·​asio:​:​steady_timer;​
29 using·​asio:​:​ip:​:​tcp;​27 using·​asio:​:​ip:​:​tcp;​
30 using·​asio:​:​ip:​:​udp;​28 using·​asio:​:​ip:​:​udp;​
31 29
32 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​30 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
33 31
34 class·​subscriber32 class·​subscriber
35 {33 {
36 public:​34 public:​
37 ··​virtual·​~subscriber()​·{}35 ··​virtual·​~subscriber()​·=·default;​
38 ··​virtual·​void·​deliver(const·​std:​:​string&·​msg)​·​=·​0;​36 ··​virtual·​void·​deliver(const·​std:​:​string&·​msg)​·​=·​0;​
39 };​37 };​
40 38
41 typedef·boost:​:​shared_ptr<subscriber​>·​subscriber_ptr;​39 typedef·​std:​:​shared_ptr<subscriber​>·​subscriber_ptr;​
42 40
43 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​41 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
44 42
45 class·​channel43 class·​channel
46 {44 {
47 public:​45 public:​
48 ··​void·​join(subscriber_ptr·​subscriber)​46 ··​void·​join(subscriber_ptr·​subscriber)​
49 ··​{47 ··​{
50 ····​subscribers_.​insert(subscriber)​;​48 ····​subscribers_.​insert(subscriber)​;​
51 ··​}49 ··​}
52 50
53 ··​void·​leave(subscriber_ptr·​subscriber)​51 ··​void·​leave(subscriber_ptr·​subscriber)​
54 ··​{52 ··​{
55 ····​subscribers_.​erase(subscriber)​;​53 ····​subscribers_.​erase(subscriber)​;​
56 ··​}54 ··​}
57 55
58 ··​void·​deliver(const·​std:​:​string&·​msg)​56 ··​void·​deliver(const·​std:​:​string&·​msg)​
59 ··​{57 ··​{
60 ····std:​:​for_each(subscribers_​.​begin()​,​·​subscribers_.​end()​,​58 ····​for·(const·auto&·s·:​·​subscribers_)​
61 ········boost:​:​bind(&subscriber:​:​deliver,​·_1,​·boost:​:​ref(msg)​)​)​;​59 ····{
60 ······​s-​>deliver(msg)​;​
61 ····​}
62 ··​}62 ··​}
63 63
64 private:​64 private:​
65 ··​std:​:​set<subscriber_ptr>·​subscribers_;​65 ··​std:​:​set<subscriber_ptr>·​subscribers_;​
66 };​66 };​
67 67
68 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​68 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
69 69
70 /​/​70 /​/​
71 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​applying·​the·​concept·​of·​a·​deadline.​71 /​/​·​This·​class·​manages·​socket·​timeouts·​by·​applying·​the·​concept·​of·​a·​deadline.​
72 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​72 /​/​·​Some·​asynchronous·​operations·​are·​given·​deadlines·​by·​which·​they·​must·​complete.​
73 /​/​·​Deadlines·​are·​enforced·​by·​two·​"actors"·​that·​persist·​for·​the·​lifetime·​of·​the73 /​/​·​Deadlines·​are·​enforced·​by·​two·​"actors"·​that·​persist·​for·​the·​lifetime·​of·​the
74 /​/​·​session·​object,​·​one·​for·​input·​and·​one·​for·​output:​74 /​/​·​session·​object,​·​one·​for·​input·​and·​one·​for·​output:​
75 /​/​75 /​/​
76 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+·····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+76 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+······················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
77 /​/​··​|················​|·····················​|················​|77 /​/​··​|················​|······················​|················​|
78 /​/​··​|·​check_deadline·​|<-​-​-​+················​|·​check_deadline·​|<-​-​-​+78 /​/​··​|·​check_deadline·​|<-​-​-​-​-​-​-​+·············​|·​check_deadline·​|<-​-​-​-​-​-​-​+
79 /​/​··​|················​|····|·async_wait()​···​|················​|····|·async_wait()​79 /​/​··​|················​|········|·············​|················​|········|
80 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|··on·input······​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|··on·output80 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|·············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|
81 /​/​··············​|·········|··deadline··················​|·········|··deadline81 /​/​···············​|············|··························​|············|
82 /​/​··············​+-​-​-​-​-​-​-​-​-​+····························+-​-​-​-​-​-​-​-​-​+82 /​/​··async_wait()​·|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····async_wait()​·|····+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
83 /​/​···​on·​input····​|····​|·····​lambda·····​|·····​on·​output···​|····​|·····​lambda·····​|
84 /​/​···​deadline····​+-​-​-​>|·······​in·······​|·····​deadline····​+-​-​-​>|·······​in·······​|
85 /​/​····················​|·​check_deadline·​|······················​|·​check_deadline·​|
86 /​/​····················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+······················​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
83 /​/​87 /​/​
84 /​/​·​If·​either·​deadline·​actor·​determines·​that·​the·​corresponding·​deadline·​has88 /​/​·​If·​either·​deadline·​actor·​determines·​that·​the·​corresponding·​deadline·​has
85 /​/​·​expired,​·​the·​socket·​is·​closed·​and·​any·​outstanding·​operations·​are·​cancelled.​89 /​/​·​expired,​·​the·​socket·​is·​closed·​and·​any·​outstanding·​operations·​are·​cancelled.​
86 /​/​90 /​/​
87 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited91 /​/​·​The·​input·​actor·​reads·​messages·​from·​the·​socket,​·​where·​messages·​are·​delimited
88 /​/​·​by·​the·​newline·​character:​92 /​/​·​by·​the·​newline·​character:​
89 /​/​93 /​/​
90 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+94 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
91 /​/​··​|············​|95 /​/​··​|·············​|
92 /​/​··​|·start_read·​|<-​-​-​+96 /​/​··​|··read_line··​|<-​-​-​-​+
93 /​/​··​|············​|····​|97 /​/​··​|·············​|·····​|
94 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​+····​|98 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+·····​|
95 /​/​··········​|·········​|99 /​/​··········​|···········​|
96 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+100 /​/​··​async_-​·​|····​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
97 /​/​···​read_-​·​|····​|·············​|101 /​/​···​read_-​·​|····​|···lambda····​|
98 /​/​··​until()​·​+-​-​-​>|·handle_read·​|102 /​/​··​until()​·​+-​-​-​>|·····in······​|
99 /​/​···············​|·············​|103 /​/​···············​|··read_line··​|
100 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+104 /​/​···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​+
101 /​/​105 /​/​
102 /​/​·​The·​deadline·​for·​receiving·​a·​complete·​message·​is·​30·​seconds.​·​If·​a·​non-​empty106 /​/​·​The·​deadline·​for·​receiving·​a·​complete·​message·​is·​30·​seconds.​·​If·​a·​non-​empty
103 /​/​·​message·​is·​received,​·​it·​is·​delivered·​to·​all·​subscribers.​·​If·​a·​heartbeat·​(a107 /​/​·​message·​is·​received,​·​it·​is·​delivered·​to·​all·​subscribers.​·​If·​a·​heartbeat·​(a
104 /​/​·​message·​that·​consists·​of·​a·​single·​newline·​character)​·​is·​received,​·​a·​heartbeat108 /​/​·​message·​that·​consists·​of·​a·​single·​newline·​character)​·​is·​received,​·​a·​heartbeat
105 /​/​·​is·​enqueued·​for·​the·​client,​·​provided·​there·​are·​no·​other·​messages·​waiting·​to109 /​/​·​is·​enqueued·​for·​the·​client,​·​provided·​there·​are·​no·​other·​messages·​waiting·​to
106 /​/​·​be·​sent.​110 /​/​·​be·​sent.​
107 /​/​111 /​/​
108 /​/​·​The·​output·​actor·​is·​responsible·​for·​sending·​messages·​to·​the·​client:​112 /​/​·​The·​output·​actor·​is·​responsible·​for·​sending·​messages·​to·​the·​client:​
109 /​/​113 /​/​
110 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+114 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
111 /​/​··​|··············​|<-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+115 /​/​··​|················​|<-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
112 /​/​··​|·​await_output·​|······················​|116 /​/​··​|··​await_output··​|······················​|
113 /​/​··​|··············​|<-​-​-​+·················​|117 /​/​··​|················​|<-​-​-​-​-​-​-​+·············​|
114 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····|·················​|118 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+········|·············​|
115 /​/​······|······|········|·async_wait()​····​|119 /​/​····|············|··········|·············​|
116 /​/​······|······​+-​-​-​-​-​-​-​-​+·················​|120 /​/​····|····async_-​·|··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|
117 /​/​······V·································​|121 /​/​····|·····wait()​·|··|·····lambda·····|····​|
118 /​/​··+-​-​-​-​-​-​-​-​-​-​-​-​-​+···············+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+122 /​/​····|············+-​>|·······in·······|····|
119 /​/​··|·············|·async_write()​·|··············​|123 /​/​····|···············|··await_output··|····​|
120 /​/​··​|·start_write·|-​-​-​-​-​-​-​-​-​-​-​-​-​-​>|·handle_write·​|124 /​/​····​|···············+-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​+····​|
121 /​/​··|·············|···············|··············​|125 /​/​····V·····································​|
122 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+126 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
127 /​/​··​|··············​|·​async_write()​·​|····​lambda····​|
128 /​/​··​|··​write_line··​|-​-​-​-​-​-​-​-​-​-​-​-​-​-​>|······​in······​|
129 /​/​··​|··············​|···············​|··​write_line··​|
130 /​/​··​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+···············​+-​-​-​-​-​-​-​-​-​-​-​-​-​-​+
123 /​/​131 /​/​
124 /​/​·​The·​output·​actor·​first·​waits·​for·​an·​output·​message·​to·​be·​enqueued.​·​It·​does132 /​/​·​The·​output·​actor·​first·​waits·​for·​an·​output·​message·​to·​be·​enqueued.​·​It·​does
125 /​/​·​this·​by·​using·​a·​steady_timer·​as·​an·​asynchronous·​condition·​variable.​·​The133 /​/​·​this·​by·​using·​a·​steady_timer·​as·​an·​asynchronous·​condition·​variable.​·​The
126 /​/​·​steady_timer·​will·​be·​signalled·​whenever·​the·​output·​queue·​is·​non-​empty.​134 /​/​·​steady_timer·​will·​be·​signalled·​whenever·​the·​output·​queue·​is·​non-​empty.​
127 /​/​135 /​/​
128 /​/​·​Once·​a·​message·​is·​available,​·​it·​is·​sent·​to·​the·​client.​·​The·​deadline·​for136 /​/​·​Once·​a·​message·​is·​available,​·​it·​is·​sent·​to·​the·​client.​·​The·​deadline·​for
129 /​/​·​sending·​a·​complete·​message·​is·​30·​seconds.​·​After·​the·​message·​is·​successfully137 /​/​·​sending·​a·​complete·​message·​is·​30·​seconds.​·​After·​the·​message·​is·​successfully
130 /​/​·​sent,​·​the·​output·​actor·​again·​waits·​for·​the·​output·​queue·​to·​become·​non-​empty.​138 /​/​·​sent,​·​the·​output·​actor·​again·​waits·​for·​the·​output·​queue·​to·​become·​non-​empty.​
131 /​/​139 /​/​
132 class·​tcp_session140 class·​tcp_session
133 ··​:​·​public·​subscriber,​141 ··​:​·​public·​subscriber,​
134 ····​public·boost:​:​enable_shared_from_th​is<tcp_session>142 ····​public·​std:​:​enable_shared_from_th​is<tcp_session>
135 {143 {
136 public:​144 public:​
137 ··​tcp_session(asio:​:​io_context&·io_context,​·​channel&·​ch)​145 ··​tcp_session(tcp:​:​socket·socket,​·​channel&·​ch)​
138 ····​:​·​channel_(ch)​,​146 ····​:​·​channel_(ch)​,​
139 ······​socket_(io_context)​,​147 ······​socket_(std:​:​move(socket)​)​
140 ······input_deadline_(io_co​ntext)​,​
141 ······non_empty_output_queu​e_(io_context)​,​
142 ······output_deadline_(io_c​ontext)​
143 ··​{148 ··​{
144 ····​input_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​149 ····​input_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
145 ····​output_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​150 ····​output_deadline_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
146 151
147 ····​/​/​·​The·​non_empty_output_queu​e_·​steady_timer·​is·​set·​to·​the·​maximum·​time152 ····​/​/​·​The·​non_empty_output_queu​e_·​steady_timer·​is·​set·​to·​the·​maximum·​time
148 ····​/​/​·​point·​whenever·​the·​output·​queue·​is·​empty.​·​This·​ensures·​that·​the·​output153 ····​/​/​·​point·​whenever·​the·​output·​queue·​is·​empty.​·​This·​ensures·​that·​the·​output
149 ····​/​/​·​actor·​stays·​asleep·​until·​a·​message·​is·​put·​into·​the·​queue.​154 ····​/​/​·​actor·​stays·​asleep·​until·​a·​message·​is·​put·​into·​the·​queue.​
150 ····​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​155 ····​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
151 ··​}156 ··​}
152 157
153 ··​tcp:​:​socket&·​socket()​
154 ··​{
155 ····​return·​socket_;​
156 ··​}
157
158 ··​/​/​·​Called·​by·​the·​server·​object·​to·​initiate·​the·​four·​actors.​158 ··​/​/​·​Called·​by·​the·​server·​object·​to·​initiate·​the·​four·​actors.​
159 ··​void·​start()​159 ··​void·​start()​
160 ··​{160 ··​{
161 ····​channel_.​join(shared_from_this​()​)​;​161 ····​channel_.​join(shared_from_this​()​)​;​
162 162
163 ····start_read()​;​163 ····read_line()​;​
164 164 ····check_deadline(input_​deadline_)​;​
165 ····input_deadline_.​async_wait(
166 ········boost:​:​bind(&tcp_session:​:​check_deadline,​
167 ········shared_from_this()​,​·&input_deadline_)​)​;​
168 165
169 ····​await_output()​;​166 ····​await_output()​;​
170 167 ····check_deadline(output​_deadline_)​;​
171 ····output_deadline_.​async_wait(
172 ········boost:​:​bind(&tcp_session:​:​check_deadline,​
173 ········shared_from_this()​,​·&output_deadline_)​)​;​
174 ··​}168 ··​}
175 169
176 private:​170 private:​
177 ··​void·​stop()​171 ··​void·​stop()​
178 ··​{172 ··​{
179 ····​channel_.​leave(shared_from_thi​s()​)​;​173 ····​channel_.​leave(shared_from_thi​s()​)​;​
180 174
181 ····asio:​:​error_code·​ignored_ec;​175 ····​std:​:​error_code·​ignored_error;​
182 ····​socket_.​close(ignored_ec)​;​176 ····​socket_.​close(ignored_error)​;​
183 ····​input_deadline_.​cancel()​;​177 ····​input_deadline_.​cancel()​;​
184 ····​non_empty_output_queu​e_.​cancel()​;​178 ····​non_empty_output_queu​e_.​cancel()​;​
185 ····​output_deadline_.​cancel()​;​179 ····​output_deadline_.​cancel()​;​
186 ··​}180 ··​}
187 181
188 ··​bool·​stopped()​·​const182 ··​bool·​stopped()​·​const
189 ··​{183 ··​{
190 ····​return·​!socket_.​is_open()​;​184 ····​return·​!socket_.​is_open()​;​
191 ··​}185 ··​}
192 186
193 ··​void·​deliver(const·​std:​:​string&·​msg)​187 ··​void·​deliver(const·​std:​:​string&·​msg)​·override
194 ··​{188 ··​{
195 ····​output_queue_.​push_back(msg·​+·​"\n")​;​189 ····​output_queue_.​push_back(msg·​+·​"\n")​;​
196 190
197 ····​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying·​the·​expiry191 ····​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying·​the·​expiry
198 ····​/​/​·​will·​wake·​the·​output·​actor,​·​if·​it·​is·​waiting·​on·​the·​timer.​192 ····​/​/​·​will·​wake·​the·​output·​actor,​·​if·​it·​is·​waiting·​on·​the·​timer.​
199 ····​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​min()​)​;​193 ····​non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​min()​)​;​
200 ··​}194 ··​}
201 195
202 ··​void·start_read()​196 ··​void·read_line()​
203 ··​{197 ··​{
204 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​198 ····​/​/​·​Set·​a·​deadline·​for·​the·​read·​operation.​
205 ····​input_deadline_.​expires_after(asio:​:​chrono:​:​seconds(30)​)​;​199 ····​input_deadline_.​expires_after(std:​:​chrono:​:​seconds(30)​)​;​
206 200
207 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​read·​a·​newline-​delimited·​message.​201 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​read·​a·​newline-​delimited·​message.​
202 ····​auto·​self(shared_from_this​()​)​;​
208 ····​asio:​:​async_read_until(sock​et_,​203 ····​asio:​:​async_read_until(sock​et_,​
209 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​204 ········​asio:​:​dynamic_buffer(input_​buffer_)​,​·​'\n',​
210 ········boost:​:​bind(&tcp_session:​:​handle_read,​·shared_from_this()​,​·_1,​·_2)​)​;​205 ········[this,​·self](const·std:​:​error_code&·error,​·std:​:​size_t·n)​
211 ··}
212
213 ··void·handle_read(const·asio:​:​error_code&·ec,​·std:​:​size_t·n)​
214 ··{
215 ····if·(stopped()​)​
216 ······return;​
217
218 ····if·(!ec)​
219 ····{
220 ······/​/​·Extract·the·newline-​delimited·message·from·the·buffer.​
221 ······std:​:​string·msg(input_buffer_.​substr(0,​·n·-​·1)​)​;​
222 ······input_buffer_.​erase(0,​·n)​;​
223
224 ······if·(!msg.​empty()​)​
225 ······{
226 ········channel_.​deliver(msg)​;​
227 ······}
228 ······else
229 ······{
230 ········/​/​·We·received·a·heartbeat·message·from·the·client.​·If·there's·nothing
231 ········/​/​·else·being·sent·or·ready·to·be·sent,​·send·a·heartbeat·right·back.​
232 ········if·(output_queue_.​empty()​)​
233 ········​{206 ········​{
234 ··········​output_queue_.​push_back("\n")​;​207 ··········/​/​·Check·if·the·session·was·stopped·while·the·operation·was·pending.​
235 208 ··········if·(stopped()​)​
236 ··········/​/​·Signal·that·the·output·queue·contains·messages.​·Modifying·the209 ············return;​
237 ··········/​/​·expiry·will·wake·the·output·actor,​·if·it·is·waiting·on·the·timer.​210
238 ··········non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​min()​)​;​211 ··········​if·(!error)​
239 ········}212 ··········{
240 ······}213 ············/​/​·Extract·the·newline-​delimited·message·from·the·buffer.​
241 214 ············std:​:​string·msg(input_buffer_.​substr(0,​·n·-​·1)​)​;​
242 ······start_read()​;​215 ············input_buffer_.​erase(0,​·n)​;​
243 ····}216
244 ····else217 ············if·(!msg.​empty()​)​
245 ····​{218 ············​{
246 ······stop()​;​219 ··············channel_.​deliver(msg)​;​
247 ····​}220 ············​}
221 ············​else
222 ············​{
223
224 ··············​/​/​·​We·​received·​a·​heartbeat·​message·​from·​the·​client.​·​If·​there's
225 ··············​/​/​·​nothing·​else·​being·​sent·​or·​ready·​to·​be·​sent,​·​send·​a·​heartbeat
226 ··············​/​/​·​right·​back.​
227 ··············​if·​(output_queue_.​empty()​)​
228 ··············​{
229 ················​output_queue_.​push_back("\n")​;​
230
231 ················​/​/​·​Signal·​that·​the·​output·​queue·​contains·​messages.​·​Modifying
232 ················​/​/​·​the·​expiry·​will·​wake·​the·​output·​actor,​·​if·​it·​is·​waiting·​on
233 ················​/​/​·​the·​timer.​
234 ················​non_empty_output_queu​e_.​expires_at(
235 ····················​steady_timer:​:​time_point:​:​min()​)​;​
236 ··············​}
237 ············​}
238
239 ············​read_line()​;​
240 ··········​}
241 ··········​else
242 ··········​{
243 ············​stop()​;​
244 ··········​}
245 ········​})​;​
248 ··​}246 ··​}
249 247
250 ··​void·​await_output()​248 ··​void·​await_output()​
251 ··​{249 ··​{
252 ····if·​(stopped()​)​250 ····auto·self(shared_from_this​()​)​;​
253 ······return;​251 ····non_empty_output_queu​e_.​async_wait(
254 252 ········[this,​·self](const·std:​:​error_code&·/​*error*/​)​
255 ····if·(output_queue_.​empty()​)​253 ········{
256 ····{254 ··········/​/​·Check·if·the·session·was·stopped·while·the·operation·was·pending.​
257 ······/​/​·There·are·no·messages·that·are·ready·to·be·sent.​·The·actor·goes·to255 ··········if·(stopped()​)​
258 ······/​/​·sleep·by·waiting·on·the·non_empty_output_queu​e_·timer.​·When·a·new256 ············return;​
259 ······/​/​·message·is·added,​·the·timer·will·be·modified·and·the·actor·will·wake.​257
260 ······non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​258 ··········if·(output_queue_.​empty()​)​
261 ······non_empty_output_queu​e_.​async_wait(259 ··········{
262 ··········boost:​:​bind(&tcp_session:​:​await_output,​·shared_from_this()​)​)​;​260 ············/​/​·There·are·no·messages·that·are·ready·to·be·sent.​·The·actor·goes
263 ····}261 ············/​/​·to·sleep·by·waiting·on·the·non_empty_output_queu​e_·timer.​·When·a
264 ····​else262 ············/​/​·new·message·is·added,​·the·timer·will·be·modified·and·the·actor
265 ····{263 ············/​/​·will·wake.​
266 ······​start_write()​;​264 ············non_empty_output_queu​e_.​expires_at(steady_tim​er:​:​time_point:​:​max()​)​;​
267 ····}265 ············await_output()​;​
266 ··········​}
267 ··········​else
268 ··········​{
269 ············​write_line()​;​
270 ··········​}
271 ········​})​;​
268 ··​}272 ··​}
269 273
270 ··​void·start_write()​274 ··​void·write_line()​
271 ··​{275 ··​{
272 ····​/​/​·​Set·​a·​deadline·​for·​the·​write·​operation.​276 ····​/​/​·​Set·​a·​deadline·​for·​the·​write·​operation.​
273 ····​output_deadline_.​expires_after(asio:​:​chrono:​:​seconds(30)​)​;​277 ····​output_deadline_.​expires_after(std:​:​chrono:​:​seconds(30)​)​;​
274 278
275 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​message.​279 ····​/​/​·​Start·​an·​asynchronous·​operation·​to·​send·​a·​message.​
280 ····​auto·​self(shared_from_this​()​)​;​
276 ····​asio:​:​async_write(socket_,​281 ····​asio:​:​async_write(socket_,​
277 ········​asio:​:​buffer(output_queue_.​front()​)​,​282 ········​asio:​:​buffer(output_queue_.​front()​)​,​
278 ········boost:​:​bind(&tcp_session:​:​handle_write,​·shared_from_this()​,​·_1)​)​;​283 ········[this,​·self](const·std:​:​error_code&·error,​·std:​:​size_t·/​*n*/​)​
279 ··}284 ········{
280 285 ··········/​/​·Check·if·the·session·was·stopped·while·the·operation·was·pending.​
281 ··void·handle_write(const·asio:​:​error_code&·ec)​286 ··········if·(stopped()​)​
282 ··{287 ············return;​
283 ····if·(stopped()​)​288
284 ······return;​289 ··········if·(!error)​
285 290 ··········{
286 ····if·(!ec)​291 ············output_queue_.​pop_front()​;​
287 ····{292
288 ······output_queue_.​pop_front()​;​293 ············await_output()​;​
289 294 ··········}
290 ······await_output()​;​295 ··········else
291 ····}296 ··········{
292 ····else297 ············stop()​;​
293 ····{298 ··········}
294 ······stop()​;​299 ········})​;​
295 ····​}300 ··​}
296 ··}301
297 302 ··void·check_deadline(steady​_timer&·deadline)​
298 ··void·check_deadline(steady​_timer*·deadline)​303 ··{
299 ··{304 ····auto·self(shared_from_this​()​)​;​
300 ····​if·(stopped()​)​305 ····deadline.​async_wait(
301 ······​return;​306 ········[this,​·self,​·&deadline](const·std:​:​error_code&·/​*error*/​)​
302 307 ········{
303 ····/​/​·Check·whether·​the·deadline·has·passed.​·We·compare·​the·deadline·against308 ··········/​/​·Check·if·​the·session·was·​stopped·while·​the·operation·was·pending.​
304 ····/​/​·the·current·time·since·a·new·asynchronous·operation·may·have·moved·the309 ··········if·(stopped()​)​
305 ····/​/​·deadline·before·this·actor·had·a·chance·to·run.​310 ············return;​
306 ····if·(deadline-​>expiry()​·<=·steady_timer:​:​clock_type:​:​now()​)​311
307 ····{312 ··········/​/​·Check·whether·the·deadline·has·passed.​·We·compare·the·deadline
308 ······/​/​·The·deadline·has·passed.​·Stop·the·session.​·The·​other·actors·will313 ··········/​/​·​against·the·current·time·since·a·new·asynchronous·​operation·may
309 ······​/​/​·​terminate·as·soon·​as·possible.​314 ··········​/​/​·have·moved·​the·deadline·before·this·actor·had·a·chance·to·run.​
310 ······​stop()​;​315 ··········if·(deadline.​expiry()​·<=·​steady_timer:​:​clock_type:​:​now()​)​
311 ····}316 ··········{
312 ····​else317 ············/​/​·The·deadline·has·passed.​·Stop·the·session.​·The·other·actors·will
313 ····{318 ············/​/​·terminate·as·soon·as·possible.​
314 ······/​/​·Put·the·actor·back·to·​sleep.​319 ············​stop()​;​
315 ······deadline-​>async_wait(320 ··········}
316 ··········boost:​:​bind(&tcp_session:​:​check_deadline,​321 ··········​else
317 ··········shared_from_this()​,​·deadline)​)​;​322 ··········{
318 ····}323 ············/​/​·Put·the·actor·back·to·sleep.​
324 ············​check_deadline(deadli​ne)​;​
325 ··········​}
326 ········​})​;​
319 ··​}327 ··​}
320 328
321 ··​channel&·​channel_;​329 ··​channel&·​channel_;​
322 ··​tcp:​:​socket·​socket_;​330 ··​tcp:​:​socket·​socket_;​
323 ··​std:​:​string·​input_buffer_;​331 ··​std:​:​string·​input_buffer_;​
324 ··​steady_timer·​input_deadline_;​332 ··​steady_timer·​input_deadline_{socke​t_.​get_executor()​.​context()​};​
325 ··​std:​:​deque<std:​:​string>·​output_queue_;​333 ··​std:​:​deque<std:​:​string>·​output_queue_;​
326 ··​steady_timer·​non_empty_output_queu​e_;​334 ··​steady_timer·​non_empty_output_queu​e_{socket_.​get_executor()​.​context()​};​
327 ··​steady_timer·​output_deadline_;​335 ··​steady_timer·​output_deadline_{sock​et_.​get_executor()​.​context()​};​
328 };​336 };​
329 337
330 typedef·boost:​:​shared_ptr<tcp_sessio​n>·​tcp_session_ptr;​338 typedef·​std:​:​shared_ptr<tcp_sessio​n>·​tcp_session_ptr;​
331 339
332 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​340 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
333 341
334 class·​udp_broadcaster342 class·​udp_broadcaster
335 ··​:​·​public·​subscriber343 ··​:​·​public·​subscriber
336 {344 {
337 public:​345 public:​
338 ··​udp_broadcaster(asio:​:​io_context&·​io_context,​346 ··​udp_broadcaster(asio:​:​io_context&·​io_context,​
339 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​347 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​
340 ····​:​·​socket_(io_context)​348 ····​:​·​socket_(io_context)​
341 ··​{349 ··​{
342 ····​socket_.​connect(broadcast_end​point)​;​350 ····​socket_.​connect(broadcast_end​point)​;​
343 ····​socket_.​set_option(udp:​:​socket:​:​broadcast(true)​)​;​351 ····​socket_.​set_option(udp:​:​socket:​:​broadcast(true)​)​;​
344 ··​}352 ··​}
345 353
346 private:​354 private:​
347 ··​void·​deliver(const·​std:​:​string&·​msg)​355 ··​void·​deliver(const·​std:​:​string&·​msg)​
348 ··​{356 ··​{
349 ····asio:​:​error_code·​ignored_ec;​357 ····​std:​:​error_code·​ignored_error;​
350 ····​socket_.​send(asio:​:​buffer(msg)​,​·​0,​·​ignored_ec)​;​358 ····​socket_.​send(asio:​:​buffer(msg)​,​·​0,​·​ignored_error)​;​
351 ··​}359 ··​}
352 360
353 ··​udp:​:​socket·​socket_;​361 ··​udp:​:​socket·​socket_;​
354 };​362 };​
355 363
356 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​364 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
357 365
358 class·​server366 class·​server
359 {367 {
360 public:​368 public:​
361 ··​server(asio:​:​io_context&·​io_context,​369 ··​server(asio:​:​io_context&·​io_context,​
362 ······​const·​tcp:​:​endpoint&·​listen_endpoint,​370 ······​const·​tcp:​:​endpoint&·​listen_endpoint,​
363 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​371 ······​const·​udp:​:​endpoint&·​broadcast_endpoint)​
364 ····​:​·​io_context_(io_contex​t)​,​372 ····​:​·​io_context_(io_contex​t)​,​
365 ······​acceptor_(io_context,​·​listen_endpoint)​373 ······​acceptor_(io_context,​·​listen_endpoint)​
366 ··​{374 ··​{
367 ····subscriber_ptr·bc(new·udp_broadcaster(io_co​ntext_,​·broadcast_endpoint)​)​;​375 ····​channel_.​join(
368 ····channel_.​join(bc)​;​376 ········std:​:​make_shared<udp_broad​caster>(
377 ··········​io_context_,​·​broadcast_endpoint)​)​;​
369 378
370 ····start_accept()​;​379 ····​accept()​;​
371 ··​}380 ··​}
372 381
373 ··void·start_accept()​382 private:​
374 ··{383 ··void·accept()​
375 ····tcp_session_ptr·new_session(new·tcp_session(io_contex​t_,​·channel_)​)​;​
376
377 ····acceptor_.​async_accept(new_sess​ion-​>socket()​,​
378 ········boost:​:​bind(&server:​:​handle_accept,​·this,​·new_session,​·_1)​)​;​
379 ··}
380
381 ··void·handle_accept(tcp_ses​sion_ptr·session,​
382 ······const·asio:​:​error_code&·ec)​
383 ··​{384 ··​{
384 ····if·(!ec)​385 ····acceptor_.​async_accept(
385 ····{386 ········[this](const·std:​:​error_code&·error,​·tcp:​:​socket·socket)​
386 ······session-​>start()​;​387 ········{
387 ····}388 ··········if·(!error)​
389 ··········​{
390 ············​std:​:​make_shared<tcp_sessi​on>(std:​:​move(socket)​,​·​channel_)​-​>start()​;​
391 ··········​}
388 392
389 ····start_accept()​;​393 ··········accept()​;​
394 ········​})​;​
390 ··​}395 ··​}
391 396
392 private:​
393 ··​asio:​:​io_context&·​io_context_;​397 ··​asio:​:​io_context&·​io_context_;​
394 ··​tcp:​:​acceptor·​acceptor_;​398 ··​tcp:​:​acceptor·​acceptor_;​
395 ··​channel·​channel_;​399 ··​channel·​channel_;​
396 };​400 };​
397 401
398 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​402 /​/​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​-​
399 403
400 int·​main(int·​argc,​·​char*·​argv[])​404 int·​main(int·​argc,​·​char*·​argv[])​
401 {405 {
402 ··​try406 ··​try
403 ··​{407 ··​{
404 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​408 ····​using·​namespace·​std;​·​/​/​·​For·​atoi.​
405 409
406 ····​if·​(argc·​!=·​4)​410 ····​if·​(argc·​!=·​4)​
407 ····​{411 ····​{
408 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<listen_port>·​<bcast_address>·​<bcast_port>\n";​412 ······​std:​:​cerr·​<<·​"Usage:​·​server·​<listen_port>·​<bcast_address>·​<bcast_port>\n";​
409 ······​return·​1;​413 ······​return·​1;​
410 ····​}414 ····​}
411 415
412 ····​asio:​:​io_context·​io_context;​416 ····​asio:​:​io_context·​io_context;​
413 417
414 ····​tcp:​:​endpoint·​listen_endpoint(tcp:​:​v4()​,​·​atoi(argv[1])​)​;​418 ····​tcp:​:​endpoint·​listen_endpoint(tcp:​:​v4()​,​·​atoi(argv[1])​)​;​
415 419
416 ····​udp:​:​endpoint·​broadcast_endpoint(420 ····​udp:​:​endpoint·​broadcast_endpoint(
417 ········​asio:​:​ip:​:​make_address(argv[2])​,​·​atoi(argv[3])​)​;​421 ········​asio:​:​ip:​:​make_address(argv[2])​,​·​atoi(argv[3])​)​;​
418 422
419 ····​server·​s(io_context,​·​listen_endpoint,​·​broadcast_endpoint)​;​423 ····​server·​s(io_context,​·​listen_endpoint,​·​broadcast_endpoint)​;​
420 424
421 ····​io_context.​run()​;​425 ····​io_context.​run()​;​
422 ··​}426 ··​}
423 ··​catch·​(std:​:​exception&·​e)​427 ··​catch·​(std:​:​exception&·​e)​
424 ··​{428 ··​{
425 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​429 ····​std:​:​cerr·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
426 ··​}430 ··​}
427 431
428 ··​return·​0;​432 ··​return·​0;​
429 }433 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/examples/diffs/timers/time_t_timer.cpp.html b/Sources/Vendor/asio/doc/examples/diffs/timers/time_t_timer.cpp.html deleted file mode 100644 index 3cce8dd..0000000 --- a/Sources/Vendor/asio/doc/examples/diffs/timers/time_t_timer.cpp.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - HTML Diff timers/time_t_timer.cpp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
src/​examples/​cpp03/​timers/​time_t_timer.​cppsrc/​examples/​cpp11/​timers/​time_t_timer.​cpp
1 /​/​1 /​/​
2 /​/​·​time_t_timer.​cpp2 /​/​·​time_t_timer.​cpp
3 /​/​·​~~~~~~~~~~~~~~~~3 /​/​·​~~~~~~~~~~~~~~~~
4 /​/​4 /​/​
5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​5 /​/​·​Copyright·​(c)​·​2003-​2018·​Christopher·​M.​·​Kohlhoff·​(chris·​at·​kohlhoff·​dot·​com)​
6 /​/​6 /​/​
7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying7 /​/​·​Distributed·​under·​the·​Boost·​Software·​License,​·​Version·​1.​0.​·​(See·​accompanying
8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​8 /​/​·​file·​LICENSE_1_0.​txt·​or·​copy·​at·​http:​/​/​www.​boost.​org/​LICENSE_1_0.​txt)​
9 /​/​9 /​/​
10 10
11 #include·​<asio.​hpp>11 #include·​<asio.​hpp>
12 #include·​<ctime>12 #include·​<ctime>
13 #include·​<chrono>
13 #include·​<iostream>14 #include·​<iostream>
14 15
15 /​/​·​A·​custom·​implementation·​of·​the·​Clock·​concept·​from·​the·​standard·​C++·​library.​16 /​/​·​A·​custom·​implementation·​of·​the·​Clock·​concept·​from·​the·​standard·​C++·​library.​
16 struct·​time_t_clock17 struct·​time_t_clock
17 {18 {
18 ··​/​/​·​The·​duration·​type.​19 ··​/​/​·​The·​duration·​type.​
19 ··​typedef·asio:​:​chrono:​:​steady_clock:​:​duration·​duration;​20 ··​typedef·​std:​:​chrono:​:​steady_clock:​:​duration·​duration;​
20 21
21 ··​/​/​·​The·​duration's·​underlying·​arithmetic·​representation.​22 ··​/​/​·​The·​duration's·​underlying·​arithmetic·​representation.​
22 ··​typedef·​duration:​:​rep·​rep;​23 ··​typedef·​duration:​:​rep·​rep;​
23 24
24 ··​/​/​·​The·​ratio·​representing·​the·​duration's·​tick·​period.​25 ··​/​/​·​The·​ratio·​representing·​the·​duration's·​tick·​period.​
25 ··​typedef·​duration:​:​period·​period;​26 ··​typedef·​duration:​:​period·​period;​
26 27
27 ··​/​/​·​An·​absolute·​time·​point·​represented·​using·​the·​clock.​28 ··​/​/​·​An·​absolute·​time·​point·​represented·​using·​the·​clock.​
28 ··​typedef·asio:​:​chrono:​:​time_point<time_t_clo​ck>·​time_point;​29 ··​typedef·​std:​:​chrono:​:​time_point<time_t_clo​ck>·​time_point;​
29 30
30 ··​/​/​·​The·​clock·​is·​not·​monotonically·​increasing.​31 ··​/​/​·​The·​clock·​is·​not·​monotonically·​increasing.​
31 ··​static·​const·​bool·​is_steady·​=·​false;​32 ··​static·​constexpr·​bool·​is_steady·​=·​false;​
32 33
33 ··​/​/​·​Get·​the·​current·​time.​34 ··​/​/​·​Get·​the·​current·​time.​
34 ··​static·​time_point·​now()​35 ··​static·​time_point·​now()​·noexcept
35 ··​{36 ··​{
36 ····​return·​time_point()​·​+·asio:​:​chrono:​:​seconds(std:​:​time(0)​)​;​37 ····​return·​time_point()​·​+·​std:​:​chrono:​:​seconds(std:​:​time(0)​)​;​
37 ··​}38 ··​}
38 };​39 };​
39 40
40 /​/​·​The·​asio:​:​basic_waitable_timer·​template·​accepts·​an·​optional·​WaitTraits41 /​/​·​The·​asio:​:​basic_waitable_timer·​template·​accepts·​an·​optional·​WaitTraits
41 /​/​·​template·​parameter.​·​The·​underlying·​time_t·​clock·​has·​one-​second·​granularity,​42 /​/​·​template·​parameter.​·​The·​underlying·​time_t·​clock·​has·​one-​second·​granularity,​
42 /​/​·​so·​these·​traits·​may·​be·​customised·​to·​reduce·​the·​latency·​between·​the·​clock43 /​/​·​so·​these·​traits·​may·​be·​customised·​to·​reduce·​the·​latency·​between·​the·​clock
43 /​/​·​ticking·​over·​and·​a·​wait·​operation's·​completion.​·​When·​the·​timeout·​is·​near44 /​/​·​ticking·​over·​and·​a·​wait·​operation's·​completion.​·​When·​the·​timeout·​is·​near
44 /​/​·​(less·​than·​one·​second·​away)​·​we·​poll·​the·​clock·​more·​frequently·​to·​detect·​the45 /​/​·​(less·​than·​one·​second·​away)​·​we·​poll·​the·​clock·​more·​frequently·​to·​detect·​the
45 /​/​·​time·​change·​closer·​to·​when·​it·​occurs.​·​The·​user·​can·​select·​the·​appropriate46 /​/​·​time·​change·​closer·​to·​when·​it·​occurs.​·​The·​user·​can·​select·​the·​appropriate
46 /​/​·​trade·​off·​between·​accuracy·​and·​the·​increased·​CPU·​cost·​of·​polling.​·​In·​extreme47 /​/​·​trade·​off·​between·​accuracy·​and·​the·​increased·​CPU·​cost·​of·​polling.​·​In·​extreme
47 /​/​·​cases,​·​a·​zero·​duration·​may·​be·​returned·​to·​make·​the·​timers·​as·​accurate·​as48 /​/​·​cases,​·​a·​zero·​duration·​may·​be·​returned·​to·​make·​the·​timers·​as·​accurate·​as
48 /​/​·​possible,​·​albeit·​with·​100%·​CPU·​usage.​49 /​/​·​possible,​·​albeit·​with·​100%·​CPU·​usage.​
49 struct·​time_t_wait_traits50 struct·​time_t_wait_traits
50 {51 {
51 ··​/​/​·​Determine·​how·​long·​until·​the·​clock·​should·​be·​next·​polled·​to·​determine52 ··​/​/​·​Determine·​how·​long·​until·​the·​clock·​should·​be·​next·​polled·​to·​determine
52 ··​/​/​·​whether·​the·​duration·​has·​elapsed.​53 ··​/​/​·​whether·​the·​duration·​has·​elapsed.​
53 ··​static·​time_t_clock:​:​duration·​to_wait_duration(54 ··​static·​time_t_clock:​:​duration·​to_wait_duration(
54 ······​const·​time_t_clock:​:​duration&·​d)​55 ······​const·​time_t_clock:​:​duration&·​d)​
55 ··​{56 ··​{
56 ····​if·​(d·​>·asio:​:​chrono:​:​seconds(1)​)​57 ····​if·​(d·​>·​std:​:​chrono:​:​seconds(1)​)​
57 ······​return·​d·​-​·asio:​:​chrono:​:​seconds(1)​;​58 ······​return·​d·​-​·​std:​:​chrono:​:​seconds(1)​;​
58 ····​else·​if·​(d·​>·asio:​:​chrono:​:​seconds(0)​)​59 ····​else·​if·​(d·​>·​std:​:​chrono:​:​seconds(0)​)​
59 ······​return·asio:​:​chrono:​:​milliseconds(10)​;​60 ······​return·​std:​:​chrono:​:​milliseconds(10)​;​
60 ····​else61 ····​else
61 ······​return·asio:​:​chrono:​:​seconds(0)​;​62 ······​return·​std:​:​chrono:​:​seconds(0)​;​
62 ··​}63 ··​}
63 64
64 ··​/​/​·​Determine·​how·​long·​until·​the·​clock·​should·​be·​next·​polled·​to·​determine65 ··​/​/​·​Determine·​how·​long·​until·​the·​clock·​should·​be·​next·​polled·​to·​determine
65 ··​/​/​·​whether·​the·​absoluate·​time·​has·​been·​reached.​66 ··​/​/​·​whether·​the·​absoluate·​time·​has·​been·​reached.​
66 ··​static·​time_t_clock:​:​duration·​to_wait_duration(67 ··​static·​time_t_clock:​:​duration·​to_wait_duration(
67 ······​const·​time_t_clock:​:​time_point&·​t)​68 ······​const·​time_t_clock:​:​time_point&·​t)​
68 ··​{69 ··​{
69 ····​return·​to_wait_duration(t·​-​·​time_t_clock:​:​now()​)​;​70 ····​return·​to_wait_duration(t·​-​·​time_t_clock:​:​now()​)​;​
70 ··​}71 ··​}
71 };​72 };​
72 73
73 typedef·​asio:​:​basic_waitable_timer<​74 typedef·​asio:​:​basic_waitable_timer<​
74 ··​time_t_clock,​·​time_t_wait_traits>·​time_t_timer;​75 ··​time_t_clock,​·​time_t_wait_traits>·​time_t_timer;​
75 76
76 void·​handle_timeout(const·​asio:​:​error_code&)​
77 {
78 ··​std:​:​cout·​<<·​"handle_timeout\n";​
79 }
80
81 int·​main()​77 int·​main()​
82 {78 {
83 ··​try79 ··​try
84 ··​{80 ··​{
85 ····​asio:​:​io_context·​io_context;​81 ····​asio:​:​io_context·​io_context;​
86 82
87 ····​time_t_timer·​timer(io_context)​;​83 ····​time_t_timer·​timer(io_context)​;​
88 84
89 ····​timer.​expires_after(asio:​:​chrono:​:​seconds(5)​)​;​85 ····​timer.​expires_after(std:​:​chrono:​:​seconds(5)​)​;​
90 ····​std:​:​cout·​<<·​"Starting·​synchronous·​wait\n";​86 ····​std:​:​cout·​<<·​"Starting·​synchronous·​wait\n";​
91 ····​timer.​wait()​;​87 ····​timer.​wait()​;​
92 ····​std:​:​cout·​<<·​"Finished·​synchronous·​wait\n";​88 ····​std:​:​cout·​<<·​"Finished·​synchronous·​wait\n";​
93 89
94 ····​timer.​expires_after(asio:​:​chrono:​:​seconds(5)​)​;​90 ····​timer.​expires_after(std:​:​chrono:​:​seconds(5)​)​;​
95 ····​std:​:​cout·​<<·​"Starting·​asynchronous·​wait\n";​91 ····​std:​:​cout·​<<·​"Starting·​asynchronous·​wait\n";​
96 ····​timer.​async_wait(&handle_ti​meout)​;​92 ····​timer.​async_wait(
93 ········​[](const·​std:​:​error_code&·​/​*error*/​)​
94 ········​{
95 ··········​std:​:​cout·​<<·​"timeout\n";​
96 ········​})​;​
97 ····​io_context.​run()​;​97 ····​io_context.​run()​;​
98 ····​std:​:​cout·​<<·​"Finished·​asynchronous·​wait\n";​98 ····​std:​:​cout·​<<·​"Finished·​asynchronous·​wait\n";​
99 ··​}99 ··​}
100 ··​catch·​(std:​:​exception&·​e)​100 ··​catch·​(std:​:​exception&·​e)​
101 ··​{101 ··​{
102 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​102 ····​std:​:​cout·​<<·​"Exception:​·​"·​<<·​e.​what()​·​<<·​"\n";​
103 ··​}103 ··​}
104 104
105 ··​return·​0;​105 ··​return·​0;​
106 }106 }
- -
-

Modified at 12.12.2018. HTML formatting created by diff2html.

-
- diff --git a/Sources/Vendor/asio/doc/home.png b/Sources/Vendor/asio/doc/home.png deleted file mode 100644 index 5584aac..0000000 Binary files a/Sources/Vendor/asio/doc/home.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/important.png b/Sources/Vendor/asio/doc/important.png deleted file mode 100644 index 12c90f6..0000000 Binary files a/Sources/Vendor/asio/doc/important.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/index.html b/Sources/Vendor/asio/doc/index.html deleted file mode 100644 index d2734bc..0000000 --- a/Sources/Vendor/asio/doc/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - -Asio - - - - - - -
asio C++ library
-
-
Next
-
-
-

-Asio

-
-
-

- 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) -

-
-
-

- Asio is 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. -

-
-

-
-
Overview
-

- An overview of the features included in Asio, plus rationale and design - information. -

-
Using Asio
-

- How to use Asio in your applications. Includes information on library dependencies - and supported platforms. -

-
Tutorial
-

- A tutorial that introduces the fundamental concepts required to use Asio, - and shows how to use Asio to develop simple client and server programs. -

-
Examples
-

- Examples that illustrate the use of Asio in more complex applications. -

-
Reference
-

- Detailed class and function reference. -

-
Networking TS Compatibility
-

- Description of changes to provide compatibility with the "C++ Extensions - for Networking" Technical Specification. -

-
Revision History
-

- Log of Asio changes made in each release. -

-
Index
-

- Book-style text index of Asio documentation. -

-
-
-
- - - -

Last revised: December 11, 2018 at 22:29:24 GMT

-
-
Next
- - diff --git a/Sources/Vendor/asio/doc/next.png b/Sources/Vendor/asio/doc/next.png deleted file mode 100644 index 59800b4..0000000 Binary files a/Sources/Vendor/asio/doc/next.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/next_disabled.png b/Sources/Vendor/asio/doc/next_disabled.png deleted file mode 100644 index 10a8c59..0000000 Binary files a/Sources/Vendor/asio/doc/next_disabled.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/note.png b/Sources/Vendor/asio/doc/note.png deleted file mode 100644 index d0c3c64..0000000 Binary files a/Sources/Vendor/asio/doc/note.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/prev.png b/Sources/Vendor/asio/doc/prev.png deleted file mode 100644 index d88a40f..0000000 Binary files a/Sources/Vendor/asio/doc/prev.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/prev_disabled.png b/Sources/Vendor/asio/doc/prev_disabled.png deleted file mode 100644 index ab3c17e..0000000 Binary files a/Sources/Vendor/asio/doc/prev_disabled.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/proactor.png b/Sources/Vendor/asio/doc/proactor.png deleted file mode 100644 index a0653b0..0000000 Binary files a/Sources/Vendor/asio/doc/proactor.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/standalone_HTML.manifest b/Sources/Vendor/asio/doc/standalone_HTML.manifest deleted file mode 100644 index e67a219..0000000 --- a/Sources/Vendor/asio/doc/standalone_HTML.manifest +++ /dev/null @@ -1,3060 +0,0 @@ -index.html -asio/overview.html -asio/overview/rationale.html -asio/overview/core.html -asio/overview/core/basics.html -asio/overview/core/async.html -asio/overview/core/threads.html -asio/overview/core/strands.html -asio/overview/core/buffers.html -asio/overview/core/streams.html -asio/overview/core/reactor.html -asio/overview/core/line_based.html -asio/overview/core/allocation.html -asio/overview/core/handler_tracking.html -asio/overview/core/concurrency_hint.html -asio/overview/core/coroutine.html -asio/overview/core/spawn.html -asio/overview/core/coroutines_ts.html -asio/overview/networking.html -asio/overview/networking/protocols.html -asio/overview/networking/other_protocols.html -asio/overview/networking/iostreams.html -asio/overview/networking/bsd_sockets.html -asio/overview/timers.html -asio/overview/serial_ports.html -asio/overview/signals.html -asio/overview/posix.html -asio/overview/posix/local.html -asio/overview/posix/stream_descriptor.html -asio/overview/posix/fork.html -asio/overview/windows.html -asio/overview/windows/stream_handle.html -asio/overview/windows/random_access_handle.html -asio/overview/windows/object_handle.html -asio/overview/ssl.html -asio/overview/cpp2011.html -asio/overview/cpp2011/system_error.html -asio/overview/cpp2011/move_objects.html -asio/overview/cpp2011/move_handlers.html -asio/overview/cpp2011/variadic.html -asio/overview/cpp2011/array.html -asio/overview/cpp2011/atomic.html -asio/overview/cpp2011/shared_ptr.html -asio/overview/cpp2011/chrono.html -asio/overview/cpp2011/futures.html -asio/overview/implementation.html -asio/using.html -asio/tutorial.html -asio/tutorial/tuttimer1.html -asio/tutorial/tuttimer1/src.html -asio/tutorial/tuttimer2.html -asio/tutorial/tuttimer2/src.html -asio/tutorial/tuttimer3.html -asio/tutorial/tuttimer3/src.html -asio/tutorial/tuttimer4.html -asio/tutorial/tuttimer4/src.html -asio/tutorial/tuttimer5.html -asio/tutorial/tuttimer5/src.html -asio/tutorial/tutdaytime1.html -asio/tutorial/tutdaytime1/src.html -asio/tutorial/tutdaytime2.html -asio/tutorial/tutdaytime2/src.html -asio/tutorial/tutdaytime3.html -asio/tutorial/tutdaytime3/src.html -asio/tutorial/tutdaytime4.html -asio/tutorial/tutdaytime4/src.html -asio/tutorial/tutdaytime5.html -asio/tutorial/tutdaytime5/src.html -asio/tutorial/tutdaytime6.html -asio/tutorial/tutdaytime6/src.html -asio/tutorial/tutdaytime7.html -asio/tutorial/tutdaytime7/src.html -asio/tutorial/boost_bind.html -asio/examples.html -asio/examples/cpp03_examples.html -asio/examples/cpp11_examples.html -asio/examples/cpp17_examples.html -asio/reference.html -asio/reference/asynchronous_operations.html -asio/reference/read_write_operations.html -asio/reference/synchronous_socket_operations.html -asio/reference/asynchronous_socket_operations.html -asio/reference/AcceptableProtocol.html -asio/reference/AcceptHandler.html -asio/reference/AsyncRandomAccessReadDevice.html -asio/reference/AsyncRandomAccessWriteDevice.html -asio/reference/AsyncReadStream.html -asio/reference/AsyncWriteStream.html -asio/reference/BufferedHandshakeHandler.html -asio/reference/CompletionCondition.html -asio/reference/CompletionHandler.html -asio/reference/ConnectCondition.html -asio/reference/ConnectHandler.html -asio/reference/ConstBufferSequence.html -asio/reference/DynamicBuffer.html -asio/reference/Endpoint.html -asio/reference/EndpointSequence.html -asio/reference/ExecutionContext.html -asio/reference/Executor1.html -asio/reference/GettableSerialPortOption.html -asio/reference/GettableSocketOption.html -asio/reference/Handler.html -asio/reference/HandshakeHandler.html -asio/reference/InternetProtocol.html -asio/reference/IoControlCommand.html -asio/reference/IoObjectService.html -asio/reference/IteratorConnectHandler.html -asio/reference/LegacyCompletionHandler.html -asio/reference/MoveAcceptHandler.html -asio/reference/MutableBufferSequence.html -asio/reference/ProtoAllocator.html -asio/reference/Protocol.html -asio/reference/RangeConnectHandler.html -asio/reference/ReadHandler.html -asio/reference/ResolveHandler.html -asio/reference/Service.html -asio/reference/SettableSerialPortOption.html -asio/reference/SettableSocketOption.html -asio/reference/ShutdownHandler.html -asio/reference/SignalHandler.html -asio/reference/SyncRandomAccessReadDevice.html -asio/reference/SyncRandomAccessWriteDevice.html -asio/reference/SyncReadStream.html -asio/reference/SyncWriteStream.html -asio/reference/TimeTraits.html -asio/reference/WaitHandler.html -asio/reference/WaitTraits.html -asio/reference/WriteHandler.html -asio/reference/add_service.html -asio/reference/asio_handler_allocate.html -asio/reference/asio_handler_deallocate.html -asio/reference/asio_handler_invoke.html -asio/reference/asio_handler_invoke/overload1.html -asio/reference/asio_handler_invoke/overload2.html -asio/reference/asio_handler_is_continuation.html -asio/reference/associated_allocator.html -asio/reference/associated_allocator/get.html -asio/reference/associated_allocator/type.html -asio/reference/associated_executor.html -asio/reference/associated_executor/get.html -asio/reference/associated_executor/type.html -asio/reference/async_completion.html -asio/reference/async_completion/async_completion.html -asio/reference/async_completion/completion_handler.html -asio/reference/async_completion/completion_handler_type.html -asio/reference/async_completion/result.html -asio/reference/async_connect.html -asio/reference/async_connect/overload1.html -asio/reference/async_connect/overload2.html -asio/reference/async_connect/overload3.html -asio/reference/async_connect/overload4.html -asio/reference/async_connect/overload5.html -asio/reference/async_connect/overload6.html -asio/reference/async_read.html -asio/reference/async_read/overload1.html -asio/reference/async_read/overload2.html -asio/reference/async_read/overload3.html -asio/reference/async_read/overload4.html -asio/reference/async_read/overload5.html -asio/reference/async_read/overload6.html -asio/reference/async_read_at.html -asio/reference/async_read_at/overload1.html -asio/reference/async_read_at/overload2.html -asio/reference/async_read_at/overload3.html -asio/reference/async_read_at/overload4.html -asio/reference/async_read_until.html -asio/reference/async_read_until/overload1.html -asio/reference/async_read_until/overload2.html -asio/reference/async_read_until/overload3.html -asio/reference/async_read_until/overload4.html -asio/reference/async_read_until/overload5.html -asio/reference/async_read_until/overload6.html -asio/reference/async_read_until/overload7.html -asio/reference/async_read_until/overload8.html -asio/reference/async_result.html -asio/reference/async_result/async_result.html -asio/reference/async_result/completion_handler_type.html -asio/reference/async_result/get.html -asio/reference/async_result/return_type.html -asio/reference/async_result_lt__Handler__gt_.html -asio/reference/async_result_lt__Handler__gt_/async_result.html -asio/reference/async_result_lt__Handler__gt_/get.html -asio/reference/async_result_lt__Handler__gt_/type.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/get.html -asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/return_type.html -asio/reference/async_write.html -asio/reference/async_write/overload1.html -asio/reference/async_write/overload2.html -asio/reference/async_write/overload3.html -asio/reference/async_write/overload4.html -asio/reference/async_write/overload5.html -asio/reference/async_write/overload6.html -asio/reference/async_write_at.html -asio/reference/async_write_at/overload1.html -asio/reference/async_write_at/overload2.html -asio/reference/async_write_at/overload3.html -asio/reference/async_write_at/overload4.html -asio/reference/bad_executor.html -asio/reference/bad_executor/bad_executor.html -asio/reference/bad_executor/what.html -asio/reference/basic_datagram_socket.html -asio/reference/basic_datagram_socket/assign.html -asio/reference/basic_datagram_socket/assign/overload1.html -asio/reference/basic_datagram_socket/assign/overload2.html -asio/reference/basic_datagram_socket/async_connect.html -asio/reference/basic_datagram_socket/async_receive.html -asio/reference/basic_datagram_socket/async_receive/overload1.html -asio/reference/basic_datagram_socket/async_receive/overload2.html -asio/reference/basic_datagram_socket/async_receive_from.html -asio/reference/basic_datagram_socket/async_receive_from/overload1.html -asio/reference/basic_datagram_socket/async_receive_from/overload2.html -asio/reference/basic_datagram_socket/async_send.html -asio/reference/basic_datagram_socket/async_send/overload1.html -asio/reference/basic_datagram_socket/async_send/overload2.html -asio/reference/basic_datagram_socket/async_send_to.html -asio/reference/basic_datagram_socket/async_send_to/overload1.html -asio/reference/basic_datagram_socket/async_send_to/overload2.html -asio/reference/basic_datagram_socket/async_wait.html -asio/reference/basic_datagram_socket/at_mark.html -asio/reference/basic_datagram_socket/at_mark/overload1.html -asio/reference/basic_datagram_socket/at_mark/overload2.html -asio/reference/basic_datagram_socket/available.html -asio/reference/basic_datagram_socket/available/overload1.html -asio/reference/basic_datagram_socket/available/overload2.html -asio/reference/basic_datagram_socket/basic_datagram_socket.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload1.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload2.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload3.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload4.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload5.html -asio/reference/basic_datagram_socket/basic_datagram_socket/overload6.html -asio/reference/basic_datagram_socket/bind.html -asio/reference/basic_datagram_socket/bind/overload1.html -asio/reference/basic_datagram_socket/bind/overload2.html -asio/reference/basic_datagram_socket/broadcast.html -asio/reference/basic_datagram_socket/bytes_readable.html -asio/reference/basic_datagram_socket/cancel.html -asio/reference/basic_datagram_socket/cancel/overload1.html -asio/reference/basic_datagram_socket/cancel/overload2.html -asio/reference/basic_datagram_socket/close.html -asio/reference/basic_datagram_socket/close/overload1.html -asio/reference/basic_datagram_socket/close/overload2.html -asio/reference/basic_datagram_socket/connect.html -asio/reference/basic_datagram_socket/connect/overload1.html -asio/reference/basic_datagram_socket/connect/overload2.html -asio/reference/basic_datagram_socket/debug.html -asio/reference/basic_datagram_socket/do_not_route.html -asio/reference/basic_datagram_socket/enable_connection_aborted.html -asio/reference/basic_datagram_socket/endpoint_type.html -asio/reference/basic_datagram_socket/executor_type.html -asio/reference/basic_datagram_socket/get_executor.html -asio/reference/basic_datagram_socket/get_io_context.html -asio/reference/basic_datagram_socket/get_io_service.html -asio/reference/basic_datagram_socket/get_option.html -asio/reference/basic_datagram_socket/get_option/overload1.html -asio/reference/basic_datagram_socket/get_option/overload2.html -asio/reference/basic_datagram_socket/io_control.html -asio/reference/basic_datagram_socket/io_control/overload1.html -asio/reference/basic_datagram_socket/io_control/overload2.html -asio/reference/basic_datagram_socket/is_open.html -asio/reference/basic_datagram_socket/keep_alive.html -asio/reference/basic_datagram_socket/linger.html -asio/reference/basic_datagram_socket/local_endpoint.html -asio/reference/basic_datagram_socket/local_endpoint/overload1.html -asio/reference/basic_datagram_socket/local_endpoint/overload2.html -asio/reference/basic_datagram_socket/lowest_layer.html -asio/reference/basic_datagram_socket/lowest_layer/overload1.html -asio/reference/basic_datagram_socket/lowest_layer/overload2.html -asio/reference/basic_datagram_socket/lowest_layer_type.html -asio/reference/basic_datagram_socket/max_connections.html -asio/reference/basic_datagram_socket/max_listen_connections.html -asio/reference/basic_datagram_socket/message_do_not_route.html -asio/reference/basic_datagram_socket/message_end_of_record.html -asio/reference/basic_datagram_socket/message_flags.html -asio/reference/basic_datagram_socket/message_out_of_band.html -asio/reference/basic_datagram_socket/message_peek.html -asio/reference/basic_datagram_socket/native_handle.html -asio/reference/basic_datagram_socket/native_handle_type.html -asio/reference/basic_datagram_socket/native_non_blocking.html -asio/reference/basic_datagram_socket/native_non_blocking/overload1.html -asio/reference/basic_datagram_socket/native_non_blocking/overload2.html -asio/reference/basic_datagram_socket/native_non_blocking/overload3.html -asio/reference/basic_datagram_socket/non_blocking.html -asio/reference/basic_datagram_socket/non_blocking/overload1.html -asio/reference/basic_datagram_socket/non_blocking/overload2.html -asio/reference/basic_datagram_socket/non_blocking/overload3.html -asio/reference/basic_datagram_socket/open.html -asio/reference/basic_datagram_socket/open/overload1.html -asio/reference/basic_datagram_socket/open/overload2.html -asio/reference/basic_datagram_socket/operator_eq_.html -asio/reference/basic_datagram_socket/operator_eq_/overload1.html -asio/reference/basic_datagram_socket/operator_eq_/overload2.html -asio/reference/basic_datagram_socket/out_of_band_inline.html -asio/reference/basic_datagram_socket/protocol_type.html -asio/reference/basic_datagram_socket/receive.html -asio/reference/basic_datagram_socket/receive/overload1.html -asio/reference/basic_datagram_socket/receive/overload2.html -asio/reference/basic_datagram_socket/receive/overload3.html -asio/reference/basic_datagram_socket/receive_buffer_size.html -asio/reference/basic_datagram_socket/receive_from.html -asio/reference/basic_datagram_socket/receive_from/overload1.html -asio/reference/basic_datagram_socket/receive_from/overload2.html -asio/reference/basic_datagram_socket/receive_from/overload3.html -asio/reference/basic_datagram_socket/receive_low_watermark.html -asio/reference/basic_datagram_socket/release.html -asio/reference/basic_datagram_socket/release/overload1.html -asio/reference/basic_datagram_socket/release/overload2.html -asio/reference/basic_datagram_socket/remote_endpoint.html -asio/reference/basic_datagram_socket/remote_endpoint/overload1.html -asio/reference/basic_datagram_socket/remote_endpoint/overload2.html -asio/reference/basic_datagram_socket/reuse_address.html -asio/reference/basic_datagram_socket/send.html -asio/reference/basic_datagram_socket/send/overload1.html -asio/reference/basic_datagram_socket/send/overload2.html -asio/reference/basic_datagram_socket/send/overload3.html -asio/reference/basic_datagram_socket/send_buffer_size.html -asio/reference/basic_datagram_socket/send_low_watermark.html -asio/reference/basic_datagram_socket/send_to.html -asio/reference/basic_datagram_socket/send_to/overload1.html -asio/reference/basic_datagram_socket/send_to/overload2.html -asio/reference/basic_datagram_socket/send_to/overload3.html -asio/reference/basic_datagram_socket/set_option.html -asio/reference/basic_datagram_socket/set_option/overload1.html -asio/reference/basic_datagram_socket/set_option/overload2.html -asio/reference/basic_datagram_socket/shutdown.html -asio/reference/basic_datagram_socket/shutdown/overload1.html -asio/reference/basic_datagram_socket/shutdown/overload2.html -asio/reference/basic_datagram_socket/shutdown_type.html -asio/reference/basic_datagram_socket/wait.html -asio/reference/basic_datagram_socket/wait/overload1.html -asio/reference/basic_datagram_socket/wait/overload2.html -asio/reference/basic_datagram_socket/wait_type.html -asio/reference/basic_datagram_socket/_basic_datagram_socket.html -asio/reference/basic_deadline_timer.html -asio/reference/basic_deadline_timer/async_wait.html -asio/reference/basic_deadline_timer/basic_deadline_timer.html -asio/reference/basic_deadline_timer/basic_deadline_timer/overload1.html -asio/reference/basic_deadline_timer/basic_deadline_timer/overload2.html -asio/reference/basic_deadline_timer/basic_deadline_timer/overload3.html -asio/reference/basic_deadline_timer/basic_deadline_timer/overload4.html -asio/reference/basic_deadline_timer/cancel.html -asio/reference/basic_deadline_timer/cancel/overload1.html -asio/reference/basic_deadline_timer/cancel/overload2.html -asio/reference/basic_deadline_timer/cancel_one.html -asio/reference/basic_deadline_timer/cancel_one/overload1.html -asio/reference/basic_deadline_timer/cancel_one/overload2.html -asio/reference/basic_deadline_timer/duration_type.html -asio/reference/basic_deadline_timer/executor_type.html -asio/reference/basic_deadline_timer/expires_at.html -asio/reference/basic_deadline_timer/expires_at/overload1.html -asio/reference/basic_deadline_timer/expires_at/overload2.html -asio/reference/basic_deadline_timer/expires_at/overload3.html -asio/reference/basic_deadline_timer/expires_from_now.html -asio/reference/basic_deadline_timer/expires_from_now/overload1.html -asio/reference/basic_deadline_timer/expires_from_now/overload2.html -asio/reference/basic_deadline_timer/expires_from_now/overload3.html -asio/reference/basic_deadline_timer/get_executor.html -asio/reference/basic_deadline_timer/get_io_context.html -asio/reference/basic_deadline_timer/get_io_service.html -asio/reference/basic_deadline_timer/operator_eq_.html -asio/reference/basic_deadline_timer/time_type.html -asio/reference/basic_deadline_timer/traits_type.html -asio/reference/basic_deadline_timer/wait.html -asio/reference/basic_deadline_timer/wait/overload1.html -asio/reference/basic_deadline_timer/wait/overload2.html -asio/reference/basic_deadline_timer/_basic_deadline_timer.html -asio/reference/basic_io_object.html -asio/reference/basic_io_object/basic_io_object.html -asio/reference/basic_io_object/basic_io_object/overload1.html -asio/reference/basic_io_object/basic_io_object/overload2.html -asio/reference/basic_io_object/basic_io_object/overload3.html -asio/reference/basic_io_object/executor_type.html -asio/reference/basic_io_object/get_executor.html -asio/reference/basic_io_object/get_implementation.html -asio/reference/basic_io_object/get_implementation/overload1.html -asio/reference/basic_io_object/get_implementation/overload2.html -asio/reference/basic_io_object/get_io_context.html -asio/reference/basic_io_object/get_io_service.html -asio/reference/basic_io_object/get_service.html -asio/reference/basic_io_object/get_service/overload1.html -asio/reference/basic_io_object/get_service/overload2.html -asio/reference/basic_io_object/implementation_type.html -asio/reference/basic_io_object/operator_eq_.html -asio/reference/basic_io_object/service_type.html -asio/reference/basic_io_object/_basic_io_object.html -asio/reference/basic_raw_socket.html -asio/reference/basic_raw_socket/assign.html -asio/reference/basic_raw_socket/assign/overload1.html -asio/reference/basic_raw_socket/assign/overload2.html -asio/reference/basic_raw_socket/async_connect.html -asio/reference/basic_raw_socket/async_receive.html -asio/reference/basic_raw_socket/async_receive/overload1.html -asio/reference/basic_raw_socket/async_receive/overload2.html -asio/reference/basic_raw_socket/async_receive_from.html -asio/reference/basic_raw_socket/async_receive_from/overload1.html -asio/reference/basic_raw_socket/async_receive_from/overload2.html -asio/reference/basic_raw_socket/async_send.html -asio/reference/basic_raw_socket/async_send/overload1.html -asio/reference/basic_raw_socket/async_send/overload2.html -asio/reference/basic_raw_socket/async_send_to.html -asio/reference/basic_raw_socket/async_send_to/overload1.html -asio/reference/basic_raw_socket/async_send_to/overload2.html -asio/reference/basic_raw_socket/async_wait.html -asio/reference/basic_raw_socket/at_mark.html -asio/reference/basic_raw_socket/at_mark/overload1.html -asio/reference/basic_raw_socket/at_mark/overload2.html -asio/reference/basic_raw_socket/available.html -asio/reference/basic_raw_socket/available/overload1.html -asio/reference/basic_raw_socket/available/overload2.html -asio/reference/basic_raw_socket/basic_raw_socket.html -asio/reference/basic_raw_socket/basic_raw_socket/overload1.html -asio/reference/basic_raw_socket/basic_raw_socket/overload2.html -asio/reference/basic_raw_socket/basic_raw_socket/overload3.html -asio/reference/basic_raw_socket/basic_raw_socket/overload4.html -asio/reference/basic_raw_socket/basic_raw_socket/overload5.html -asio/reference/basic_raw_socket/basic_raw_socket/overload6.html -asio/reference/basic_raw_socket/bind.html -asio/reference/basic_raw_socket/bind/overload1.html -asio/reference/basic_raw_socket/bind/overload2.html -asio/reference/basic_raw_socket/broadcast.html -asio/reference/basic_raw_socket/bytes_readable.html -asio/reference/basic_raw_socket/cancel.html -asio/reference/basic_raw_socket/cancel/overload1.html -asio/reference/basic_raw_socket/cancel/overload2.html -asio/reference/basic_raw_socket/close.html -asio/reference/basic_raw_socket/close/overload1.html -asio/reference/basic_raw_socket/close/overload2.html -asio/reference/basic_raw_socket/connect.html -asio/reference/basic_raw_socket/connect/overload1.html -asio/reference/basic_raw_socket/connect/overload2.html -asio/reference/basic_raw_socket/debug.html -asio/reference/basic_raw_socket/do_not_route.html -asio/reference/basic_raw_socket/enable_connection_aborted.html -asio/reference/basic_raw_socket/endpoint_type.html -asio/reference/basic_raw_socket/executor_type.html -asio/reference/basic_raw_socket/get_executor.html -asio/reference/basic_raw_socket/get_io_context.html -asio/reference/basic_raw_socket/get_io_service.html -asio/reference/basic_raw_socket/get_option.html -asio/reference/basic_raw_socket/get_option/overload1.html -asio/reference/basic_raw_socket/get_option/overload2.html -asio/reference/basic_raw_socket/io_control.html -asio/reference/basic_raw_socket/io_control/overload1.html -asio/reference/basic_raw_socket/io_control/overload2.html -asio/reference/basic_raw_socket/is_open.html -asio/reference/basic_raw_socket/keep_alive.html -asio/reference/basic_raw_socket/linger.html -asio/reference/basic_raw_socket/local_endpoint.html -asio/reference/basic_raw_socket/local_endpoint/overload1.html -asio/reference/basic_raw_socket/local_endpoint/overload2.html -asio/reference/basic_raw_socket/lowest_layer.html -asio/reference/basic_raw_socket/lowest_layer/overload1.html -asio/reference/basic_raw_socket/lowest_layer/overload2.html -asio/reference/basic_raw_socket/lowest_layer_type.html -asio/reference/basic_raw_socket/max_connections.html -asio/reference/basic_raw_socket/max_listen_connections.html -asio/reference/basic_raw_socket/message_do_not_route.html -asio/reference/basic_raw_socket/message_end_of_record.html -asio/reference/basic_raw_socket/message_flags.html -asio/reference/basic_raw_socket/message_out_of_band.html -asio/reference/basic_raw_socket/message_peek.html -asio/reference/basic_raw_socket/native_handle.html -asio/reference/basic_raw_socket/native_handle_type.html -asio/reference/basic_raw_socket/native_non_blocking.html -asio/reference/basic_raw_socket/native_non_blocking/overload1.html -asio/reference/basic_raw_socket/native_non_blocking/overload2.html -asio/reference/basic_raw_socket/native_non_blocking/overload3.html -asio/reference/basic_raw_socket/non_blocking.html -asio/reference/basic_raw_socket/non_blocking/overload1.html -asio/reference/basic_raw_socket/non_blocking/overload2.html -asio/reference/basic_raw_socket/non_blocking/overload3.html -asio/reference/basic_raw_socket/open.html -asio/reference/basic_raw_socket/open/overload1.html -asio/reference/basic_raw_socket/open/overload2.html -asio/reference/basic_raw_socket/operator_eq_.html -asio/reference/basic_raw_socket/operator_eq_/overload1.html -asio/reference/basic_raw_socket/operator_eq_/overload2.html -asio/reference/basic_raw_socket/out_of_band_inline.html -asio/reference/basic_raw_socket/protocol_type.html -asio/reference/basic_raw_socket/receive.html -asio/reference/basic_raw_socket/receive/overload1.html -asio/reference/basic_raw_socket/receive/overload2.html -asio/reference/basic_raw_socket/receive/overload3.html -asio/reference/basic_raw_socket/receive_buffer_size.html -asio/reference/basic_raw_socket/receive_from.html -asio/reference/basic_raw_socket/receive_from/overload1.html -asio/reference/basic_raw_socket/receive_from/overload2.html -asio/reference/basic_raw_socket/receive_from/overload3.html -asio/reference/basic_raw_socket/receive_low_watermark.html -asio/reference/basic_raw_socket/release.html -asio/reference/basic_raw_socket/release/overload1.html -asio/reference/basic_raw_socket/release/overload2.html -asio/reference/basic_raw_socket/remote_endpoint.html -asio/reference/basic_raw_socket/remote_endpoint/overload1.html -asio/reference/basic_raw_socket/remote_endpoint/overload2.html -asio/reference/basic_raw_socket/reuse_address.html -asio/reference/basic_raw_socket/send.html -asio/reference/basic_raw_socket/send/overload1.html -asio/reference/basic_raw_socket/send/overload2.html -asio/reference/basic_raw_socket/send/overload3.html -asio/reference/basic_raw_socket/send_buffer_size.html -asio/reference/basic_raw_socket/send_low_watermark.html -asio/reference/basic_raw_socket/send_to.html -asio/reference/basic_raw_socket/send_to/overload1.html -asio/reference/basic_raw_socket/send_to/overload2.html -asio/reference/basic_raw_socket/send_to/overload3.html -asio/reference/basic_raw_socket/set_option.html -asio/reference/basic_raw_socket/set_option/overload1.html -asio/reference/basic_raw_socket/set_option/overload2.html -asio/reference/basic_raw_socket/shutdown.html -asio/reference/basic_raw_socket/shutdown/overload1.html -asio/reference/basic_raw_socket/shutdown/overload2.html -asio/reference/basic_raw_socket/shutdown_type.html -asio/reference/basic_raw_socket/wait.html -asio/reference/basic_raw_socket/wait/overload1.html -asio/reference/basic_raw_socket/wait/overload2.html -asio/reference/basic_raw_socket/wait_type.html -asio/reference/basic_raw_socket/_basic_raw_socket.html -asio/reference/basic_seq_packet_socket.html -asio/reference/basic_seq_packet_socket/assign.html -asio/reference/basic_seq_packet_socket/assign/overload1.html -asio/reference/basic_seq_packet_socket/assign/overload2.html -asio/reference/basic_seq_packet_socket/async_connect.html -asio/reference/basic_seq_packet_socket/async_receive.html -asio/reference/basic_seq_packet_socket/async_receive/overload1.html -asio/reference/basic_seq_packet_socket/async_receive/overload2.html -asio/reference/basic_seq_packet_socket/async_send.html -asio/reference/basic_seq_packet_socket/async_wait.html -asio/reference/basic_seq_packet_socket/at_mark.html -asio/reference/basic_seq_packet_socket/at_mark/overload1.html -asio/reference/basic_seq_packet_socket/at_mark/overload2.html -asio/reference/basic_seq_packet_socket/available.html -asio/reference/basic_seq_packet_socket/available/overload1.html -asio/reference/basic_seq_packet_socket/available/overload2.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload1.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload2.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload3.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload4.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload5.html -asio/reference/basic_seq_packet_socket/basic_seq_packet_socket/overload6.html -asio/reference/basic_seq_packet_socket/bind.html -asio/reference/basic_seq_packet_socket/bind/overload1.html -asio/reference/basic_seq_packet_socket/bind/overload2.html -asio/reference/basic_seq_packet_socket/broadcast.html -asio/reference/basic_seq_packet_socket/bytes_readable.html -asio/reference/basic_seq_packet_socket/cancel.html -asio/reference/basic_seq_packet_socket/cancel/overload1.html -asio/reference/basic_seq_packet_socket/cancel/overload2.html -asio/reference/basic_seq_packet_socket/close.html -asio/reference/basic_seq_packet_socket/close/overload1.html -asio/reference/basic_seq_packet_socket/close/overload2.html -asio/reference/basic_seq_packet_socket/connect.html -asio/reference/basic_seq_packet_socket/connect/overload1.html -asio/reference/basic_seq_packet_socket/connect/overload2.html -asio/reference/basic_seq_packet_socket/debug.html -asio/reference/basic_seq_packet_socket/do_not_route.html -asio/reference/basic_seq_packet_socket/enable_connection_aborted.html -asio/reference/basic_seq_packet_socket/endpoint_type.html -asio/reference/basic_seq_packet_socket/executor_type.html -asio/reference/basic_seq_packet_socket/get_executor.html -asio/reference/basic_seq_packet_socket/get_io_context.html -asio/reference/basic_seq_packet_socket/get_io_service.html -asio/reference/basic_seq_packet_socket/get_option.html -asio/reference/basic_seq_packet_socket/get_option/overload1.html -asio/reference/basic_seq_packet_socket/get_option/overload2.html -asio/reference/basic_seq_packet_socket/io_control.html -asio/reference/basic_seq_packet_socket/io_control/overload1.html -asio/reference/basic_seq_packet_socket/io_control/overload2.html -asio/reference/basic_seq_packet_socket/is_open.html -asio/reference/basic_seq_packet_socket/keep_alive.html -asio/reference/basic_seq_packet_socket/linger.html -asio/reference/basic_seq_packet_socket/local_endpoint.html -asio/reference/basic_seq_packet_socket/local_endpoint/overload1.html -asio/reference/basic_seq_packet_socket/local_endpoint/overload2.html -asio/reference/basic_seq_packet_socket/lowest_layer.html -asio/reference/basic_seq_packet_socket/lowest_layer/overload1.html -asio/reference/basic_seq_packet_socket/lowest_layer/overload2.html -asio/reference/basic_seq_packet_socket/lowest_layer_type.html -asio/reference/basic_seq_packet_socket/max_connections.html -asio/reference/basic_seq_packet_socket/max_listen_connections.html -asio/reference/basic_seq_packet_socket/message_do_not_route.html -asio/reference/basic_seq_packet_socket/message_end_of_record.html -asio/reference/basic_seq_packet_socket/message_flags.html -asio/reference/basic_seq_packet_socket/message_out_of_band.html -asio/reference/basic_seq_packet_socket/message_peek.html -asio/reference/basic_seq_packet_socket/native_handle.html -asio/reference/basic_seq_packet_socket/native_handle_type.html -asio/reference/basic_seq_packet_socket/native_non_blocking.html -asio/reference/basic_seq_packet_socket/native_non_blocking/overload1.html -asio/reference/basic_seq_packet_socket/native_non_blocking/overload2.html -asio/reference/basic_seq_packet_socket/native_non_blocking/overload3.html -asio/reference/basic_seq_packet_socket/non_blocking.html -asio/reference/basic_seq_packet_socket/non_blocking/overload1.html -asio/reference/basic_seq_packet_socket/non_blocking/overload2.html -asio/reference/basic_seq_packet_socket/non_blocking/overload3.html -asio/reference/basic_seq_packet_socket/open.html -asio/reference/basic_seq_packet_socket/open/overload1.html -asio/reference/basic_seq_packet_socket/open/overload2.html -asio/reference/basic_seq_packet_socket/operator_eq_.html -asio/reference/basic_seq_packet_socket/operator_eq_/overload1.html -asio/reference/basic_seq_packet_socket/operator_eq_/overload2.html -asio/reference/basic_seq_packet_socket/out_of_band_inline.html -asio/reference/basic_seq_packet_socket/protocol_type.html -asio/reference/basic_seq_packet_socket/receive.html -asio/reference/basic_seq_packet_socket/receive/overload1.html -asio/reference/basic_seq_packet_socket/receive/overload2.html -asio/reference/basic_seq_packet_socket/receive/overload3.html -asio/reference/basic_seq_packet_socket/receive_buffer_size.html -asio/reference/basic_seq_packet_socket/receive_low_watermark.html -asio/reference/basic_seq_packet_socket/release.html -asio/reference/basic_seq_packet_socket/release/overload1.html -asio/reference/basic_seq_packet_socket/release/overload2.html -asio/reference/basic_seq_packet_socket/remote_endpoint.html -asio/reference/basic_seq_packet_socket/remote_endpoint/overload1.html -asio/reference/basic_seq_packet_socket/remote_endpoint/overload2.html -asio/reference/basic_seq_packet_socket/reuse_address.html -asio/reference/basic_seq_packet_socket/send.html -asio/reference/basic_seq_packet_socket/send/overload1.html -asio/reference/basic_seq_packet_socket/send/overload2.html -asio/reference/basic_seq_packet_socket/send_buffer_size.html -asio/reference/basic_seq_packet_socket/send_low_watermark.html -asio/reference/basic_seq_packet_socket/set_option.html -asio/reference/basic_seq_packet_socket/set_option/overload1.html -asio/reference/basic_seq_packet_socket/set_option/overload2.html -asio/reference/basic_seq_packet_socket/shutdown.html -asio/reference/basic_seq_packet_socket/shutdown/overload1.html -asio/reference/basic_seq_packet_socket/shutdown/overload2.html -asio/reference/basic_seq_packet_socket/shutdown_type.html -asio/reference/basic_seq_packet_socket/wait.html -asio/reference/basic_seq_packet_socket/wait/overload1.html -asio/reference/basic_seq_packet_socket/wait/overload2.html -asio/reference/basic_seq_packet_socket/wait_type.html -asio/reference/basic_seq_packet_socket/_basic_seq_packet_socket.html -asio/reference/basic_socket.html -asio/reference/basic_socket/assign.html -asio/reference/basic_socket/assign/overload1.html -asio/reference/basic_socket/assign/overload2.html -asio/reference/basic_socket/async_connect.html -asio/reference/basic_socket/async_wait.html -asio/reference/basic_socket/at_mark.html -asio/reference/basic_socket/at_mark/overload1.html -asio/reference/basic_socket/at_mark/overload2.html -asio/reference/basic_socket/available.html -asio/reference/basic_socket/available/overload1.html -asio/reference/basic_socket/available/overload2.html -asio/reference/basic_socket/basic_socket.html -asio/reference/basic_socket/basic_socket/overload1.html -asio/reference/basic_socket/basic_socket/overload2.html -asio/reference/basic_socket/basic_socket/overload3.html -asio/reference/basic_socket/basic_socket/overload4.html -asio/reference/basic_socket/basic_socket/overload5.html -asio/reference/basic_socket/basic_socket/overload6.html -asio/reference/basic_socket/bind.html -asio/reference/basic_socket/bind/overload1.html -asio/reference/basic_socket/bind/overload2.html -asio/reference/basic_socket/broadcast.html -asio/reference/basic_socket/bytes_readable.html -asio/reference/basic_socket/cancel.html -asio/reference/basic_socket/cancel/overload1.html -asio/reference/basic_socket/cancel/overload2.html -asio/reference/basic_socket/close.html -asio/reference/basic_socket/close/overload1.html -asio/reference/basic_socket/close/overload2.html -asio/reference/basic_socket/connect.html -asio/reference/basic_socket/connect/overload1.html -asio/reference/basic_socket/connect/overload2.html -asio/reference/basic_socket/debug.html -asio/reference/basic_socket/do_not_route.html -asio/reference/basic_socket/enable_connection_aborted.html -asio/reference/basic_socket/endpoint_type.html -asio/reference/basic_socket/executor_type.html -asio/reference/basic_socket/get_executor.html -asio/reference/basic_socket/get_io_context.html -asio/reference/basic_socket/get_io_service.html -asio/reference/basic_socket/get_option.html -asio/reference/basic_socket/get_option/overload1.html -asio/reference/basic_socket/get_option/overload2.html -asio/reference/basic_socket/io_control.html -asio/reference/basic_socket/io_control/overload1.html -asio/reference/basic_socket/io_control/overload2.html -asio/reference/basic_socket/is_open.html -asio/reference/basic_socket/keep_alive.html -asio/reference/basic_socket/linger.html -asio/reference/basic_socket/local_endpoint.html -asio/reference/basic_socket/local_endpoint/overload1.html -asio/reference/basic_socket/local_endpoint/overload2.html -asio/reference/basic_socket/lowest_layer.html -asio/reference/basic_socket/lowest_layer/overload1.html -asio/reference/basic_socket/lowest_layer/overload2.html -asio/reference/basic_socket/lowest_layer_type.html -asio/reference/basic_socket/max_connections.html -asio/reference/basic_socket/max_listen_connections.html -asio/reference/basic_socket/message_do_not_route.html -asio/reference/basic_socket/message_end_of_record.html -asio/reference/basic_socket/message_flags.html -asio/reference/basic_socket/message_out_of_band.html -asio/reference/basic_socket/message_peek.html -asio/reference/basic_socket/native_handle.html -asio/reference/basic_socket/native_handle_type.html -asio/reference/basic_socket/native_non_blocking.html -asio/reference/basic_socket/native_non_blocking/overload1.html -asio/reference/basic_socket/native_non_blocking/overload2.html -asio/reference/basic_socket/native_non_blocking/overload3.html -asio/reference/basic_socket/non_blocking.html -asio/reference/basic_socket/non_blocking/overload1.html -asio/reference/basic_socket/non_blocking/overload2.html -asio/reference/basic_socket/non_blocking/overload3.html -asio/reference/basic_socket/open.html -asio/reference/basic_socket/open/overload1.html -asio/reference/basic_socket/open/overload2.html -asio/reference/basic_socket/operator_eq_.html -asio/reference/basic_socket/operator_eq_/overload1.html -asio/reference/basic_socket/operator_eq_/overload2.html -asio/reference/basic_socket/out_of_band_inline.html -asio/reference/basic_socket/protocol_type.html -asio/reference/basic_socket/receive_buffer_size.html -asio/reference/basic_socket/receive_low_watermark.html -asio/reference/basic_socket/release.html -asio/reference/basic_socket/release/overload1.html -asio/reference/basic_socket/release/overload2.html -asio/reference/basic_socket/remote_endpoint.html -asio/reference/basic_socket/remote_endpoint/overload1.html -asio/reference/basic_socket/remote_endpoint/overload2.html -asio/reference/basic_socket/reuse_address.html -asio/reference/basic_socket/send_buffer_size.html -asio/reference/basic_socket/send_low_watermark.html -asio/reference/basic_socket/set_option.html -asio/reference/basic_socket/set_option/overload1.html -asio/reference/basic_socket/set_option/overload2.html -asio/reference/basic_socket/shutdown.html -asio/reference/basic_socket/shutdown/overload1.html -asio/reference/basic_socket/shutdown/overload2.html -asio/reference/basic_socket/shutdown_type.html -asio/reference/basic_socket/wait.html -asio/reference/basic_socket/wait/overload1.html -asio/reference/basic_socket/wait/overload2.html -asio/reference/basic_socket/wait_type.html -asio/reference/basic_socket/_basic_socket.html -asio/reference/basic_socket_acceptor.html -asio/reference/basic_socket_acceptor/accept.html -asio/reference/basic_socket_acceptor/accept/overload1.html -asio/reference/basic_socket_acceptor/accept/overload2.html -asio/reference/basic_socket_acceptor/accept/overload3.html -asio/reference/basic_socket_acceptor/accept/overload4.html -asio/reference/basic_socket_acceptor/accept/overload5.html -asio/reference/basic_socket_acceptor/accept/overload6.html -asio/reference/basic_socket_acceptor/accept/overload7.html -asio/reference/basic_socket_acceptor/accept/overload8.html -asio/reference/basic_socket_acceptor/accept/overload9.html -asio/reference/basic_socket_acceptor/accept/overload10.html -asio/reference/basic_socket_acceptor/accept/overload11.html -asio/reference/basic_socket_acceptor/accept/overload12.html -asio/reference/basic_socket_acceptor/assign.html -asio/reference/basic_socket_acceptor/assign/overload1.html -asio/reference/basic_socket_acceptor/assign/overload2.html -asio/reference/basic_socket_acceptor/async_accept.html -asio/reference/basic_socket_acceptor/async_accept/overload1.html -asio/reference/basic_socket_acceptor/async_accept/overload2.html -asio/reference/basic_socket_acceptor/async_accept/overload3.html -asio/reference/basic_socket_acceptor/async_accept/overload4.html -asio/reference/basic_socket_acceptor/async_accept/overload5.html -asio/reference/basic_socket_acceptor/async_accept/overload6.html -asio/reference/basic_socket_acceptor/async_wait.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload1.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload2.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload3.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload4.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload5.html -asio/reference/basic_socket_acceptor/basic_socket_acceptor/overload6.html -asio/reference/basic_socket_acceptor/bind.html -asio/reference/basic_socket_acceptor/bind/overload1.html -asio/reference/basic_socket_acceptor/bind/overload2.html -asio/reference/basic_socket_acceptor/broadcast.html -asio/reference/basic_socket_acceptor/bytes_readable.html -asio/reference/basic_socket_acceptor/cancel.html -asio/reference/basic_socket_acceptor/cancel/overload1.html -asio/reference/basic_socket_acceptor/cancel/overload2.html -asio/reference/basic_socket_acceptor/close.html -asio/reference/basic_socket_acceptor/close/overload1.html -asio/reference/basic_socket_acceptor/close/overload2.html -asio/reference/basic_socket_acceptor/debug.html -asio/reference/basic_socket_acceptor/do_not_route.html -asio/reference/basic_socket_acceptor/enable_connection_aborted.html -asio/reference/basic_socket_acceptor/endpoint_type.html -asio/reference/basic_socket_acceptor/executor_type.html -asio/reference/basic_socket_acceptor/get_executor.html -asio/reference/basic_socket_acceptor/get_io_context.html -asio/reference/basic_socket_acceptor/get_io_service.html -asio/reference/basic_socket_acceptor/get_option.html -asio/reference/basic_socket_acceptor/get_option/overload1.html -asio/reference/basic_socket_acceptor/get_option/overload2.html -asio/reference/basic_socket_acceptor/io_control.html -asio/reference/basic_socket_acceptor/io_control/overload1.html -asio/reference/basic_socket_acceptor/io_control/overload2.html -asio/reference/basic_socket_acceptor/is_open.html -asio/reference/basic_socket_acceptor/keep_alive.html -asio/reference/basic_socket_acceptor/linger.html -asio/reference/basic_socket_acceptor/listen.html -asio/reference/basic_socket_acceptor/listen/overload1.html -asio/reference/basic_socket_acceptor/listen/overload2.html -asio/reference/basic_socket_acceptor/local_endpoint.html -asio/reference/basic_socket_acceptor/local_endpoint/overload1.html -asio/reference/basic_socket_acceptor/local_endpoint/overload2.html -asio/reference/basic_socket_acceptor/max_connections.html -asio/reference/basic_socket_acceptor/max_listen_connections.html -asio/reference/basic_socket_acceptor/message_do_not_route.html -asio/reference/basic_socket_acceptor/message_end_of_record.html -asio/reference/basic_socket_acceptor/message_flags.html -asio/reference/basic_socket_acceptor/message_out_of_band.html -asio/reference/basic_socket_acceptor/message_peek.html -asio/reference/basic_socket_acceptor/native_handle.html -asio/reference/basic_socket_acceptor/native_handle_type.html -asio/reference/basic_socket_acceptor/native_non_blocking.html -asio/reference/basic_socket_acceptor/native_non_blocking/overload1.html -asio/reference/basic_socket_acceptor/native_non_blocking/overload2.html -asio/reference/basic_socket_acceptor/native_non_blocking/overload3.html -asio/reference/basic_socket_acceptor/non_blocking.html -asio/reference/basic_socket_acceptor/non_blocking/overload1.html -asio/reference/basic_socket_acceptor/non_blocking/overload2.html -asio/reference/basic_socket_acceptor/non_blocking/overload3.html -asio/reference/basic_socket_acceptor/open.html -asio/reference/basic_socket_acceptor/open/overload1.html -asio/reference/basic_socket_acceptor/open/overload2.html -asio/reference/basic_socket_acceptor/operator_eq_.html -asio/reference/basic_socket_acceptor/operator_eq_/overload1.html -asio/reference/basic_socket_acceptor/operator_eq_/overload2.html -asio/reference/basic_socket_acceptor/out_of_band_inline.html -asio/reference/basic_socket_acceptor/protocol_type.html -asio/reference/basic_socket_acceptor/receive_buffer_size.html -asio/reference/basic_socket_acceptor/receive_low_watermark.html -asio/reference/basic_socket_acceptor/release.html -asio/reference/basic_socket_acceptor/release/overload1.html -asio/reference/basic_socket_acceptor/release/overload2.html -asio/reference/basic_socket_acceptor/reuse_address.html -asio/reference/basic_socket_acceptor/send_buffer_size.html -asio/reference/basic_socket_acceptor/send_low_watermark.html -asio/reference/basic_socket_acceptor/set_option.html -asio/reference/basic_socket_acceptor/set_option/overload1.html -asio/reference/basic_socket_acceptor/set_option/overload2.html -asio/reference/basic_socket_acceptor/shutdown_type.html -asio/reference/basic_socket_acceptor/wait.html -asio/reference/basic_socket_acceptor/wait/overload1.html -asio/reference/basic_socket_acceptor/wait/overload2.html -asio/reference/basic_socket_acceptor/wait_type.html -asio/reference/basic_socket_acceptor/_basic_socket_acceptor.html -asio/reference/basic_socket_iostream.html -asio/reference/basic_socket_iostream/basic_socket_iostream.html -asio/reference/basic_socket_iostream/basic_socket_iostream/overload1.html -asio/reference/basic_socket_iostream/basic_socket_iostream/overload2.html -asio/reference/basic_socket_iostream/basic_socket_iostream/overload3.html -asio/reference/basic_socket_iostream/basic_socket_iostream/overload4.html -asio/reference/basic_socket_iostream/clock_type.html -asio/reference/basic_socket_iostream/close.html -asio/reference/basic_socket_iostream/connect.html -asio/reference/basic_socket_iostream/duration.html -asio/reference/basic_socket_iostream/duration_type.html -asio/reference/basic_socket_iostream/endpoint_type.html -asio/reference/basic_socket_iostream/error.html -asio/reference/basic_socket_iostream/expires_after.html -asio/reference/basic_socket_iostream/expires_at.html -asio/reference/basic_socket_iostream/expires_at/overload1.html -asio/reference/basic_socket_iostream/expires_at/overload2.html -asio/reference/basic_socket_iostream/expires_from_now.html -asio/reference/basic_socket_iostream/expires_from_now/overload1.html -asio/reference/basic_socket_iostream/expires_from_now/overload2.html -asio/reference/basic_socket_iostream/expiry.html -asio/reference/basic_socket_iostream/operator_eq_.html -asio/reference/basic_socket_iostream/protocol_type.html -asio/reference/basic_socket_iostream/rdbuf.html -asio/reference/basic_socket_iostream/socket.html -asio/reference/basic_socket_iostream/time_point.html -asio/reference/basic_socket_iostream/time_type.html -asio/reference/basic_socket_streambuf.html -asio/reference/basic_socket_streambuf/basic_socket_streambuf.html -asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload1.html -asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload2.html -asio/reference/basic_socket_streambuf/basic_socket_streambuf/overload3.html -asio/reference/basic_socket_streambuf/clock_type.html -asio/reference/basic_socket_streambuf/close.html -asio/reference/basic_socket_streambuf/connect.html -asio/reference/basic_socket_streambuf/connect/overload1.html -asio/reference/basic_socket_streambuf/connect/overload2.html -asio/reference/basic_socket_streambuf/duration.html -asio/reference/basic_socket_streambuf/duration_type.html -asio/reference/basic_socket_streambuf/endpoint_type.html -asio/reference/basic_socket_streambuf/error.html -asio/reference/basic_socket_streambuf/expires_after.html -asio/reference/basic_socket_streambuf/expires_at.html -asio/reference/basic_socket_streambuf/expires_at/overload1.html -asio/reference/basic_socket_streambuf/expires_at/overload2.html -asio/reference/basic_socket_streambuf/expires_from_now.html -asio/reference/basic_socket_streambuf/expires_from_now/overload1.html -asio/reference/basic_socket_streambuf/expires_from_now/overload2.html -asio/reference/basic_socket_streambuf/expiry.html -asio/reference/basic_socket_streambuf/operator_eq_.html -asio/reference/basic_socket_streambuf/overflow.html -asio/reference/basic_socket_streambuf/protocol_type.html -asio/reference/basic_socket_streambuf/puberror.html -asio/reference/basic_socket_streambuf/setbuf.html -asio/reference/basic_socket_streambuf/socket.html -asio/reference/basic_socket_streambuf/sync.html -asio/reference/basic_socket_streambuf/time_point.html -asio/reference/basic_socket_streambuf/time_type.html -asio/reference/basic_socket_streambuf/underflow.html -asio/reference/basic_socket_streambuf/_basic_socket_streambuf.html -asio/reference/basic_stream_socket.html -asio/reference/basic_stream_socket/assign.html -asio/reference/basic_stream_socket/assign/overload1.html -asio/reference/basic_stream_socket/assign/overload2.html -asio/reference/basic_stream_socket/async_connect.html -asio/reference/basic_stream_socket/async_read_some.html -asio/reference/basic_stream_socket/async_receive.html -asio/reference/basic_stream_socket/async_receive/overload1.html -asio/reference/basic_stream_socket/async_receive/overload2.html -asio/reference/basic_stream_socket/async_send.html -asio/reference/basic_stream_socket/async_send/overload1.html -asio/reference/basic_stream_socket/async_send/overload2.html -asio/reference/basic_stream_socket/async_wait.html -asio/reference/basic_stream_socket/async_write_some.html -asio/reference/basic_stream_socket/at_mark.html -asio/reference/basic_stream_socket/at_mark/overload1.html -asio/reference/basic_stream_socket/at_mark/overload2.html -asio/reference/basic_stream_socket/available.html -asio/reference/basic_stream_socket/available/overload1.html -asio/reference/basic_stream_socket/available/overload2.html -asio/reference/basic_stream_socket/basic_stream_socket.html -asio/reference/basic_stream_socket/basic_stream_socket/overload1.html -asio/reference/basic_stream_socket/basic_stream_socket/overload2.html -asio/reference/basic_stream_socket/basic_stream_socket/overload3.html -asio/reference/basic_stream_socket/basic_stream_socket/overload4.html -asio/reference/basic_stream_socket/basic_stream_socket/overload5.html -asio/reference/basic_stream_socket/basic_stream_socket/overload6.html -asio/reference/basic_stream_socket/bind.html -asio/reference/basic_stream_socket/bind/overload1.html -asio/reference/basic_stream_socket/bind/overload2.html -asio/reference/basic_stream_socket/broadcast.html -asio/reference/basic_stream_socket/bytes_readable.html -asio/reference/basic_stream_socket/cancel.html -asio/reference/basic_stream_socket/cancel/overload1.html -asio/reference/basic_stream_socket/cancel/overload2.html -asio/reference/basic_stream_socket/close.html -asio/reference/basic_stream_socket/close/overload1.html -asio/reference/basic_stream_socket/close/overload2.html -asio/reference/basic_stream_socket/connect.html -asio/reference/basic_stream_socket/connect/overload1.html -asio/reference/basic_stream_socket/connect/overload2.html -asio/reference/basic_stream_socket/debug.html -asio/reference/basic_stream_socket/do_not_route.html -asio/reference/basic_stream_socket/enable_connection_aborted.html -asio/reference/basic_stream_socket/endpoint_type.html -asio/reference/basic_stream_socket/executor_type.html -asio/reference/basic_stream_socket/get_executor.html -asio/reference/basic_stream_socket/get_io_context.html -asio/reference/basic_stream_socket/get_io_service.html -asio/reference/basic_stream_socket/get_option.html -asio/reference/basic_stream_socket/get_option/overload1.html -asio/reference/basic_stream_socket/get_option/overload2.html -asio/reference/basic_stream_socket/io_control.html -asio/reference/basic_stream_socket/io_control/overload1.html -asio/reference/basic_stream_socket/io_control/overload2.html -asio/reference/basic_stream_socket/is_open.html -asio/reference/basic_stream_socket/keep_alive.html -asio/reference/basic_stream_socket/linger.html -asio/reference/basic_stream_socket/local_endpoint.html -asio/reference/basic_stream_socket/local_endpoint/overload1.html -asio/reference/basic_stream_socket/local_endpoint/overload2.html -asio/reference/basic_stream_socket/lowest_layer.html -asio/reference/basic_stream_socket/lowest_layer/overload1.html -asio/reference/basic_stream_socket/lowest_layer/overload2.html -asio/reference/basic_stream_socket/lowest_layer_type.html -asio/reference/basic_stream_socket/max_connections.html -asio/reference/basic_stream_socket/max_listen_connections.html -asio/reference/basic_stream_socket/message_do_not_route.html -asio/reference/basic_stream_socket/message_end_of_record.html -asio/reference/basic_stream_socket/message_flags.html -asio/reference/basic_stream_socket/message_out_of_band.html -asio/reference/basic_stream_socket/message_peek.html -asio/reference/basic_stream_socket/native_handle.html -asio/reference/basic_stream_socket/native_handle_type.html -asio/reference/basic_stream_socket/native_non_blocking.html -asio/reference/basic_stream_socket/native_non_blocking/overload1.html -asio/reference/basic_stream_socket/native_non_blocking/overload2.html -asio/reference/basic_stream_socket/native_non_blocking/overload3.html -asio/reference/basic_stream_socket/non_blocking.html -asio/reference/basic_stream_socket/non_blocking/overload1.html -asio/reference/basic_stream_socket/non_blocking/overload2.html -asio/reference/basic_stream_socket/non_blocking/overload3.html -asio/reference/basic_stream_socket/open.html -asio/reference/basic_stream_socket/open/overload1.html -asio/reference/basic_stream_socket/open/overload2.html -asio/reference/basic_stream_socket/operator_eq_.html -asio/reference/basic_stream_socket/operator_eq_/overload1.html -asio/reference/basic_stream_socket/operator_eq_/overload2.html -asio/reference/basic_stream_socket/out_of_band_inline.html -asio/reference/basic_stream_socket/protocol_type.html -asio/reference/basic_stream_socket/read_some.html -asio/reference/basic_stream_socket/read_some/overload1.html -asio/reference/basic_stream_socket/read_some/overload2.html -asio/reference/basic_stream_socket/receive.html -asio/reference/basic_stream_socket/receive/overload1.html -asio/reference/basic_stream_socket/receive/overload2.html -asio/reference/basic_stream_socket/receive/overload3.html -asio/reference/basic_stream_socket/receive_buffer_size.html -asio/reference/basic_stream_socket/receive_low_watermark.html -asio/reference/basic_stream_socket/release.html -asio/reference/basic_stream_socket/release/overload1.html -asio/reference/basic_stream_socket/release/overload2.html -asio/reference/basic_stream_socket/remote_endpoint.html -asio/reference/basic_stream_socket/remote_endpoint/overload1.html -asio/reference/basic_stream_socket/remote_endpoint/overload2.html -asio/reference/basic_stream_socket/reuse_address.html -asio/reference/basic_stream_socket/send.html -asio/reference/basic_stream_socket/send/overload1.html -asio/reference/basic_stream_socket/send/overload2.html -asio/reference/basic_stream_socket/send/overload3.html -asio/reference/basic_stream_socket/send_buffer_size.html -asio/reference/basic_stream_socket/send_low_watermark.html -asio/reference/basic_stream_socket/set_option.html -asio/reference/basic_stream_socket/set_option/overload1.html -asio/reference/basic_stream_socket/set_option/overload2.html -asio/reference/basic_stream_socket/shutdown.html -asio/reference/basic_stream_socket/shutdown/overload1.html -asio/reference/basic_stream_socket/shutdown/overload2.html -asio/reference/basic_stream_socket/shutdown_type.html -asio/reference/basic_stream_socket/wait.html -asio/reference/basic_stream_socket/wait/overload1.html -asio/reference/basic_stream_socket/wait/overload2.html -asio/reference/basic_stream_socket/wait_type.html -asio/reference/basic_stream_socket/write_some.html -asio/reference/basic_stream_socket/write_some/overload1.html -asio/reference/basic_stream_socket/write_some/overload2.html -asio/reference/basic_stream_socket/_basic_stream_socket.html -asio/reference/basic_streambuf.html -asio/reference/basic_streambuf/basic_streambuf.html -asio/reference/basic_streambuf/capacity.html -asio/reference/basic_streambuf/commit.html -asio/reference/basic_streambuf/const_buffers_type.html -asio/reference/basic_streambuf/consume.html -asio/reference/basic_streambuf/data.html -asio/reference/basic_streambuf/max_size.html -asio/reference/basic_streambuf/mutable_buffers_type.html -asio/reference/basic_streambuf/overflow.html -asio/reference/basic_streambuf/prepare.html -asio/reference/basic_streambuf/reserve.html -asio/reference/basic_streambuf/size.html -asio/reference/basic_streambuf/underflow.html -asio/reference/basic_streambuf_ref.html -asio/reference/basic_streambuf_ref/basic_streambuf_ref.html -asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload1.html -asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload2.html -asio/reference/basic_streambuf_ref/basic_streambuf_ref/overload3.html -asio/reference/basic_streambuf_ref/capacity.html -asio/reference/basic_streambuf_ref/commit.html -asio/reference/basic_streambuf_ref/const_buffers_type.html -asio/reference/basic_streambuf_ref/consume.html -asio/reference/basic_streambuf_ref/data.html -asio/reference/basic_streambuf_ref/max_size.html -asio/reference/basic_streambuf_ref/mutable_buffers_type.html -asio/reference/basic_streambuf_ref/prepare.html -asio/reference/basic_streambuf_ref/size.html -asio/reference/basic_waitable_timer.html -asio/reference/basic_waitable_timer/async_wait.html -asio/reference/basic_waitable_timer/basic_waitable_timer.html -asio/reference/basic_waitable_timer/basic_waitable_timer/overload1.html -asio/reference/basic_waitable_timer/basic_waitable_timer/overload2.html -asio/reference/basic_waitable_timer/basic_waitable_timer/overload3.html -asio/reference/basic_waitable_timer/basic_waitable_timer/overload4.html -asio/reference/basic_waitable_timer/cancel.html -asio/reference/basic_waitable_timer/cancel/overload1.html -asio/reference/basic_waitable_timer/cancel/overload2.html -asio/reference/basic_waitable_timer/cancel_one.html -asio/reference/basic_waitable_timer/cancel_one/overload1.html -asio/reference/basic_waitable_timer/cancel_one/overload2.html -asio/reference/basic_waitable_timer/clock_type.html -asio/reference/basic_waitable_timer/duration.html -asio/reference/basic_waitable_timer/executor_type.html -asio/reference/basic_waitable_timer/expires_after.html -asio/reference/basic_waitable_timer/expires_at.html -asio/reference/basic_waitable_timer/expires_at/overload1.html -asio/reference/basic_waitable_timer/expires_at/overload2.html -asio/reference/basic_waitable_timer/expires_at/overload3.html -asio/reference/basic_waitable_timer/expires_from_now.html -asio/reference/basic_waitable_timer/expires_from_now/overload1.html -asio/reference/basic_waitable_timer/expires_from_now/overload2.html -asio/reference/basic_waitable_timer/expires_from_now/overload3.html -asio/reference/basic_waitable_timer/expiry.html -asio/reference/basic_waitable_timer/get_executor.html -asio/reference/basic_waitable_timer/get_io_context.html -asio/reference/basic_waitable_timer/get_io_service.html -asio/reference/basic_waitable_timer/operator_eq_.html -asio/reference/basic_waitable_timer/time_point.html -asio/reference/basic_waitable_timer/traits_type.html -asio/reference/basic_waitable_timer/wait.html -asio/reference/basic_waitable_timer/wait/overload1.html -asio/reference/basic_waitable_timer/wait/overload2.html -asio/reference/basic_waitable_timer/_basic_waitable_timer.html -asio/reference/basic_yield_context.html -asio/reference/basic_yield_context/basic_yield_context.html -asio/reference/basic_yield_context/basic_yield_context/overload1.html -asio/reference/basic_yield_context/basic_yield_context/overload2.html -asio/reference/basic_yield_context/callee_type.html -asio/reference/basic_yield_context/caller_type.html -asio/reference/basic_yield_context/operator_lb__rb_.html -asio/reference/bind_executor.html -asio/reference/bind_executor/overload1.html -asio/reference/bind_executor/overload2.html -asio/reference/buffer.html -asio/reference/buffer/overload1.html -asio/reference/buffer/overload2.html -asio/reference/buffer/overload3.html -asio/reference/buffer/overload4.html -asio/reference/buffer/overload5.html -asio/reference/buffer/overload6.html -asio/reference/buffer/overload7.html -asio/reference/buffer/overload8.html -asio/reference/buffer/overload9.html -asio/reference/buffer/overload10.html -asio/reference/buffer/overload11.html -asio/reference/buffer/overload12.html -asio/reference/buffer/overload13.html -asio/reference/buffer/overload14.html -asio/reference/buffer/overload15.html -asio/reference/buffer/overload16.html -asio/reference/buffer/overload17.html -asio/reference/buffer/overload18.html -asio/reference/buffer/overload19.html -asio/reference/buffer/overload20.html -asio/reference/buffer/overload21.html -asio/reference/buffer/overload22.html -asio/reference/buffer/overload23.html -asio/reference/buffer/overload24.html -asio/reference/buffer/overload25.html -asio/reference/buffer/overload26.html -asio/reference/buffer/overload27.html -asio/reference/buffer/overload28.html -asio/reference/buffer/overload29.html -asio/reference/buffer/overload30.html -asio/reference/buffer/overload31.html -asio/reference/buffer/overload32.html -asio/reference/buffer_cast.html -asio/reference/buffer_cast/overload1.html -asio/reference/buffer_cast/overload2.html -asio/reference/buffer_copy.html -asio/reference/buffer_copy/overload1.html -asio/reference/buffer_copy/overload2.html -asio/reference/buffer_sequence_begin.html -asio/reference/buffer_sequence_begin/overload1.html -asio/reference/buffer_sequence_begin/overload2.html -asio/reference/buffer_sequence_begin/overload3.html -asio/reference/buffer_sequence_begin/overload4.html -asio/reference/buffer_sequence_end.html -asio/reference/buffer_sequence_end/overload1.html -asio/reference/buffer_sequence_end/overload2.html -asio/reference/buffer_sequence_end/overload3.html -asio/reference/buffer_sequence_end/overload4.html -asio/reference/buffer_size.html -asio/reference/buffered_read_stream.html -asio/reference/buffered_read_stream/async_fill.html -asio/reference/buffered_read_stream/async_read_some.html -asio/reference/buffered_read_stream/async_write_some.html -asio/reference/buffered_read_stream/buffered_read_stream.html -asio/reference/buffered_read_stream/buffered_read_stream/overload1.html -asio/reference/buffered_read_stream/buffered_read_stream/overload2.html -asio/reference/buffered_read_stream/close.html -asio/reference/buffered_read_stream/close/overload1.html -asio/reference/buffered_read_stream/close/overload2.html -asio/reference/buffered_read_stream/default_buffer_size.html -asio/reference/buffered_read_stream/executor_type.html -asio/reference/buffered_read_stream/fill.html -asio/reference/buffered_read_stream/fill/overload1.html -asio/reference/buffered_read_stream/fill/overload2.html -asio/reference/buffered_read_stream/get_executor.html -asio/reference/buffered_read_stream/get_io_context.html -asio/reference/buffered_read_stream/get_io_service.html -asio/reference/buffered_read_stream/in_avail.html -asio/reference/buffered_read_stream/in_avail/overload1.html -asio/reference/buffered_read_stream/in_avail/overload2.html -asio/reference/buffered_read_stream/lowest_layer.html -asio/reference/buffered_read_stream/lowest_layer/overload1.html -asio/reference/buffered_read_stream/lowest_layer/overload2.html -asio/reference/buffered_read_stream/lowest_layer_type.html -asio/reference/buffered_read_stream/next_layer.html -asio/reference/buffered_read_stream/next_layer_type.html -asio/reference/buffered_read_stream/peek.html -asio/reference/buffered_read_stream/peek/overload1.html -asio/reference/buffered_read_stream/peek/overload2.html -asio/reference/buffered_read_stream/read_some.html -asio/reference/buffered_read_stream/read_some/overload1.html -asio/reference/buffered_read_stream/read_some/overload2.html -asio/reference/buffered_read_stream/write_some.html -asio/reference/buffered_read_stream/write_some/overload1.html -asio/reference/buffered_read_stream/write_some/overload2.html -asio/reference/buffered_stream.html -asio/reference/buffered_stream/async_fill.html -asio/reference/buffered_stream/async_flush.html -asio/reference/buffered_stream/async_read_some.html -asio/reference/buffered_stream/async_write_some.html -asio/reference/buffered_stream/buffered_stream.html -asio/reference/buffered_stream/buffered_stream/overload1.html -asio/reference/buffered_stream/buffered_stream/overload2.html -asio/reference/buffered_stream/close.html -asio/reference/buffered_stream/close/overload1.html -asio/reference/buffered_stream/close/overload2.html -asio/reference/buffered_stream/executor_type.html -asio/reference/buffered_stream/fill.html -asio/reference/buffered_stream/fill/overload1.html -asio/reference/buffered_stream/fill/overload2.html -asio/reference/buffered_stream/flush.html -asio/reference/buffered_stream/flush/overload1.html -asio/reference/buffered_stream/flush/overload2.html -asio/reference/buffered_stream/get_executor.html -asio/reference/buffered_stream/get_io_context.html -asio/reference/buffered_stream/get_io_service.html -asio/reference/buffered_stream/in_avail.html -asio/reference/buffered_stream/in_avail/overload1.html -asio/reference/buffered_stream/in_avail/overload2.html -asio/reference/buffered_stream/lowest_layer.html -asio/reference/buffered_stream/lowest_layer/overload1.html -asio/reference/buffered_stream/lowest_layer/overload2.html -asio/reference/buffered_stream/lowest_layer_type.html -asio/reference/buffered_stream/next_layer.html -asio/reference/buffered_stream/next_layer_type.html -asio/reference/buffered_stream/peek.html -asio/reference/buffered_stream/peek/overload1.html -asio/reference/buffered_stream/peek/overload2.html -asio/reference/buffered_stream/read_some.html -asio/reference/buffered_stream/read_some/overload1.html -asio/reference/buffered_stream/read_some/overload2.html -asio/reference/buffered_stream/write_some.html -asio/reference/buffered_stream/write_some/overload1.html -asio/reference/buffered_stream/write_some/overload2.html -asio/reference/buffered_write_stream.html -asio/reference/buffered_write_stream/async_flush.html -asio/reference/buffered_write_stream/async_read_some.html -asio/reference/buffered_write_stream/async_write_some.html -asio/reference/buffered_write_stream/buffered_write_stream.html -asio/reference/buffered_write_stream/buffered_write_stream/overload1.html -asio/reference/buffered_write_stream/buffered_write_stream/overload2.html -asio/reference/buffered_write_stream/close.html -asio/reference/buffered_write_stream/close/overload1.html -asio/reference/buffered_write_stream/close/overload2.html -asio/reference/buffered_write_stream/default_buffer_size.html -asio/reference/buffered_write_stream/executor_type.html -asio/reference/buffered_write_stream/flush.html -asio/reference/buffered_write_stream/flush/overload1.html -asio/reference/buffered_write_stream/flush/overload2.html -asio/reference/buffered_write_stream/get_executor.html -asio/reference/buffered_write_stream/get_io_context.html -asio/reference/buffered_write_stream/get_io_service.html -asio/reference/buffered_write_stream/in_avail.html -asio/reference/buffered_write_stream/in_avail/overload1.html -asio/reference/buffered_write_stream/in_avail/overload2.html -asio/reference/buffered_write_stream/lowest_layer.html -asio/reference/buffered_write_stream/lowest_layer/overload1.html -asio/reference/buffered_write_stream/lowest_layer/overload2.html -asio/reference/buffered_write_stream/lowest_layer_type.html -asio/reference/buffered_write_stream/next_layer.html -asio/reference/buffered_write_stream/next_layer_type.html -asio/reference/buffered_write_stream/peek.html -asio/reference/buffered_write_stream/peek/overload1.html -asio/reference/buffered_write_stream/peek/overload2.html -asio/reference/buffered_write_stream/read_some.html -asio/reference/buffered_write_stream/read_some/overload1.html -asio/reference/buffered_write_stream/read_some/overload2.html -asio/reference/buffered_write_stream/write_some.html -asio/reference/buffered_write_stream/write_some/overload1.html -asio/reference/buffered_write_stream/write_some/overload2.html -asio/reference/buffers_begin.html -asio/reference/buffers_end.html -asio/reference/buffers_iterator.html -asio/reference/buffers_iterator/begin.html -asio/reference/buffers_iterator/buffers_iterator.html -asio/reference/buffers_iterator/difference_type.html -asio/reference/buffers_iterator/end.html -asio/reference/buffers_iterator/iterator_category.html -asio/reference/buffers_iterator/operator__star_.html -asio/reference/buffers_iterator/operator_not__eq_.html -asio/reference/buffers_iterator/operator_plus_.html -asio/reference/buffers_iterator/operator_plus_/overload1.html -asio/reference/buffers_iterator/operator_plus_/overload2.html -asio/reference/buffers_iterator/operator_plus__plus_.html -asio/reference/buffers_iterator/operator_plus__plus_/overload1.html -asio/reference/buffers_iterator/operator_plus__plus_/overload2.html -asio/reference/buffers_iterator/operator_plus__eq_.html -asio/reference/buffers_iterator/operator_minus_.html -asio/reference/buffers_iterator/operator_minus_/overload1.html -asio/reference/buffers_iterator/operator_minus_/overload2.html -asio/reference/buffers_iterator/operator_minus__minus_.html -asio/reference/buffers_iterator/operator_minus__minus_/overload1.html -asio/reference/buffers_iterator/operator_minus__minus_/overload2.html -asio/reference/buffers_iterator/operator_minus__eq_.html -asio/reference/buffers_iterator/operator_arrow_.html -asio/reference/buffers_iterator/operator_lt_.html -asio/reference/buffers_iterator/operator_lt__eq_.html -asio/reference/buffers_iterator/operator_eq__eq_.html -asio/reference/buffers_iterator/operator_gt_.html -asio/reference/buffers_iterator/operator_gt__eq_.html -asio/reference/buffers_iterator/operator_lb__rb_.html -asio/reference/buffers_iterator/pointer.html -asio/reference/buffers_iterator/reference.html -asio/reference/buffers_iterator/value_type.html -asio/reference/connect.html -asio/reference/connect/overload1.html -asio/reference/connect/overload2.html -asio/reference/connect/overload3.html -asio/reference/connect/overload4.html -asio/reference/connect/overload5.html -asio/reference/connect/overload6.html -asio/reference/connect/overload7.html -asio/reference/connect/overload8.html -asio/reference/connect/overload9.html -asio/reference/connect/overload10.html -asio/reference/connect/overload11.html -asio/reference/connect/overload12.html -asio/reference/const_buffer.html -asio/reference/const_buffer/const_buffer.html -asio/reference/const_buffer/const_buffer/overload1.html -asio/reference/const_buffer/const_buffer/overload2.html -asio/reference/const_buffer/const_buffer/overload3.html -asio/reference/const_buffer/data.html -asio/reference/const_buffer/operator_plus_.html -asio/reference/const_buffer/operator_plus_/overload1.html -asio/reference/const_buffer/operator_plus_/overload2.html -asio/reference/const_buffer/operator_plus__eq_.html -asio/reference/const_buffer/size.html -asio/reference/const_buffers_1.html -asio/reference/const_buffers_1/begin.html -asio/reference/const_buffers_1/const_buffers_1.html -asio/reference/const_buffers_1/const_buffers_1/overload1.html -asio/reference/const_buffers_1/const_buffers_1/overload2.html -asio/reference/const_buffers_1/const_iterator.html -asio/reference/const_buffers_1/data.html -asio/reference/const_buffers_1/end.html -asio/reference/const_buffers_1/operator_plus_.html -asio/reference/const_buffers_1/operator_plus_/overload1.html -asio/reference/const_buffers_1/operator_plus_/overload2.html -asio/reference/const_buffers_1/operator_plus__eq_.html -asio/reference/const_buffers_1/size.html -asio/reference/const_buffers_1/value_type.html -asio/reference/coroutine.html -asio/reference/coroutine/coroutine.html -asio/reference/coroutine/is_child.html -asio/reference/coroutine/is_complete.html -asio/reference/coroutine/is_parent.html -asio/reference/deadline_timer.html -asio/reference/defer.html -asio/reference/defer/overload1.html -asio/reference/defer/overload2.html -asio/reference/defer/overload3.html -asio/reference/dispatch.html -asio/reference/dispatch/overload1.html -asio/reference/dispatch/overload2.html -asio/reference/dispatch/overload3.html -asio/reference/dynamic_buffer.html -asio/reference/dynamic_buffer/overload1.html -asio/reference/dynamic_buffer/overload2.html -asio/reference/dynamic_buffer/overload3.html -asio/reference/dynamic_buffer/overload4.html -asio/reference/dynamic_string_buffer.html -asio/reference/dynamic_string_buffer/capacity.html -asio/reference/dynamic_string_buffer/commit.html -asio/reference/dynamic_string_buffer/const_buffers_type.html -asio/reference/dynamic_string_buffer/consume.html -asio/reference/dynamic_string_buffer/data.html -asio/reference/dynamic_string_buffer/dynamic_string_buffer.html -asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload1.html -asio/reference/dynamic_string_buffer/dynamic_string_buffer/overload2.html -asio/reference/dynamic_string_buffer/max_size.html -asio/reference/dynamic_string_buffer/mutable_buffers_type.html -asio/reference/dynamic_string_buffer/prepare.html -asio/reference/dynamic_string_buffer/size.html -asio/reference/dynamic_vector_buffer.html -asio/reference/dynamic_vector_buffer/capacity.html -asio/reference/dynamic_vector_buffer/commit.html -asio/reference/dynamic_vector_buffer/const_buffers_type.html -asio/reference/dynamic_vector_buffer/consume.html -asio/reference/dynamic_vector_buffer/data.html -asio/reference/dynamic_vector_buffer/dynamic_vector_buffer.html -asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload1.html -asio/reference/dynamic_vector_buffer/dynamic_vector_buffer/overload2.html -asio/reference/dynamic_vector_buffer/max_size.html -asio/reference/dynamic_vector_buffer/mutable_buffers_type.html -asio/reference/dynamic_vector_buffer/prepare.html -asio/reference/dynamic_vector_buffer/size.html -asio/reference/error__addrinfo_category.html -asio/reference/error__addrinfo_errors.html -asio/reference/error__basic_errors.html -asio/reference/error__get_addrinfo_category.html -asio/reference/error__get_misc_category.html -asio/reference/error__get_netdb_category.html -asio/reference/error__get_ssl_category.html -asio/reference/error__get_system_category.html -asio/reference/error__make_error_code.html -asio/reference/error__make_error_code/overload1.html -asio/reference/error__make_error_code/overload2.html -asio/reference/error__make_error_code/overload3.html -asio/reference/error__make_error_code/overload4.html -asio/reference/error__make_error_code/overload5.html -asio/reference/error__misc_category.html -asio/reference/error__misc_errors.html -asio/reference/error__netdb_category.html -asio/reference/error__netdb_errors.html -asio/reference/error__ssl_category.html -asio/reference/error__ssl_errors.html -asio/reference/error__system_category.html -asio/reference/error_category.html -asio/reference/error_category/message.html -asio/reference/error_category/name.html -asio/reference/error_category/operator_not__eq_.html -asio/reference/error_category/operator_eq__eq_.html -asio/reference/error_category/_error_category.html -asio/reference/error_code.html -asio/reference/error_code/assign.html -asio/reference/error_code/category.html -asio/reference/error_code/clear.html -asio/reference/error_code/error_code.html -asio/reference/error_code/error_code/overload1.html -asio/reference/error_code/error_code/overload2.html -asio/reference/error_code/error_code/overload3.html -asio/reference/error_code/message.html -asio/reference/error_code/operator_unspecified_bool_type.html -asio/reference/error_code/operator_not_.html -asio/reference/error_code/operator_not__eq_.html -asio/reference/error_code/operator_eq__eq_.html -asio/reference/error_code/unspecified_bool_true.html -asio/reference/error_code/unspecified_bool_type.html -asio/reference/error_code/value.html -asio/reference/error_code__unspecified_bool_type_t.html -asio/reference/execution_context.html -asio/reference/execution_context/add_service.html -asio/reference/execution_context/destroy.html -asio/reference/execution_context/execution_context.html -asio/reference/execution_context/fork_event.html -asio/reference/execution_context/has_service.html -asio/reference/execution_context/make_service.html -asio/reference/execution_context/notify_fork.html -asio/reference/execution_context/shutdown.html -asio/reference/execution_context/use_service.html -asio/reference/execution_context/use_service/overload1.html -asio/reference/execution_context/use_service/overload2.html -asio/reference/execution_context/_execution_context.html -asio/reference/execution_context__id.html -asio/reference/execution_context__id/id.html -asio/reference/execution_context__service.html -asio/reference/execution_context__service/context.html -asio/reference/execution_context__service/service.html -asio/reference/execution_context__service/_service.html -asio/reference/execution_context__service/notify_fork.html -asio/reference/execution_context__service/shutdown.html -asio/reference/executor.html -asio/reference/executor/context.html -asio/reference/executor/defer.html -asio/reference/executor/dispatch.html -asio/reference/executor/executor.html -asio/reference/executor/executor/overload1.html -asio/reference/executor/executor/overload2.html -asio/reference/executor/executor/overload3.html -asio/reference/executor/executor/overload4.html -asio/reference/executor/executor/overload5.html -asio/reference/executor/executor/overload6.html -asio/reference/executor/on_work_finished.html -asio/reference/executor/on_work_started.html -asio/reference/executor/operator_unspecified_bool_type.html -asio/reference/executor/operator_not__eq_.html -asio/reference/executor/operator_eq_.html -asio/reference/executor/operator_eq_/overload1.html -asio/reference/executor/operator_eq_/overload2.html -asio/reference/executor/operator_eq_/overload3.html -asio/reference/executor/operator_eq_/overload4.html -asio/reference/executor/operator_eq__eq_.html -asio/reference/executor/post.html -asio/reference/executor/target.html -asio/reference/executor/target/overload1.html -asio/reference/executor/target/overload2.html -asio/reference/executor/target_type.html -asio/reference/executor/unspecified_bool_true.html -asio/reference/executor/unspecified_bool_type.html -asio/reference/executor/_executor.html -asio/reference/executor__unspecified_bool_type_t.html -asio/reference/executor_arg.html -asio/reference/executor_arg_t.html -asio/reference/executor_arg_t/executor_arg_t.html -asio/reference/executor_binder.html -asio/reference/executor_binder/argument_type.html -asio/reference/executor_binder/executor_binder.html -asio/reference/executor_binder/executor_binder/overload1.html -asio/reference/executor_binder/executor_binder/overload2.html -asio/reference/executor_binder/executor_binder/overload3.html -asio/reference/executor_binder/executor_binder/overload4.html -asio/reference/executor_binder/executor_binder/overload5.html -asio/reference/executor_binder/executor_binder/overload6.html -asio/reference/executor_binder/executor_binder/overload7.html -asio/reference/executor_binder/executor_binder/overload8.html -asio/reference/executor_binder/executor_binder/overload9.html -asio/reference/executor_binder/executor_type.html -asio/reference/executor_binder/first_argument_type.html -asio/reference/executor_binder/get.html -asio/reference/executor_binder/get/overload1.html -asio/reference/executor_binder/get/overload2.html -asio/reference/executor_binder/get_executor.html -asio/reference/executor_binder/operator_lp__rp_.html -asio/reference/executor_binder/operator_lp__rp_/overload1.html -asio/reference/executor_binder/operator_lp__rp_/overload2.html -asio/reference/executor_binder/result_type.html -asio/reference/executor_binder/second_argument_type.html -asio/reference/executor_binder/target_type.html -asio/reference/executor_binder/_executor_binder.html -asio/reference/executor_work_guard.html -asio/reference/executor_work_guard/executor_type.html -asio/reference/executor_work_guard/executor_work_guard.html -asio/reference/executor_work_guard/executor_work_guard/overload1.html -asio/reference/executor_work_guard/executor_work_guard/overload2.html -asio/reference/executor_work_guard/executor_work_guard/overload3.html -asio/reference/executor_work_guard/get_executor.html -asio/reference/executor_work_guard/owns_work.html -asio/reference/executor_work_guard/reset.html -asio/reference/executor_work_guard/_executor_work_guard.html -asio/reference/experimental__await_token.html -asio/reference/experimental__await_token/await_token.html -asio/reference/experimental__await_token/await_token/overload1.html -asio/reference/experimental__await_token/await_token/overload2.html -asio/reference/experimental__await_token/executor_type.html -asio/reference/experimental__await_token/get_executor.html -asio/reference/experimental__awaitable.html -asio/reference/experimental__awaitable/awaitable.html -asio/reference/experimental__awaitable/executor_type.html -asio/reference/experimental__awaitable/value_type.html -asio/reference/experimental__awaitable/_awaitable.html -asio/reference/experimental__co_spawn.html -asio/reference/experimental__co_spawn/overload1.html -asio/reference/experimental__co_spawn/overload2.html -asio/reference/experimental__co_spawn/overload3.html -asio/reference/experimental__detached.html -asio/reference/experimental__detached_t.html -asio/reference/experimental__detached_t/detached_t.html -asio/reference/experimental__redirect_error.html -asio/reference/experimental__redirect_error_t.html -asio/reference/experimental__redirect_error_t/ec_.html -asio/reference/experimental__redirect_error_t/redirect_error_t.html -asio/reference/experimental__redirect_error_t/token_.html -asio/reference/experimental__this_coro__executor.html -asio/reference/experimental__this_coro__executor_t.html -asio/reference/experimental__this_coro__token.html -asio/reference/experimental__this_coro__token_t.html -asio/reference/generic__basic_endpoint.html -asio/reference/generic__basic_endpoint/basic_endpoint.html -asio/reference/generic__basic_endpoint/basic_endpoint/overload1.html -asio/reference/generic__basic_endpoint/basic_endpoint/overload2.html -asio/reference/generic__basic_endpoint/basic_endpoint/overload3.html -asio/reference/generic__basic_endpoint/basic_endpoint/overload4.html -asio/reference/generic__basic_endpoint/capacity.html -asio/reference/generic__basic_endpoint/data.html -asio/reference/generic__basic_endpoint/data/overload1.html -asio/reference/generic__basic_endpoint/data/overload2.html -asio/reference/generic__basic_endpoint/data_type.html -asio/reference/generic__basic_endpoint/operator_not__eq_.html -asio/reference/generic__basic_endpoint/operator_lt_.html -asio/reference/generic__basic_endpoint/operator_lt__eq_.html -asio/reference/generic__basic_endpoint/operator_eq_.html -asio/reference/generic__basic_endpoint/operator_eq__eq_.html -asio/reference/generic__basic_endpoint/operator_gt_.html -asio/reference/generic__basic_endpoint/operator_gt__eq_.html -asio/reference/generic__basic_endpoint/protocol.html -asio/reference/generic__basic_endpoint/protocol_type.html -asio/reference/generic__basic_endpoint/resize.html -asio/reference/generic__basic_endpoint/size.html -asio/reference/generic__datagram_protocol.html -asio/reference/generic__datagram_protocol/datagram_protocol.html -asio/reference/generic__datagram_protocol/datagram_protocol/overload1.html -asio/reference/generic__datagram_protocol/datagram_protocol/overload2.html -asio/reference/generic__datagram_protocol/endpoint.html -asio/reference/generic__datagram_protocol/family.html -asio/reference/generic__datagram_protocol/operator_not__eq_.html -asio/reference/generic__datagram_protocol/operator_eq__eq_.html -asio/reference/generic__datagram_protocol/protocol.html -asio/reference/generic__datagram_protocol/socket.html -asio/reference/generic__datagram_protocol/type.html -asio/reference/generic__raw_protocol.html -asio/reference/generic__raw_protocol/endpoint.html -asio/reference/generic__raw_protocol/family.html -asio/reference/generic__raw_protocol/operator_not__eq_.html -asio/reference/generic__raw_protocol/operator_eq__eq_.html -asio/reference/generic__raw_protocol/protocol.html -asio/reference/generic__raw_protocol/raw_protocol.html -asio/reference/generic__raw_protocol/raw_protocol/overload1.html -asio/reference/generic__raw_protocol/raw_protocol/overload2.html -asio/reference/generic__raw_protocol/socket.html -asio/reference/generic__raw_protocol/type.html -asio/reference/generic__seq_packet_protocol.html -asio/reference/generic__seq_packet_protocol/endpoint.html -asio/reference/generic__seq_packet_protocol/family.html -asio/reference/generic__seq_packet_protocol/operator_not__eq_.html -asio/reference/generic__seq_packet_protocol/operator_eq__eq_.html -asio/reference/generic__seq_packet_protocol/protocol.html -asio/reference/generic__seq_packet_protocol/seq_packet_protocol.html -asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload1.html -asio/reference/generic__seq_packet_protocol/seq_packet_protocol/overload2.html -asio/reference/generic__seq_packet_protocol/socket.html -asio/reference/generic__seq_packet_protocol/type.html -asio/reference/generic__stream_protocol.html -asio/reference/generic__stream_protocol/endpoint.html -asio/reference/generic__stream_protocol/family.html -asio/reference/generic__stream_protocol/iostream.html -asio/reference/generic__stream_protocol/operator_not__eq_.html -asio/reference/generic__stream_protocol/operator_eq__eq_.html -asio/reference/generic__stream_protocol/protocol.html -asio/reference/generic__stream_protocol/socket.html -asio/reference/generic__stream_protocol/stream_protocol.html -asio/reference/generic__stream_protocol/stream_protocol/overload1.html -asio/reference/generic__stream_protocol/stream_protocol/overload2.html -asio/reference/generic__stream_protocol/type.html -asio/reference/get_associated_allocator.html -asio/reference/get_associated_allocator/overload1.html -asio/reference/get_associated_allocator/overload2.html -asio/reference/get_associated_executor.html -asio/reference/get_associated_executor/overload1.html -asio/reference/get_associated_executor/overload2.html -asio/reference/get_associated_executor/overload3.html -asio/reference/handler_type.html -asio/reference/handler_type/type.html -asio/reference/has_service.html -asio/reference/high_resolution_timer.html -asio/reference/invalid_service_owner.html -asio/reference/invalid_service_owner/invalid_service_owner.html -asio/reference/io_context.html -asio/reference/io_context/add_service.html -asio/reference/io_context/count_type.html -asio/reference/io_context/destroy.html -asio/reference/io_context/dispatch.html -asio/reference/io_context/fork_event.html -asio/reference/io_context/get_executor.html -asio/reference/io_context/has_service.html -asio/reference/io_context/io_context.html -asio/reference/io_context/io_context/overload1.html -asio/reference/io_context/io_context/overload2.html -asio/reference/io_context/make_service.html -asio/reference/io_context/notify_fork.html -asio/reference/io_context/poll.html -asio/reference/io_context/poll/overload1.html -asio/reference/io_context/poll/overload2.html -asio/reference/io_context/poll_one.html -asio/reference/io_context/poll_one/overload1.html -asio/reference/io_context/poll_one/overload2.html -asio/reference/io_context/post.html -asio/reference/io_context/reset.html -asio/reference/io_context/restart.html -asio/reference/io_context/run.html -asio/reference/io_context/run/overload1.html -asio/reference/io_context/run/overload2.html -asio/reference/io_context/run_for.html -asio/reference/io_context/run_one.html -asio/reference/io_context/run_one/overload1.html -asio/reference/io_context/run_one/overload2.html -asio/reference/io_context/run_one_for.html -asio/reference/io_context/run_one_until.html -asio/reference/io_context/run_until.html -asio/reference/io_context/shutdown.html -asio/reference/io_context/stop.html -asio/reference/io_context/stopped.html -asio/reference/io_context/use_service.html -asio/reference/io_context/use_service/overload1.html -asio/reference/io_context/use_service/overload2.html -asio/reference/io_context/wrap.html -asio/reference/io_context/_io_context.html -asio/reference/io_context__executor_type.html -asio/reference/io_context__executor_type/context.html -asio/reference/io_context__executor_type/defer.html -asio/reference/io_context__executor_type/dispatch.html -asio/reference/io_context__executor_type/on_work_finished.html -asio/reference/io_context__executor_type/on_work_started.html -asio/reference/io_context__executor_type/operator_not__eq_.html -asio/reference/io_context__executor_type/operator_eq__eq_.html -asio/reference/io_context__executor_type/post.html -asio/reference/io_context__executor_type/running_in_this_thread.html -asio/reference/io_context__service.html -asio/reference/io_context__service/get_io_context.html -asio/reference/io_context__service/get_io_service.html -asio/reference/io_context__service/service.html -asio/reference/io_context__service/_service.html -asio/reference/io_context__strand.html -asio/reference/io_context__strand/context.html -asio/reference/io_context__strand/defer.html -asio/reference/io_context__strand/dispatch.html -asio/reference/io_context__strand/dispatch/overload1.html -asio/reference/io_context__strand/dispatch/overload2.html -asio/reference/io_context__strand/get_io_context.html -asio/reference/io_context__strand/get_io_service.html -asio/reference/io_context__strand/on_work_finished.html -asio/reference/io_context__strand/on_work_started.html -asio/reference/io_context__strand/operator_not__eq_.html -asio/reference/io_context__strand/operator_eq__eq_.html -asio/reference/io_context__strand/post.html -asio/reference/io_context__strand/post/overload1.html -asio/reference/io_context__strand/post/overload2.html -asio/reference/io_context__strand/running_in_this_thread.html -asio/reference/io_context__strand/strand.html -asio/reference/io_context__strand/wrap.html -asio/reference/io_context__strand/_strand.html -asio/reference/io_context__work.html -asio/reference/io_context__work/get_io_context.html -asio/reference/io_context__work/get_io_service.html -asio/reference/io_context__work/work.html -asio/reference/io_context__work/work/overload1.html -asio/reference/io_context__work/work/overload2.html -asio/reference/io_context__work/_work.html -asio/reference/io_service.html -asio/reference/ip__address.html -asio/reference/ip__address/address.html -asio/reference/ip__address/address/overload1.html -asio/reference/ip__address/address/overload2.html -asio/reference/ip__address/address/overload3.html -asio/reference/ip__address/address/overload4.html -asio/reference/ip__address/from_string.html -asio/reference/ip__address/from_string/overload1.html -asio/reference/ip__address/from_string/overload2.html -asio/reference/ip__address/from_string/overload3.html -asio/reference/ip__address/from_string/overload4.html -asio/reference/ip__address/is_loopback.html -asio/reference/ip__address/is_multicast.html -asio/reference/ip__address/is_unspecified.html -asio/reference/ip__address/is_v4.html -asio/reference/ip__address/is_v6.html -asio/reference/ip__address/make_address.html -asio/reference/ip__address/make_address/overload1.html -asio/reference/ip__address/make_address/overload2.html -asio/reference/ip__address/make_address/overload3.html -asio/reference/ip__address/make_address/overload4.html -asio/reference/ip__address/make_address/overload5.html -asio/reference/ip__address/make_address/overload6.html -asio/reference/ip__address/operator_not__eq_.html -asio/reference/ip__address/operator_lt_.html -asio/reference/ip__address/operator_lt__lt_.html -asio/reference/ip__address/operator_lt__eq_.html -asio/reference/ip__address/operator_eq_.html -asio/reference/ip__address/operator_eq_/overload1.html -asio/reference/ip__address/operator_eq_/overload2.html -asio/reference/ip__address/operator_eq_/overload3.html -asio/reference/ip__address/operator_eq__eq_.html -asio/reference/ip__address/operator_gt_.html -asio/reference/ip__address/operator_gt__eq_.html -asio/reference/ip__address/to_string.html -asio/reference/ip__address/to_string/overload1.html -asio/reference/ip__address/to_string/overload2.html -asio/reference/ip__address/to_v4.html -asio/reference/ip__address/to_v6.html -asio/reference/ip__address_v4.html -asio/reference/ip__address_v4/address_v4.html -asio/reference/ip__address_v4/address_v4/overload1.html -asio/reference/ip__address_v4/address_v4/overload2.html -asio/reference/ip__address_v4/address_v4/overload3.html -asio/reference/ip__address_v4/address_v4/overload4.html -asio/reference/ip__address_v4/any.html -asio/reference/ip__address_v4/broadcast.html -asio/reference/ip__address_v4/broadcast/overload1.html -asio/reference/ip__address_v4/broadcast/overload2.html -asio/reference/ip__address_v4/bytes_type.html -asio/reference/ip__address_v4/from_string.html -asio/reference/ip__address_v4/from_string/overload1.html -asio/reference/ip__address_v4/from_string/overload2.html -asio/reference/ip__address_v4/from_string/overload3.html -asio/reference/ip__address_v4/from_string/overload4.html -asio/reference/ip__address_v4/is_class_a.html -asio/reference/ip__address_v4/is_class_b.html -asio/reference/ip__address_v4/is_class_c.html -asio/reference/ip__address_v4/is_loopback.html -asio/reference/ip__address_v4/is_multicast.html -asio/reference/ip__address_v4/is_unspecified.html -asio/reference/ip__address_v4/loopback.html -asio/reference/ip__address_v4/make_address_v4.html -asio/reference/ip__address_v4/make_address_v4/overload1.html -asio/reference/ip__address_v4/make_address_v4/overload2.html -asio/reference/ip__address_v4/make_address_v4/overload3.html -asio/reference/ip__address_v4/make_address_v4/overload4.html -asio/reference/ip__address_v4/make_address_v4/overload5.html -asio/reference/ip__address_v4/make_address_v4/overload6.html -asio/reference/ip__address_v4/make_address_v4/overload7.html -asio/reference/ip__address_v4/make_address_v4/overload8.html -asio/reference/ip__address_v4/make_address_v4/overload9.html -asio/reference/ip__address_v4/make_network_v4.html -asio/reference/ip__address_v4/make_network_v4/overload1.html -asio/reference/ip__address_v4/make_network_v4/overload2.html -asio/reference/ip__address_v4/netmask.html -asio/reference/ip__address_v4/operator_not__eq_.html -asio/reference/ip__address_v4/operator_lt_.html -asio/reference/ip__address_v4/operator_lt__lt_.html -asio/reference/ip__address_v4/operator_lt__lt_/overload1.html -asio/reference/ip__address_v4/operator_lt__lt_/overload2.html -asio/reference/ip__address_v4/operator_lt__eq_.html -asio/reference/ip__address_v4/operator_eq_.html -asio/reference/ip__address_v4/operator_eq__eq_.html -asio/reference/ip__address_v4/operator_gt_.html -asio/reference/ip__address_v4/operator_gt__eq_.html -asio/reference/ip__address_v4/to_bytes.html -asio/reference/ip__address_v4/to_string.html -asio/reference/ip__address_v4/to_string/overload1.html -asio/reference/ip__address_v4/to_string/overload2.html -asio/reference/ip__address_v4/to_uint.html -asio/reference/ip__address_v4/to_ulong.html -asio/reference/ip__address_v4/uint_type.html -asio/reference/ip__address_v4_iterator.html -asio/reference/ip__address_v4_range.html -asio/reference/ip__address_v6.html -asio/reference/ip__address_v6/address_v6.html -asio/reference/ip__address_v6/address_v6/overload1.html -asio/reference/ip__address_v6/address_v6/overload2.html -asio/reference/ip__address_v6/address_v6/overload3.html -asio/reference/ip__address_v6/any.html -asio/reference/ip__address_v6/bytes_type.html -asio/reference/ip__address_v6/from_string.html -asio/reference/ip__address_v6/from_string/overload1.html -asio/reference/ip__address_v6/from_string/overload2.html -asio/reference/ip__address_v6/from_string/overload3.html -asio/reference/ip__address_v6/from_string/overload4.html -asio/reference/ip__address_v6/is_link_local.html -asio/reference/ip__address_v6/is_loopback.html -asio/reference/ip__address_v6/is_multicast.html -asio/reference/ip__address_v6/is_multicast_global.html -asio/reference/ip__address_v6/is_multicast_link_local.html -asio/reference/ip__address_v6/is_multicast_node_local.html -asio/reference/ip__address_v6/is_multicast_org_local.html -asio/reference/ip__address_v6/is_multicast_site_local.html -asio/reference/ip__address_v6/is_site_local.html -asio/reference/ip__address_v6/is_unspecified.html -asio/reference/ip__address_v6/is_v4_compatible.html -asio/reference/ip__address_v6/is_v4_mapped.html -asio/reference/ip__address_v6/loopback.html -asio/reference/ip__address_v6/make_address_v6.html -asio/reference/ip__address_v6/make_address_v6/overload1.html -asio/reference/ip__address_v6/make_address_v6/overload2.html -asio/reference/ip__address_v6/make_address_v6/overload3.html -asio/reference/ip__address_v6/make_address_v6/overload4.html -asio/reference/ip__address_v6/make_address_v6/overload5.html -asio/reference/ip__address_v6/make_address_v6/overload6.html -asio/reference/ip__address_v6/make_address_v6/overload7.html -asio/reference/ip__address_v6/make_address_v6/overload8.html -asio/reference/ip__address_v6/make_network_v6.html -asio/reference/ip__address_v6/operator_not__eq_.html -asio/reference/ip__address_v6/operator_lt_.html -asio/reference/ip__address_v6/operator_lt__lt_.html -asio/reference/ip__address_v6/operator_lt__lt_/overload1.html -asio/reference/ip__address_v6/operator_lt__lt_/overload2.html -asio/reference/ip__address_v6/operator_lt__eq_.html -asio/reference/ip__address_v6/operator_eq_.html -asio/reference/ip__address_v6/operator_eq__eq_.html -asio/reference/ip__address_v6/operator_gt_.html -asio/reference/ip__address_v6/operator_gt__eq_.html -asio/reference/ip__address_v6/scope_id.html -asio/reference/ip__address_v6/scope_id/overload1.html -asio/reference/ip__address_v6/scope_id/overload2.html -asio/reference/ip__address_v6/to_bytes.html -asio/reference/ip__address_v6/to_string.html -asio/reference/ip__address_v6/to_string/overload1.html -asio/reference/ip__address_v6/to_string/overload2.html -asio/reference/ip__address_v6/to_v4.html -asio/reference/ip__address_v6/v4_compatible.html -asio/reference/ip__address_v6/v4_mapped.html -asio/reference/ip__address_v6_iterator.html -asio/reference/ip__address_v6_range.html -asio/reference/ip__bad_address_cast.html -asio/reference/ip__bad_address_cast/bad_address_cast.html -asio/reference/ip__bad_address_cast/what.html -asio/reference/ip__bad_address_cast/_bad_address_cast.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/basic_address_iterator/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/difference_type.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/iterator_category.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator__star_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_not__eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_plus__plus_/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_minus__minus_/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_arrow_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/operator_eq__eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/pointer.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/reference.html -asio/reference/ip__basic_address_iterator_lt__address_v4__gt_/value_type.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/basic_address_iterator/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/difference_type.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/iterator_category.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator__star_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_not__eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_plus__plus_/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload1.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_minus__minus_/overload2.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_arrow_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/operator_eq__eq_.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/pointer.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/reference.html -asio/reference/ip__basic_address_iterator_lt__address_v6__gt_/value_type.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload1.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload2.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/basic_address_range/overload3.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/begin.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/empty.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/end.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/find.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/iterator.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/operator_eq_.html -asio/reference/ip__basic_address_range_lt__address_v4__gt_/size.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload1.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload2.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/basic_address_range/overload3.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/begin.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/empty.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/end.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/find.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/iterator.html -asio/reference/ip__basic_address_range_lt__address_v6__gt_/operator_eq_.html -asio/reference/ip__basic_endpoint.html -asio/reference/ip__basic_endpoint/address.html -asio/reference/ip__basic_endpoint/address/overload1.html -asio/reference/ip__basic_endpoint/address/overload2.html -asio/reference/ip__basic_endpoint/basic_endpoint.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload1.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload2.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload3.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload4.html -asio/reference/ip__basic_endpoint/basic_endpoint/overload5.html -asio/reference/ip__basic_endpoint/capacity.html -asio/reference/ip__basic_endpoint/data.html -asio/reference/ip__basic_endpoint/data/overload1.html -asio/reference/ip__basic_endpoint/data/overload2.html -asio/reference/ip__basic_endpoint/data_type.html -asio/reference/ip__basic_endpoint/operator_not__eq_.html -asio/reference/ip__basic_endpoint/operator_lt_.html -asio/reference/ip__basic_endpoint/operator_lt__lt_.html -asio/reference/ip__basic_endpoint/operator_lt__eq_.html -asio/reference/ip__basic_endpoint/operator_eq_.html -asio/reference/ip__basic_endpoint/operator_eq_/overload1.html -asio/reference/ip__basic_endpoint/operator_eq_/overload2.html -asio/reference/ip__basic_endpoint/operator_eq__eq_.html -asio/reference/ip__basic_endpoint/operator_gt_.html -asio/reference/ip__basic_endpoint/operator_gt__eq_.html -asio/reference/ip__basic_endpoint/port.html -asio/reference/ip__basic_endpoint/port/overload1.html -asio/reference/ip__basic_endpoint/port/overload2.html -asio/reference/ip__basic_endpoint/protocol.html -asio/reference/ip__basic_endpoint/protocol_type.html -asio/reference/ip__basic_endpoint/resize.html -asio/reference/ip__basic_endpoint/size.html -asio/reference/ip__basic_resolver.html -asio/reference/ip__basic_resolver/address_configured.html -asio/reference/ip__basic_resolver/all_matching.html -asio/reference/ip__basic_resolver/async_resolve.html -asio/reference/ip__basic_resolver/async_resolve/overload1.html -asio/reference/ip__basic_resolver/async_resolve/overload2.html -asio/reference/ip__basic_resolver/async_resolve/overload3.html -asio/reference/ip__basic_resolver/async_resolve/overload4.html -asio/reference/ip__basic_resolver/async_resolve/overload5.html -asio/reference/ip__basic_resolver/async_resolve/overload6.html -asio/reference/ip__basic_resolver/basic_resolver.html -asio/reference/ip__basic_resolver/basic_resolver/overload1.html -asio/reference/ip__basic_resolver/basic_resolver/overload2.html -asio/reference/ip__basic_resolver/cancel.html -asio/reference/ip__basic_resolver/canonical_name.html -asio/reference/ip__basic_resolver/endpoint_type.html -asio/reference/ip__basic_resolver/executor_type.html -asio/reference/ip__basic_resolver/flags.html -asio/reference/ip__basic_resolver/get_executor.html -asio/reference/ip__basic_resolver/get_io_context.html -asio/reference/ip__basic_resolver/get_io_service.html -asio/reference/ip__basic_resolver/iterator.html -asio/reference/ip__basic_resolver/numeric_host.html -asio/reference/ip__basic_resolver/numeric_service.html -asio/reference/ip__basic_resolver/operator_eq_.html -asio/reference/ip__basic_resolver/passive.html -asio/reference/ip__basic_resolver/protocol_type.html -asio/reference/ip__basic_resolver/query.html -asio/reference/ip__basic_resolver/resolve.html -asio/reference/ip__basic_resolver/resolve/overload1.html -asio/reference/ip__basic_resolver/resolve/overload2.html -asio/reference/ip__basic_resolver/resolve/overload3.html -asio/reference/ip__basic_resolver/resolve/overload4.html -asio/reference/ip__basic_resolver/resolve/overload5.html -asio/reference/ip__basic_resolver/resolve/overload6.html -asio/reference/ip__basic_resolver/resolve/overload7.html -asio/reference/ip__basic_resolver/resolve/overload8.html -asio/reference/ip__basic_resolver/resolve/overload9.html -asio/reference/ip__basic_resolver/resolve/overload10.html -asio/reference/ip__basic_resolver/resolve/overload11.html -asio/reference/ip__basic_resolver/resolve/overload12.html -asio/reference/ip__basic_resolver/results_type.html -asio/reference/ip__basic_resolver/v4_mapped.html -asio/reference/ip__basic_resolver/_basic_resolver.html -asio/reference/ip__basic_resolver_entry.html -asio/reference/ip__basic_resolver_entry/basic_resolver_entry.html -asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload1.html -asio/reference/ip__basic_resolver_entry/basic_resolver_entry/overload2.html -asio/reference/ip__basic_resolver_entry/endpoint.html -asio/reference/ip__basic_resolver_entry/endpoint_type.html -asio/reference/ip__basic_resolver_entry/host_name.html -asio/reference/ip__basic_resolver_entry/host_name/overload1.html -asio/reference/ip__basic_resolver_entry/host_name/overload2.html -asio/reference/ip__basic_resolver_entry/operator_endpoint_type.html -asio/reference/ip__basic_resolver_entry/protocol_type.html -asio/reference/ip__basic_resolver_entry/service_name.html -asio/reference/ip__basic_resolver_entry/service_name/overload1.html -asio/reference/ip__basic_resolver_entry/service_name/overload2.html -asio/reference/ip__basic_resolver_iterator.html -asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator.html -asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload1.html -asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload2.html -asio/reference/ip__basic_resolver_iterator/basic_resolver_iterator/overload3.html -asio/reference/ip__basic_resolver_iterator/dereference.html -asio/reference/ip__basic_resolver_iterator/difference_type.html -asio/reference/ip__basic_resolver_iterator/equal.html -asio/reference/ip__basic_resolver_iterator/increment.html -asio/reference/ip__basic_resolver_iterator/index_.html -asio/reference/ip__basic_resolver_iterator/iterator_category.html -asio/reference/ip__basic_resolver_iterator/operator__star_.html -asio/reference/ip__basic_resolver_iterator/operator_not__eq_.html -asio/reference/ip__basic_resolver_iterator/operator_plus__plus_.html -asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload1.html -asio/reference/ip__basic_resolver_iterator/operator_plus__plus_/overload2.html -asio/reference/ip__basic_resolver_iterator/operator_arrow_.html -asio/reference/ip__basic_resolver_iterator/operator_eq_.html -asio/reference/ip__basic_resolver_iterator/operator_eq_/overload1.html -asio/reference/ip__basic_resolver_iterator/operator_eq_/overload2.html -asio/reference/ip__basic_resolver_iterator/operator_eq__eq_.html -asio/reference/ip__basic_resolver_iterator/pointer.html -asio/reference/ip__basic_resolver_iterator/reference.html -asio/reference/ip__basic_resolver_iterator/value_type.html -asio/reference/ip__basic_resolver_iterator/values_.html -asio/reference/ip__basic_resolver_query.html -asio/reference/ip__basic_resolver_query/address_configured.html -asio/reference/ip__basic_resolver_query/all_matching.html -asio/reference/ip__basic_resolver_query/basic_resolver_query.html -asio/reference/ip__basic_resolver_query/basic_resolver_query/overload1.html -asio/reference/ip__basic_resolver_query/basic_resolver_query/overload2.html -asio/reference/ip__basic_resolver_query/basic_resolver_query/overload3.html -asio/reference/ip__basic_resolver_query/basic_resolver_query/overload4.html -asio/reference/ip__basic_resolver_query/canonical_name.html -asio/reference/ip__basic_resolver_query/flags.html -asio/reference/ip__basic_resolver_query/hints.html -asio/reference/ip__basic_resolver_query/host_name.html -asio/reference/ip__basic_resolver_query/numeric_host.html -asio/reference/ip__basic_resolver_query/numeric_service.html -asio/reference/ip__basic_resolver_query/passive.html -asio/reference/ip__basic_resolver_query/protocol_type.html -asio/reference/ip__basic_resolver_query/service_name.html -asio/reference/ip__basic_resolver_query/v4_mapped.html -asio/reference/ip__basic_resolver_results.html -asio/reference/ip__basic_resolver_results/basic_resolver_results.html -asio/reference/ip__basic_resolver_results/basic_resolver_results/overload1.html -asio/reference/ip__basic_resolver_results/basic_resolver_results/overload2.html -asio/reference/ip__basic_resolver_results/basic_resolver_results/overload3.html -asio/reference/ip__basic_resolver_results/begin.html -asio/reference/ip__basic_resolver_results/cbegin.html -asio/reference/ip__basic_resolver_results/cend.html -asio/reference/ip__basic_resolver_results/const_iterator.html -asio/reference/ip__basic_resolver_results/const_reference.html -asio/reference/ip__basic_resolver_results/dereference.html -asio/reference/ip__basic_resolver_results/difference_type.html -asio/reference/ip__basic_resolver_results/empty.html -asio/reference/ip__basic_resolver_results/end.html -asio/reference/ip__basic_resolver_results/endpoint_type.html -asio/reference/ip__basic_resolver_results/equal.html -asio/reference/ip__basic_resolver_results/increment.html -asio/reference/ip__basic_resolver_results/index_.html -asio/reference/ip__basic_resolver_results/iterator.html -asio/reference/ip__basic_resolver_results/iterator_category.html -asio/reference/ip__basic_resolver_results/max_size.html -asio/reference/ip__basic_resolver_results/operator__star_.html -asio/reference/ip__basic_resolver_results/operator_not__eq_.html -asio/reference/ip__basic_resolver_results/operator_not__eq_/overload1.html -asio/reference/ip__basic_resolver_results/operator_not__eq_/overload2.html -asio/reference/ip__basic_resolver_results/operator_plus__plus_.html -asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload1.html -asio/reference/ip__basic_resolver_results/operator_plus__plus_/overload2.html -asio/reference/ip__basic_resolver_results/operator_arrow_.html -asio/reference/ip__basic_resolver_results/operator_eq_.html -asio/reference/ip__basic_resolver_results/operator_eq_/overload1.html -asio/reference/ip__basic_resolver_results/operator_eq_/overload2.html -asio/reference/ip__basic_resolver_results/operator_eq__eq_.html -asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload1.html -asio/reference/ip__basic_resolver_results/operator_eq__eq_/overload2.html -asio/reference/ip__basic_resolver_results/pointer.html -asio/reference/ip__basic_resolver_results/protocol_type.html -asio/reference/ip__basic_resolver_results/reference.html -asio/reference/ip__basic_resolver_results/size.html -asio/reference/ip__basic_resolver_results/size_type.html -asio/reference/ip__basic_resolver_results/swap.html -asio/reference/ip__basic_resolver_results/value_type.html -asio/reference/ip__basic_resolver_results/values_.html -asio/reference/ip__host_name.html -asio/reference/ip__host_name/overload1.html -asio/reference/ip__host_name/overload2.html -asio/reference/ip__icmp.html -asio/reference/ip__icmp/endpoint.html -asio/reference/ip__icmp/family.html -asio/reference/ip__icmp/operator_not__eq_.html -asio/reference/ip__icmp/operator_eq__eq_.html -asio/reference/ip__icmp/protocol.html -asio/reference/ip__icmp/resolver.html -asio/reference/ip__icmp/socket.html -asio/reference/ip__icmp/type.html -asio/reference/ip__icmp/v4.html -asio/reference/ip__icmp/v6.html -asio/reference/ip__multicast__enable_loopback.html -asio/reference/ip__multicast__hops.html -asio/reference/ip__multicast__join_group.html -asio/reference/ip__multicast__leave_group.html -asio/reference/ip__multicast__outbound_interface.html -asio/reference/ip__network_v4.html -asio/reference/ip__network_v4/address.html -asio/reference/ip__network_v4/broadcast.html -asio/reference/ip__network_v4/canonical.html -asio/reference/ip__network_v4/hosts.html -asio/reference/ip__network_v4/is_host.html -asio/reference/ip__network_v4/is_subnet_of.html -asio/reference/ip__network_v4/make_network_v4.html -asio/reference/ip__network_v4/make_network_v4/overload1.html -asio/reference/ip__network_v4/make_network_v4/overload2.html -asio/reference/ip__network_v4/make_network_v4/overload3.html -asio/reference/ip__network_v4/make_network_v4/overload4.html -asio/reference/ip__network_v4/make_network_v4/overload5.html -asio/reference/ip__network_v4/make_network_v4/overload6.html -asio/reference/ip__network_v4/netmask.html -asio/reference/ip__network_v4/network.html -asio/reference/ip__network_v4/network_v4.html -asio/reference/ip__network_v4/network_v4/overload1.html -asio/reference/ip__network_v4/network_v4/overload2.html -asio/reference/ip__network_v4/network_v4/overload3.html -asio/reference/ip__network_v4/network_v4/overload4.html -asio/reference/ip__network_v4/operator_not__eq_.html -asio/reference/ip__network_v4/operator_eq_.html -asio/reference/ip__network_v4/operator_eq__eq_.html -asio/reference/ip__network_v4/prefix_length.html -asio/reference/ip__network_v4/to_string.html -asio/reference/ip__network_v4/to_string/overload1.html -asio/reference/ip__network_v4/to_string/overload2.html -asio/reference/ip__network_v6.html -asio/reference/ip__network_v6/address.html -asio/reference/ip__network_v6/canonical.html -asio/reference/ip__network_v6/hosts.html -asio/reference/ip__network_v6/is_host.html -asio/reference/ip__network_v6/is_subnet_of.html -asio/reference/ip__network_v6/make_network_v6.html -asio/reference/ip__network_v6/make_network_v6/overload1.html -asio/reference/ip__network_v6/make_network_v6/overload2.html -asio/reference/ip__network_v6/make_network_v6/overload3.html -asio/reference/ip__network_v6/make_network_v6/overload4.html -asio/reference/ip__network_v6/make_network_v6/overload5.html -asio/reference/ip__network_v6/make_network_v6/overload6.html -asio/reference/ip__network_v6/network.html -asio/reference/ip__network_v6/network_v6.html -asio/reference/ip__network_v6/network_v6/overload1.html -asio/reference/ip__network_v6/network_v6/overload2.html -asio/reference/ip__network_v6/network_v6/overload3.html -asio/reference/ip__network_v6/operator_not__eq_.html -asio/reference/ip__network_v6/operator_eq_.html -asio/reference/ip__network_v6/operator_eq__eq_.html -asio/reference/ip__network_v6/prefix_length.html -asio/reference/ip__network_v6/to_string.html -asio/reference/ip__network_v6/to_string/overload1.html -asio/reference/ip__network_v6/to_string/overload2.html -asio/reference/ip__resolver_base.html -asio/reference/ip__resolver_base/address_configured.html -asio/reference/ip__resolver_base/all_matching.html -asio/reference/ip__resolver_base/canonical_name.html -asio/reference/ip__resolver_base/flags.html -asio/reference/ip__resolver_base/numeric_host.html -asio/reference/ip__resolver_base/numeric_service.html -asio/reference/ip__resolver_base/passive.html -asio/reference/ip__resolver_base/v4_mapped.html -asio/reference/ip__resolver_base/_resolver_base.html -asio/reference/ip__resolver_query_base.html -asio/reference/ip__resolver_query_base/address_configured.html -asio/reference/ip__resolver_query_base/all_matching.html -asio/reference/ip__resolver_query_base/canonical_name.html -asio/reference/ip__resolver_query_base/flags.html -asio/reference/ip__resolver_query_base/numeric_host.html -asio/reference/ip__resolver_query_base/numeric_service.html -asio/reference/ip__resolver_query_base/passive.html -asio/reference/ip__resolver_query_base/v4_mapped.html -asio/reference/ip__resolver_query_base/_resolver_query_base.html -asio/reference/ip__tcp.html -asio/reference/ip__tcp/acceptor.html -asio/reference/ip__tcp/endpoint.html -asio/reference/ip__tcp/family.html -asio/reference/ip__tcp/iostream.html -asio/reference/ip__tcp/no_delay.html -asio/reference/ip__tcp/operator_not__eq_.html -asio/reference/ip__tcp/operator_eq__eq_.html -asio/reference/ip__tcp/protocol.html -asio/reference/ip__tcp/resolver.html -asio/reference/ip__tcp/socket.html -asio/reference/ip__tcp/type.html -asio/reference/ip__tcp/v4.html -asio/reference/ip__tcp/v6.html -asio/reference/ip__udp.html -asio/reference/ip__udp/endpoint.html -asio/reference/ip__udp/family.html -asio/reference/ip__udp/operator_not__eq_.html -asio/reference/ip__udp/operator_eq__eq_.html -asio/reference/ip__udp/protocol.html -asio/reference/ip__udp/resolver.html -asio/reference/ip__udp/socket.html -asio/reference/ip__udp/type.html -asio/reference/ip__udp/v4.html -asio/reference/ip__udp/v6.html -asio/reference/ip__unicast__hops.html -asio/reference/ip__v4_mapped_t.html -asio/reference/ip__v6_only.html -asio/reference/is_const_buffer_sequence.html -asio/reference/is_dynamic_buffer.html -asio/reference/is_endpoint_sequence.html -asio/reference/is_endpoint_sequence/value.html -asio/reference/is_executor.html -asio/reference/is_match_condition.html -asio/reference/is_match_condition/value.html -asio/reference/is_mutable_buffer_sequence.html -asio/reference/is_read_buffered.html -asio/reference/is_read_buffered/value.html -asio/reference/is_write_buffered.html -asio/reference/is_write_buffered/value.html -asio/reference/local__basic_endpoint.html -asio/reference/local__basic_endpoint/basic_endpoint.html -asio/reference/local__basic_endpoint/basic_endpoint/overload1.html -asio/reference/local__basic_endpoint/basic_endpoint/overload2.html -asio/reference/local__basic_endpoint/basic_endpoint/overload3.html -asio/reference/local__basic_endpoint/basic_endpoint/overload4.html -asio/reference/local__basic_endpoint/capacity.html -asio/reference/local__basic_endpoint/data.html -asio/reference/local__basic_endpoint/data/overload1.html -asio/reference/local__basic_endpoint/data/overload2.html -asio/reference/local__basic_endpoint/data_type.html -asio/reference/local__basic_endpoint/operator_not__eq_.html -asio/reference/local__basic_endpoint/operator_lt_.html -asio/reference/local__basic_endpoint/operator_lt__lt_.html -asio/reference/local__basic_endpoint/operator_lt__eq_.html -asio/reference/local__basic_endpoint/operator_eq_.html -asio/reference/local__basic_endpoint/operator_eq__eq_.html -asio/reference/local__basic_endpoint/operator_gt_.html -asio/reference/local__basic_endpoint/operator_gt__eq_.html -asio/reference/local__basic_endpoint/path.html -asio/reference/local__basic_endpoint/path/overload1.html -asio/reference/local__basic_endpoint/path/overload2.html -asio/reference/local__basic_endpoint/path/overload3.html -asio/reference/local__basic_endpoint/protocol.html -asio/reference/local__basic_endpoint/protocol_type.html -asio/reference/local__basic_endpoint/resize.html -asio/reference/local__basic_endpoint/size.html -asio/reference/local__connect_pair.html -asio/reference/local__connect_pair/overload1.html -asio/reference/local__connect_pair/overload2.html -asio/reference/local__datagram_protocol.html -asio/reference/local__datagram_protocol/endpoint.html -asio/reference/local__datagram_protocol/family.html -asio/reference/local__datagram_protocol/protocol.html -asio/reference/local__datagram_protocol/socket.html -asio/reference/local__datagram_protocol/type.html -asio/reference/local__stream_protocol.html -asio/reference/local__stream_protocol/acceptor.html -asio/reference/local__stream_protocol/endpoint.html -asio/reference/local__stream_protocol/family.html -asio/reference/local__stream_protocol/iostream.html -asio/reference/local__stream_protocol/protocol.html -asio/reference/local__stream_protocol/socket.html -asio/reference/local__stream_protocol/type.html -asio/reference/make_work_guard.html -asio/reference/make_work_guard/overload1.html -asio/reference/make_work_guard/overload2.html -asio/reference/make_work_guard/overload3.html -asio/reference/make_work_guard/overload4.html -asio/reference/make_work_guard/overload5.html -asio/reference/mutable_buffer.html -asio/reference/mutable_buffer/data.html -asio/reference/mutable_buffer/mutable_buffer.html -asio/reference/mutable_buffer/mutable_buffer/overload1.html -asio/reference/mutable_buffer/mutable_buffer/overload2.html -asio/reference/mutable_buffer/operator_plus_.html -asio/reference/mutable_buffer/operator_plus_/overload1.html -asio/reference/mutable_buffer/operator_plus_/overload2.html -asio/reference/mutable_buffer/operator_plus__eq_.html -asio/reference/mutable_buffer/size.html -asio/reference/mutable_buffers_1.html -asio/reference/mutable_buffers_1/begin.html -asio/reference/mutable_buffers_1/const_iterator.html -asio/reference/mutable_buffers_1/data.html -asio/reference/mutable_buffers_1/end.html -asio/reference/mutable_buffers_1/mutable_buffers_1.html -asio/reference/mutable_buffers_1/mutable_buffers_1/overload1.html -asio/reference/mutable_buffers_1/mutable_buffers_1/overload2.html -asio/reference/mutable_buffers_1/operator_plus_.html -asio/reference/mutable_buffers_1/operator_plus_/overload1.html -asio/reference/mutable_buffers_1/operator_plus_/overload2.html -asio/reference/mutable_buffers_1/operator_plus__eq_.html -asio/reference/mutable_buffers_1/size.html -asio/reference/mutable_buffers_1/value_type.html -asio/reference/null_buffers.html -asio/reference/null_buffers/begin.html -asio/reference/null_buffers/const_iterator.html -asio/reference/null_buffers/end.html -asio/reference/null_buffers/value_type.html -asio/reference/operator_lt__lt_.html -asio/reference/placeholders__bytes_transferred.html -asio/reference/placeholders__endpoint.html -asio/reference/placeholders__error.html -asio/reference/placeholders__iterator.html -asio/reference/placeholders__results.html -asio/reference/placeholders__signal_number.html -asio/reference/posix__descriptor.html -asio/reference/posix__descriptor/assign.html -asio/reference/posix__descriptor/assign/overload1.html -asio/reference/posix__descriptor/assign/overload2.html -asio/reference/posix__descriptor/async_wait.html -asio/reference/posix__descriptor/bytes_readable.html -asio/reference/posix__descriptor/cancel.html -asio/reference/posix__descriptor/cancel/overload1.html -asio/reference/posix__descriptor/cancel/overload2.html -asio/reference/posix__descriptor/close.html -asio/reference/posix__descriptor/close/overload1.html -asio/reference/posix__descriptor/close/overload2.html -asio/reference/posix__descriptor/descriptor.html -asio/reference/posix__descriptor/descriptor/overload1.html -asio/reference/posix__descriptor/descriptor/overload2.html -asio/reference/posix__descriptor/descriptor/overload3.html -asio/reference/posix__descriptor/executor_type.html -asio/reference/posix__descriptor/get_executor.html -asio/reference/posix__descriptor/get_io_context.html -asio/reference/posix__descriptor/get_io_service.html -asio/reference/posix__descriptor/io_control.html -asio/reference/posix__descriptor/io_control/overload1.html -asio/reference/posix__descriptor/io_control/overload2.html -asio/reference/posix__descriptor/is_open.html -asio/reference/posix__descriptor/lowest_layer.html -asio/reference/posix__descriptor/lowest_layer/overload1.html -asio/reference/posix__descriptor/lowest_layer/overload2.html -asio/reference/posix__descriptor/lowest_layer_type.html -asio/reference/posix__descriptor/native_handle.html -asio/reference/posix__descriptor/native_handle_type.html -asio/reference/posix__descriptor/native_non_blocking.html -asio/reference/posix__descriptor/native_non_blocking/overload1.html -asio/reference/posix__descriptor/native_non_blocking/overload2.html -asio/reference/posix__descriptor/native_non_blocking/overload3.html -asio/reference/posix__descriptor/non_blocking.html -asio/reference/posix__descriptor/non_blocking/overload1.html -asio/reference/posix__descriptor/non_blocking/overload2.html -asio/reference/posix__descriptor/non_blocking/overload3.html -asio/reference/posix__descriptor/operator_eq_.html -asio/reference/posix__descriptor/release.html -asio/reference/posix__descriptor/wait.html -asio/reference/posix__descriptor/wait/overload1.html -asio/reference/posix__descriptor/wait/overload2.html -asio/reference/posix__descriptor/wait_type.html -asio/reference/posix__descriptor/_descriptor.html -asio/reference/posix__descriptor_base.html -asio/reference/posix__descriptor_base/bytes_readable.html -asio/reference/posix__descriptor_base/wait_type.html -asio/reference/posix__descriptor_base/_descriptor_base.html -asio/reference/posix__stream_descriptor.html -asio/reference/posix__stream_descriptor/assign.html -asio/reference/posix__stream_descriptor/assign/overload1.html -asio/reference/posix__stream_descriptor/assign/overload2.html -asio/reference/posix__stream_descriptor/async_read_some.html -asio/reference/posix__stream_descriptor/async_wait.html -asio/reference/posix__stream_descriptor/async_write_some.html -asio/reference/posix__stream_descriptor/bytes_readable.html -asio/reference/posix__stream_descriptor/cancel.html -asio/reference/posix__stream_descriptor/cancel/overload1.html -asio/reference/posix__stream_descriptor/cancel/overload2.html -asio/reference/posix__stream_descriptor/close.html -asio/reference/posix__stream_descriptor/close/overload1.html -asio/reference/posix__stream_descriptor/close/overload2.html -asio/reference/posix__stream_descriptor/executor_type.html -asio/reference/posix__stream_descriptor/get_executor.html -asio/reference/posix__stream_descriptor/get_io_context.html -asio/reference/posix__stream_descriptor/get_io_service.html -asio/reference/posix__stream_descriptor/io_control.html -asio/reference/posix__stream_descriptor/io_control/overload1.html -asio/reference/posix__stream_descriptor/io_control/overload2.html -asio/reference/posix__stream_descriptor/is_open.html -asio/reference/posix__stream_descriptor/lowest_layer.html -asio/reference/posix__stream_descriptor/lowest_layer/overload1.html -asio/reference/posix__stream_descriptor/lowest_layer/overload2.html -asio/reference/posix__stream_descriptor/lowest_layer_type.html -asio/reference/posix__stream_descriptor/native_handle.html -asio/reference/posix__stream_descriptor/native_handle_type.html -asio/reference/posix__stream_descriptor/native_non_blocking.html -asio/reference/posix__stream_descriptor/native_non_blocking/overload1.html -asio/reference/posix__stream_descriptor/native_non_blocking/overload2.html -asio/reference/posix__stream_descriptor/native_non_blocking/overload3.html -asio/reference/posix__stream_descriptor/non_blocking.html -asio/reference/posix__stream_descriptor/non_blocking/overload1.html -asio/reference/posix__stream_descriptor/non_blocking/overload2.html -asio/reference/posix__stream_descriptor/non_blocking/overload3.html -asio/reference/posix__stream_descriptor/operator_eq_.html -asio/reference/posix__stream_descriptor/read_some.html -asio/reference/posix__stream_descriptor/read_some/overload1.html -asio/reference/posix__stream_descriptor/read_some/overload2.html -asio/reference/posix__stream_descriptor/release.html -asio/reference/posix__stream_descriptor/stream_descriptor.html -asio/reference/posix__stream_descriptor/stream_descriptor/overload1.html -asio/reference/posix__stream_descriptor/stream_descriptor/overload2.html -asio/reference/posix__stream_descriptor/stream_descriptor/overload3.html -asio/reference/posix__stream_descriptor/wait.html -asio/reference/posix__stream_descriptor/wait/overload1.html -asio/reference/posix__stream_descriptor/wait/overload2.html -asio/reference/posix__stream_descriptor/wait_type.html -asio/reference/posix__stream_descriptor/write_some.html -asio/reference/posix__stream_descriptor/write_some/overload1.html -asio/reference/posix__stream_descriptor/write_some/overload2.html -asio/reference/post.html -asio/reference/post/overload1.html -asio/reference/post/overload2.html -asio/reference/post/overload3.html -asio/reference/read.html -asio/reference/read/overload1.html -asio/reference/read/overload2.html -asio/reference/read/overload3.html -asio/reference/read/overload4.html -asio/reference/read/overload5.html -asio/reference/read/overload6.html -asio/reference/read/overload7.html -asio/reference/read/overload8.html -asio/reference/read/overload9.html -asio/reference/read/overload10.html -asio/reference/read/overload11.html -asio/reference/read/overload12.html -asio/reference/read_at.html -asio/reference/read_at/overload1.html -asio/reference/read_at/overload2.html -asio/reference/read_at/overload3.html -asio/reference/read_at/overload4.html -asio/reference/read_at/overload5.html -asio/reference/read_at/overload6.html -asio/reference/read_at/overload7.html -asio/reference/read_at/overload8.html -asio/reference/read_until.html -asio/reference/read_until/overload1.html -asio/reference/read_until/overload2.html -asio/reference/read_until/overload3.html -asio/reference/read_until/overload4.html -asio/reference/read_until/overload5.html -asio/reference/read_until/overload6.html -asio/reference/read_until/overload7.html -asio/reference/read_until/overload8.html -asio/reference/read_until/overload9.html -asio/reference/read_until/overload10.html -asio/reference/read_until/overload11.html -asio/reference/read_until/overload12.html -asio/reference/read_until/overload13.html -asio/reference/read_until/overload14.html -asio/reference/read_until/overload15.html -asio/reference/read_until/overload16.html -asio/reference/resolver_errc__try_again.html -asio/reference/serial_port.html -asio/reference/serial_port/assign.html -asio/reference/serial_port/assign/overload1.html -asio/reference/serial_port/assign/overload2.html -asio/reference/serial_port/async_read_some.html -asio/reference/serial_port/async_write_some.html -asio/reference/serial_port/cancel.html -asio/reference/serial_port/cancel/overload1.html -asio/reference/serial_port/cancel/overload2.html -asio/reference/serial_port/close.html -asio/reference/serial_port/close/overload1.html -asio/reference/serial_port/close/overload2.html -asio/reference/serial_port/executor_type.html -asio/reference/serial_port/get_executor.html -asio/reference/serial_port/get_io_context.html -asio/reference/serial_port/get_io_service.html -asio/reference/serial_port/get_option.html -asio/reference/serial_port/get_option/overload1.html -asio/reference/serial_port/get_option/overload2.html -asio/reference/serial_port/is_open.html -asio/reference/serial_port/lowest_layer.html -asio/reference/serial_port/lowest_layer/overload1.html -asio/reference/serial_port/lowest_layer/overload2.html -asio/reference/serial_port/lowest_layer_type.html -asio/reference/serial_port/native_handle.html -asio/reference/serial_port/native_handle_type.html -asio/reference/serial_port/open.html -asio/reference/serial_port/open/overload1.html -asio/reference/serial_port/open/overload2.html -asio/reference/serial_port/operator_eq_.html -asio/reference/serial_port/read_some.html -asio/reference/serial_port/read_some/overload1.html -asio/reference/serial_port/read_some/overload2.html -asio/reference/serial_port/send_break.html -asio/reference/serial_port/send_break/overload1.html -asio/reference/serial_port/send_break/overload2.html -asio/reference/serial_port/serial_port.html -asio/reference/serial_port/serial_port/overload1.html -asio/reference/serial_port/serial_port/overload2.html -asio/reference/serial_port/serial_port/overload3.html -asio/reference/serial_port/serial_port/overload4.html -asio/reference/serial_port/serial_port/overload5.html -asio/reference/serial_port/set_option.html -asio/reference/serial_port/set_option/overload1.html -asio/reference/serial_port/set_option/overload2.html -asio/reference/serial_port/write_some.html -asio/reference/serial_port/write_some/overload1.html -asio/reference/serial_port/write_some/overload2.html -asio/reference/serial_port/_serial_port.html -asio/reference/serial_port_base.html -asio/reference/serial_port_base/_serial_port_base.html -asio/reference/serial_port_base__baud_rate.html -asio/reference/serial_port_base__baud_rate/baud_rate.html -asio/reference/serial_port_base__baud_rate/load.html -asio/reference/serial_port_base__baud_rate/store.html -asio/reference/serial_port_base__baud_rate/value.html -asio/reference/serial_port_base__character_size.html -asio/reference/serial_port_base__character_size/character_size.html -asio/reference/serial_port_base__character_size/load.html -asio/reference/serial_port_base__character_size/store.html -asio/reference/serial_port_base__character_size/value.html -asio/reference/serial_port_base__flow_control.html -asio/reference/serial_port_base__flow_control/flow_control.html -asio/reference/serial_port_base__flow_control/load.html -asio/reference/serial_port_base__flow_control/store.html -asio/reference/serial_port_base__flow_control/type.html -asio/reference/serial_port_base__flow_control/value.html -asio/reference/serial_port_base__parity.html -asio/reference/serial_port_base__parity/load.html -asio/reference/serial_port_base__parity/parity.html -asio/reference/serial_port_base__parity/store.html -asio/reference/serial_port_base__parity/type.html -asio/reference/serial_port_base__parity/value.html -asio/reference/serial_port_base__stop_bits.html -asio/reference/serial_port_base__stop_bits/load.html -asio/reference/serial_port_base__stop_bits/stop_bits.html -asio/reference/serial_port_base__stop_bits/store.html -asio/reference/serial_port_base__stop_bits/type.html -asio/reference/serial_port_base__stop_bits/value.html -asio/reference/service_already_exists.html -asio/reference/service_already_exists/service_already_exists.html -asio/reference/signal_set.html -asio/reference/signal_set/add.html -asio/reference/signal_set/add/overload1.html -asio/reference/signal_set/add/overload2.html -asio/reference/signal_set/async_wait.html -asio/reference/signal_set/cancel.html -asio/reference/signal_set/cancel/overload1.html -asio/reference/signal_set/cancel/overload2.html -asio/reference/signal_set/clear.html -asio/reference/signal_set/clear/overload1.html -asio/reference/signal_set/clear/overload2.html -asio/reference/signal_set/executor_type.html -asio/reference/signal_set/get_executor.html -asio/reference/signal_set/get_io_context.html -asio/reference/signal_set/get_io_service.html -asio/reference/signal_set/remove.html -asio/reference/signal_set/remove/overload1.html -asio/reference/signal_set/remove/overload2.html -asio/reference/signal_set/signal_set.html -asio/reference/signal_set/signal_set/overload1.html -asio/reference/signal_set/signal_set/overload2.html -asio/reference/signal_set/signal_set/overload3.html -asio/reference/signal_set/signal_set/overload4.html -asio/reference/signal_set/_signal_set.html -asio/reference/socket_base.html -asio/reference/socket_base/broadcast.html -asio/reference/socket_base/bytes_readable.html -asio/reference/socket_base/debug.html -asio/reference/socket_base/do_not_route.html -asio/reference/socket_base/enable_connection_aborted.html -asio/reference/socket_base/keep_alive.html -asio/reference/socket_base/linger.html -asio/reference/socket_base/max_connections.html -asio/reference/socket_base/max_listen_connections.html -asio/reference/socket_base/message_do_not_route.html -asio/reference/socket_base/message_end_of_record.html -asio/reference/socket_base/message_flags.html -asio/reference/socket_base/message_out_of_band.html -asio/reference/socket_base/message_peek.html -asio/reference/socket_base/out_of_band_inline.html -asio/reference/socket_base/receive_buffer_size.html -asio/reference/socket_base/receive_low_watermark.html -asio/reference/socket_base/reuse_address.html -asio/reference/socket_base/send_buffer_size.html -asio/reference/socket_base/send_low_watermark.html -asio/reference/socket_base/shutdown_type.html -asio/reference/socket_base/wait_type.html -asio/reference/socket_base/_socket_base.html -asio/reference/spawn.html -asio/reference/spawn/overload1.html -asio/reference/spawn/overload2.html -asio/reference/spawn/overload3.html -asio/reference/spawn/overload4.html -asio/reference/spawn/overload5.html -asio/reference/spawn/overload6.html -asio/reference/spawn/overload7.html -asio/reference/ssl__context.html -asio/reference/ssl__context/add_certificate_authority.html -asio/reference/ssl__context/add_certificate_authority/overload1.html -asio/reference/ssl__context/add_certificate_authority/overload2.html -asio/reference/ssl__context/add_verify_path.html -asio/reference/ssl__context/add_verify_path/overload1.html -asio/reference/ssl__context/add_verify_path/overload2.html -asio/reference/ssl__context/clear_options.html -asio/reference/ssl__context/clear_options/overload1.html -asio/reference/ssl__context/clear_options/overload2.html -asio/reference/ssl__context/context.html -asio/reference/ssl__context/context/overload1.html -asio/reference/ssl__context/context/overload2.html -asio/reference/ssl__context/default_workarounds.html -asio/reference/ssl__context/file_format.html -asio/reference/ssl__context/load_verify_file.html -asio/reference/ssl__context/load_verify_file/overload1.html -asio/reference/ssl__context/load_verify_file/overload2.html -asio/reference/ssl__context/method.html -asio/reference/ssl__context/native_handle.html -asio/reference/ssl__context/native_handle_type.html -asio/reference/ssl__context/no_compression.html -asio/reference/ssl__context/no_sslv2.html -asio/reference/ssl__context/no_sslv3.html -asio/reference/ssl__context/no_tlsv1.html -asio/reference/ssl__context/no_tlsv1_1.html -asio/reference/ssl__context/no_tlsv1_2.html -asio/reference/ssl__context/no_tlsv1_3.html -asio/reference/ssl__context/operator_eq_.html -asio/reference/ssl__context/options.html -asio/reference/ssl__context/password_purpose.html -asio/reference/ssl__context/set_default_verify_paths.html -asio/reference/ssl__context/set_default_verify_paths/overload1.html -asio/reference/ssl__context/set_default_verify_paths/overload2.html -asio/reference/ssl__context/set_options.html -asio/reference/ssl__context/set_options/overload1.html -asio/reference/ssl__context/set_options/overload2.html -asio/reference/ssl__context/set_password_callback.html -asio/reference/ssl__context/set_password_callback/overload1.html -asio/reference/ssl__context/set_password_callback/overload2.html -asio/reference/ssl__context/set_verify_callback.html -asio/reference/ssl__context/set_verify_callback/overload1.html -asio/reference/ssl__context/set_verify_callback/overload2.html -asio/reference/ssl__context/set_verify_depth.html -asio/reference/ssl__context/set_verify_depth/overload1.html -asio/reference/ssl__context/set_verify_depth/overload2.html -asio/reference/ssl__context/set_verify_mode.html -asio/reference/ssl__context/set_verify_mode/overload1.html -asio/reference/ssl__context/set_verify_mode/overload2.html -asio/reference/ssl__context/single_dh_use.html -asio/reference/ssl__context/use_certificate.html -asio/reference/ssl__context/use_certificate/overload1.html -asio/reference/ssl__context/use_certificate/overload2.html -asio/reference/ssl__context/use_certificate_chain.html -asio/reference/ssl__context/use_certificate_chain/overload1.html -asio/reference/ssl__context/use_certificate_chain/overload2.html -asio/reference/ssl__context/use_certificate_chain_file.html -asio/reference/ssl__context/use_certificate_chain_file/overload1.html -asio/reference/ssl__context/use_certificate_chain_file/overload2.html -asio/reference/ssl__context/use_certificate_file.html -asio/reference/ssl__context/use_certificate_file/overload1.html -asio/reference/ssl__context/use_certificate_file/overload2.html -asio/reference/ssl__context/use_private_key.html -asio/reference/ssl__context/use_private_key/overload1.html -asio/reference/ssl__context/use_private_key/overload2.html -asio/reference/ssl__context/use_private_key_file.html -asio/reference/ssl__context/use_private_key_file/overload1.html -asio/reference/ssl__context/use_private_key_file/overload2.html -asio/reference/ssl__context/use_rsa_private_key.html -asio/reference/ssl__context/use_rsa_private_key/overload1.html -asio/reference/ssl__context/use_rsa_private_key/overload2.html -asio/reference/ssl__context/use_rsa_private_key_file.html -asio/reference/ssl__context/use_rsa_private_key_file/overload1.html -asio/reference/ssl__context/use_rsa_private_key_file/overload2.html -asio/reference/ssl__context/use_tmp_dh.html -asio/reference/ssl__context/use_tmp_dh/overload1.html -asio/reference/ssl__context/use_tmp_dh/overload2.html -asio/reference/ssl__context/use_tmp_dh_file.html -asio/reference/ssl__context/use_tmp_dh_file/overload1.html -asio/reference/ssl__context/use_tmp_dh_file/overload2.html -asio/reference/ssl__context/_context.html -asio/reference/ssl__context_base.html -asio/reference/ssl__context_base/default_workarounds.html -asio/reference/ssl__context_base/file_format.html -asio/reference/ssl__context_base/method.html -asio/reference/ssl__context_base/no_compression.html -asio/reference/ssl__context_base/no_sslv2.html -asio/reference/ssl__context_base/no_sslv3.html -asio/reference/ssl__context_base/no_tlsv1.html -asio/reference/ssl__context_base/no_tlsv1_1.html -asio/reference/ssl__context_base/no_tlsv1_2.html -asio/reference/ssl__context_base/no_tlsv1_3.html -asio/reference/ssl__context_base/options.html -asio/reference/ssl__context_base/password_purpose.html -asio/reference/ssl__context_base/single_dh_use.html -asio/reference/ssl__context_base/_context_base.html -asio/reference/ssl__error__get_stream_category.html -asio/reference/ssl__error__make_error_code.html -asio/reference/ssl__error__stream_category.html -asio/reference/ssl__error__stream_errors.html -asio/reference/ssl__rfc2818_verification.html -asio/reference/ssl__rfc2818_verification/operator_lp__rp_.html -asio/reference/ssl__rfc2818_verification/result_type.html -asio/reference/ssl__rfc2818_verification/rfc2818_verification.html -asio/reference/ssl__stream.html -asio/reference/ssl__stream/async_handshake.html -asio/reference/ssl__stream/async_handshake/overload1.html -asio/reference/ssl__stream/async_handshake/overload2.html -asio/reference/ssl__stream/async_read_some.html -asio/reference/ssl__stream/async_shutdown.html -asio/reference/ssl__stream/async_write_some.html -asio/reference/ssl__stream/executor_type.html -asio/reference/ssl__stream/get_executor.html -asio/reference/ssl__stream/get_io_context.html -asio/reference/ssl__stream/get_io_service.html -asio/reference/ssl__stream/handshake.html -asio/reference/ssl__stream/handshake/overload1.html -asio/reference/ssl__stream/handshake/overload2.html -asio/reference/ssl__stream/handshake/overload3.html -asio/reference/ssl__stream/handshake/overload4.html -asio/reference/ssl__stream/handshake_type.html -asio/reference/ssl__stream/lowest_layer.html -asio/reference/ssl__stream/lowest_layer/overload1.html -asio/reference/ssl__stream/lowest_layer/overload2.html -asio/reference/ssl__stream/lowest_layer_type.html -asio/reference/ssl__stream/native_handle.html -asio/reference/ssl__stream/native_handle_type.html -asio/reference/ssl__stream/next_layer.html -asio/reference/ssl__stream/next_layer/overload1.html -asio/reference/ssl__stream/next_layer/overload2.html -asio/reference/ssl__stream/next_layer_type.html -asio/reference/ssl__stream/read_some.html -asio/reference/ssl__stream/read_some/overload1.html -asio/reference/ssl__stream/read_some/overload2.html -asio/reference/ssl__stream/set_verify_callback.html -asio/reference/ssl__stream/set_verify_callback/overload1.html -asio/reference/ssl__stream/set_verify_callback/overload2.html -asio/reference/ssl__stream/set_verify_depth.html -asio/reference/ssl__stream/set_verify_depth/overload1.html -asio/reference/ssl__stream/set_verify_depth/overload2.html -asio/reference/ssl__stream/set_verify_mode.html -asio/reference/ssl__stream/set_verify_mode/overload1.html -asio/reference/ssl__stream/set_verify_mode/overload2.html -asio/reference/ssl__stream/shutdown.html -asio/reference/ssl__stream/shutdown/overload1.html -asio/reference/ssl__stream/shutdown/overload2.html -asio/reference/ssl__stream/stream.html -asio/reference/ssl__stream/write_some.html -asio/reference/ssl__stream/write_some/overload1.html -asio/reference/ssl__stream/write_some/overload2.html -asio/reference/ssl__stream/_stream.html -asio/reference/ssl__stream__impl_struct.html -asio/reference/ssl__stream__impl_struct/ssl.html -asio/reference/ssl__stream_base.html -asio/reference/ssl__stream_base/handshake_type.html -asio/reference/ssl__stream_base/_stream_base.html -asio/reference/ssl__verify_client_once.html -asio/reference/ssl__verify_context.html -asio/reference/ssl__verify_context/native_handle.html -asio/reference/ssl__verify_context/native_handle_type.html -asio/reference/ssl__verify_context/verify_context.html -asio/reference/ssl__verify_fail_if_no_peer_cert.html -asio/reference/ssl__verify_mode.html -asio/reference/ssl__verify_none.html -asio/reference/ssl__verify_peer.html -asio/reference/steady_timer.html -asio/reference/strand.html -asio/reference/strand/context.html -asio/reference/strand/defer.html -asio/reference/strand/dispatch.html -asio/reference/strand/get_inner_executor.html -asio/reference/strand/inner_executor_type.html -asio/reference/strand/on_work_finished.html -asio/reference/strand/on_work_started.html -asio/reference/strand/operator_not__eq_.html -asio/reference/strand/operator_eq_.html -asio/reference/strand/operator_eq_/overload1.html -asio/reference/strand/operator_eq_/overload2.html -asio/reference/strand/operator_eq_/overload3.html -asio/reference/strand/operator_eq_/overload4.html -asio/reference/strand/operator_eq__eq_.html -asio/reference/strand/post.html -asio/reference/strand/running_in_this_thread.html -asio/reference/strand/strand.html -asio/reference/strand/strand/overload1.html -asio/reference/strand/strand/overload2.html -asio/reference/strand/strand/overload3.html -asio/reference/strand/strand/overload4.html -asio/reference/strand/strand/overload5.html -asio/reference/strand/strand/overload6.html -asio/reference/strand/_strand.html -asio/reference/streambuf.html -asio/reference/system_category.html -asio/reference/system_context.html -asio/reference/system_context/add_service.html -asio/reference/system_context/destroy.html -asio/reference/system_context/executor_type.html -asio/reference/system_context/fork_event.html -asio/reference/system_context/get_executor.html -asio/reference/system_context/has_service.html -asio/reference/system_context/join.html -asio/reference/system_context/make_service.html -asio/reference/system_context/notify_fork.html -asio/reference/system_context/shutdown.html -asio/reference/system_context/stop.html -asio/reference/system_context/stopped.html -asio/reference/system_context/use_service.html -asio/reference/system_context/use_service/overload1.html -asio/reference/system_context/use_service/overload2.html -asio/reference/system_context/_system_context.html -asio/reference/system_error.html -asio/reference/system_error/code.html -asio/reference/system_error/operator_eq_.html -asio/reference/system_error/system_error.html -asio/reference/system_error/system_error/overload1.html -asio/reference/system_error/system_error/overload2.html -asio/reference/system_error/system_error/overload3.html -asio/reference/system_error/what.html -asio/reference/system_error/_system_error.html -asio/reference/system_executor.html -asio/reference/system_executor/context.html -asio/reference/system_executor/defer.html -asio/reference/system_executor/dispatch.html -asio/reference/system_executor/on_work_finished.html -asio/reference/system_executor/on_work_started.html -asio/reference/system_executor/operator_not__eq_.html -asio/reference/system_executor/operator_eq__eq_.html -asio/reference/system_executor/post.html -asio/reference/system_timer.html -asio/reference/thread.html -asio/reference/thread/join.html -asio/reference/thread/thread.html -asio/reference/thread/_thread.html -asio/reference/thread_pool.html -asio/reference/thread_pool/add_service.html -asio/reference/thread_pool/destroy.html -asio/reference/thread_pool/fork_event.html -asio/reference/thread_pool/get_executor.html -asio/reference/thread_pool/has_service.html -asio/reference/thread_pool/join.html -asio/reference/thread_pool/make_service.html -asio/reference/thread_pool/notify_fork.html -asio/reference/thread_pool/shutdown.html -asio/reference/thread_pool/stop.html -asio/reference/thread_pool/thread_pool.html -asio/reference/thread_pool/thread_pool/overload1.html -asio/reference/thread_pool/thread_pool/overload2.html -asio/reference/thread_pool/use_service.html -asio/reference/thread_pool/use_service/overload1.html -asio/reference/thread_pool/use_service/overload2.html -asio/reference/thread_pool/_thread_pool.html -asio/reference/thread_pool__executor_type.html -asio/reference/thread_pool__executor_type/context.html -asio/reference/thread_pool__executor_type/defer.html -asio/reference/thread_pool__executor_type/dispatch.html -asio/reference/thread_pool__executor_type/on_work_finished.html -asio/reference/thread_pool__executor_type/on_work_started.html -asio/reference/thread_pool__executor_type/operator_not__eq_.html -asio/reference/thread_pool__executor_type/operator_eq__eq_.html -asio/reference/thread_pool__executor_type/post.html -asio/reference/thread_pool__executor_type/running_in_this_thread.html -asio/reference/time_traits_lt__ptime__gt_.html -asio/reference/time_traits_lt__ptime__gt_/add.html -asio/reference/time_traits_lt__ptime__gt_/duration_type.html -asio/reference/time_traits_lt__ptime__gt_/less_than.html -asio/reference/time_traits_lt__ptime__gt_/now.html -asio/reference/time_traits_lt__ptime__gt_/subtract.html -asio/reference/time_traits_lt__ptime__gt_/time_type.html -asio/reference/time_traits_lt__ptime__gt_/to_posix_duration.html -asio/reference/transfer_all.html -asio/reference/transfer_at_least.html -asio/reference/transfer_exactly.html -asio/reference/use_future.html -asio/reference/use_future_t.html -asio/reference/use_future_t/allocator_type.html -asio/reference/use_future_t/get_allocator.html -asio/reference/use_future_t/operator_lp__rp_.html -asio/reference/use_future_t/operator_lb__rb_.html -asio/reference/use_future_t/rebind.html -asio/reference/use_future_t/use_future_t.html -asio/reference/use_future_t/use_future_t/overload1.html -asio/reference/use_future_t/use_future_t/overload2.html -asio/reference/use_service.html -asio/reference/use_service/overload1.html -asio/reference/use_service/overload2.html -asio/reference/uses_executor.html -asio/reference/wait_traits.html -asio/reference/wait_traits/to_wait_duration.html -asio/reference/wait_traits/to_wait_duration/overload1.html -asio/reference/wait_traits/to_wait_duration/overload2.html -asio/reference/windows__object_handle.html -asio/reference/windows__object_handle/assign.html -asio/reference/windows__object_handle/assign/overload1.html -asio/reference/windows__object_handle/assign/overload2.html -asio/reference/windows__object_handle/async_wait.html -asio/reference/windows__object_handle/cancel.html -asio/reference/windows__object_handle/cancel/overload1.html -asio/reference/windows__object_handle/cancel/overload2.html -asio/reference/windows__object_handle/close.html -asio/reference/windows__object_handle/close/overload1.html -asio/reference/windows__object_handle/close/overload2.html -asio/reference/windows__object_handle/executor_type.html -asio/reference/windows__object_handle/get_executor.html -asio/reference/windows__object_handle/get_io_context.html -asio/reference/windows__object_handle/get_io_service.html -asio/reference/windows__object_handle/is_open.html -asio/reference/windows__object_handle/lowest_layer.html -asio/reference/windows__object_handle/lowest_layer/overload1.html -asio/reference/windows__object_handle/lowest_layer/overload2.html -asio/reference/windows__object_handle/lowest_layer_type.html -asio/reference/windows__object_handle/native_handle.html -asio/reference/windows__object_handle/native_handle_type.html -asio/reference/windows__object_handle/object_handle.html -asio/reference/windows__object_handle/object_handle/overload1.html -asio/reference/windows__object_handle/object_handle/overload2.html -asio/reference/windows__object_handle/object_handle/overload3.html -asio/reference/windows__object_handle/operator_eq_.html -asio/reference/windows__object_handle/wait.html -asio/reference/windows__object_handle/wait/overload1.html -asio/reference/windows__object_handle/wait/overload2.html -asio/reference/windows__overlapped_handle.html -asio/reference/windows__overlapped_handle/assign.html -asio/reference/windows__overlapped_handle/assign/overload1.html -asio/reference/windows__overlapped_handle/assign/overload2.html -asio/reference/windows__overlapped_handle/cancel.html -asio/reference/windows__overlapped_handle/cancel/overload1.html -asio/reference/windows__overlapped_handle/cancel/overload2.html -asio/reference/windows__overlapped_handle/close.html -asio/reference/windows__overlapped_handle/close/overload1.html -asio/reference/windows__overlapped_handle/close/overload2.html -asio/reference/windows__overlapped_handle/executor_type.html -asio/reference/windows__overlapped_handle/get_executor.html -asio/reference/windows__overlapped_handle/get_io_context.html -asio/reference/windows__overlapped_handle/get_io_service.html -asio/reference/windows__overlapped_handle/is_open.html -asio/reference/windows__overlapped_handle/lowest_layer.html -asio/reference/windows__overlapped_handle/lowest_layer/overload1.html -asio/reference/windows__overlapped_handle/lowest_layer/overload2.html -asio/reference/windows__overlapped_handle/lowest_layer_type.html -asio/reference/windows__overlapped_handle/native_handle.html -asio/reference/windows__overlapped_handle/native_handle_type.html -asio/reference/windows__overlapped_handle/operator_eq_.html -asio/reference/windows__overlapped_handle/overlapped_handle.html -asio/reference/windows__overlapped_handle/overlapped_handle/overload1.html -asio/reference/windows__overlapped_handle/overlapped_handle/overload2.html -asio/reference/windows__overlapped_handle/overlapped_handle/overload3.html -asio/reference/windows__overlapped_handle/_overlapped_handle.html -asio/reference/windows__overlapped_ptr.html -asio/reference/windows__overlapped_ptr/complete.html -asio/reference/windows__overlapped_ptr/get.html -asio/reference/windows__overlapped_ptr/get/overload1.html -asio/reference/windows__overlapped_ptr/get/overload2.html -asio/reference/windows__overlapped_ptr/overlapped_ptr.html -asio/reference/windows__overlapped_ptr/overlapped_ptr/overload1.html -asio/reference/windows__overlapped_ptr/overlapped_ptr/overload2.html -asio/reference/windows__overlapped_ptr/release.html -asio/reference/windows__overlapped_ptr/reset.html -asio/reference/windows__overlapped_ptr/reset/overload1.html -asio/reference/windows__overlapped_ptr/reset/overload2.html -asio/reference/windows__overlapped_ptr/_overlapped_ptr.html -asio/reference/windows__random_access_handle.html -asio/reference/windows__random_access_handle/assign.html -asio/reference/windows__random_access_handle/assign/overload1.html -asio/reference/windows__random_access_handle/assign/overload2.html -asio/reference/windows__random_access_handle/async_read_some_at.html -asio/reference/windows__random_access_handle/async_write_some_at.html -asio/reference/windows__random_access_handle/cancel.html -asio/reference/windows__random_access_handle/cancel/overload1.html -asio/reference/windows__random_access_handle/cancel/overload2.html -asio/reference/windows__random_access_handle/close.html -asio/reference/windows__random_access_handle/close/overload1.html -asio/reference/windows__random_access_handle/close/overload2.html -asio/reference/windows__random_access_handle/executor_type.html -asio/reference/windows__random_access_handle/get_executor.html -asio/reference/windows__random_access_handle/get_io_context.html -asio/reference/windows__random_access_handle/get_io_service.html -asio/reference/windows__random_access_handle/is_open.html -asio/reference/windows__random_access_handle/lowest_layer.html -asio/reference/windows__random_access_handle/lowest_layer/overload1.html -asio/reference/windows__random_access_handle/lowest_layer/overload2.html -asio/reference/windows__random_access_handle/lowest_layer_type.html -asio/reference/windows__random_access_handle/native_handle.html -asio/reference/windows__random_access_handle/native_handle_type.html -asio/reference/windows__random_access_handle/operator_eq_.html -asio/reference/windows__random_access_handle/random_access_handle.html -asio/reference/windows__random_access_handle/random_access_handle/overload1.html -asio/reference/windows__random_access_handle/random_access_handle/overload2.html -asio/reference/windows__random_access_handle/random_access_handle/overload3.html -asio/reference/windows__random_access_handle/read_some_at.html -asio/reference/windows__random_access_handle/read_some_at/overload1.html -asio/reference/windows__random_access_handle/read_some_at/overload2.html -asio/reference/windows__random_access_handle/write_some_at.html -asio/reference/windows__random_access_handle/write_some_at/overload1.html -asio/reference/windows__random_access_handle/write_some_at/overload2.html -asio/reference/windows__stream_handle.html -asio/reference/windows__stream_handle/assign.html -asio/reference/windows__stream_handle/assign/overload1.html -asio/reference/windows__stream_handle/assign/overload2.html -asio/reference/windows__stream_handle/async_read_some.html -asio/reference/windows__stream_handle/async_write_some.html -asio/reference/windows__stream_handle/cancel.html -asio/reference/windows__stream_handle/cancel/overload1.html -asio/reference/windows__stream_handle/cancel/overload2.html -asio/reference/windows__stream_handle/close.html -asio/reference/windows__stream_handle/close/overload1.html -asio/reference/windows__stream_handle/close/overload2.html -asio/reference/windows__stream_handle/executor_type.html -asio/reference/windows__stream_handle/get_executor.html -asio/reference/windows__stream_handle/get_io_context.html -asio/reference/windows__stream_handle/get_io_service.html -asio/reference/windows__stream_handle/is_open.html -asio/reference/windows__stream_handle/lowest_layer.html -asio/reference/windows__stream_handle/lowest_layer/overload1.html -asio/reference/windows__stream_handle/lowest_layer/overload2.html -asio/reference/windows__stream_handle/lowest_layer_type.html -asio/reference/windows__stream_handle/native_handle.html -asio/reference/windows__stream_handle/native_handle_type.html -asio/reference/windows__stream_handle/operator_eq_.html -asio/reference/windows__stream_handle/read_some.html -asio/reference/windows__stream_handle/read_some/overload1.html -asio/reference/windows__stream_handle/read_some/overload2.html -asio/reference/windows__stream_handle/stream_handle.html -asio/reference/windows__stream_handle/stream_handle/overload1.html -asio/reference/windows__stream_handle/stream_handle/overload2.html -asio/reference/windows__stream_handle/stream_handle/overload3.html -asio/reference/windows__stream_handle/write_some.html -asio/reference/windows__stream_handle/write_some/overload1.html -asio/reference/windows__stream_handle/write_some/overload2.html -asio/reference/write.html -asio/reference/write/overload1.html -asio/reference/write/overload2.html -asio/reference/write/overload3.html -asio/reference/write/overload4.html -asio/reference/write/overload5.html -asio/reference/write/overload6.html -asio/reference/write/overload7.html -asio/reference/write/overload8.html -asio/reference/write/overload9.html -asio/reference/write/overload10.html -asio/reference/write/overload11.html -asio/reference/write/overload12.html -asio/reference/write_at.html -asio/reference/write_at/overload1.html -asio/reference/write_at/overload2.html -asio/reference/write_at/overload3.html -asio/reference/write_at/overload4.html -asio/reference/write_at/overload5.html -asio/reference/write_at/overload6.html -asio/reference/write_at/overload7.html -asio/reference/write_at/overload8.html -asio/reference/yield_context.html -asio/net_ts.html -asio/history.html -asio/index.html diff --git a/Sources/Vendor/asio/doc/sync_op.png b/Sources/Vendor/asio/doc/sync_op.png deleted file mode 100644 index a96c835..0000000 Binary files a/Sources/Vendor/asio/doc/sync_op.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/tip.png b/Sources/Vendor/asio/doc/tip.png deleted file mode 100644 index 5c4aab3..0000000 Binary files a/Sources/Vendor/asio/doc/tip.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/up.png b/Sources/Vendor/asio/doc/up.png deleted file mode 100644 index 17d9c3e..0000000 Binary files a/Sources/Vendor/asio/doc/up.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/up_disabled.png b/Sources/Vendor/asio/doc/up_disabled.png deleted file mode 100644 index e22bc87..0000000 Binary files a/Sources/Vendor/asio/doc/up_disabled.png and /dev/null differ diff --git a/Sources/Vendor/asio/doc/warning.png b/Sources/Vendor/asio/doc/warning.png deleted file mode 100644 index 1c33db8..0000000 Binary files a/Sources/Vendor/asio/doc/warning.png and /dev/null differ diff --git a/Sources/Vendor/asio/include/Makefile.am b/Sources/Vendor/asio/include/Makefile.am deleted file mode 100644 index a6ac994..0000000 --- a/Sources/Vendor/asio/include/Makefile.am +++ /dev/null @@ -1,487 +0,0 @@ -# find . -name "*.*pp" | sed -e 's/^\.\///' | sed -e 's/^.*$/ & \\/' | sort -nobase_include_HEADERS = \ - asio/associated_allocator.hpp \ - asio/associated_executor.hpp \ - asio/async_result.hpp \ - asio/basic_datagram_socket.hpp \ - asio/basic_deadline_timer.hpp \ - asio/basic_io_object.hpp \ - asio/basic_raw_socket.hpp \ - asio/basic_seq_packet_socket.hpp \ - asio/basic_serial_port.hpp \ - asio/basic_signal_set.hpp \ - asio/basic_socket_acceptor.hpp \ - asio/basic_socket.hpp \ - asio/basic_socket_iostream.hpp \ - asio/basic_socket_streambuf.hpp \ - asio/basic_streambuf_fwd.hpp \ - asio/basic_streambuf.hpp \ - asio/basic_stream_socket.hpp \ - asio/basic_waitable_timer.hpp \ - asio/bind_executor.hpp \ - asio/buffered_read_stream_fwd.hpp \ - asio/buffered_read_stream.hpp \ - asio/buffered_stream_fwd.hpp \ - asio/buffered_stream.hpp \ - asio/buffered_write_stream_fwd.hpp \ - asio/buffered_write_stream.hpp \ - asio/buffer.hpp \ - asio/buffers_iterator.hpp \ - asio/completion_condition.hpp \ - asio/connect.hpp \ - asio/coroutine.hpp \ - asio/datagram_socket_service.hpp \ - asio/deadline_timer.hpp \ - asio/deadline_timer_service.hpp \ - asio/defer.hpp \ - asio/detail/array_fwd.hpp \ - asio/detail/array.hpp \ - asio/detail/assert.hpp \ - asio/detail/atomic_count.hpp \ - asio/detail/base_from_completion_cond.hpp \ - asio/detail/bind_handler.hpp \ - asio/detail/buffered_stream_storage.hpp \ - asio/detail/buffer_resize_guard.hpp \ - asio/detail/buffer_sequence_adapter.hpp \ - asio/detail/call_stack.hpp \ - asio/detail/chrono.hpp \ - asio/detail/chrono_time_traits.hpp \ - asio/detail/completion_handler.hpp \ - asio/detail/concurrency_hint.hpp \ - asio/detail/conditionally_enabled_event.hpp \ - asio/detail/conditionally_enabled_mutex.hpp \ - asio/detail/config.hpp \ - asio/detail/consuming_buffers.hpp \ - asio/detail/cstddef.hpp \ - asio/detail/cstdint.hpp \ - asio/detail/date_time_fwd.hpp \ - asio/detail/deadline_timer_service.hpp \ - asio/detail/dependent_type.hpp \ - asio/detail/descriptor_ops.hpp \ - asio/detail/descriptor_read_op.hpp \ - asio/detail/descriptor_write_op.hpp \ - asio/detail/dev_poll_reactor.hpp \ - asio/detail/epoll_reactor.hpp \ - asio/detail/eventfd_select_interrupter.hpp \ - asio/detail/event.hpp \ - asio/detail/executor_op.hpp \ - asio/detail/fd_set_adapter.hpp \ - asio/detail/fenced_block.hpp \ - asio/detail/functional.hpp \ - asio/detail/future.hpp \ - asio/detail/gcc_arm_fenced_block.hpp \ - asio/detail/gcc_hppa_fenced_block.hpp \ - asio/detail/gcc_sync_fenced_block.hpp \ - asio/detail/gcc_x86_fenced_block.hpp \ - asio/detail/global.hpp \ - asio/detail/handler_alloc_helpers.hpp \ - asio/detail/handler_cont_helpers.hpp \ - asio/detail/handler_invoke_helpers.hpp \ - asio/detail/handler_tracking.hpp \ - asio/detail/handler_type_requirements.hpp \ - asio/detail/handler_work.hpp \ - asio/detail/hash_map.hpp \ - asio/detail/impl/buffer_sequence_adapter.ipp \ - asio/detail/impl/descriptor_ops.ipp \ - asio/detail/impl/dev_poll_reactor.hpp \ - asio/detail/impl/dev_poll_reactor.ipp \ - asio/detail/impl/epoll_reactor.hpp \ - asio/detail/impl/epoll_reactor.ipp \ - asio/detail/impl/eventfd_select_interrupter.ipp \ - asio/detail/impl/handler_tracking.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_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 \ - asio/detail/impl/select_reactor.hpp \ - asio/detail/impl/select_reactor.ipp \ - asio/detail/impl/service_registry.hpp \ - asio/detail/impl/service_registry.ipp \ - asio/detail/impl/signal_set_service.ipp \ - asio/detail/impl/socket_ops.ipp \ - asio/detail/impl/socket_select_interrupter.ipp \ - asio/detail/impl/strand_executor_service.hpp \ - asio/detail/impl/strand_executor_service.ipp \ - asio/detail/impl/strand_service.hpp \ - asio/detail/impl/strand_service.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_handle_service.ipp \ - asio/detail/impl/win_iocp_io_context.hpp \ - asio/detail/impl/win_iocp_io_context.ipp \ - asio/detail/impl/win_iocp_serial_port_service.ipp \ - asio/detail/impl/win_iocp_socket_service_base.ipp \ - asio/detail/impl/win_mutex.ipp \ - asio/detail/impl/win_object_handle_service.ipp \ - asio/detail/impl/winrt_ssocket_service_base.ipp \ - asio/detail/impl/winrt_timer_scheduler.hpp \ - asio/detail/impl/winrt_timer_scheduler.ipp \ - asio/detail/impl/winsock_init.ipp \ - asio/detail/impl/win_static_mutex.ipp \ - asio/detail/impl/win_thread.ipp \ - asio/detail/impl/win_tss_ptr.ipp \ - asio/detail/io_control.hpp \ - asio/detail/is_buffer_sequence.hpp \ - asio/detail/is_executor.hpp \ - asio/detail/keyword_tss_ptr.hpp \ - asio/detail/kqueue_reactor.hpp \ - asio/detail/limits.hpp \ - asio/detail/local_free_on_block_exit.hpp \ - asio/detail/macos_fenced_block.hpp \ - asio/detail/memory.hpp \ - asio/detail/mutex.hpp \ - asio/detail/noncopyable.hpp \ - asio/detail/null_event.hpp \ - asio/detail/null_fenced_block.hpp \ - asio/detail/null_global.hpp \ - asio/detail/null_mutex.hpp \ - asio/detail/null_reactor.hpp \ - asio/detail/null_signal_blocker.hpp \ - asio/detail/null_socket_service.hpp \ - asio/detail/null_static_mutex.hpp \ - asio/detail/null_thread.hpp \ - asio/detail/null_tss_ptr.hpp \ - asio/detail/object_pool.hpp \ - asio/detail/old_win_sdk_compat.hpp \ - asio/detail/operation.hpp \ - asio/detail/op_queue.hpp \ - asio/detail/pipe_select_interrupter.hpp \ - asio/detail/pop_options.hpp \ - asio/detail/posix_event.hpp \ - asio/detail/posix_fd_set_adapter.hpp \ - asio/detail/posix_global.hpp \ - asio/detail/posix_mutex.hpp \ - asio/detail/posix_signal_blocker.hpp \ - asio/detail/posix_static_mutex.hpp \ - asio/detail/posix_thread.hpp \ - asio/detail/posix_tss_ptr.hpp \ - 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 \ - asio/detail/reactive_socket_recvmsg_op.hpp \ - asio/detail/reactive_socket_recv_op.hpp \ - asio/detail/reactive_socket_send_op.hpp \ - asio/detail/reactive_socket_sendto_op.hpp \ - 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 \ - asio/detail/recycling_allocator.hpp \ - asio/detail/regex_fwd.hpp \ - asio/detail/resolve_endpoint_op.hpp \ - asio/detail/resolve_op.hpp \ - asio/detail/resolve_query_op.hpp \ - asio/detail/resolver_service_base.hpp \ - asio/detail/resolver_service.hpp \ - asio/detail/scheduler.hpp \ - asio/detail/scheduler_operation.hpp \ - asio/detail/scheduler_thread_info.hpp \ - asio/detail/scoped_lock.hpp \ - asio/detail/scoped_ptr.hpp \ - asio/detail/select_interrupter.hpp \ - asio/detail/select_reactor.hpp \ - asio/detail/service_registry.hpp \ - asio/detail/signal_blocker.hpp \ - asio/detail/signal_handler.hpp \ - asio/detail/signal_init.hpp \ - asio/detail/signal_op.hpp \ - asio/detail/signal_set_service.hpp \ - asio/detail/socket_holder.hpp \ - asio/detail/socket_ops.hpp \ - asio/detail/socket_option.hpp \ - asio/detail/socket_select_interrupter.hpp \ - asio/detail/socket_types.hpp \ - asio/detail/solaris_fenced_block.hpp \ - asio/detail/static_mutex.hpp \ - asio/detail/std_event.hpp \ - asio/detail/std_fenced_block.hpp \ - asio/detail/std_global.hpp \ - asio/detail/std_mutex.hpp \ - asio/detail/std_static_mutex.hpp \ - asio/detail/std_thread.hpp \ - asio/detail/strand_executor_service.hpp \ - asio/detail/strand_service.hpp \ - asio/detail/string_view.hpp \ - asio/detail/thread_context.hpp \ - asio/detail/thread_group.hpp \ - asio/detail/thread.hpp \ - asio/detail/thread_info_base.hpp \ - asio/detail/throw_error.hpp \ - asio/detail/throw_exception.hpp \ - asio/detail/timer_queue_base.hpp \ - asio/detail/timer_queue.hpp \ - asio/detail/timer_queue_ptime.hpp \ - asio/detail/timer_queue_set.hpp \ - asio/detail/timer_scheduler_fwd.hpp \ - asio/detail/timer_scheduler.hpp \ - asio/detail/tss_ptr.hpp \ - asio/detail/type_traits.hpp \ - asio/detail/variadic_templates.hpp \ - asio/detail/wait_handler.hpp \ - asio/detail/wait_op.hpp \ - asio/detail/winapp_thread.hpp \ - asio/detail/wince_thread.hpp \ - asio/detail/win_event.hpp \ - asio/detail/win_fd_set_adapter.hpp \ - asio/detail/win_fenced_block.hpp \ - asio/detail/win_global.hpp \ - asio/detail/win_iocp_handle_read_op.hpp \ - asio/detail/win_iocp_handle_service.hpp \ - asio/detail/win_iocp_handle_write_op.hpp \ - asio/detail/win_iocp_io_context.hpp \ - asio/detail/win_iocp_null_buffers_op.hpp \ - asio/detail/win_iocp_operation.hpp \ - asio/detail/win_iocp_overlapped_op.hpp \ - asio/detail/win_iocp_overlapped_ptr.hpp \ - asio/detail/win_iocp_serial_port_service.hpp \ - asio/detail/win_iocp_socket_accept_op.hpp \ - asio/detail/win_iocp_socket_connect_op.hpp \ - asio/detail/win_iocp_socket_recvfrom_op.hpp \ - asio/detail/win_iocp_socket_recvmsg_op.hpp \ - asio/detail/win_iocp_socket_recv_op.hpp \ - asio/detail/win_iocp_socket_send_op.hpp \ - asio/detail/win_iocp_socket_service_base.hpp \ - asio/detail/win_iocp_socket_service.hpp \ - asio/detail/win_iocp_thread_info.hpp \ - asio/detail/win_iocp_wait_op.hpp \ - asio/detail/win_mutex.hpp \ - asio/detail/win_object_handle_service.hpp \ - asio/detail/winrt_async_manager.hpp \ - asio/detail/winrt_async_op.hpp \ - asio/detail/winrt_resolve_op.hpp \ - asio/detail/winrt_resolver_service.hpp \ - asio/detail/winrt_socket_connect_op.hpp \ - asio/detail/winrt_socket_recv_op.hpp \ - asio/detail/winrt_socket_send_op.hpp \ - asio/detail/winrt_ssocket_service_base.hpp \ - asio/detail/winrt_ssocket_service.hpp \ - asio/detail/winrt_timer_scheduler.hpp \ - asio/detail/winrt_utils.hpp \ - asio/detail/winsock_init.hpp \ - asio/detail/win_static_mutex.hpp \ - asio/detail/win_thread.hpp \ - asio/detail/win_tss_ptr.hpp \ - asio/detail/work_dispatcher.hpp \ - asio/detail/wrapped_handler.hpp \ - asio/dispatch.hpp \ - asio/error_code.hpp \ - asio/error.hpp \ - asio/execution_context.hpp \ - asio/executor.hpp \ - asio/executor_work_guard.hpp \ - asio/experimental/co_spawn.hpp \ - asio/experimental/detached.hpp \ - asio/experimental.hpp \ - asio/experimental/impl/co_spawn.hpp \ - asio/experimental/impl/detached.hpp \ - asio/experimental/impl/redirect_error.hpp \ - asio/experimental/redirect_error.hpp \ - asio/generic/basic_endpoint.hpp \ - asio/generic/datagram_protocol.hpp \ - asio/generic/detail/endpoint.hpp \ - asio/generic/detail/impl/endpoint.ipp \ - asio/generic/raw_protocol.hpp \ - asio/generic/seq_packet_protocol.hpp \ - asio/generic/stream_protocol.hpp \ - asio/handler_alloc_hook.hpp \ - asio/handler_continuation_hook.hpp \ - asio/handler_invoke_hook.hpp \ - asio/handler_type.hpp \ - asio/high_resolution_timer.hpp \ - asio.hpp \ - asio/impl/buffered_read_stream.hpp \ - asio/impl/buffered_write_stream.hpp \ - asio/impl/connect.hpp \ - asio/impl/defer.hpp \ - asio/impl/dispatch.hpp \ - asio/impl/error_code.ipp \ - asio/impl/error.ipp \ - asio/impl/execution_context.hpp \ - asio/impl/execution_context.ipp \ - asio/impl/executor.hpp \ - asio/impl/executor.ipp \ - asio/impl/handler_alloc_hook.ipp \ - asio/impl/io_context.hpp \ - asio/impl/io_context.ipp \ - asio/impl/post.hpp \ - asio/impl/read_at.hpp \ - asio/impl/read.hpp \ - asio/impl/read_until.hpp \ - 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 \ - asio/impl/system_executor.hpp \ - asio/impl/thread_pool.hpp \ - asio/impl/thread_pool.ipp \ - asio/impl/use_future.hpp \ - asio/impl/write_at.hpp \ - asio/impl/write.hpp \ - asio/io_context.hpp \ - asio/io_context_strand.hpp \ - asio/io_service.hpp \ - asio/io_service_strand.hpp \ - asio/ip/address.hpp \ - asio/ip/address_v4.hpp \ - asio/ip/address_v4_iterator.hpp \ - asio/ip/address_v4_range.hpp \ - asio/ip/address_v6.hpp \ - asio/ip/address_v6_iterator.hpp \ - asio/ip/address_v6_range.hpp \ - asio/ip/bad_address_cast.hpp \ - asio/ip/basic_endpoint.hpp \ - asio/ip/basic_resolver_entry.hpp \ - asio/ip/basic_resolver.hpp \ - asio/ip/basic_resolver_iterator.hpp \ - asio/ip/basic_resolver_query.hpp \ - asio/ip/basic_resolver_results.hpp \ - asio/ip/detail/endpoint.hpp \ - asio/ip/detail/impl/endpoint.ipp \ - asio/ip/detail/socket_option.hpp \ - asio/ip/host_name.hpp \ - asio/ip/icmp.hpp \ - asio/ip/impl/address.hpp \ - asio/ip/impl/address.ipp \ - asio/ip/impl/address_v4.hpp \ - asio/ip/impl/address_v4.ipp \ - asio/ip/impl/address_v6.hpp \ - asio/ip/impl/address_v6.ipp \ - asio/ip/impl/basic_endpoint.hpp \ - asio/ip/impl/host_name.ipp \ - asio/ip/impl/network_v4.hpp \ - asio/ip/impl/network_v4.ipp \ - asio/ip/impl/network_v6.hpp \ - asio/ip/impl/network_v6.ipp \ - asio/ip/multicast.hpp \ - asio/ip/network_v4.hpp \ - asio/ip/network_v6.hpp \ - asio/ip/resolver_base.hpp \ - asio/ip/resolver_query_base.hpp \ - asio/ip/resolver_service.hpp \ - asio/ip/tcp.hpp \ - asio/ip/udp.hpp \ - asio/ip/unicast.hpp \ - asio/ip/v6_only.hpp \ - asio/is_executor.hpp \ - asio/is_read_buffered.hpp \ - asio/is_write_buffered.hpp \ - asio/local/basic_endpoint.hpp \ - asio/local/connect_pair.hpp \ - asio/local/datagram_protocol.hpp \ - asio/local/detail/endpoint.hpp \ - asio/local/detail/impl/endpoint.ipp \ - asio/local/stream_protocol.hpp \ - asio/packaged_task.hpp \ - asio/placeholders.hpp \ - asio/posix/basic_descriptor.hpp \ - asio/posix/basic_stream_descriptor.hpp \ - asio/posix/descriptor_base.hpp \ - asio/posix/descriptor.hpp \ - asio/posix/stream_descriptor.hpp \ - asio/posix/stream_descriptor_service.hpp \ - asio/post.hpp \ - asio/raw_socket_service.hpp \ - asio/read_at.hpp \ - asio/read.hpp \ - asio/read_until.hpp \ - asio/seq_packet_socket_service.hpp \ - asio/serial_port_base.hpp \ - asio/serial_port.hpp \ - asio/serial_port_service.hpp \ - asio/signal_set.hpp \ - asio/signal_set_service.hpp \ - asio/socket_acceptor_service.hpp \ - asio/socket_base.hpp \ - asio/spawn.hpp \ - asio/ssl/context_base.hpp \ - asio/ssl/context.hpp \ - asio/ssl/detail/buffered_handshake_op.hpp \ - asio/ssl/detail/engine.hpp \ - asio/ssl/detail/handshake_op.hpp \ - asio/ssl/detail/impl/engine.ipp \ - asio/ssl/detail/impl/openssl_init.ipp \ - asio/ssl/detail/io.hpp \ - asio/ssl/detail/openssl_init.hpp \ - asio/ssl/detail/openssl_types.hpp \ - asio/ssl/detail/password_callback.hpp \ - asio/ssl/detail/read_op.hpp \ - asio/ssl/detail/shutdown_op.hpp \ - asio/ssl/detail/stream_core.hpp \ - asio/ssl/detail/verify_callback.hpp \ - asio/ssl/detail/write_op.hpp \ - asio/ssl/error.hpp \ - asio/ssl.hpp \ - asio/ssl/impl/context.hpp \ - asio/ssl/impl/context.ipp \ - asio/ssl/impl/error.ipp \ - asio/ssl/impl/rfc2818_verification.ipp \ - asio/ssl/impl/src.hpp \ - asio/ssl/rfc2818_verification.hpp \ - asio/ssl/stream_base.hpp \ - asio/ssl/stream.hpp \ - asio/ssl/verify_context.hpp \ - asio/ssl/verify_mode.hpp \ - asio/steady_timer.hpp \ - asio/strand.hpp \ - asio/streambuf.hpp \ - asio/stream_socket_service.hpp \ - asio/system_context.hpp \ - asio/system_error.hpp \ - asio/system_executor.hpp \ - asio/system_timer.hpp \ - asio/thread.hpp \ - asio/thread_pool.hpp \ - asio/time_traits.hpp \ - asio/ts/buffer.hpp \ - asio/ts/executor.hpp \ - asio/ts/internet.hpp \ - asio/ts/io_context.hpp \ - asio/ts/netfwd.hpp \ - asio/ts/net.hpp \ - asio/ts/socket.hpp \ - asio/ts/timer.hpp \ - asio/unyield.hpp \ - asio/use_future.hpp \ - asio/uses_executor.hpp \ - asio/version.hpp \ - asio/waitable_timer_service.hpp \ - asio/wait_traits.hpp \ - asio/windows/basic_handle.hpp \ - asio/windows/basic_object_handle.hpp \ - asio/windows/basic_random_access_handle.hpp \ - asio/windows/basic_stream_handle.hpp \ - asio/windows/object_handle.hpp \ - asio/windows/object_handle_service.hpp \ - asio/windows/overlapped_handle.hpp \ - asio/windows/overlapped_ptr.hpp \ - asio/windows/random_access_handle.hpp \ - asio/windows/random_access_handle_service.hpp \ - asio/windows/stream_handle.hpp \ - asio/windows/stream_handle_service.hpp \ - asio/write_at.hpp \ - asio/write.hpp \ - asio/yield.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/include/Makefile.in b/Sources/Vendor/asio/include/Makefile.in deleted file mode 100644 index 894b5fa..0000000 --- a/Sources/Vendor/asio/include/Makefile.in +++ /dev/null @@ -1,1026 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = include -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(nobase_include_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__installdirs = "$(DESTDIR)$(includedir)" -HEADERS = $(nobase_include_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ - -# find . -name "*.*pp" | sed -e 's/^\.\///' | sed -e 's/^.*$/ & \\/' | sort -nobase_include_HEADERS = \ - asio/associated_allocator.hpp \ - asio/associated_executor.hpp \ - asio/async_result.hpp \ - asio/basic_datagram_socket.hpp \ - asio/basic_deadline_timer.hpp \ - asio/basic_io_object.hpp \ - asio/basic_raw_socket.hpp \ - asio/basic_seq_packet_socket.hpp \ - asio/basic_serial_port.hpp \ - asio/basic_signal_set.hpp \ - asio/basic_socket_acceptor.hpp \ - asio/basic_socket.hpp \ - asio/basic_socket_iostream.hpp \ - asio/basic_socket_streambuf.hpp \ - asio/basic_streambuf_fwd.hpp \ - asio/basic_streambuf.hpp \ - asio/basic_stream_socket.hpp \ - asio/basic_waitable_timer.hpp \ - asio/bind_executor.hpp \ - asio/buffered_read_stream_fwd.hpp \ - asio/buffered_read_stream.hpp \ - asio/buffered_stream_fwd.hpp \ - asio/buffered_stream.hpp \ - asio/buffered_write_stream_fwd.hpp \ - asio/buffered_write_stream.hpp \ - asio/buffer.hpp \ - asio/buffers_iterator.hpp \ - asio/completion_condition.hpp \ - asio/connect.hpp \ - asio/coroutine.hpp \ - asio/datagram_socket_service.hpp \ - asio/deadline_timer.hpp \ - asio/deadline_timer_service.hpp \ - asio/defer.hpp \ - asio/detail/array_fwd.hpp \ - asio/detail/array.hpp \ - asio/detail/assert.hpp \ - asio/detail/atomic_count.hpp \ - asio/detail/base_from_completion_cond.hpp \ - asio/detail/bind_handler.hpp \ - asio/detail/buffered_stream_storage.hpp \ - asio/detail/buffer_resize_guard.hpp \ - asio/detail/buffer_sequence_adapter.hpp \ - asio/detail/call_stack.hpp \ - asio/detail/chrono.hpp \ - asio/detail/chrono_time_traits.hpp \ - asio/detail/completion_handler.hpp \ - asio/detail/concurrency_hint.hpp \ - asio/detail/conditionally_enabled_event.hpp \ - asio/detail/conditionally_enabled_mutex.hpp \ - asio/detail/config.hpp \ - asio/detail/consuming_buffers.hpp \ - asio/detail/cstddef.hpp \ - asio/detail/cstdint.hpp \ - asio/detail/date_time_fwd.hpp \ - asio/detail/deadline_timer_service.hpp \ - asio/detail/dependent_type.hpp \ - asio/detail/descriptor_ops.hpp \ - asio/detail/descriptor_read_op.hpp \ - asio/detail/descriptor_write_op.hpp \ - asio/detail/dev_poll_reactor.hpp \ - asio/detail/epoll_reactor.hpp \ - asio/detail/eventfd_select_interrupter.hpp \ - asio/detail/event.hpp \ - asio/detail/executor_op.hpp \ - asio/detail/fd_set_adapter.hpp \ - asio/detail/fenced_block.hpp \ - asio/detail/functional.hpp \ - asio/detail/future.hpp \ - asio/detail/gcc_arm_fenced_block.hpp \ - asio/detail/gcc_hppa_fenced_block.hpp \ - asio/detail/gcc_sync_fenced_block.hpp \ - asio/detail/gcc_x86_fenced_block.hpp \ - asio/detail/global.hpp \ - asio/detail/handler_alloc_helpers.hpp \ - asio/detail/handler_cont_helpers.hpp \ - asio/detail/handler_invoke_helpers.hpp \ - asio/detail/handler_tracking.hpp \ - asio/detail/handler_type_requirements.hpp \ - asio/detail/handler_work.hpp \ - asio/detail/hash_map.hpp \ - asio/detail/impl/buffer_sequence_adapter.ipp \ - asio/detail/impl/descriptor_ops.ipp \ - asio/detail/impl/dev_poll_reactor.hpp \ - asio/detail/impl/dev_poll_reactor.ipp \ - asio/detail/impl/epoll_reactor.hpp \ - asio/detail/impl/epoll_reactor.ipp \ - asio/detail/impl/eventfd_select_interrupter.ipp \ - asio/detail/impl/handler_tracking.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_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 \ - asio/detail/impl/select_reactor.hpp \ - asio/detail/impl/select_reactor.ipp \ - asio/detail/impl/service_registry.hpp \ - asio/detail/impl/service_registry.ipp \ - asio/detail/impl/signal_set_service.ipp \ - asio/detail/impl/socket_ops.ipp \ - asio/detail/impl/socket_select_interrupter.ipp \ - asio/detail/impl/strand_executor_service.hpp \ - asio/detail/impl/strand_executor_service.ipp \ - asio/detail/impl/strand_service.hpp \ - asio/detail/impl/strand_service.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_handle_service.ipp \ - asio/detail/impl/win_iocp_io_context.hpp \ - asio/detail/impl/win_iocp_io_context.ipp \ - asio/detail/impl/win_iocp_serial_port_service.ipp \ - asio/detail/impl/win_iocp_socket_service_base.ipp \ - asio/detail/impl/win_mutex.ipp \ - asio/detail/impl/win_object_handle_service.ipp \ - asio/detail/impl/winrt_ssocket_service_base.ipp \ - asio/detail/impl/winrt_timer_scheduler.hpp \ - asio/detail/impl/winrt_timer_scheduler.ipp \ - asio/detail/impl/winsock_init.ipp \ - asio/detail/impl/win_static_mutex.ipp \ - asio/detail/impl/win_thread.ipp \ - asio/detail/impl/win_tss_ptr.ipp \ - asio/detail/io_control.hpp \ - asio/detail/is_buffer_sequence.hpp \ - asio/detail/is_executor.hpp \ - asio/detail/keyword_tss_ptr.hpp \ - asio/detail/kqueue_reactor.hpp \ - asio/detail/limits.hpp \ - asio/detail/local_free_on_block_exit.hpp \ - asio/detail/macos_fenced_block.hpp \ - asio/detail/memory.hpp \ - asio/detail/mutex.hpp \ - asio/detail/noncopyable.hpp \ - asio/detail/null_event.hpp \ - asio/detail/null_fenced_block.hpp \ - asio/detail/null_global.hpp \ - asio/detail/null_mutex.hpp \ - asio/detail/null_reactor.hpp \ - asio/detail/null_signal_blocker.hpp \ - asio/detail/null_socket_service.hpp \ - asio/detail/null_static_mutex.hpp \ - asio/detail/null_thread.hpp \ - asio/detail/null_tss_ptr.hpp \ - asio/detail/object_pool.hpp \ - asio/detail/old_win_sdk_compat.hpp \ - asio/detail/operation.hpp \ - asio/detail/op_queue.hpp \ - asio/detail/pipe_select_interrupter.hpp \ - asio/detail/pop_options.hpp \ - asio/detail/posix_event.hpp \ - asio/detail/posix_fd_set_adapter.hpp \ - asio/detail/posix_global.hpp \ - asio/detail/posix_mutex.hpp \ - asio/detail/posix_signal_blocker.hpp \ - asio/detail/posix_static_mutex.hpp \ - asio/detail/posix_thread.hpp \ - asio/detail/posix_tss_ptr.hpp \ - 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 \ - asio/detail/reactive_socket_recvmsg_op.hpp \ - asio/detail/reactive_socket_recv_op.hpp \ - asio/detail/reactive_socket_send_op.hpp \ - asio/detail/reactive_socket_sendto_op.hpp \ - 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 \ - asio/detail/recycling_allocator.hpp \ - asio/detail/regex_fwd.hpp \ - asio/detail/resolve_endpoint_op.hpp \ - asio/detail/resolve_op.hpp \ - asio/detail/resolve_query_op.hpp \ - asio/detail/resolver_service_base.hpp \ - asio/detail/resolver_service.hpp \ - asio/detail/scheduler.hpp \ - asio/detail/scheduler_operation.hpp \ - asio/detail/scheduler_thread_info.hpp \ - asio/detail/scoped_lock.hpp \ - asio/detail/scoped_ptr.hpp \ - asio/detail/select_interrupter.hpp \ - asio/detail/select_reactor.hpp \ - asio/detail/service_registry.hpp \ - asio/detail/signal_blocker.hpp \ - asio/detail/signal_handler.hpp \ - asio/detail/signal_init.hpp \ - asio/detail/signal_op.hpp \ - asio/detail/signal_set_service.hpp \ - asio/detail/socket_holder.hpp \ - asio/detail/socket_ops.hpp \ - asio/detail/socket_option.hpp \ - asio/detail/socket_select_interrupter.hpp \ - asio/detail/socket_types.hpp \ - asio/detail/solaris_fenced_block.hpp \ - asio/detail/static_mutex.hpp \ - asio/detail/std_event.hpp \ - asio/detail/std_fenced_block.hpp \ - asio/detail/std_global.hpp \ - asio/detail/std_mutex.hpp \ - asio/detail/std_static_mutex.hpp \ - asio/detail/std_thread.hpp \ - asio/detail/strand_executor_service.hpp \ - asio/detail/strand_service.hpp \ - asio/detail/string_view.hpp \ - asio/detail/thread_context.hpp \ - asio/detail/thread_group.hpp \ - asio/detail/thread.hpp \ - asio/detail/thread_info_base.hpp \ - asio/detail/throw_error.hpp \ - asio/detail/throw_exception.hpp \ - asio/detail/timer_queue_base.hpp \ - asio/detail/timer_queue.hpp \ - asio/detail/timer_queue_ptime.hpp \ - asio/detail/timer_queue_set.hpp \ - asio/detail/timer_scheduler_fwd.hpp \ - asio/detail/timer_scheduler.hpp \ - asio/detail/tss_ptr.hpp \ - asio/detail/type_traits.hpp \ - asio/detail/variadic_templates.hpp \ - asio/detail/wait_handler.hpp \ - asio/detail/wait_op.hpp \ - asio/detail/winapp_thread.hpp \ - asio/detail/wince_thread.hpp \ - asio/detail/win_event.hpp \ - asio/detail/win_fd_set_adapter.hpp \ - asio/detail/win_fenced_block.hpp \ - asio/detail/win_global.hpp \ - asio/detail/win_iocp_handle_read_op.hpp \ - asio/detail/win_iocp_handle_service.hpp \ - asio/detail/win_iocp_handle_write_op.hpp \ - asio/detail/win_iocp_io_context.hpp \ - asio/detail/win_iocp_null_buffers_op.hpp \ - asio/detail/win_iocp_operation.hpp \ - asio/detail/win_iocp_overlapped_op.hpp \ - asio/detail/win_iocp_overlapped_ptr.hpp \ - asio/detail/win_iocp_serial_port_service.hpp \ - asio/detail/win_iocp_socket_accept_op.hpp \ - asio/detail/win_iocp_socket_connect_op.hpp \ - asio/detail/win_iocp_socket_recvfrom_op.hpp \ - asio/detail/win_iocp_socket_recvmsg_op.hpp \ - asio/detail/win_iocp_socket_recv_op.hpp \ - asio/detail/win_iocp_socket_send_op.hpp \ - asio/detail/win_iocp_socket_service_base.hpp \ - asio/detail/win_iocp_socket_service.hpp \ - asio/detail/win_iocp_thread_info.hpp \ - asio/detail/win_iocp_wait_op.hpp \ - asio/detail/win_mutex.hpp \ - asio/detail/win_object_handle_service.hpp \ - asio/detail/winrt_async_manager.hpp \ - asio/detail/winrt_async_op.hpp \ - asio/detail/winrt_resolve_op.hpp \ - asio/detail/winrt_resolver_service.hpp \ - asio/detail/winrt_socket_connect_op.hpp \ - asio/detail/winrt_socket_recv_op.hpp \ - asio/detail/winrt_socket_send_op.hpp \ - asio/detail/winrt_ssocket_service_base.hpp \ - asio/detail/winrt_ssocket_service.hpp \ - asio/detail/winrt_timer_scheduler.hpp \ - asio/detail/winrt_utils.hpp \ - asio/detail/winsock_init.hpp \ - asio/detail/win_static_mutex.hpp \ - asio/detail/win_thread.hpp \ - asio/detail/win_tss_ptr.hpp \ - asio/detail/work_dispatcher.hpp \ - asio/detail/wrapped_handler.hpp \ - asio/dispatch.hpp \ - asio/error_code.hpp \ - asio/error.hpp \ - asio/execution_context.hpp \ - asio/executor.hpp \ - asio/executor_work_guard.hpp \ - asio/experimental/co_spawn.hpp \ - asio/experimental/detached.hpp \ - asio/experimental.hpp \ - asio/experimental/impl/co_spawn.hpp \ - asio/experimental/impl/detached.hpp \ - asio/experimental/impl/redirect_error.hpp \ - asio/experimental/redirect_error.hpp \ - asio/generic/basic_endpoint.hpp \ - asio/generic/datagram_protocol.hpp \ - asio/generic/detail/endpoint.hpp \ - asio/generic/detail/impl/endpoint.ipp \ - asio/generic/raw_protocol.hpp \ - asio/generic/seq_packet_protocol.hpp \ - asio/generic/stream_protocol.hpp \ - asio/handler_alloc_hook.hpp \ - asio/handler_continuation_hook.hpp \ - asio/handler_invoke_hook.hpp \ - asio/handler_type.hpp \ - asio/high_resolution_timer.hpp \ - asio.hpp \ - asio/impl/buffered_read_stream.hpp \ - asio/impl/buffered_write_stream.hpp \ - asio/impl/connect.hpp \ - asio/impl/defer.hpp \ - asio/impl/dispatch.hpp \ - asio/impl/error_code.ipp \ - asio/impl/error.ipp \ - asio/impl/execution_context.hpp \ - asio/impl/execution_context.ipp \ - asio/impl/executor.hpp \ - asio/impl/executor.ipp \ - asio/impl/handler_alloc_hook.ipp \ - asio/impl/io_context.hpp \ - asio/impl/io_context.ipp \ - asio/impl/post.hpp \ - asio/impl/read_at.hpp \ - asio/impl/read.hpp \ - asio/impl/read_until.hpp \ - 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 \ - asio/impl/system_executor.hpp \ - asio/impl/thread_pool.hpp \ - asio/impl/thread_pool.ipp \ - asio/impl/use_future.hpp \ - asio/impl/write_at.hpp \ - asio/impl/write.hpp \ - asio/io_context.hpp \ - asio/io_context_strand.hpp \ - asio/io_service.hpp \ - asio/io_service_strand.hpp \ - asio/ip/address.hpp \ - asio/ip/address_v4.hpp \ - asio/ip/address_v4_iterator.hpp \ - asio/ip/address_v4_range.hpp \ - asio/ip/address_v6.hpp \ - asio/ip/address_v6_iterator.hpp \ - asio/ip/address_v6_range.hpp \ - asio/ip/bad_address_cast.hpp \ - asio/ip/basic_endpoint.hpp \ - asio/ip/basic_resolver_entry.hpp \ - asio/ip/basic_resolver.hpp \ - asio/ip/basic_resolver_iterator.hpp \ - asio/ip/basic_resolver_query.hpp \ - asio/ip/basic_resolver_results.hpp \ - asio/ip/detail/endpoint.hpp \ - asio/ip/detail/impl/endpoint.ipp \ - asio/ip/detail/socket_option.hpp \ - asio/ip/host_name.hpp \ - asio/ip/icmp.hpp \ - asio/ip/impl/address.hpp \ - asio/ip/impl/address.ipp \ - asio/ip/impl/address_v4.hpp \ - asio/ip/impl/address_v4.ipp \ - asio/ip/impl/address_v6.hpp \ - asio/ip/impl/address_v6.ipp \ - asio/ip/impl/basic_endpoint.hpp \ - asio/ip/impl/host_name.ipp \ - asio/ip/impl/network_v4.hpp \ - asio/ip/impl/network_v4.ipp \ - asio/ip/impl/network_v6.hpp \ - asio/ip/impl/network_v6.ipp \ - asio/ip/multicast.hpp \ - asio/ip/network_v4.hpp \ - asio/ip/network_v6.hpp \ - asio/ip/resolver_base.hpp \ - asio/ip/resolver_query_base.hpp \ - asio/ip/resolver_service.hpp \ - asio/ip/tcp.hpp \ - asio/ip/udp.hpp \ - asio/ip/unicast.hpp \ - asio/ip/v6_only.hpp \ - asio/is_executor.hpp \ - asio/is_read_buffered.hpp \ - asio/is_write_buffered.hpp \ - asio/local/basic_endpoint.hpp \ - asio/local/connect_pair.hpp \ - asio/local/datagram_protocol.hpp \ - asio/local/detail/endpoint.hpp \ - asio/local/detail/impl/endpoint.ipp \ - asio/local/stream_protocol.hpp \ - asio/packaged_task.hpp \ - asio/placeholders.hpp \ - asio/posix/basic_descriptor.hpp \ - asio/posix/basic_stream_descriptor.hpp \ - asio/posix/descriptor_base.hpp \ - asio/posix/descriptor.hpp \ - asio/posix/stream_descriptor.hpp \ - asio/posix/stream_descriptor_service.hpp \ - asio/post.hpp \ - asio/raw_socket_service.hpp \ - asio/read_at.hpp \ - asio/read.hpp \ - asio/read_until.hpp \ - asio/seq_packet_socket_service.hpp \ - asio/serial_port_base.hpp \ - asio/serial_port.hpp \ - asio/serial_port_service.hpp \ - asio/signal_set.hpp \ - asio/signal_set_service.hpp \ - asio/socket_acceptor_service.hpp \ - asio/socket_base.hpp \ - asio/spawn.hpp \ - asio/ssl/context_base.hpp \ - asio/ssl/context.hpp \ - asio/ssl/detail/buffered_handshake_op.hpp \ - asio/ssl/detail/engine.hpp \ - asio/ssl/detail/handshake_op.hpp \ - asio/ssl/detail/impl/engine.ipp \ - asio/ssl/detail/impl/openssl_init.ipp \ - asio/ssl/detail/io.hpp \ - asio/ssl/detail/openssl_init.hpp \ - asio/ssl/detail/openssl_types.hpp \ - asio/ssl/detail/password_callback.hpp \ - asio/ssl/detail/read_op.hpp \ - asio/ssl/detail/shutdown_op.hpp \ - asio/ssl/detail/stream_core.hpp \ - asio/ssl/detail/verify_callback.hpp \ - asio/ssl/detail/write_op.hpp \ - asio/ssl/error.hpp \ - asio/ssl.hpp \ - asio/ssl/impl/context.hpp \ - asio/ssl/impl/context.ipp \ - asio/ssl/impl/error.ipp \ - asio/ssl/impl/rfc2818_verification.ipp \ - asio/ssl/impl/src.hpp \ - asio/ssl/rfc2818_verification.hpp \ - asio/ssl/stream_base.hpp \ - asio/ssl/stream.hpp \ - asio/ssl/verify_context.hpp \ - asio/ssl/verify_mode.hpp \ - asio/steady_timer.hpp \ - asio/strand.hpp \ - asio/streambuf.hpp \ - asio/stream_socket_service.hpp \ - asio/system_context.hpp \ - asio/system_error.hpp \ - asio/system_executor.hpp \ - asio/system_timer.hpp \ - asio/thread.hpp \ - asio/thread_pool.hpp \ - asio/time_traits.hpp \ - asio/ts/buffer.hpp \ - asio/ts/executor.hpp \ - asio/ts/internet.hpp \ - asio/ts/io_context.hpp \ - asio/ts/netfwd.hpp \ - asio/ts/net.hpp \ - asio/ts/socket.hpp \ - asio/ts/timer.hpp \ - asio/unyield.hpp \ - asio/use_future.hpp \ - asio/uses_executor.hpp \ - asio/version.hpp \ - asio/waitable_timer_service.hpp \ - asio/wait_traits.hpp \ - asio/windows/basic_handle.hpp \ - asio/windows/basic_object_handle.hpp \ - asio/windows/basic_random_access_handle.hpp \ - asio/windows/basic_stream_handle.hpp \ - asio/windows/object_handle.hpp \ - asio/windows/object_handle_service.hpp \ - asio/windows/overlapped_handle.hpp \ - asio/windows/overlapped_ptr.hpp \ - asio/windows/random_access_handle.hpp \ - asio/windows/random_access_handle_service.hpp \ - asio/windows/stream_handle.hpp \ - asio/windows/stream_handle_service.hpp \ - asio/write_at.hpp \ - asio/write.hpp \ - asio/yield.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign include/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -install-nobase_includeHEADERS: $(nobase_include_HEADERS) - @$(NORMAL_INSTALL) - @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ - if test -n "$$list"; then \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ - fi; \ - $(am__nobase_list) | while read dir files; do \ - xfiles=; for file in $$files; do \ - if test -f "$$file"; then xfiles="$$xfiles $$file"; \ - else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ - test -z "$$xfiles" || { \ - test "x$$dir" = x. || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(includedir)/$$dir'"; \ - $(MKDIR_P) "$(DESTDIR)$(includedir)/$$dir"; }; \ - echo " $(INSTALL_HEADER) $$xfiles '$(DESTDIR)$(includedir)/$$dir'"; \ - $(INSTALL_HEADER) $$xfiles "$(DESTDIR)$(includedir)/$$dir" || exit $$?; }; \ - done - -uninstall-nobase_includeHEADERS: - @$(NORMAL_UNINSTALL) - @list='$(nobase_include_HEADERS)'; test -n "$(includedir)" || list=; \ - $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ - dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(HEADERS) -installdirs: - for dir in "$(DESTDIR)$(includedir)"; do \ - test -z "$$dir" || $(MKDIR_P) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: install-nobase_includeHEADERS - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-nobase_includeHEADERS - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ - cscopelist-am ctags ctags-am distclean distclean-generic \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-nobase_includeHEADERS install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-nobase_includeHEADERS - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/include/asio.hpp b/Sources/Vendor/asio/include/asio.hpp deleted file mode 100644 index 3356df0..0000000 --- a/Sources/Vendor/asio/include/asio.hpp +++ /dev/null @@ -1,152 +0,0 @@ -// -// asio.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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_HPP -#define ASIO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/async_result.hpp" -#include "asio/basic_datagram_socket.hpp" -#include "asio/basic_deadline_timer.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/basic_raw_socket.hpp" -#include "asio/basic_seq_packet_socket.hpp" -#include "asio/basic_serial_port.hpp" -#include "asio/basic_signal_set.hpp" -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_socket_streambuf.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/basic_streambuf.hpp" -#include "asio/basic_waitable_timer.hpp" -#include "asio/bind_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/buffered_read_stream_fwd.hpp" -#include "asio/buffered_read_stream.hpp" -#include "asio/buffered_stream_fwd.hpp" -#include "asio/buffered_stream.hpp" -#include "asio/buffered_write_stream_fwd.hpp" -#include "asio/buffered_write_stream.hpp" -#include "asio/buffers_iterator.hpp" -#include "asio/completion_condition.hpp" -#include "asio/connect.hpp" -#include "asio/coroutine.hpp" -#include "asio/datagram_socket_service.hpp" -#include "asio/deadline_timer_service.hpp" -#include "asio/deadline_timer.hpp" -#include "asio/defer.hpp" -#include "asio/dispatch.hpp" -#include "asio/error.hpp" -#include "asio/error_code.hpp" -#include "asio/execution_context.hpp" -#include "asio/executor.hpp" -#include "asio/executor_work_guard.hpp" -#include "asio/generic/basic_endpoint.hpp" -#include "asio/generic/datagram_protocol.hpp" -#include "asio/generic/raw_protocol.hpp" -#include "asio/generic/seq_packet_protocol.hpp" -#include "asio/generic/stream_protocol.hpp" -#include "asio/handler_alloc_hook.hpp" -#include "asio/handler_continuation_hook.hpp" -#include "asio/handler_invoke_hook.hpp" -#include "asio/handler_type.hpp" -#include "asio/high_resolution_timer.hpp" -#include "asio/io_context.hpp" -#include "asio/io_context_strand.hpp" -#include "asio/io_service.hpp" -#include "asio/io_service_strand.hpp" -#include "asio/ip/address.hpp" -#include "asio/ip/address_v4.hpp" -#include "asio/ip/address_v4_iterator.hpp" -#include "asio/ip/address_v4_range.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/address_v6_iterator.hpp" -#include "asio/ip/address_v6_range.hpp" -#include "asio/ip/bad_address_cast.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_entry.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/host_name.hpp" -#include "asio/ip/icmp.hpp" -#include "asio/ip/multicast.hpp" -#include "asio/ip/resolver_base.hpp" -#include "asio/ip/resolver_query_base.hpp" -#include "asio/ip/resolver_service.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/ip/unicast.hpp" -#include "asio/ip/v6_only.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/stream_protocol.hpp" -#include "asio/packaged_task.hpp" -#include "asio/placeholders.hpp" -#include "asio/posix/basic_descriptor.hpp" -#include "asio/posix/basic_stream_descriptor.hpp" -#include "asio/posix/descriptor.hpp" -#include "asio/posix/descriptor_base.hpp" -#include "asio/posix/stream_descriptor.hpp" -#include "asio/posix/stream_descriptor_service.hpp" -#include "asio/post.hpp" -#include "asio/raw_socket_service.hpp" -#include "asio/read.hpp" -#include "asio/read_at.hpp" -#include "asio/read_until.hpp" -#include "asio/seq_packet_socket_service.hpp" -#include "asio/serial_port.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/serial_port_service.hpp" -#include "asio/signal_set.hpp" -#include "asio/signal_set_service.hpp" -#include "asio/socket_acceptor_service.hpp" -#include "asio/socket_base.hpp" -#include "asio/steady_timer.hpp" -#include "asio/strand.hpp" -#include "asio/stream_socket_service.hpp" -#include "asio/streambuf.hpp" -#include "asio/system_context.hpp" -#include "asio/system_error.hpp" -#include "asio/system_executor.hpp" -#include "asio/system_timer.hpp" -#include "asio/thread.hpp" -#include "asio/thread_pool.hpp" -#include "asio/time_traits.hpp" -#include "asio/use_future.hpp" -#include "asio/uses_executor.hpp" -#include "asio/version.hpp" -#include "asio/wait_traits.hpp" -#include "asio/waitable_timer_service.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/basic_object_handle.hpp" -#include "asio/windows/basic_random_access_handle.hpp" -#include "asio/windows/basic_stream_handle.hpp" -#include "asio/windows/object_handle.hpp" -#include "asio/windows/object_handle_service.hpp" -#include "asio/windows/overlapped_handle.hpp" -#include "asio/windows/overlapped_ptr.hpp" -#include "asio/windows/random_access_handle.hpp" -#include "asio/windows/random_access_handle_service.hpp" -#include "asio/windows/stream_handle.hpp" -#include "asio/windows/stream_handle_service.hpp" -#include "asio/write.hpp" -#include "asio/write_at.hpp" - -#endif // ASIO_HPP diff --git a/Sources/Vendor/asio/include/asio/associated_allocator.hpp b/Sources/Vendor/asio/include/asio/associated_allocator.hpp deleted file mode 100644 index 8b488bb..0000000 --- a/Sources/Vendor/asio/include/asio/associated_allocator.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// -// associated_allocator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_ALLOCATOR_HPP -#define ASIO_ASSOCIATED_ALLOCATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct associated_allocator_check -{ - typedef void type; -}; - -template -struct associated_allocator_impl -{ - typedef E type; - - static type get(const T&, const E& e) ASIO_NOEXCEPT - { - return e; - } -}; - -template -struct associated_allocator_impl::type> -{ - typedef typename T::allocator_type type; - - static type get(const T& t, const E&) ASIO_NOEXCEPT - { - return t.get_allocator(); - } -}; - -} // namespace detail - -/// Traits type used to obtain the allocator 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 - * Allocator shall be a type meeting the Allocator requirements. - * - * Specialisations shall meet the following requirements, where @c t is a const - * reference to an object of type @c T, and @c a is an object of type @c - * Allocator. - * - * @li Provide a nested typedef @c type that identifies a type meeting the - * Allocator requirements. - * - * @li Provide a noexcept static member function named @c get, callable as @c - * get(t) and with return type @c type. - * - * @li Provide a noexcept static member function named @c get, callable as @c - * get(t,a) and with return type @c type. - */ -template > -struct associated_allocator -{ - /// 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 a. - static type get(const T& t, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return detail::associated_allocator_impl::get(t, a); - } -}; - -/// Helper function to obtain an object's associated allocator. -/** - * @returns associated_allocator::get(t) - */ -template -inline typename associated_allocator::type -get_associated_allocator(const T& t) ASIO_NOEXCEPT -{ - return associated_allocator::get(t); -} - -/// Helper function to obtain an object's associated allocator. -/** - * @returns associated_allocator::get(t, a) - */ -template -inline typename associated_allocator::type -get_associated_allocator(const T& t, const Allocator& a) ASIO_NOEXCEPT -{ - return associated_allocator::get(t, a); -} - -#if defined(ASIO_HAS_ALIAS_TEMPLATES) - -template > -using associated_allocator_t - = typename associated_allocator::type; - -#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_ASSOCIATED_ALLOCATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/associated_executor.hpp b/Sources/Vendor/asio/include/asio/associated_executor.hpp deleted file mode 100644 index 4c5c207..0000000 --- a/Sources/Vendor/asio/include/asio/associated_executor.hpp +++ /dev/null @@ -1,149 +0,0 @@ -// -// associated_executor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXECUTOR_HPP -#define ASIO_ASSOCIATED_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/detail/type_traits.hpp" -#include "asio/is_executor.hpp" -#include "asio/system_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct associated_executor_check -{ - typedef void type; -}; - -template -struct associated_executor_impl -{ - typedef E type; - - static type get(const T&, const E& e) ASIO_NOEXCEPT - { - return e; - } -}; - -template -struct associated_executor_impl::type> -{ - typedef typename T::executor_type type; - - static type get(const T& t, const E&) ASIO_NOEXCEPT - { - return t.get_executor(); - } -}; - -} // namespace detail - -/// Traits type used to obtain the 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. - * - * @li Provide a noexcept static member function named @c get, callable as @c - * get(t,e) and with return type @c type. - */ -template -struct associated_executor -{ - /// If @c T has a nested type @c executor_type, T::executor_type. - /// Otherwise @c Executor. -#if defined(GENERATING_DOCUMENTATION) - typedef see_below type; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::associated_executor_impl::type type; -#endif // defined(GENERATING_DOCUMENTATION) - - /// 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 - { - return detail::associated_executor_impl::get(t, ex); - } -}; - -/// Helper function to obtain an object's associated executor. -/** - * @returns associated_executor::get(t) - */ -template -inline typename associated_executor::type -get_associated_executor(const T& t) ASIO_NOEXCEPT -{ - return associated_executor::get(t); -} - -/// Helper function to obtain an object's associated executor. -/** - * @returns associated_executor::get(t, ex) - */ -template -inline typename associated_executor::type -get_associated_executor(const T& t, const Executor& ex, - typename enable_if::value>::type* = 0) ASIO_NOEXCEPT -{ - return associated_executor::get(t, ex); -} - -/// Helper function to obtain an object's associated executor. -/** - * @returns associated_executor::get(t, ctx.get_executor()) - */ -template -inline typename associated_executor::type -get_associated_executor(const T& t, ExecutionContext& ctx, - typename enable_if::value>::type* = 0) ASIO_NOEXCEPT -{ - return associated_executor::get(t, ctx.get_executor()); -} - -#if defined(ASIO_HAS_ALIAS_TEMPLATES) - -template -using associated_executor_t = typename associated_executor::type; - -#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_ASSOCIATED_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/async_result.hpp b/Sources/Vendor/asio/include/asio/async_result.hpp deleted file mode 100644 index 18acdf2..0000000 --- a/Sources/Vendor/asio/include/asio/async_result.hpp +++ /dev/null @@ -1,221 +0,0 @@ -// -// async_result.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_ASYNC_RESULT_HPP -#define ASIO_ASYNC_RESULT_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/type_traits.hpp" -#include "asio/handler_type.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// An interface for customising the behaviour of an initiating function. -/** - * The async_result traits class is used for determining: - * - * @li the concrete completion handler type to be called at the end of the - * asynchronous operation; - * - * @li the initiating function return type; and - * - * @li how the return value of the initiating function is obtained. - * - * The trait allows the handler and return types to be determined at the point - * where the specific completion handler signature is known. - * - * This template may be specialised for user-defined completion token types. - * The primary template assumes that the CompletionToken is the completion - * handler. - */ -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -template -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -template -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -class async_result -{ -public: -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - /// The concrete completion handler type for the specific signature. - typedef CompletionToken completion_handler_type; - - /// The return type of the initiating function. - typedef void return_type; -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // For backward compatibility, determine the concrete completion handler type - // by using the legacy handler_type trait. - typedef typename handler_type::type - completion_handler_type; - - // For backward compatibility, determine the initiating function return type - // using the legacy single-parameter version of async_result. - typedef typename async_result::type return_type; -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - - /// Construct an async result from a given handler. - /** - * When using a specalised async_result, the constructor has an opportunity - * to initialise some state associated with the completion handler, which is - * then returned from the initiating function. - */ - explicit async_result(completion_handler_type& h) -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // No data members to initialise. -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - : legacy_result_(h) -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - { - (void)h; - } - - /// Obtain the value to be returned from the initiating function. - return_type get() - { -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // Nothing to do. -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - return legacy_result_.get(); -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - } - -private: - async_result(const async_result&) ASIO_DELETED; - async_result& operator=(const async_result&) ASIO_DELETED; - -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - // No data members. -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - async_result legacy_result_; -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -}; - -#if !defined(ASIO_NO_DEPRECATED) - -/// (Deprecated: Use two-parameter version of async_result.) An interface for -/// customising the behaviour of an initiating function. -/** - * This template may be specialised for user-defined handler types. - */ -template -class async_result -{ -public: - /// The return type of the initiating function. - typedef void type; - - /// Construct an async result from a given handler. - /** - * When using a specalised async_result, the constructor has an opportunity - * to initialise some state associated with the handler, which is then - * returned from the initiating function. - */ - explicit async_result(Handler&) - { - } - - /// Obtain the value to be returned from the initiating function. - type get() - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Helper template to deduce the handler type from a CompletionToken, capture -/// a local copy of the handler, and then create an async_result for the -/// handler. -template -struct async_completion -{ - /// The real handler type to be used for the asynchronous operation. - typedef typename asio::async_result< - typename decay::type, - Signature>::completion_handler_type completion_handler_type; - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Constructor. - /** - * The constructor creates the concrete completion handler and makes the link - * between the handler and the asynchronous result. - */ - explicit async_completion(CompletionToken& token) - : completion_handler(static_cast::value, - completion_handler_type&, CompletionToken&&>::type>(token)), - result(completion_handler) - { - } -#else // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - explicit async_completion(typename decay::type& token) - : completion_handler(token), - result(completion_handler) - { - } - - explicit async_completion(const typename decay::type& token) - : completion_handler(token), - result(completion_handler) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// A copy of, or reference to, a real handler object. -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - typename conditional< - is_same::value, - completion_handler_type&, completion_handler_type>::type completion_handler; -#else // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - completion_handler_type completion_handler; -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// The result of the asynchronous operation's initiating function. - async_result::type, Signature> result; -}; - -namespace detail { - -template -struct async_result_helper - : async_result::type, Signature> -{ -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(GENERATING_DOCUMENTATION) -# define ASIO_INITFN_RESULT_TYPE(ct, sig) \ - void_or_deduced -#elif defined(_MSC_VER) && (_MSC_VER < 1500) -# define ASIO_INITFN_RESULT_TYPE(ct, sig) \ - typename ::asio::detail::async_result_helper< \ - ct, sig>::return_type -#define ASIO_HANDLER_TYPE(ct, sig) \ - typename ::asio::detail::async_result_helper< \ - ct, sig>::completion_handler_type -#else -# define ASIO_INITFN_RESULT_TYPE(ct, sig) \ - typename ::asio::async_result< \ - typename ::asio::decay::type, sig>::return_type -#define ASIO_HANDLER_TYPE(ct, sig) \ - typename ::asio::async_result< \ - typename ::asio::decay::type, sig>::completion_handler_type -#endif - -#endif // ASIO_ASYNC_RESULT_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_datagram_socket.hpp b/Sources/Vendor/asio/include/asio/basic_datagram_socket.hpp deleted file mode 100644 index 346cc35..0000000 --- a/Sources/Vendor/asio/include/asio/basic_datagram_socket.hpp +++ /dev/null @@ -1,1040 +0,0 @@ -// -// basic_datagram_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_DATAGRAM_SOCKET_HPP -#define ASIO_BASIC_DATAGRAM_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/datagram_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides datagram-oriented socket functionality. -/** - * The basic_datagram_socket class template provides asynchronous and blocking - * datagram-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template )> -class basic_datagram_socket - : public basic_socket -{ -public: - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename basic_socket< - Protocol ASIO_SVC_TARG>::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_datagram_socket without opening it. - /** - * This constructor creates a datagram socket without opening it. The open() - * function must be called before data can be sent or received on the socket. - * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - */ - explicit basic_datagram_socket(asio::io_context& io_context) - : basic_socket(io_context) - { - } - - /// Construct and open a basic_datagram_socket. - /** - * This constructor creates and opens a datagram socket. - * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_datagram_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) - { - } - - /// Construct a basic_datagram_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a datagram socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param endpoint An endpoint on the local machine to which the datagram - * socket will be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_datagram_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) - { - } - - /// Construct a basic_datagram_socket on an existing native socket. - /** - * This constructor creates a datagram socket object to hold an existing - * native socket. - * - * @param io_context The io_context object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_datagram_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_datagram_socket from another. - /** - * This constructor moves a datagram socket from one object to another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. - */ - basic_datagram_socket(basic_datagram_socket&& other) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_datagram_socket from another. - /** - * This assignment operator moves a datagram socket from one object to - * another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. - */ - basic_datagram_socket& operator=(basic_datagram_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } - - /// Move-construct a basic_datagram_socket from a socket of another protocol - /// type. - /** - * This constructor moves a datagram socket from one object to another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. - */ - template - basic_datagram_socket( - basic_datagram_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_datagram_socket from a socket of another protocol - /// type. - /** - * This assignment operator moves a datagram socket from one object to - * another. - * - * @param other The other basic_datagram_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_datagram_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_datagram_socket>::type& operator=( - basic_datagram_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the socket. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_datagram_socket() - { - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code socket.send(asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to asynchronously send data on the datagram socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected datagram - * socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to asynchronously send data on the datagram socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected datagram - * socket. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * asio::ip::udp::endpoint destination( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.send_to(asio::buffer(data, size), destination); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination) - { - asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, 0, ec); - asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, flags, ec); - asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - asio::error_code& ec) - { - return this->get_service().send_to(this->get_implementation(), - buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send a datagram to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * asio::ip::udp::endpoint destination( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_send_to( - * asio::buffer(data, size), destination, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, 0, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to( - this->get_implementation(), buffers, destination, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send a datagram to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.receive(asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the datagram - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * datagram socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the datagram - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * datagram socket. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * asio::ip::udp::endpoint sender_endpoint; - * socket.receive_from( - * asio::buffer(data, size), sender_endpoint); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint) - { - asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, ec); - asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, ec); - asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - asio::error_code& ec) - { - return this->get_service().receive_from(this->get_implementation(), - buffers, sender_endpoint, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive a datagram. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.async_receive_from( - * asio::buffer(data, size), sender_endpoint, handler); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive a datagram. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_DATAGRAM_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_deadline_timer.hpp b/Sources/Vendor/asio/include/asio/basic_deadline_timer.hpp deleted file mode 100644 index 5b20066..0000000 --- a/Sources/Vendor/asio/include/asio/basic_deadline_timer.hpp +++ /dev/null @@ -1,628 +0,0 @@ -// -// basic_deadline_timer.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_DEADLINE_TIMER_HPP -#define ASIO_BASIC_DEADLINE_TIMER_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_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/time_traits.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/deadline_timer_service.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/detail/deadline_timer_service.hpp" -# define ASIO_SVC_T detail::deadline_timer_service -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides waitable timer functionality. -/** - * The basic_deadline_timer class template provides the ability to perform a - * blocking or asynchronous wait for a timer to expire. - * - * A deadline timer is always in one of two states: "expired" or "not expired". - * If the wait() or async_wait() function is called on an expired timer, the - * wait operation will complete immediately. - * - * Most applications will use the asio::deadline_timer typedef. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Examples - * Performing a blocking wait: - * @code - * // Construct a timer without setting an expiry time. - * asio::deadline_timer timer(io_context); - * - * // Set an expiry time relative to now. - * timer.expires_from_now(boost::posix_time::seconds(5)); - * - * // Wait for the timer to expire. - * timer.wait(); - * @endcode - * - * @par - * Performing an asynchronous wait: - * @code - * void handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Timer expired. - * } - * } - * - * ... - * - * // Construct a timer with an absolute expiry time. - * asio::deadline_timer timer(io_context, - * boost::posix_time::time_from_string("2005-12-07 23:59:59.000")); - * - * // Start an asynchronous wait. - * timer.async_wait(handler); - * @endcode - * - * @par Changing an active deadline_timer's expiry time - * - * Changing the expiry time of a timer while there are pending asynchronous - * waits causes those wait operations to be cancelled. To ensure that the action - * associated with the timer is performed only once, use something like this: - * used: - * - * @code - * void on_some_event() - * { - * if (my_timer.expires_from_now(seconds(5)) > 0) - * { - * // We managed to cancel the timer. Start new asynchronous wait. - * my_timer.async_wait(on_timeout); - * } - * else - * { - * // Too late, timer has already expired! - * } - * } - * - * void on_timeout(const asio::error_code& e) - * { - * if (e != asio::error::operation_aborted) - * { - * // Timer was not cancelled, take necessary action. - * } - * } - * @endcode - * - * @li The asio::basic_deadline_timer::expires_from_now() function - * cancels any pending asynchronous waits, and returns the number of - * asynchronous waits that were cancelled. If it returns 0 then you were too - * late and the wait handler has already been executed, or will soon be - * executed. If it returns 1 then the wait handler was successfully cancelled. - * - * @li If a wait handler is cancelled, the asio::error_code passed to - * it contains the value asio::error::operation_aborted. - */ -template - ASIO_SVC_TPARAM_DEF2(= deadline_timer_service)> -class basic_deadline_timer - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The time traits type. - typedef TimeTraits traits_type; - - /// The time type. - typedef typename traits_type::time_type time_type; - - /// The duration type. - typedef typename traits_type::duration_type duration_type; - - /// Constructor. - /** - * This constructor creates a timer without setting an expiry time. The - * expires_at() or expires_from_now() functions must be called to set an - * expiry time before the timer can be waited on. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - */ - explicit basic_deadline_timer(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Constructor to set a particular expiry time as an absolute time. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, expressed - * as an absolute time. - */ - basic_deadline_timer(asio::io_context& io_context, - const time_type& expiry_time) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().expires_at(this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_at"); - } - - /// Constructor to set a particular expiry time relative to now. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, relative to - * now. - */ - basic_deadline_timer(asio::io_context& io_context, - const duration_type& expiry_time) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_from_now"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_deadline_timer from another. - /** - * This constructor moves a timer from one object to another. - * - * @param other The other basic_deadline_timer object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_deadline_timer(io_context&) constructor. - */ - basic_deadline_timer(basic_deadline_timer&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_deadline_timer from another. - /** - * This assignment operator moves a timer from one object to another. Cancels - * any outstanding asynchronous operations associated with the target object. - * - * @param other The other basic_deadline_timer object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_deadline_timer(io_context&) constructor. - */ - basic_deadline_timer& operator=(basic_deadline_timer&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the timer. - /** - * This function destroys the timer, cancelling any outstanding asynchronous - * wait operations associated with the timer as if by calling @c cancel. - */ - ~basic_deadline_timer() - { - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel() - { - asio::error_code ec; - std::size_t s = this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - return s; - } - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel(asio::error_code& ec) - { - return this->get_service().cancel(this->get_implementation(), ec); - } - - /// Cancels one asynchronous operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one() - { - asio::error_code ec; - std::size_t s = this->get_service().cancel_one( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel_one"); - return s; - } - - /// Cancels one asynchronous operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one(asio::error_code& ec) - { - return this->get_service().cancel_one(this->get_implementation(), ec); - } - - /// Get the timer's expiry time as an absolute time. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - time_type expires_at() const - { - return this->get_service().expires_at(this->get_implementation()); - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_type& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_at( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_at"); - return s; - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_type& expiry_time, - asio::error_code& ec) - { - return this->get_service().expires_at( - this->get_implementation(), expiry_time, ec); - } - - /// Get the timer's expiry time relative to now. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - duration_type expires_from_now() const - { - return this->get_service().expires_from_now(this->get_implementation()); - } - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration_type& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_from_now"); - return s; - } - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration_type& expiry_time, - asio::error_code& ec) - { - return this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @throws asio::system_error Thrown on failure. - */ - void wait() - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), ec); - } - - /// Start an asynchronous wait on the timer. - /** - * This function may be used to initiate an asynchronous wait against the - * timer. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li The timer has expired. - * - * @li The timer was cancelled, in which case the handler is passed the error - * code asio::error::operation_aborted. - * - * @param handler The handler to be called when the timer expires. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_wait(this->get_implementation(), - ASIO_MOVE_CAST(WaitHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_BASIC_DEADLINE_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_io_object.hpp b/Sources/Vendor/asio/include/asio/basic_io_object.hpp deleted file mode 100644 index 442e854..0000000 --- a/Sources/Vendor/asio/include/asio/basic_io_object.hpp +++ /dev/null @@ -1,290 +0,0 @@ -// -// basic_io_object.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_IO_OBJECT_HPP -#define ASIO_BASIC_IO_OBJECT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_HAS_MOVE) -namespace detail -{ - // Type trait used to determine whether a service supports move. - template - class service_has_move - { - private: - typedef IoObjectService service_type; - typedef typename service_type::implementation_type implementation_type; - - template - static auto asio_service_has_move_eval(T* t, U* u) - -> decltype(t->move_construct(*u, *u), char()); - static char (&asio_service_has_move_eval(...))[2]; - - public: - static const bool value = - sizeof(asio_service_has_move_eval( - static_cast(0), - static_cast(0))) == 1; - }; -} -#endif // defined(ASIO_HAS_MOVE) - -/// Base class for all I/O objects. -/** - * @note All I/O objects are non-copyable. However, when using C++0x, certain - * I/O objects do support move construction and move assignment. - */ -#if !defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) -template -#else -template ::value> -#endif -class basic_io_object -{ -public: - /// The type of the service that will be used to provide I/O operations. - typedef IoObjectService service_type; - - /// The underlying implementation type of I/O object. - typedef typename service_type::implementation_type implementation_type; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return service_.get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return service_.get_io_context(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// The type of the executor associated with the object. - typedef asio::io_context::executor_type executor_type; - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return service_.get_io_context().get_executor(); - } - -protected: - /// Construct a basic_io_object. - /** - * Performs: - * @code get_service().construct(get_implementation()); @endcode - */ - explicit basic_io_object(asio::io_context& io_context) - : service_(asio::use_service(io_context)) - { - service_.construct(implementation_); - } - -#if defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_io_object. - /** - * Performs: - * @code get_service().move_construct( - * get_implementation(), other.get_implementation()); @endcode - * - * @note Available only for services that support movability, - */ - basic_io_object(basic_io_object&& other); - - /// Move-assign a basic_io_object. - /** - * Performs: - * @code get_service().move_assign(get_implementation(), - * other.get_service(), other.get_implementation()); @endcode - * - * @note Available only for services that support movability, - */ - basic_io_object& operator=(basic_io_object&& other); - - /// Perform a converting move-construction of a basic_io_object. - template - basic_io_object(IoObjectService1& other_service, - typename IoObjectService1::implementation_type& other_implementation); -#endif // defined(GENERATING_DOCUMENTATION) - - /// Protected destructor to prevent deletion through this type. - /** - * Performs: - * @code get_service().destroy(get_implementation()); @endcode - */ - ~basic_io_object() - { - service_.destroy(implementation_); - } - - /// Get the service associated with the I/O object. - service_type& get_service() - { - return service_; - } - - /// Get the service associated with the I/O object. - const service_type& get_service() const - { - return service_; - } - - /// Get the underlying implementation of the I/O object. - implementation_type& get_implementation() - { - return implementation_; - } - - /// Get the underlying implementation of the I/O object. - const implementation_type& get_implementation() const - { - return implementation_; - } - -private: - basic_io_object(const basic_io_object&); - basic_io_object& operator=(const basic_io_object&); - - // The service associated with the I/O object. - service_type& service_; - - /// The underlying implementation of the I/O object. - implementation_type implementation_; -}; - -#if defined(ASIO_HAS_MOVE) -// Specialisation for movable objects. -template -class basic_io_object -{ -public: - typedef IoObjectService service_type; - typedef typename service_type::implementation_type implementation_type; - -#if !defined(ASIO_NO_DEPRECATED) - asio::io_context& get_io_context() - { - return service_->get_io_context(); - } - - asio::io_context& get_io_service() - { - return service_->get_io_context(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - typedef asio::io_context::executor_type executor_type; - - executor_type get_executor() ASIO_NOEXCEPT - { - return service_->get_io_context().get_executor(); - } - -protected: - explicit basic_io_object(asio::io_context& io_context) - : service_(&asio::use_service(io_context)) - { - service_->construct(implementation_); - } - - basic_io_object(basic_io_object&& other) - : service_(&other.get_service()) - { - service_->move_construct(implementation_, other.implementation_); - } - - template - basic_io_object(IoObjectService1& other_service, - typename IoObjectService1::implementation_type& other_implementation) - : service_(&asio::use_service( - other_service.get_io_context())) - { - service_->converting_move_construct(implementation_, - other_service, other_implementation); - } - - ~basic_io_object() - { - service_->destroy(implementation_); - } - - basic_io_object& operator=(basic_io_object&& other) - { - service_->move_assign(implementation_, - *other.service_, other.implementation_); - service_ = other.service_; - return *this; - } - - service_type& get_service() - { - return *service_; - } - - const service_type& get_service() const - { - return *service_; - } - - implementation_type& get_implementation() - { - return implementation_; - } - - const implementation_type& get_implementation() const - { - return implementation_; - } - -private: - basic_io_object(const basic_io_object&); - void operator=(const basic_io_object&); - - IoObjectService* service_; - implementation_type implementation_; -}; -#endif // defined(ASIO_HAS_MOVE) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_IO_OBJECT_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_raw_socket.hpp b/Sources/Vendor/asio/include/asio/basic_raw_socket.hpp deleted file mode 100644 index 0de7c77..0000000 --- a/Sources/Vendor/asio/include/asio/basic_raw_socket.hpp +++ /dev/null @@ -1,1030 +0,0 @@ -// -// basic_raw_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_RAW_SOCKET_HPP -#define ASIO_BASIC_RAW_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/raw_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides raw-oriented socket functionality. -/** - * The basic_raw_socket class template provides asynchronous and blocking - * raw-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template )> -class basic_raw_socket - : public basic_socket -{ -public: - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename basic_socket< - Protocol ASIO_SVC_TARG>::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_raw_socket without opening it. - /** - * This constructor creates a raw socket without opening it. The open() - * function must be called before data can be sent or received on the socket. - * - * @param io_context The io_context object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - */ - explicit basic_raw_socket(asio::io_context& io_context) - : basic_socket(io_context) - { - } - - /// Construct and open a basic_raw_socket. - /** - * This constructor creates and opens a raw socket. - * - * @param io_context The io_context object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_raw_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) - { - } - - /// Construct a basic_raw_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a raw socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_context The io_context object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param endpoint An endpoint on the local machine to which the raw - * socket will be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_raw_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) - { - } - - /// Construct a basic_raw_socket on an existing native socket. - /** - * This constructor creates a raw socket object to hold an existing - * native socket. - * - * @param io_context The io_context object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_raw_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_raw_socket from another. - /** - * This constructor moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_context&) constructor. - */ - basic_raw_socket(basic_raw_socket&& other) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_raw_socket from another. - /** - * This assignment operator moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_context&) constructor. - */ - basic_raw_socket& operator=(basic_raw_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } - - /// Move-construct a basic_raw_socket from a socket of another protocol type. - /** - * This constructor moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_context&) constructor. - */ - template - basic_raw_socket(basic_raw_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_raw_socket from a socket of another protocol type. - /** - * This assignment operator moves a raw socket from one object to another. - * - * @param other The other basic_raw_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_raw_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_raw_socket>::type& operator=( - basic_raw_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the socket. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_raw_socket() - { - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code socket.send(asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected raw - * socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected raw - * socket. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * asio::ip::udp::endpoint destination( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.send_to(asio::buffer(data, size), destination); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination) - { - asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, 0, ec); - asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send_to( - this->get_implementation(), buffers, destination, flags, ec); - asio::detail::throw_error(ec, "send_to"); - return s; - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - asio::error_code& ec) - { - return this->get_service().send_to(this->get_implementation(), - buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send raw data to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * asio::ip::udp::endpoint destination( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_send_to( - * asio::buffer(data, size), destination, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to(this->get_implementation(), - buffers, destination, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to(this->get_implementation(), - buffers, destination, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send raw data to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send_to( - this->get_implementation(), buffers, destination, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.receive(asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the raw - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * raw socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the raw - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * raw socket. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * asio::ip::udp::endpoint sender_endpoint; - * socket.receive_from( - * asio::buffer(data, size), sender_endpoint); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint) - { - asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, ec); - asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, ec); - asio::detail::throw_error(ec, "receive_from"); - return s; - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - asio::error_code& ec) - { - return this->get_service().receive_from(this->get_implementation(), - buffers, sender_endpoint, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive raw data. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.async_receive_from( - * asio::buffer(data, size), 0, sender_endpoint, handler); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive raw data. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_from( - this->get_implementation(), buffers, sender_endpoint, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_RAW_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_seq_packet_socket.hpp b/Sources/Vendor/asio/include/asio/basic_seq_packet_socket.hpp deleted file mode 100644 index 3655d88..0000000 --- a/Sources/Vendor/asio/include/asio/basic_seq_packet_socket.hpp +++ /dev/null @@ -1,618 +0,0 @@ -// -// basic_seq_packet_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_SEQ_PACKET_SOCKET_HPP -#define ASIO_BASIC_SEQ_PACKET_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/seq_packet_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides sequenced packet socket functionality. -/** - * The basic_seq_packet_socket class template provides asynchronous and blocking - * sequenced packet socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template )> -class basic_seq_packet_socket - : public basic_socket -{ -public: - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename basic_socket< - Protocol ASIO_SVC_TARG>::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_seq_packet_socket without opening it. - /** - * This constructor creates a sequenced packet socket without opening it. The - * socket needs to be opened and then connected or accepted before data can - * be sent or received on it. - * - * @param io_context The io_context object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - */ - explicit basic_seq_packet_socket(asio::io_context& io_context) - : basic_socket(io_context) - { - } - - /// Construct and open a basic_seq_packet_socket. - /** - * This constructor creates and opens a sequenced_packet socket. The socket - * needs to be connected or accepted before data can be sent or received on - * it. - * - * @param io_context The io_context object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) - { - } - - /// Construct a basic_seq_packet_socket, opening it and binding it to the - /// given local endpoint. - /** - * This constructor creates a sequenced packet socket and automatically opens - * it bound to the specified endpoint on the local machine. The protocol used - * is the protocol associated with the given endpoint. - * - * @param io_context The io_context object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param endpoint An endpoint on the local machine to which the sequenced - * packet socket will be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) - { - } - - /// Construct a basic_seq_packet_socket on an existing native socket. - /** - * This constructor creates a sequenced packet socket object to hold an - * existing native socket. - * - * @param io_context The io_context object that the sequenced packet socket - * will use to dispatch handlers for any asynchronous operations performed on - * the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_seq_packet_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_seq_packet_socket from another. - /** - * This constructor moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_context&) constructor. - */ - basic_seq_packet_socket(basic_seq_packet_socket&& other) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_seq_packet_socket from another. - /** - * This assignment operator moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_context&) constructor. - */ - basic_seq_packet_socket& operator=(basic_seq_packet_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } - - /// Move-construct a basic_seq_packet_socket from a socket of another protocol - /// type. - /** - * This constructor moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_context&) constructor. - */ - template - basic_seq_packet_socket( - basic_seq_packet_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_seq_packet_socket from a socket of another protocol - /// type. - /** - * This assignment operator moves a sequenced packet socket from one object to - * another. - * - * @param other The other basic_seq_packet_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_seq_packet_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_seq_packet_socket>::type& operator=( - basic_seq_packet_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the socket. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_seq_packet_socket() - { - } - - /// Send some data on the socket. - /** - * This function is used to send data on the sequenced packet socket. The - * function call will block until the data has been sent successfully, or an - * until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the sequenced packet socket. The - * function call will block the data has been sent successfully, or an until - * error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. Returns 0 if an error occurred. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the sequenced packet - * socket. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(asio::buffer(data, size), out_flags); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags& out_flags) - { - asio::error_code ec; -#if defined(ASIO_ENABLE_OLD_SERVICES) - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, out_flags, ec); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - std::size_t s = this->get_service().receive_with_flags( - this->get_implementation(), buffers, 0, out_flags, ec); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(asio::buffer(data, size), 0, out_flags); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags) - { - asio::error_code ec; -#if defined(ASIO_ENABLE_OLD_SERVICES) - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, in_flags, out_flags, ec); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - std::size_t s = this->get_service().receive_with_flags( - this->get_implementation(), buffers, in_flags, out_flags, ec); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the sequenced packet socket. The - * function call will block until data has been received successfully, or - * until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags After the receive call completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. Returns 0 if an error occurred. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().receive(this->get_implementation(), - buffers, in_flags, out_flags, ec); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().receive_with_flags(this->get_implementation(), - buffers, in_flags, out_flags, ec); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the sequenced - * packet socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param out_flags Once the asynchronous operation completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. The caller must guarantee that the referenced - * variable remains valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), out_flags, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags& out_flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive( - this->get_implementation(), buffers, 0, out_flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_with_flags( - this->get_implementation(), buffers, 0, out_flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the sequenced - * data socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param in_flags Flags specifying how the receive call is to be made. - * - * @param out_flags Once the asynchronous operation completes, contains flags - * associated with the received data. For example, if the - * socket_base::message_end_of_record bit is set then the received data marks - * the end of a record. The caller must guarantee that the referenced - * variable remains valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive( - * asio::buffer(data, size), - * 0, out_flags, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive( - this->get_implementation(), buffers, in_flags, out_flags, - ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive_with_flags( - this->get_implementation(), buffers, in_flags, out_flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_SEQ_PACKET_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_serial_port.hpp b/Sources/Vendor/asio/include/asio/basic_serial_port.hpp deleted file mode 100644 index 32262f8..0000000 --- a/Sources/Vendor/asio/include/asio/basic_serial_port.hpp +++ /dev/null @@ -1,688 +0,0 @@ -// -// basic_serial_port.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_BASIC_SERIAL_PORT_HPP -#define ASIO_BASIC_SERIAL_PORT_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/serial_port_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides serial port functionality. -/** - * The basic_serial_port class template provides functionality that is common - * to all serial ports. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_serial_port - : public basic_io_object, - public serial_port_base -{ -public: - /// The native representation of a serial port. - typedef typename SerialPortService::native_handle_type native_handle_type; - - /// A basic_serial_port is always the lowest layer. - typedef basic_serial_port lowest_layer_type; - - /// Construct a basic_serial_port without opening it. - /** - * This constructor creates a serial port without opening it. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - */ - explicit basic_serial_port(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct and open a basic_serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit basic_serial_port(asio::io_context& io_context, - const char* device) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct and open a basic_serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit basic_serial_port(asio::io_context& io_context, - const std::string& device) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct a basic_serial_port on an existing native serial port. - /** - * This constructor creates a serial port object to hold an existing native - * serial port. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param native_serial_port A native serial port. - * - * @throws asio::system_error Thrown on failure. - */ - basic_serial_port(asio::io_context& io_context, - const native_handle_type& native_serial_port) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_serial_port from another. - /** - * This constructor moves a serial port from one object to another. - * - * @param other The other basic_serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_serial_port(io_context&) constructor. - */ - basic_serial_port(basic_serial_port&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_serial_port)(other)) - { - } - - /// Move-assign a basic_serial_port from another. - /** - * This assignment operator moves a serial port from one object to another. - * - * @param other The other basic_serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_serial_port(io_context&) constructor. - */ - basic_serial_port& operator=(basic_serial_port&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_serial_port)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_serial_port cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_serial_port cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port for the specified device name. - * - * @param device The platform-specific device name. - * - * @throws asio::system_error Thrown on failure. - */ - void open(const std::string& device) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port using the given platform-specific - * device name. - * - * @param device The platform-specific device name. - * - * @param ec Set the indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID open(const std::string& device, - asio::error_code& ec) - { - this->get_service().open(this->get_implementation(), device, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_serial_port) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& native_serial_port, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the serial port is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native serial port representation. - /** - * This function may be used to obtain the underlying representation of the - * serial port. This is intended to allow access to native serial port - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @throws asio::system_error Thrown on failure. - */ - void send_break() - { - asio::error_code ec; - this->get_service().send_break(this->get_implementation(), ec); - asio::detail::throw_error(ec, "send_break"); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID send_break(asio::error_code& ec) - { - this->get_service().send_break(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @throws asio::system_error Thrown on failure. - * - * @sa SettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - void set_option(const SettableSerialPortOption& option) - { - asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - ASIO_SYNC_OP_VOID set_option(const SettableSerialPortOption& option, - asio::error_code& ec) - { - this->get_service().set_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @throws asio::system_error Thrown on failure. - * - * @sa GettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - void get_option(GettableSerialPortOption& option) - { - asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - ASIO_SYNC_OP_VOID get_option(GettableSerialPortOption& option, - asio::error_code& ec) - { - this->get_service().get_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the serial port. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the serial port. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the serial port. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_SERIAL_PORT_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_signal_set.hpp b/Sources/Vendor/asio/include/asio/basic_signal_set.hpp deleted file mode 100644 index cf34643..0000000 --- a/Sources/Vendor/asio/include/asio/basic_signal_set.hpp +++ /dev/null @@ -1,391 +0,0 @@ -// -// basic_signal_set.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_SIGNAL_SET_HPP -#define ASIO_BASIC_SIGNAL_SET_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_ENABLE_OLD_SERVICES) - -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/signal_set_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides signal functionality. -/** - * The basic_signal_set class template provides the ability to perform an - * asynchronous wait for one or more signals to occur. - * - * Most applications will use the asio::signal_set typedef. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Performing an asynchronous wait: - * @code - * void handler( - * const asio::error_code& error, - * int signal_number) - * { - * if (!error) - * { - * // A signal occurred. - * } - * } - * - * ... - * - * // Construct a signal set registered for process termination. - * asio::signal_set signals(io_context, SIGINT, SIGTERM); - * - * // Start an asynchronous wait for one of the signals to occur. - * signals.async_wait(handler); - * @endcode - * - * @par Queueing of signal notifications - * - * If a signal is registered with a signal_set, and the signal occurs when - * there are no waiting handlers, then the signal notification is queued. The - * next async_wait operation on that signal_set will dequeue the notification. - * If multiple notifications are queued, subsequent async_wait operations - * dequeue them one at a time. Signal notifications are dequeued in order of - * ascending signal number. - * - * If a signal number is removed from a signal_set (using the @c remove or @c - * erase member functions) then any queued notifications for that signal are - * discarded. - * - * @par Multiple registration of signals - * - * The same signal number may be registered with different signal_set objects. - * When the signal occurs, one handler is called for each signal_set object. - * - * Note that multiple registration only works for signals that are registered - * using Asio. The application must not also register a signal handler using - * functions such as @c signal() or @c sigaction(). - * - * @par Signal masking on POSIX platforms - * - * POSIX allows signals to be blocked using functions such as @c sigprocmask() - * and @c pthread_sigmask(). For signals to be delivered, programs must ensure - * that any signals registered using signal_set objects are unblocked in at - * least one thread. - */ -template -class basic_signal_set - : public basic_io_object -{ -public: - /// Construct a signal set without adding any signals. - /** - * This constructor creates a signal set without registering for any signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - */ - explicit basic_signal_set(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a signal set and add one signal. - /** - * This constructor creates a signal set and registers for one signal. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); @endcode - */ - basic_signal_set(asio::io_context& io_context, int signal_number_1) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add two signals. - /** - * This constructor creates a signal set and registers for two signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); - * signals.add(signal_number_2); @endcode - */ - basic_signal_set(asio::io_context& io_context, int signal_number_1, - int signal_number_2) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_2, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add three signals. - /** - * This constructor creates a signal set and registers for three signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @param signal_number_3 The third signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); - * signals.add(signal_number_2); - * signals.add(signal_number_3); @endcode - */ - basic_signal_set(asio::io_context& io_context, int signal_number_1, - int signal_number_2, int signal_number_3) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_2, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_3, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @throws asio::system_error Thrown on failure. - */ - void add(int signal_number) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID add(int signal_number, asio::error_code& ec) - { - this->get_service().add(this->get_implementation(), signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @throws asio::system_error Thrown on failure. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - void remove(int signal_number) - { - asio::error_code ec; - this->get_service().remove(this->get_implementation(), signal_number, ec); - asio::detail::throw_error(ec, "remove"); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - ASIO_SYNC_OP_VOID remove(int signal_number, - asio::error_code& ec) - { - this->get_service().remove(this->get_implementation(), signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @throws asio::system_error Thrown on failure. - * - * @note Removes all queued notifications. - */ - void clear() - { - asio::error_code ec; - this->get_service().clear(this->get_implementation(), ec); - asio::detail::throw_error(ec, "clear"); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes all queued notifications. - */ - ASIO_SYNC_OP_VOID clear(asio::error_code& ec) - { - this->get_service().clear(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @throws asio::system_error Thrown on failure. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous operation to wait for a signal to be delivered. - /** - * This function may be used to initiate an asynchronous wait against the - * signal set. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li One of the registered signals in the signal set occurs; or - * - * @li The signal set was cancelled, in which case the handler is passed the - * error code asio::error::operation_aborted. - * - * @param handler The handler to be called when the signal occurs. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * int signal_number // Indicates which signal occurred. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(SignalHandler, - void (asio::error_code, int)) - async_wait(ASIO_MOVE_ARG(SignalHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a SignalHandler. - ASIO_SIGNAL_HANDLER_CHECK(SignalHandler, handler) type_check; - - return this->get_service().async_wait(this->get_implementation(), - ASIO_MOVE_CAST(SignalHandler)(handler)); - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_SIGNAL_SET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_socket.hpp b/Sources/Vendor/asio/include/asio/basic_socket.hpp deleted file mode 100644 index 3dfacb4..0000000 --- a/Sources/Vendor/asio/include/asio/basic_socket.hpp +++ /dev/null @@ -1,1757 +0,0 @@ -// -// basic_socket.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_SOCKET_HPP -#define ASIO_BASIC_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/post.hpp" -#include "asio/socket_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_ssocket_service.hpp" -# define ASIO_SVC_T detail::winrt_ssocket_service -# elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -# define ASIO_SVC_T detail::win_iocp_socket_service -# else -# include "asio/detail/reactive_socket_service.hpp" -# define ASIO_SVC_T detail::reactive_socket_service -# endif -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides socket functionality. -/** - * The basic_socket class template provides functionality that is common to both - * stream-oriented and datagram-oriented sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_socket - : ASIO_SVC_ACCESS basic_io_object, - public socket_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -#if !defined(ASIO_NO_EXTENSIONS) - /// A basic_socket is always the lowest layer. - typedef basic_socket lowest_layer_type; -#endif // !defined(ASIO_NO_EXTENSIONS) - - /// Construct a basic_socket without opening it. - /** - * This constructor creates a socket without opening it. - * - * @param io_context The io_context object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - */ - explicit basic_socket(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct and open a basic_socket. - /** - * This constructor creates and opens a socket. - * - * @param io_context The io_context object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct a basic_socket, opening it and binding it to the given local - /// endpoint. - /** - * This constructor creates a socket and automatically opens it bound to the - * specified endpoint on the local machine. The protocol used is the protocol - * associated with the given endpoint. - * - * @param io_context The io_context object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_io_object(io_context) - { - asio::error_code ec; - const protocol_type protocol = endpoint.protocol(); - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - this->get_service().bind(this->get_implementation(), endpoint, ec); - asio::detail::throw_error(ec, "bind"); - } - - /// Construct a basic_socket on an existing native socket. - /** - * This constructor creates a socket object to hold an existing native socket. - * - * @param io_context The io_context object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket A native socket. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_socket from another. - /** - * This constructor moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - basic_socket(basic_socket&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_socket from another. - /** - * This assignment operator moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - basic_socket& operator=(basic_socket&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } - - // All sockets have access to each other's implementations. - template - friend class basic_socket; - - /// Move-construct a basic_socket from a socket of another protocol type. - /** - * This constructor moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - template - basic_socket(basic_socket&& other, - typename enable_if::value>::type* = 0) - : basic_io_object( - other.get_service(), other.get_implementation()) - { - } - - /// Move-assign a basic_socket from a socket of another protocol type. - /** - * This assignment operator moves a socket from one object to another. - * - * @param other The other basic_socket object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_socket>::type& operator=( - basic_socket&& other) - { - basic_socket tmp(std::move(other)); - basic_io_object::operator=(std::move(tmp)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#if !defined(ASIO_NO_EXTENSIONS) - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_socket cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_socket cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } -#endif // !defined(ASIO_NO_EXTENSIONS) - - /// Open the socket using the specified protocol. - /** - * This function opens the socket so that it will use the specified protocol. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * socket.open(asio::ip::tcp::v4()); - * @endcode - */ - void open(const protocol_type& protocol = protocol_type()) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Open the socket using the specified protocol. - /** - * This function opens the socket so that it will use the specified protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * asio::error_code ec; - * socket.open(asio::ip::tcp::v4(), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID open(const protocol_type& protocol, - asio::error_code& ec) - { - this->get_service().open(this->get_implementation(), protocol, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to the socket. - /* - * This function opens the socket to hold an existing native socket. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_socket A native socket. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const protocol_type& protocol, - const native_handle_type& native_socket) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native socket to the socket. - /* - * This function opens the socket to hold an existing native socket. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_socket A native socket. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const protocol_type& protocol, - const native_handle_type& native_socket, asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), - protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the socket. - /** - * This function is used to close the socket. Any asynchronous send, receive - * or connect operations will be cancelled immediately, and will complete - * with the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - * - * @note For portable behaviour with respect to graceful closure of a - * connected socket, call shutdown() before closing the socket. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the socket. - /** - * This function is used to close the socket. Any asynchronous send, receive - * or connect operations will be cancelled immediately, and will complete - * with the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * socket.close(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - * - * @note For portable behaviour with respect to graceful closure of a - * connected socket, call shutdown() before closing the socket. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying native socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. Ownership - * of the native socket is then transferred to the caller. - * - * @throws asio::system_error Thrown on failure. - * - * @note This function is unsupported on Windows versions prior to Windows - * 8.1, and will fail with asio::error::operation_not_supported on - * these platforms. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603) - __declspec(deprecated("This function always fails with " - "operation_not_supported when used on Windows versions " - "prior to Windows 8.1.")) -#endif - native_handle_type release() - { - asio::error_code ec; - native_handle_type s = this->get_service().release( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "release"); - return s; - } - - /// Release ownership of the underlying native socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. Ownership - * of the native socket is then transferred to the caller. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note This function is unsupported on Windows versions prior to Windows - * 8.1, and will fail with asio::error::operation_not_supported on - * these platforms. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603) - __declspec(deprecated("This function always fails with " - "operation_not_supported when used on Windows versions " - "prior to Windows 8.1.")) -#endif - native_handle_type release(asio::error_code& ec) - { - return this->get_service().release(this->get_implementation(), ec); - } - - /// Get the native socket representation. - /** - * This function may be used to obtain the underlying representation of the - * socket. This is intended to allow access to native socket functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls to cancel() will always fail with - * asio::error::operation_not_supported when run on Windows XP, Windows - * Server 2003, and earlier versions of Windows, unless - * ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has - * two issues that should be considered before enabling its use: - * - * @li It will only cancel asynchronous operations that were initiated in the - * current thread. - * - * @li It can appear to complete without error, but the request to cancel the - * unfinished operations may be silently ignored by the operating system. - * Whether it works or not seems to depend on the drivers that are installed. - * - * For portable cancellation, consider using one of the following - * alternatives: - * - * @li Disable asio's I/O completion port backend by defining - * ASIO_DISABLE_IOCP. - * - * @li Use the close() function to simultaneously cancel the outstanding - * operations and close the socket. - * - * When running on Windows Vista, Windows Server 2008, and later, the - * CancelIoEx function is always used. This function does not have the - * problems described above. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \ - && !defined(ASIO_ENABLE_CANCELIO) - __declspec(deprecated("By default, this function always fails with " - "operation_not_supported when used on Windows XP, Windows Server 2003, " - "or earlier. Consult documentation for details.")) -#endif - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls to cancel() will always fail with - * asio::error::operation_not_supported when run on Windows XP, Windows - * Server 2003, and earlier versions of Windows, unless - * ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has - * two issues that should be considered before enabling its use: - * - * @li It will only cancel asynchronous operations that were initiated in the - * current thread. - * - * @li It can appear to complete without error, but the request to cancel the - * unfinished operations may be silently ignored by the operating system. - * Whether it works or not seems to depend on the drivers that are installed. - * - * For portable cancellation, consider using one of the following - * alternatives: - * - * @li Disable asio's I/O completion port backend by defining - * ASIO_DISABLE_IOCP. - * - * @li Use the close() function to simultaneously cancel the outstanding - * operations and close the socket. - * - * When running on Windows Vista, Windows Server 2008, and later, the - * CancelIoEx function is always used. This function does not have the - * problems described above. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \ - && !defined(ASIO_ENABLE_CANCELIO) - __declspec(deprecated("By default, this function always fails with " - "operation_not_supported when used on Windows XP, Windows Server 2003, " - "or earlier. Consult documentation for details.")) -#endif - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - /** - * This function is used to check whether the socket input is currently - * positioned at the out-of-band data mark. - * - * @return A bool indicating whether the socket is at the out-of-band data - * mark. - * - * @throws asio::system_error Thrown on failure. - */ - bool at_mark() const - { - asio::error_code ec; - bool b = this->get_service().at_mark(this->get_implementation(), ec); - asio::detail::throw_error(ec, "at_mark"); - return b; - } - - /// Determine whether the socket is at the out-of-band data mark. - /** - * This function is used to check whether the socket input is currently - * positioned at the out-of-band data mark. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return A bool indicating whether the socket is at the out-of-band data - * mark. - */ - bool at_mark(asio::error_code& ec) const - { - return this->get_service().at_mark(this->get_implementation(), ec); - } - - /// Determine the number of bytes available for reading. - /** - * This function is used to determine the number of bytes that may be read - * without blocking. - * - * @return The number of bytes that may be read without blocking, or 0 if an - * error occurs. - * - * @throws asio::system_error Thrown on failure. - */ - std::size_t available() const - { - asio::error_code ec; - std::size_t s = this->get_service().available( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "available"); - return s; - } - - /// Determine the number of bytes available for reading. - /** - * This function is used to determine the number of bytes that may be read - * without blocking. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of bytes that may be read without blocking, or 0 if an - * error occurs. - */ - std::size_t available(asio::error_code& ec) const - { - return this->get_service().available(this->get_implementation(), ec); - } - - /// Bind the socket to the given local endpoint. - /** - * This function binds the socket to the specified endpoint on the local - * machine. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * socket.open(asio::ip::tcp::v4()); - * socket.bind(asio::ip::tcp::endpoint( - * asio::ip::tcp::v4(), 12345)); - * @endcode - */ - void bind(const endpoint_type& endpoint) - { - asio::error_code ec; - this->get_service().bind(this->get_implementation(), endpoint, ec); - asio::detail::throw_error(ec, "bind"); - } - - /// Bind the socket to the given local endpoint. - /** - * This function binds the socket to the specified endpoint on the local - * machine. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * socket.open(asio::ip::tcp::v4()); - * asio::error_code ec; - * socket.bind(asio::ip::tcp::endpoint( - * asio::ip::tcp::v4(), 12345), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint, - asio::error_code& ec) - { - this->get_service().bind(this->get_implementation(), endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the socket to the specified endpoint. - /** - * This function is used to connect a socket to the specified remote endpoint. - * The function call will block until the connection is successfully made or - * an error occurs. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.connect(endpoint); - * @endcode - */ - void connect(const endpoint_type& peer_endpoint) - { - asio::error_code ec; - if (!is_open()) - { - this->get_service().open(this->get_implementation(), - peer_endpoint.protocol(), ec); - asio::detail::throw_error(ec, "connect"); - } - this->get_service().connect(this->get_implementation(), peer_endpoint, ec); - asio::detail::throw_error(ec, "connect"); - } - - /// Connect the socket to the specified endpoint. - /** - * This function is used to connect a socket to the specified remote endpoint. - * The function call will block until the connection is successfully made or - * an error occurs. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * asio::error_code ec; - * socket.connect(endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID connect(const endpoint_type& peer_endpoint, - asio::error_code& ec) - { - if (!is_open()) - { - this->get_service().open(this->get_implementation(), - peer_endpoint.protocol(), ec); - if (ec) - { - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - this->get_service().connect(this->get_implementation(), peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - /** - * This function is used to asynchronously connect a socket to the specified - * remote endpoint. The function call always returns immediately. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. Copies will be made of the endpoint object as required. - * - * @param handler The handler to be called when the connection operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void connect_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Connect succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint( - * asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_connect(endpoint, connect_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ConnectHandler. - ASIO_CONNECT_HANDLER_CHECK(ConnectHandler, handler) type_check; - - if (!is_open()) - { - asio::error_code ec; - const protocol_type protocol = peer_endpoint.protocol(); - this->get_service().open(this->get_implementation(), protocol, ec); - if (ec) - { - async_completion init(handler); - - asio::post(this->get_executor(), - asio::detail::bind_handler( - ASIO_MOVE_CAST(ASIO_HANDLER_TYPE( - ConnectHandler, void (asio::error_code)))( - init.completion_handler), ec)); - - return init.result.get(); - } - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_connect(this->get_implementation(), - peer_endpoint, ASIO_MOVE_CAST(ConnectHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_connect( - this->get_implementation(), peer_endpoint, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Set an option on the socket. - /** - * This function is used to set an option on the socket. - * - * @param option The new option value to be set on the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @sa SettableSocketOption @n - * asio::socket_base::broadcast @n - * asio::socket_base::do_not_route @n - * asio::socket_base::keep_alive @n - * asio::socket_base::linger @n - * asio::socket_base::receive_buffer_size @n - * asio::socket_base::receive_low_watermark @n - * asio::socket_base::reuse_address @n - * asio::socket_base::send_buffer_size @n - * asio::socket_base::send_low_watermark @n - * asio::ip::multicast::join_group @n - * asio::ip::multicast::leave_group @n - * asio::ip::multicast::enable_loopback @n - * asio::ip::multicast::outbound_interface @n - * asio::ip::multicast::hops @n - * asio::ip::tcp::no_delay - * - * @par Example - * Setting the IPPROTO_TCP/TCP_NODELAY option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::no_delay option(true); - * socket.set_option(option); - * @endcode - */ - template - void set_option(const SettableSocketOption& option) - { - asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the socket. - /** - * This function is used to set an option on the socket. - * - * @param option The new option value to be set on the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSocketOption @n - * asio::socket_base::broadcast @n - * asio::socket_base::do_not_route @n - * asio::socket_base::keep_alive @n - * asio::socket_base::linger @n - * asio::socket_base::receive_buffer_size @n - * asio::socket_base::receive_low_watermark @n - * asio::socket_base::reuse_address @n - * asio::socket_base::send_buffer_size @n - * asio::socket_base::send_low_watermark @n - * asio::ip::multicast::join_group @n - * asio::ip::multicast::leave_group @n - * asio::ip::multicast::enable_loopback @n - * asio::ip::multicast::outbound_interface @n - * asio::ip::multicast::hops @n - * asio::ip::tcp::no_delay - * - * @par Example - * Setting the IPPROTO_TCP/TCP_NODELAY option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::no_delay option(true); - * asio::error_code ec; - * socket.set_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option, - asio::error_code& ec) - { - this->get_service().set_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get an option from the socket. - /** - * This function is used to get the current value of an option on the socket. - * - * @param option The option value to be obtained from the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @sa GettableSocketOption @n - * asio::socket_base::broadcast @n - * asio::socket_base::do_not_route @n - * asio::socket_base::keep_alive @n - * asio::socket_base::linger @n - * asio::socket_base::receive_buffer_size @n - * asio::socket_base::receive_low_watermark @n - * asio::socket_base::reuse_address @n - * asio::socket_base::send_buffer_size @n - * asio::socket_base::send_low_watermark @n - * asio::ip::multicast::join_group @n - * asio::ip::multicast::leave_group @n - * asio::ip::multicast::enable_loopback @n - * asio::ip::multicast::outbound_interface @n - * asio::ip::multicast::hops @n - * asio::ip::tcp::no_delay - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::socket::keep_alive option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - */ - template - void get_option(GettableSocketOption& option) const - { - asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the socket. - /** - * This function is used to get the current value of an option on the socket. - * - * @param option The option value to be obtained from the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSocketOption @n - * asio::socket_base::broadcast @n - * asio::socket_base::do_not_route @n - * asio::socket_base::keep_alive @n - * asio::socket_base::linger @n - * asio::socket_base::receive_buffer_size @n - * asio::socket_base::receive_low_watermark @n - * asio::socket_base::reuse_address @n - * asio::socket_base::send_buffer_size @n - * asio::socket_base::send_low_watermark @n - * asio::ip::multicast::join_group @n - * asio::ip::multicast::leave_group @n - * asio::ip::multicast::enable_loopback @n - * asio::ip::multicast::outbound_interface @n - * asio::ip::multicast::hops @n - * asio::ip::tcp::no_delay - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::socket::keep_alive option; - * asio::error_code ec; - * socket.get_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * bool is_set = option.value(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option, - asio::error_code& ec) const - { - this->get_service().get_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - /** - * This function is used to execute an IO control command on the socket. - * - * @param command The IO control command to be performed on the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * asio::socket_base::bytes_readable @n - * asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::socket::bytes_readable command; - * socket.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the socket. - /** - * This function is used to execute an IO control command on the socket. - * - * @param command The IO control command to be performed on the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * asio::socket_base::bytes_readable @n - * asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::socket::bytes_readable command; - * asio::error_code ec; - * socket.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID io_control(IoControlCommand& command, - asio::error_code& ec) - { - this->get_service().io_control(this->get_implementation(), command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - /** - * @returns @c true if the socket's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the socket. - /** - * @param mode If @c true, the socket's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @throws asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - void non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the socket. - /** - * @param mode If @c true, the socket's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - ASIO_SYNC_OP_VOID non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().non_blocking(this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native socket. This mode has no effect on the behaviour of the socket - * object's synchronous operations. - * - * @returns @c true if the underlying socket is in non-blocking mode and - * direct system calls may fail with asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the socket object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native socket. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = asio::error_code(n < 0 ? errno : 0, - * asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == asio::error::would_block - * || ec == asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_wait(tcp::socket::wait_write, *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_wait(tcp::socket::wait_write, op); - * } @endcode - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the native socket implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native socket. It has no effect on the behaviour of the socket object's - * synchronous operations. - * - * @param mode If @c true, the underlying socket is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @throws asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = asio::error_code(n < 0 ? errno : 0, - * asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == asio::error::would_block - * || ec == asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_wait(tcp::socket::wait_write, *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_wait(tcp::socket::wait_write, op); - * } @endcode - */ - void native_non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native socket implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native socket. It has no effect on the behaviour of the socket object's - * synchronous operations. - * - * @param mode If @c true, the underlying socket is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - * - * @par Example - * This function is intended to allow the encapsulation of arbitrary - * non-blocking system calls as asynchronous operations, in a way that is - * transparent to the user of the socket object. The following example - * illustrates how Linux's @c sendfile system call might be encapsulated: - * @code template - * struct sendfile_op - * { - * tcp::socket& sock_; - * int fd_; - * Handler handler_; - * off_t offset_; - * std::size_t total_bytes_transferred_; - * - * // Function call operator meeting WriteHandler requirements. - * // Used as the handler for the async_write_some operation. - * void operator()(asio::error_code ec, std::size_t) - * { - * // Put the underlying socket into non-blocking mode. - * if (!ec) - * if (!sock_.native_non_blocking()) - * sock_.native_non_blocking(true, ec); - * - * if (!ec) - * { - * for (;;) - * { - * // Try the system call. - * errno = 0; - * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536); - * ec = asio::error_code(n < 0 ? errno : 0, - * asio::error::get_system_category()); - * total_bytes_transferred_ += ec ? 0 : n; - * - * // Retry operation immediately if interrupted by signal. - * if (ec == asio::error::interrupted) - * continue; - * - * // Check if we need to run the operation again. - * if (ec == asio::error::would_block - * || ec == asio::error::try_again) - * { - * // We have to wait for the socket to become ready again. - * sock_.async_wait(tcp::socket::wait_write, *this); - * return; - * } - * - * if (ec || n == 0) - * { - * // An error occurred, or we have reached the end of the file. - * // Either way we must exit the loop so we can call the handler. - * break; - * } - * - * // Loop around to try calling sendfile again. - * } - * } - * - * // Pass result back to user's handler. - * handler_(ec, total_bytes_transferred_); - * } - * }; - * - * template - * void async_sendfile(tcp::socket& sock, int fd, Handler h) - * { - * sendfile_op op = { sock, fd, h, 0, 0 }; - * sock.async_wait(tcp::socket::wait_write, op); - * } @endcode - */ - ASIO_SYNC_OP_VOID native_non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint of the socket. - /** - * This function is used to obtain the locally bound endpoint of the socket. - * - * @returns An object that represents the local endpoint of the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::endpoint endpoint = socket.local_endpoint(); - * @endcode - */ - endpoint_type local_endpoint() const - { - asio::error_code ec; - endpoint_type ep = this->get_service().local_endpoint( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "local_endpoint"); - return ep; - } - - /// Get the local endpoint of the socket. - /** - * This function is used to obtain the locally bound endpoint of the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the local endpoint of the socket. - * Returns a default-constructed endpoint object if an error occurred. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type local_endpoint(asio::error_code& ec) const - { - return this->get_service().local_endpoint(this->get_implementation(), ec); - } - - /// Get the remote endpoint of the socket. - /** - * This function is used to obtain the remote endpoint of the socket. - * - * @returns An object that represents the remote endpoint of the socket. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(); - * @endcode - */ - endpoint_type remote_endpoint() const - { - asio::error_code ec; - endpoint_type ep = this->get_service().remote_endpoint( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "remote_endpoint"); - return ep; - } - - /// Get the remote endpoint of the socket. - /** - * This function is used to obtain the remote endpoint of the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the remote endpoint of the socket. - * Returns a default-constructed endpoint object if an error occurred. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type remote_endpoint(asio::error_code& ec) const - { - return this->get_service().remote_endpoint(this->get_implementation(), ec); - } - - /// Disable sends or receives on the socket. - /** - * This function is used to disable send operations, receive operations, or - * both. - * - * @param what Determines what types of operation will no longer be allowed. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * Shutting down the send side of the socket: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * socket.shutdown(asio::ip::tcp::socket::shutdown_send); - * @endcode - */ - void shutdown(shutdown_type what) - { - asio::error_code ec; - this->get_service().shutdown(this->get_implementation(), what, ec); - asio::detail::throw_error(ec, "shutdown"); - } - - /// Disable sends or receives on the socket. - /** - * This function is used to disable send operations, receive operations, or - * both. - * - * @param what Determines what types of operation will no longer be allowed. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Shutting down the send side of the socket: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * socket.shutdown(asio::ip::tcp::socket::shutdown_send, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID shutdown(shutdown_type what, - asio::error_code& ec) - { - this->get_service().shutdown(this->get_implementation(), what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - /** - * This function is used to perform a blocking wait for a socket to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired socket state. - * - * @par Example - * Waiting for a socket to become readable. - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * socket.wait(asio::ip::tcp::socket::wait_read); - * @endcode - */ - void wait(wait_type w) - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), w, ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - /** - * This function is used to perform a blocking wait for a socket to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired socket state. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Waiting for a socket to become readable. - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::error_code ec; - * socket.wait(asio::ip::tcp::socket::wait_read, ec); - * @endcode - */ - ASIO_SYNC_OP_VOID wait(wait_type w, asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - /** - * This function is used to perform an asynchronous wait for a socket to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired socket state. - * - * @param handler The handler to be called when the wait operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void wait_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Wait succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::socket socket(io_context); - * ... - * socket.async_wait(asio::ip::tcp::socket::wait_read, wait_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(wait_type w, ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_wait(this->get_implementation(), - w, ASIO_MOVE_CAST(WaitHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - w, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - -protected: - /// Protected destructor to prevent deletion through this type. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_socket() - { - } - -private: - // Disallow copying and assignment. - basic_socket(const basic_socket&) ASIO_DELETED; - basic_socket& operator=(const basic_socket&) ASIO_DELETED; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_socket_acceptor.hpp b/Sources/Vendor/asio/include/asio/basic_socket_acceptor.hpp deleted file mode 100644 index ed201bb..0000000 --- a/Sources/Vendor/asio/include/asio/basic_socket_acceptor.hpp +++ /dev/null @@ -1,1986 +0,0 @@ -// -// basic_socket_acceptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_SOCKET_ACCEPTOR_HPP -#define ASIO_BASIC_SOCKET_ACCEPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/socket_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/socket_acceptor_service.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -# define ASIO_SVC_T detail::null_socket_service -# elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -# define ASIO_SVC_T detail::win_iocp_socket_service -# else -# include "asio/detail/reactive_socket_service.hpp" -# define ASIO_SVC_T detail::reactive_socket_service -# endif -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides the ability to accept new connections. -/** - * The basic_socket_acceptor class template is used for accepting new socket - * connections. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Opening a socket acceptor with the SO_REUSEADDR option enabled: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port); - * acceptor.open(endpoint.protocol()); - * acceptor.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - * acceptor.bind(endpoint); - * acceptor.listen(); - * @endcode - */ -template )> -class basic_socket_acceptor - : ASIO_SVC_ACCESS basic_io_object, - public socket_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of an acceptor. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct an acceptor without opening it. - /** - * This constructor creates an acceptor without opening it to listen for new - * connections. The open() function must be called before the acceptor can - * accept new socket connections. - * - * @param io_context The io_context object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - */ - explicit basic_socket_acceptor(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct an open acceptor. - /** - * This constructor creates an acceptor and automatically opens it. - * - * @param io_context The io_context object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket_acceptor(asio::io_context& io_context, - const protocol_type& protocol) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct an acceptor opened on the given endpoint. - /** - * This constructor creates an acceptor and automatically opens it to listen - * for new connections on the specified endpoint. - * - * @param io_context The io_context object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param endpoint An endpoint on the local machine on which the acceptor - * will listen for new connections. - * - * @param reuse_addr Whether the constructor should set the socket option - * socket_base::reuse_address. - * - * @throws asio::system_error Thrown on failure. - * - * @note This constructor is equivalent to the following code: - * @code - * basic_socket_acceptor acceptor(io_context); - * acceptor.open(endpoint.protocol()); - * if (reuse_addr) - * acceptor.set_option(socket_base::reuse_address(true)); - * acceptor.bind(endpoint); - * acceptor.listen(listen_backlog); - * @endcode - */ - basic_socket_acceptor(asio::io_context& io_context, - const endpoint_type& endpoint, bool reuse_addr = true) - : basic_io_object(io_context) - { - asio::error_code ec; - const protocol_type protocol = endpoint.protocol(); - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - if (reuse_addr) - { - this->get_service().set_option(this->get_implementation(), - socket_base::reuse_address(true), ec); - asio::detail::throw_error(ec, "set_option"); - } - this->get_service().bind(this->get_implementation(), endpoint, ec); - asio::detail::throw_error(ec, "bind"); - this->get_service().listen(this->get_implementation(), - socket_base::max_listen_connections, ec); - asio::detail::throw_error(ec, "listen"); - } - - /// Construct a basic_socket_acceptor on an existing native acceptor. - /** - * This constructor creates an acceptor object to hold an existing native - * acceptor. - * - * @param io_context The io_context object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_acceptor A native acceptor. - * - * @throws asio::system_error Thrown on failure. - */ - basic_socket_acceptor(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_acceptor) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_socket_acceptor from another. - /** - * This constructor moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket_acceptor(io_context&) constructor. - */ - basic_socket_acceptor(basic_socket_acceptor&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_socket_acceptor from another. - /** - * This assignment operator moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket_acceptor(io_context&) constructor. - */ - basic_socket_acceptor& operator=(basic_socket_acceptor&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } - - // All socket acceptors have access to each other's implementations. - template - friend class basic_socket_acceptor; - - /// Move-construct a basic_socket_acceptor from an acceptor of another - /// protocol type. - /** - * This constructor moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - template - basic_socket_acceptor( - basic_socket_acceptor&& other, - typename enable_if::value>::type* = 0) - : basic_io_object( - other.get_service(), other.get_implementation()) - { - } - - /// Move-assign a basic_socket_acceptor from an acceptor of another protocol - /// type. - /** - * This assignment operator moves an acceptor from one object to another. - * - * @param other The other basic_socket_acceptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_socket_acceptor>::type& operator=( - basic_socket_acceptor&& other) - { - basic_socket_acceptor tmp(std::move(other)); - basic_io_object::operator=(std::move(tmp)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the acceptor. - /** - * This function destroys the acceptor, cancelling any outstanding - * asynchronous operations associated with the acceptor as if by calling - * @c cancel. - */ - ~basic_socket_acceptor() - { - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - - /// Open the acceptor using the specified protocol. - /** - * This function opens the socket acceptor so that it will use the specified - * protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * acceptor.open(asio::ip::tcp::v4()); - * @endcode - */ - void open(const protocol_type& protocol = protocol_type()) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), protocol, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Open the acceptor using the specified protocol. - /** - * This function opens the socket acceptor so that it will use the specified - * protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * asio::error_code ec; - * acceptor.open(asio::ip::tcp::v4(), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID open(const protocol_type& protocol, - asio::error_code& ec) - { - this->get_service().open(this->get_implementation(), protocol, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assigns an existing native acceptor to the acceptor. - /* - * This function opens the acceptor to hold an existing native acceptor. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_acceptor A native acceptor. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const protocol_type& protocol, - const native_handle_type& native_acceptor) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assigns an existing native acceptor to the acceptor. - /* - * This function opens the acceptor to hold an existing native acceptor. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_acceptor A native acceptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const protocol_type& protocol, - const native_handle_type& native_acceptor, asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), - protocol, native_acceptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the acceptor is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Bind the acceptor to the given local endpoint. - /** - * This function binds the socket acceptor to the specified endpoint on the - * local machine. - * - * @param endpoint An endpoint on the local machine to which the socket - * acceptor will be bound. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345); - * acceptor.open(endpoint.protocol()); - * acceptor.bind(endpoint); - * @endcode - */ - void bind(const endpoint_type& endpoint) - { - asio::error_code ec; - this->get_service().bind(this->get_implementation(), endpoint, ec); - asio::detail::throw_error(ec, "bind"); - } - - /// Bind the acceptor to the given local endpoint. - /** - * This function binds the socket acceptor to the specified endpoint on the - * local machine. - * - * @param endpoint An endpoint on the local machine to which the socket - * acceptor will be bound. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), 12345); - * acceptor.open(endpoint.protocol()); - * asio::error_code ec; - * acceptor.bind(endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint, - asio::error_code& ec) - { - this->get_service().bind(this->get_implementation(), endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Place the acceptor into the state where it will listen for new - /// connections. - /** - * This function puts the socket acceptor into the state where it may accept - * new connections. - * - * @param backlog The maximum length of the queue of pending connections. - * - * @throws asio::system_error Thrown on failure. - */ - void listen(int backlog = socket_base::max_listen_connections) - { - asio::error_code ec; - this->get_service().listen(this->get_implementation(), backlog, ec); - asio::detail::throw_error(ec, "listen"); - } - - /// Place the acceptor into the state where it will listen for new - /// connections. - /** - * This function puts the socket acceptor into the state where it may accept - * new connections. - * - * @param backlog The maximum length of the queue of pending connections. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::error_code ec; - * acceptor.listen(asio::socket_base::max_listen_connections, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID listen(int backlog, asio::error_code& ec) - { - this->get_service().listen(this->get_implementation(), backlog, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Close the acceptor. - /** - * This function is used to close the acceptor. Any asynchronous accept - * operations will be cancelled immediately. - * - * A subsequent call to open() is required before the acceptor can again be - * used to again perform socket accept operations. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the acceptor. - /** - * This function is used to close the acceptor. Any asynchronous accept - * operations will be cancelled immediately. - * - * A subsequent call to open() is required before the acceptor can again be - * used to again perform socket accept operations. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::error_code ec; - * acceptor.close(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying native acceptor. - /** - * This function causes all outstanding asynchronous accept operations to - * finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. Ownership of the - * native acceptor is then transferred to the caller. - * - * @throws asio::system_error Thrown on failure. - * - * @note This function is unsupported on Windows versions prior to Windows - * 8.1, and will fail with asio::error::operation_not_supported on - * these platforms. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603) - __declspec(deprecated("This function always fails with " - "operation_not_supported when used on Windows versions " - "prior to Windows 8.1.")) -#endif - native_handle_type release() - { - asio::error_code ec; - native_handle_type s = this->get_service().release( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "release"); - return s; - } - - /// Release ownership of the underlying native acceptor. - /** - * This function causes all outstanding asynchronous accept operations to - * finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. Ownership of the - * native acceptor is then transferred to the caller. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note This function is unsupported on Windows versions prior to Windows - * 8.1, and will fail with asio::error::operation_not_supported on - * these platforms. - */ -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603) - __declspec(deprecated("This function always fails with " - "operation_not_supported when used on Windows versions " - "prior to Windows 8.1.")) -#endif - native_handle_type release(asio::error_code& ec) - { - return this->get_service().release(this->get_implementation(), ec); - } - - /// Get the native acceptor representation. - /** - * This function may be used to obtain the underlying representation of the - * acceptor. This is intended to allow access to native acceptor functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the acceptor. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the acceptor. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set an option on the acceptor. - /** - * This function is used to set an option on the acceptor. - * - * @param option The new option value to be set on the acceptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa SettableSocketOption @n - * asio::socket_base::reuse_address - * asio::socket_base::enable_connection_aborted - * - * @par Example - * Setting the SOL_SOCKET/SO_REUSEADDR option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::reuse_address option(true); - * acceptor.set_option(option); - * @endcode - */ - template - void set_option(const SettableSocketOption& option) - { - asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the acceptor. - /** - * This function is used to set an option on the acceptor. - * - * @param option The new option value to be set on the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSocketOption @n - * asio::socket_base::reuse_address - * asio::socket_base::enable_connection_aborted - * - * @par Example - * Setting the SOL_SOCKET/SO_REUSEADDR option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::reuse_address option(true); - * asio::error_code ec; - * acceptor.set_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option, - asio::error_code& ec) - { - this->get_service().set_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get an option from the acceptor. - /** - * This function is used to get the current value of an option on the - * acceptor. - * - * @param option The option value to be obtained from the acceptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa GettableSocketOption @n - * asio::socket_base::reuse_address - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_REUSEADDR option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::reuse_address option; - * acceptor.get_option(option); - * bool is_set = option.get(); - * @endcode - */ - template - void get_option(GettableSocketOption& option) const - { - asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the acceptor. - /** - * This function is used to get the current value of an option on the - * acceptor. - * - * @param option The option value to be obtained from the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSocketOption @n - * asio::socket_base::reuse_address - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_REUSEADDR option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::reuse_address option; - * asio::error_code ec; - * acceptor.get_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * bool is_set = option.get(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option, - asio::error_code& ec) const - { - this->get_service().get_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the acceptor. - /** - * This function is used to execute an IO control command on the acceptor. - * - * @param command The IO control command to be performed on the acceptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::non_blocking_io command(true); - * socket.io_control(command); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the acceptor. - /** - * This function is used to execute an IO control command on the acceptor. - * - * @param command The IO control command to be performed on the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::acceptor::non_blocking_io command(true); - * asio::error_code ec; - * socket.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - ASIO_SYNC_OP_VOID io_control(IoControlCommand& command, - asio::error_code& ec) - { - this->get_service().io_control(this->get_implementation(), command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the acceptor. - /** - * @returns @c true if the acceptor's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the acceptor. - /** - * @param mode If @c true, the acceptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @throws asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - void non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the acceptor. - /** - * @param mode If @c true, the acceptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - ASIO_SYNC_OP_VOID non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().non_blocking(this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native acceptor. This mode has no effect on the behaviour of the acceptor - * object's synchronous operations. - * - * @returns @c true if the underlying acceptor is in non-blocking mode and - * direct system calls may fail with asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the acceptor object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native acceptor. - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native acceptor. It has no effect on the behaviour of the acceptor object's - * synchronous operations. - * - * @param mode If @c true, the underlying acceptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @throws asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - void native_non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native acceptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native acceptor. It has no effect on the behaviour of the acceptor object's - * synchronous operations. - * - * @param mode If @c true, the underlying acceptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - ASIO_SYNC_OP_VOID native_non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint of the acceptor. - /** - * This function is used to obtain the locally bound endpoint of the acceptor. - * - * @returns An object that represents the local endpoint of the acceptor. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(); - * @endcode - */ - endpoint_type local_endpoint() const - { - asio::error_code ec; - endpoint_type ep = this->get_service().local_endpoint( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "local_endpoint"); - return ep; - } - - /// Get the local endpoint of the acceptor. - /** - * This function is used to obtain the locally bound endpoint of the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the local endpoint of the acceptor. - * Returns a default-constructed endpoint object if an error occurred and the - * error handler did not throw an exception. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::error_code ec; - * asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type local_endpoint(asio::error_code& ec) const - { - return this->get_service().local_endpoint(this->get_implementation(), ec); - } - - /// Wait for the acceptor to become ready to read, ready to write, or to have - /// pending error conditions. - /** - * This function is used to perform a blocking wait for an acceptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired acceptor state. - * - * @par Example - * Waiting for an acceptor to become readable. - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * acceptor.wait(asio::ip::tcp::acceptor::wait_read); - * @endcode - */ - void wait(wait_type w) - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), w, ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Wait for the acceptor to become ready to read, ready to write, or to have - /// pending error conditions. - /** - * This function is used to perform a blocking wait for an acceptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired acceptor state. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Waiting for an acceptor to become readable. - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::error_code ec; - * acceptor.wait(asio::ip::tcp::acceptor::wait_read, ec); - * @endcode - */ - ASIO_SYNC_OP_VOID wait(wait_type w, asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the acceptor to become ready to read, ready to - /// write, or to have pending error conditions. - /** - * This function is used to perform an asynchronous wait for an acceptor to - * enter a ready to read, write or error condition state. - * - * @param w Specifies the desired acceptor state. - * - * @param handler The handler to be called when the wait operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void wait_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Wait succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * acceptor.async_wait( - * asio::ip::tcp::acceptor::wait_read, - * wait_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(wait_type w, ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_wait(this->get_implementation(), - w, ASIO_MOVE_CAST(WaitHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - w, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - -#if !defined(ASIO_NO_EXTENSIONS) - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer into the - * given socket. The function call will block until a new connection has been - * accepted successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * acceptor.accept(socket); - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - void accept(basic_socket& peer, - typename enable_if::value>::type* = 0) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - template - void accept(basic_socket& peer, - typename enable_if::value>::type* = 0) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - asio::error_code ec; - this->get_service().accept(this->get_implementation(), - peer, static_cast(0), ec); - asio::detail::throw_error(ec, "accept"); - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer into the - * given socket. The function call will block until a new connection has been - * accepted successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * asio::error_code ec; - * acceptor.accept(socket, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_SYNC_OP_VOID accept( - basic_socket& peer, - asio::error_code& ec, - typename enable_if::value>::type* = 0) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_SYNC_OP_VOID accept( - basic_socket& peer, asio::error_code& ec, - typename enable_if::value>::type* = 0) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - this->get_service().accept(this->get_implementation(), - peer, static_cast(0), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection into a - * socket. The function call always returns immediately. - * - * @param peer The socket into which the new connection will be accepted. - * Ownership of the peer object is retained by the caller, which must - * guarantee that it is valid until the handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * acceptor.async_accept(socket, accept_handler); - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(basic_socket& peer, - ASIO_MOVE_ARG(AcceptHandler) handler, - typename enable_if::value>::type* = 0) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(basic_socket& peer, - ASIO_MOVE_ARG(AcceptHandler) handler, - typename enable_if::value>::type* = 0) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a AcceptHandler. - ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept(this->get_implementation(), - peer, static_cast(0), - ASIO_MOVE_CAST(AcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - peer, static_cast(0), init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Accept a new connection and obtain the endpoint of the peer - /** - * This function is used to accept a new connection from a peer into the - * given socket, and additionally provide the endpoint of the remote peer. - * The function call will block until a new connection has been accepted - * successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param peer_endpoint An endpoint object which will receive the endpoint of - * the remote peer. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint; - * acceptor.accept(socket, endpoint); - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - void accept(basic_socket& peer, - endpoint_type& peer_endpoint) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - void accept(basic_socket& peer, endpoint_type& peer_endpoint) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - asio::error_code ec; - this->get_service().accept(this->get_implementation(), - peer, &peer_endpoint, ec); - asio::detail::throw_error(ec, "accept"); - } - - /// Accept a new connection and obtain the endpoint of the peer - /** - * This function is used to accept a new connection from a peer into the - * given socket, and additionally provide the endpoint of the remote peer. - * The function call will block until a new connection has been accepted - * successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param peer_endpoint An endpoint object which will receive the endpoint of - * the remote peer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(io_context); - * asio::ip::tcp::endpoint endpoint; - * asio::error_code ec; - * acceptor.accept(socket, endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_SYNC_OP_VOID accept( - basic_socket& peer, - endpoint_type& peer_endpoint, asio::error_code& ec) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - ASIO_SYNC_OP_VOID accept(basic_socket& peer, - endpoint_type& peer_endpoint, asio::error_code& ec) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - this->get_service().accept( - this->get_implementation(), peer, &peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection into a - * socket, and additionally obtain the endpoint of the remote peer. The - * function call always returns immediately. - * - * @param peer The socket into which the new connection will be accepted. - * Ownership of the peer object is retained by the caller, which must - * guarantee that it is valid until the handler is called. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. Ownership of the peer_endpoint object is - * retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -#if defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(basic_socket& peer, - endpoint_type& peer_endpoint, ASIO_MOVE_ARG(AcceptHandler) handler) -#else // defined(ASIO_ENABLE_OLD_SERVICES) - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(basic_socket& peer, - endpoint_type& peer_endpoint, ASIO_MOVE_ARG(AcceptHandler) handler) -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a AcceptHandler. - ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept(this->get_implementation(), peer, - &peer_endpoint, ASIO_MOVE_CAST(AcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - peer, &peer_endpoint, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -#endif // !defined(ASIO_NO_EXTENSIONS) - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @returns A socket object representing the newly accepted connection. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(acceptor.accept()); - * @endcode - */ - typename Protocol::socket accept() - { - asio::error_code ec; - typename Protocol::socket peer( - this->get_service().accept( - this->get_implementation(), 0, 0, ec)); - asio::detail::throw_error(ec, "accept"); - return peer; - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns On success, a socket object representing the newly accepted - * connection. On error, a socket object where is_open() is false. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(acceptor.accept(ec)); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - typename Protocol::socket accept(asio::error_code& ec) - { - return this->get_service().accept(this->get_implementation(), 0, 0, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection. The - * function call always returns immediately. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * typename Protocol::socket peer // On success, the newly accepted socket. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error, - * asio::ip::tcp::socket peer) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * acceptor.async_accept(accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a MoveAcceptHandler. - ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler, - handler, typename Protocol::socket) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept( - this->get_implementation(), static_cast(0), - static_cast(0), - ASIO_MOVE_CAST(MoveAcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept( - this->get_implementation(), static_cast(0), - static_cast(0), init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @returns A socket object representing the newly accepted connection. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(acceptor.accept()); - * @endcode - */ - typename Protocol::socket accept(asio::io_context& io_context) - { - asio::error_code ec; - typename Protocol::socket peer( - this->get_service().accept(this->get_implementation(), - &io_context, static_cast(0), ec)); - asio::detail::throw_error(ec, "accept"); - return peer; - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns On success, a socket object representing the newly accepted - * connection. On error, a socket object where is_open() is false. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::socket socket(acceptor.accept(io_context2, ec)); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - typename Protocol::socket accept( - asio::io_context& io_context, asio::error_code& ec) - { - return this->get_service().accept(this->get_implementation(), - &io_context, static_cast(0), ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection. The - * function call always returns immediately. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * typename Protocol::socket peer // On success, the newly accepted socket. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error, - * asio::ip::tcp::socket peer) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * acceptor.async_accept(io_context2, accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(asio::io_context& io_context, - ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a MoveAcceptHandler. - ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler, - handler, typename Protocol::socket) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept(this->get_implementation(), - &io_context, static_cast(0), - ASIO_MOVE_CAST(MoveAcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - &io_context, static_cast(0), init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. - * - * @returns A socket object representing the newly accepted connection. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * asio::ip::tcp::socket socket(acceptor.accept(endpoint)); - * @endcode - */ - typename Protocol::socket accept(endpoint_type& peer_endpoint) - { - asio::error_code ec; - typename Protocol::socket peer( - this->get_service().accept(this->get_implementation(), - static_cast(0), &peer_endpoint, ec)); - asio::detail::throw_error(ec, "accept"); - return peer; - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns On success, a socket object representing the newly accepted - * connection. On error, a socket object where is_open() is false. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec)); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - typename Protocol::socket accept( - endpoint_type& peer_endpoint, asio::error_code& ec) - { - return this->get_service().accept(this->get_implementation(), - static_cast(0), &peer_endpoint, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection. The - * function call always returns immediately. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. Ownership of the peer_endpoint object is - * retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * typename Protocol::socket peer // On success, the newly accepted socket. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error, - * asio::ip::tcp::socket peer) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * acceptor.async_accept(endpoint, accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a MoveAcceptHandler. - ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler, - handler, typename Protocol::socket) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept(this->get_implementation(), - static_cast(0), &peer_endpoint, - ASIO_MOVE_CAST(MoveAcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - static_cast(0), &peer_endpoint, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. - * - * @returns A socket object representing the newly accepted connection. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * asio::ip::tcp::socket socket( - * acceptor.accept(io_context2, endpoint)); - * @endcode - */ - typename Protocol::socket accept( - asio::io_context& io_context, endpoint_type& peer_endpoint) - { - asio::error_code ec; - typename Protocol::socket peer( - this->get_service().accept(this->get_implementation(), - &io_context, &peer_endpoint, ec)); - asio::detail::throw_error(ec, "accept"); - return peer; - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer. The function - * call will block until a new connection has been accepted successfully or - * an error occurs. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns On success, a socket object representing the newly accepted - * connection. On error, a socket object where is_open() is false. - * - * @par Example - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * asio::ip::tcp::socket socket( - * acceptor.accept(io_context2, endpoint, ec)); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - typename Protocol::socket accept(asio::io_context& io_context, - endpoint_type& peer_endpoint, asio::error_code& ec) - { - return this->get_service().accept(this->get_implementation(), - &io_context, &peer_endpoint, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection. The - * function call always returns immediately. - * - * This overload requires that the Protocol template parameter satisfy the - * AcceptableProtocol type requirements. - * - * @param io_context The io_context object to be used for the newly accepted - * socket. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. Ownership of the peer_endpoint object is - * retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * typename Protocol::socket peer // On success, the newly accepted socket. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void accept_handler(const asio::error_code& error, - * asio::ip::tcp::socket peer) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::ip::tcp::endpoint endpoint; - * acceptor.async_accept(io_context2, endpoint, accept_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(asio::io_context& io_context, - endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a MoveAcceptHandler. - ASIO_MOVE_ACCEPT_HANDLER_CHECK(MoveAcceptHandler, - handler, typename Protocol::socket) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_accept( - this->get_implementation(), &io_context, &peer_endpoint, - ASIO_MOVE_CAST(MoveAcceptHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_accept(this->get_implementation(), - &io_context, &peer_endpoint, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_SOCKET_ACCEPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_socket_iostream.hpp b/Sources/Vendor/asio/include/asio/basic_socket_iostream.hpp deleted file mode 100644 index 6681367..0000000 --- a/Sources/Vendor/asio/include/asio/basic_socket_iostream.hpp +++ /dev/null @@ -1,430 +0,0 @@ -// -// basic_socket_iostream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_SOCKET_IOSTREAM_HPP -#define ASIO_BASIC_SOCKET_IOSTREAM_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_NO_IOSTREAM) - -#include -#include -#include "asio/basic_socket_streambuf.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/stream_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -# include "asio/detail/variadic_templates.hpp" - -// A macro that should expand to: -// template -// explicit basic_socket_iostream(T1 x1, ..., Tn xn) -// : std::basic_iostream( -// &this->detail::socket_iostream_base< -// Protocol ASIO_SVC_TARG, Clock, -// WaitTraits ASIO_SVC_TARG1>::streambuf_) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -# define ASIO_PRIVATE_CTR_DEF(n) \ - template \ - explicit basic_socket_iostream(ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - : std::basic_iostream( \ - &this->detail::socket_iostream_base< \ - Protocol ASIO_SVC_TARG, Clock, \ - WaitTraits ASIO_SVC_TARG1>::streambuf_) \ - { \ - this->setf(std::ios_base::unitbuf); \ - if (rdbuf()->connect(ASIO_VARIADIC_BYVAL_ARGS(n)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -// A macro that should expand to: -// template -// void connect(T1 x1, ..., Tn xn) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -# define ASIO_PRIVATE_CONNECT_DEF(n) \ - template \ - void connect(ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - { \ - if (rdbuf()->connect(ASIO_VARIADIC_BYVAL_ARGS(n)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// A separate base class is used to ensure that the streambuf is initialised -// prior to the basic_socket_iostream's basic_iostream base class. -template -class socket_iostream_base -{ -protected: - socket_iostream_base() - { - } - -#if defined(ASIO_HAS_MOVE) - socket_iostream_base(socket_iostream_base&& other) - : streambuf_(std::move(other.streambuf_)) - { - } - - socket_iostream_base(basic_stream_socket s) - : streambuf_(std::move(s)) - { - } - - socket_iostream_base& operator=(socket_iostream_base&& other) - { - streambuf_ = std::move(other.streambuf_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - basic_socket_streambuf streambuf_; -}; - -} // namespace detail - -#if !defined(ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) -#define ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL - -// Forward declaration with defaulted arguments. -template ), -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typename Clock = boost::posix_time::ptime, - typename WaitTraits = time_traits - ASIO_SVC_TPARAM1_DEF2(= deadline_timer_service)> -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits - ASIO_SVC_TPARAM1_DEF1(= steady_timer::service_type)> -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -class basic_socket_iostream; - -#endif // !defined(ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) - -/// Iostream interface for a socket. -#if defined(GENERATING_DOCUMENTATION) -template > -#else // defined(GENERATING_DOCUMENTATION) -template -#endif // defined(GENERATING_DOCUMENTATION) -class basic_socket_iostream - : private detail::socket_iostream_base, - public std::basic_iostream -{ -private: - // These typedefs are intended keep this class's implementation independent - // of whether it's using Boost.DateClock, Boost.Chrono or std::chrono. -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typedef WaitTraits traits_helper; -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typedef detail::chrono_time_traits traits_helper; -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - -public: - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// The clock type. - typedef Clock clock_type; - -#if defined(GENERATING_DOCUMENTATION) - /// (Deprecated: Use time_point.) The time type. - typedef typename WaitTraits::time_type time_type; - - /// The time type. - typedef typename WaitTraits::time_point time_point; - - /// (Deprecated: Use duration.) The duration type. - typedef typename WaitTraits::duration_type duration_type; - - /// The duration type. - typedef typename WaitTraits::duration duration; -#else -# if !defined(ASIO_NO_DEPRECATED) - typedef typename traits_helper::time_type time_type; - typedef typename traits_helper::duration_type duration_type; -# endif // !defined(ASIO_NO_DEPRECATED) - typedef typename traits_helper::time_type time_point; - typedef typename traits_helper::duration_type duration; -#endif - - /// Construct a basic_socket_iostream without establishing a connection. - basic_socket_iostream() - : std::basic_iostream( - &this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_) - { - this->setf(std::ios_base::unitbuf); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Construct a basic_socket_iostream from the supplied socket. - explicit basic_socket_iostream(basic_stream_socket s) - : detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>(std::move(s)), - std::basic_iostream( - &this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_) - { - this->setf(std::ios_base::unitbuf); - } - -#if defined(ASIO_HAS_STD_IOSTREAM_MOVE) \ - || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_socket_iostream from another. - basic_socket_iostream(basic_socket_iostream&& other) - : detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>(std::move(other)), - std::basic_iostream(std::move(other)) - { - this->set_rdbuf(&this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_); - } - - /// Move-assign a basic_socket_iostream from another. - basic_socket_iostream& operator=(basic_socket_iostream&& other) - { - std::basic_iostream::operator=(std::move(other)); - detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_STD_IOSTREAM_MOVE) - // || defined(GENERATING_DOCUMENTATION) -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection to an endpoint corresponding to a resolver query. - /** - * This constructor automatically establishes a connection based on the - * supplied resolver query parameters. The arguments are used to construct - * a resolver query object. - */ - template - explicit basic_socket_iostream(T1 t1, ..., TN tn); -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - template - explicit basic_socket_iostream(T... x) - : std::basic_iostream( - &this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_) - { - this->setf(std::ios_base::unitbuf); - if (rdbuf()->connect(x...) == 0) - this->setstate(std::ios_base::failbit); - } -#else - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CTR_DEF) -#endif - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection to an endpoint corresponding to a resolver query. - /** - * This function automatically establishes a connection based on the supplied - * resolver query parameters. The arguments are used to construct a resolver - * query object. - */ - template - void connect(T1 t1, ..., TN tn); -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - template - void connect(T... x) - { - if (rdbuf()->connect(x...) == 0) - this->setstate(std::ios_base::failbit); - } -#else - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CONNECT_DEF) -#endif - - /// Close the connection. - void close() - { - if (rdbuf()->close() == 0) - this->setstate(std::ios_base::failbit); - } - - /// Return a pointer to the underlying streambuf. - basic_socket_streambuf* rdbuf() const - { - return const_cast*>( - &this->detail::socket_iostream_base< - Protocol ASIO_SVC_TARG, Clock, - WaitTraits ASIO_SVC_TARG1>::streambuf_); - } - - /// Get a reference to the underlying socket. - basic_socket& socket() - { - return rdbuf()->socket(); - } - - /// Get the last error associated with the stream. - /** - * @return An \c error_code corresponding to the last error from the stream. - * - * @par Example - * To print the error associated with a failure to establish a connection: - * @code tcp::iostream s("www.boost.org", "http"); - * if (!s) - * { - * std::cout << "Error: " << s.error().message() << std::endl; - * } @endcode - */ - const asio::error_code& error() const - { - return rdbuf()->error(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the stream's expiry time as an absolute - /// time. - /** - * @return An absolute time value representing the stream's expiry time. - */ - time_point expires_at() const - { - return rdbuf()->expires_at(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the stream's expiry time as an absolute time. - /** - * @return An absolute time value representing the stream's expiry time. - */ - time_point expiry() const - { - return rdbuf()->expiry(); - } - - /// Set the stream's expiry time as an absolute time. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the stream. - */ - void expires_at(const time_point& expiry_time) - { - rdbuf()->expires_at(expiry_time); - } - - /// Set the stream's expiry time relative to now. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the timer. - */ - void expires_after(const duration& expiry_time) - { - rdbuf()->expires_after(expiry_time); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the stream's expiry time relative to now. - /** - * @return A relative time value representing the stream's expiry time. - */ - duration expires_from_now() const - { - return rdbuf()->expires_from_now(); - } - - /// (Deprecated: Use expires_after().) Set the stream's expiry time relative - /// to now. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the timer. - */ - void expires_from_now(const duration& expiry_time) - { - rdbuf()->expires_from_now(expiry_time); - } -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - // Disallow copying and assignment. - basic_socket_iostream(const basic_socket_iostream&) ASIO_DELETED; - basic_socket_iostream& operator=( - const basic_socket_iostream&) ASIO_DELETED; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) -# undef ASIO_PRIVATE_CTR_DEF -# undef ASIO_PRIVATE_CONNECT_DEF -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_BASIC_SOCKET_IOSTREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_socket_streambuf.hpp b/Sources/Vendor/asio/include/asio/basic_socket_streambuf.hpp deleted file mode 100644 index 56a3637..0000000 --- a/Sources/Vendor/asio/include/asio/basic_socket_streambuf.hpp +++ /dev/null @@ -1,707 +0,0 @@ -// -// basic_socket_streambuf.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_SOCKET_STREAMBUF_HPP -#define ASIO_BASIC_SOCKET_STREAMBUF_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_NO_IOSTREAM) - -#include -#include -#include "asio/basic_socket.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/stream_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -# if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/deadline_timer_service.hpp" -# else // defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/detail/deadline_timer_service.hpp" -# endif // defined(ASIO_ENABLE_OLD_SERVICES) -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -# include "asio/steady_timer.hpp" -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -# include "asio/detail/variadic_templates.hpp" - -// A macro that should expand to: -// template -// basic_socket_streambuf* connect(T1 x1, ..., Tn xn) -// { -// init_buffers(); -// typedef typename Protocol::resolver resolver_type; -// resolver_type resolver(socket().get_executor().context()); -// connect_to_endpoints( -// resolver.resolve(x1, ..., xn, ec_)); -// return !ec_ ? this : 0; -// } -// This macro should only persist within this file. - -# define ASIO_PRIVATE_CONNECT_DEF(n) \ - template \ - basic_socket_streambuf* connect(ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - { \ - init_buffers(); \ - typedef typename Protocol::resolver resolver_type; \ - resolver_type resolver(socket().get_executor().context()); \ - connect_to_endpoints( \ - resolver.resolve(ASIO_VARIADIC_BYVAL_ARGS(n), ec_)); \ - return !ec_ ? this : 0; \ - } \ - /**/ - -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# define ASIO_SVC_T1 detail::deadline_timer_service -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// A separate base class is used to ensure that the io_context member is -// initialised prior to the basic_socket_streambuf's basic_socket base class. -class socket_streambuf_io_context -{ -protected: - socket_streambuf_io_context(io_context* ctx) - : default_io_context_(ctx) - { - } - - shared_ptr default_io_context_; -}; - -// A separate base class is used to ensure that the dynamically allocated -// buffers are constructed prior to the basic_socket_streambuf's basic_socket -// base class. This makes moving the socket is the last potentially throwing -// step in the streambuf's move constructor, giving the constructor a strong -// exception safety guarantee. -class socket_streambuf_buffers -{ -protected: - socket_streambuf_buffers() - : get_buffer_(buffer_size), - put_buffer_(buffer_size) - { - } - - enum { buffer_size = 512 }; - std::vector get_buffer_; - std::vector put_buffer_; -}; - -} // namespace detail - -#if !defined(ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) -#define ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL - -// Forward declaration with defaulted arguments. -template ), -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typename Clock = boost::posix_time::ptime, - typename WaitTraits = time_traits - ASIO_SVC_TPARAM1_DEF2(= deadline_timer_service)> -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits - ASIO_SVC_TPARAM1_DEF1(= steady_timer::service_type)> -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) -class basic_socket_streambuf; - -#endif // !defined(ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) - -/// Iostream streambuf for a socket. -#if defined(GENERATING_DOCUMENTATION) -template > -#else // defined(GENERATING_DOCUMENTATION) -template -#endif // defined(GENERATING_DOCUMENTATION) -class basic_socket_streambuf - : public std::streambuf, - private detail::socket_streambuf_io_context, - private detail::socket_streambuf_buffers, -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - private basic_socket -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - public basic_socket -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -{ -private: - // These typedefs are intended keep this class's implementation independent - // of whether it's using Boost.DateClock, Boost.Chrono or std::chrono. -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typedef WaitTraits traits_helper; -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - typedef detail::chrono_time_traits traits_helper; -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - -public: - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// The clock type. - typedef Clock clock_type; - -#if defined(GENERATING_DOCUMENTATION) - /// (Deprecated: Use time_point.) The time type. - typedef typename WaitTraits::time_type time_type; - - /// The time type. - typedef typename WaitTraits::time_point time_point; - - /// (Deprecated: Use duration.) The duration type. - typedef typename WaitTraits::duration_type duration_type; - - /// The duration type. - typedef typename WaitTraits::duration duration; -#else -# if !defined(ASIO_NO_DEPRECATED) - typedef typename traits_helper::time_type time_type; - typedef typename traits_helper::duration_type duration_type; -# endif // !defined(ASIO_NO_DEPRECATED) - typedef typename traits_helper::time_type time_point; - typedef typename traits_helper::duration_type duration; -#endif - - /// Construct a basic_socket_streambuf without establishing a connection. - basic_socket_streambuf() - : detail::socket_streambuf_io_context(new io_context), - basic_socket(*default_io_context_), - expiry_time_(max_expiry_time()) - { - init_buffers(); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Construct a basic_socket_streambuf from the supplied socket. - explicit basic_socket_streambuf(basic_stream_socket s) - : detail::socket_streambuf_io_context(0), - basic_socket(std::move(s)), - expiry_time_(max_expiry_time()) - { - init_buffers(); - } - - /// Move-construct a basic_socket_streambuf from another. - basic_socket_streambuf(basic_socket_streambuf&& other) - : detail::socket_streambuf_io_context(other), - basic_socket(std::move(other.socket())), - ec_(other.ec_), - expiry_time_(other.expiry_time_) - { - get_buffer_.swap(other.get_buffer_); - put_buffer_.swap(other.put_buffer_); - setg(other.eback(), other.gptr(), other.egptr()); - setp(other.pptr(), other.epptr()); - other.ec_ = asio::error_code(); - other.expiry_time_ = max_expiry_time(); - other.init_buffers(); - } - - /// Move-assign a basic_socket_streambuf from another. - basic_socket_streambuf& operator=(basic_socket_streambuf&& other) - { - this->close(); - socket() = std::move(other.socket()); - detail::socket_streambuf_io_context::operator=(other); - ec_ = other.ec_; - expiry_time_ = other.expiry_time_; - get_buffer_.swap(other.get_buffer_); - put_buffer_.swap(other.put_buffer_); - setg(other.eback(), other.gptr(), other.egptr()); - setp(other.pptr(), other.epptr()); - other.ec_ = asio::error_code(); - other.expiry_time_ = max_expiry_time(); - other.put_buffer_.resize(buffer_size); - other.init_buffers(); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor flushes buffered data. - virtual ~basic_socket_streambuf() - { - if (pptr() != pbase()) - overflow(traits_type::eof()); - } - - /// Establish a connection. - /** - * This function establishes a connection to the specified endpoint. - * - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - basic_socket_streambuf* connect(const endpoint_type& endpoint) - { - init_buffers(); - ec_ = asio::error_code(); - this->connect_to_endpoints(&endpoint, &endpoint + 1); - return !ec_ ? this : 0; - } - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection. - /** - * This function automatically establishes a connection based on the supplied - * resolver query parameters. The arguments are used to construct a resolver - * query object. - * - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - template - basic_socket_streambuf* connect(T1 t1, ..., TN tn); -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - template - basic_socket_streambuf* connect(T... x) - { - init_buffers(); - typedef typename Protocol::resolver resolver_type; - resolver_type resolver(socket().get_executor().context()); - connect_to_endpoints(resolver.resolve(x..., ec_)); - return !ec_ ? this : 0; - } -#else - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CONNECT_DEF) -#endif - - /// Close the connection. - /** - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - basic_socket_streambuf* close() - { - sync(); - socket().close(ec_); - if (!ec_) - init_buffers(); - return !ec_ ? this : 0; - } - - /// Get a reference to the underlying socket. - basic_socket& socket() - { - return *this; - } - - /// Get the last error associated with the stream buffer. - /** - * @return An \c error_code corresponding to the last error from the stream - * buffer. - */ - const asio::error_code& error() const - { - return ec_; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use error().) Get the last error associated with the stream - /// buffer. - /** - * @return An \c error_code corresponding to the last error from the stream - * buffer. - */ - const asio::error_code& puberror() const - { - return error(); - } - - /// (Deprecated: Use expiry().) Get the stream buffer's expiry time as an - /// absolute time. - /** - * @return An absolute time value representing the stream buffer's expiry - * time. - */ - time_point expires_at() const - { - return expiry_time_; - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the stream buffer's expiry time as an absolute time. - /** - * @return An absolute time value representing the stream buffer's expiry - * time. - */ - time_point expiry() const - { - return expiry_time_; - } - - /// Set the stream buffer's expiry time as an absolute time. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the stream. - */ - void expires_at(const time_point& expiry_time) - { - expiry_time_ = expiry_time; - } - - /// Set the stream buffer's expiry time relative to now. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the timer. - */ - void expires_after(const duration& expiry_time) - { - expiry_time_ = traits_helper::add(traits_helper::now(), expiry_time); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the stream buffer's expiry time relative - /// to now. - /** - * @return A relative time value representing the stream buffer's expiry time. - */ - duration expires_from_now() const - { - return traits_helper::subtract(expires_at(), traits_helper::now()); - } - - /// (Deprecated: Use expires_after().) Set the stream buffer's expiry time - /// relative to now. - /** - * This function sets the expiry time associated with the stream. Stream - * operations performed after this time (where the operations cannot be - * completed using the internal buffers) will fail with the error - * asio::error::operation_aborted. - * - * @param expiry_time The expiry time to be used for the timer. - */ - void expires_from_now(const duration& expiry_time) - { - expiry_time_ = traits_helper::add(traits_helper::now(), expiry_time); - } -#endif // !defined(ASIO_NO_DEPRECATED) - -protected: - int_type underflow() - { -#if defined(ASIO_WINDOWS_RUNTIME) - ec_ = asio::error::operation_not_supported; - return traits_type::eof(); -#else // defined(ASIO_WINDOWS_RUNTIME) - if (gptr() != egptr()) - return traits_type::eof(); - - for (;;) - { - // Check if we are past the expiry time. - if (traits_helper::less_than(expiry_time_, traits_helper::now())) - { - ec_ = asio::error::timed_out; - return traits_type::eof(); - } - - // Try to complete the operation without blocking. - if (!socket().native_non_blocking()) - socket().native_non_blocking(true, ec_); - detail::buffer_sequence_adapter - bufs(asio::buffer(get_buffer_) + putback_max); - detail::signed_size_type bytes = detail::socket_ops::recv( - socket().native_handle(), bufs.buffers(), bufs.count(), 0, ec_); - - // Check if operation succeeded. - if (bytes > 0) - { - setg(&get_buffer_[0], &get_buffer_[0] + putback_max, - &get_buffer_[0] + putback_max + bytes); - return traits_type::to_int_type(*gptr()); - } - - // Check for EOF. - if (bytes == 0) - { - ec_ = asio::error::eof; - return traits_type::eof(); - } - - // Operation failed. - if (ec_ != asio::error::would_block - && ec_ != asio::error::try_again) - return traits_type::eof(); - - // Wait for socket to become ready. - if (detail::socket_ops::poll_read( - socket().native_handle(), 0, timeout(), ec_) < 0) - return traits_type::eof(); - } -#endif // defined(ASIO_WINDOWS_RUNTIME) - } - - int_type overflow(int_type c) - { -#if defined(ASIO_WINDOWS_RUNTIME) - ec_ = asio::error::operation_not_supported; - return traits_type::eof(); -#else // defined(ASIO_WINDOWS_RUNTIME) - char_type ch = traits_type::to_char_type(c); - - // Determine what needs to be sent. - const_buffer output_buffer; - if (put_buffer_.empty()) - { - if (traits_type::eq_int_type(c, traits_type::eof())) - return traits_type::not_eof(c); // Nothing to do. - output_buffer = asio::buffer(&ch, sizeof(char_type)); - } - else - { - output_buffer = asio::buffer(pbase(), - (pptr() - pbase()) * sizeof(char_type)); - } - - while (output_buffer.size() > 0) - { - // Check if we are past the expiry time. - if (traits_helper::less_than(expiry_time_, traits_helper::now())) - { - ec_ = asio::error::timed_out; - return traits_type::eof(); - } - - // Try to complete the operation without blocking. - if (!socket().native_non_blocking()) - socket().native_non_blocking(true, ec_); - detail::buffer_sequence_adapter< - const_buffer, const_buffer> bufs(output_buffer); - detail::signed_size_type bytes = detail::socket_ops::send( - socket().native_handle(), bufs.buffers(), bufs.count(), 0, ec_); - - // Check if operation succeeded. - if (bytes > 0) - { - output_buffer += static_cast(bytes); - continue; - } - - // Operation failed. - if (ec_ != asio::error::would_block - && ec_ != asio::error::try_again) - return traits_type::eof(); - - // Wait for socket to become ready. - if (detail::socket_ops::poll_write( - socket().native_handle(), 0, timeout(), ec_) < 0) - return traits_type::eof(); - } - - if (!put_buffer_.empty()) - { - setp(&put_buffer_[0], &put_buffer_[0] + put_buffer_.size()); - - // If the new character is eof then our work here is done. - if (traits_type::eq_int_type(c, traits_type::eof())) - return traits_type::not_eof(c); - - // Add the new character to the output buffer. - *pptr() = ch; - pbump(1); - } - - return c; -#endif // defined(ASIO_WINDOWS_RUNTIME) - } - - int sync() - { - return overflow(traits_type::eof()); - } - - std::streambuf* setbuf(char_type* s, std::streamsize n) - { - if (pptr() == pbase() && s == 0 && n == 0) - { - put_buffer_.clear(); - setp(0, 0); - sync(); - return this; - } - - return 0; - } - -private: - // Disallow copying and assignment. - basic_socket_streambuf(const basic_socket_streambuf&) ASIO_DELETED; - basic_socket_streambuf& operator=( - const basic_socket_streambuf&) ASIO_DELETED; - - void init_buffers() - { - setg(&get_buffer_[0], - &get_buffer_[0] + putback_max, - &get_buffer_[0] + putback_max); - - if (put_buffer_.empty()) - setp(0, 0); - else - setp(&put_buffer_[0], &put_buffer_[0] + put_buffer_.size()); - } - - int timeout() const - { - int64_t msec = traits_helper::to_posix_duration( - traits_helper::subtract(expiry_time_, - traits_helper::now())).total_milliseconds(); - if (msec > (std::numeric_limits::max)()) - msec = (std::numeric_limits::max)(); - else if (msec < 0) - msec = 0; - return static_cast(msec); - } - - template - void connect_to_endpoints(const EndpointSequence& endpoints) - { - this->connect_to_endpoints(endpoints.begin(), endpoints.end()); - } - - template - void connect_to_endpoints(EndpointIterator begin, EndpointIterator end) - { -#if defined(ASIO_WINDOWS_RUNTIME) - ec_ = asio::error::operation_not_supported; -#else // defined(ASIO_WINDOWS_RUNTIME) - if (ec_) - return; - - ec_ = asio::error::not_found; - for (EndpointIterator i = begin; i != end; ++i) - { - // Check if we are past the expiry time. - if (traits_helper::less_than(expiry_time_, traits_helper::now())) - { - ec_ = asio::error::timed_out; - return; - } - - // Close and reopen the socket. - typename Protocol::endpoint ep(*i); - socket().close(ec_); - socket().open(ep.protocol(), ec_); - if (ec_) - continue; - - // Try to complete the operation without blocking. - if (!socket().native_non_blocking()) - socket().native_non_blocking(true, ec_); - detail::socket_ops::connect(socket().native_handle(), - ep.data(), ep.size(), ec_); - - // Check if operation succeeded. - if (!ec_) - return; - - // Operation failed. - if (ec_ != asio::error::in_progress - && ec_ != asio::error::would_block) - continue; - - // Wait for socket to become ready. - if (detail::socket_ops::poll_connect( - socket().native_handle(), timeout(), ec_) < 0) - continue; - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (detail::socket_ops::getsockopt(socket().native_handle(), 0, - SOL_SOCKET, SO_ERROR, &connect_error, &connect_error_len, ec_) - == detail::socket_error_retval) - return; - - // Check the result of the connect operation. - ec_ = asio::error_code(connect_error, - asio::error::get_system_category()); - if (!ec_) - return; - } -#endif // defined(ASIO_WINDOWS_RUNTIME) - } - - // Helper function to get the maximum expiry time. - static time_point max_expiry_time() - { -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - return boost::posix_time::pos_infin; -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - return (time_point::max)(); -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // && defined(ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM) - } - - enum { putback_max = 8 }; - asio::error_code ec_; - time_point expiry_time_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T1 -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) -# undef ASIO_PRIVATE_CONNECT_DEF -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_BASIC_SOCKET_STREAMBUF_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_stream_socket.hpp b/Sources/Vendor/asio/include/asio/basic_stream_socket.hpp deleted file mode 100644 index eea8862..0000000 --- a/Sources/Vendor/asio/include/asio/basic_stream_socket.hpp +++ /dev/null @@ -1,921 +0,0 @@ -// -// basic_stream_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_STREAM_SOCKET_HPP -#define ASIO_BASIC_STREAM_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/basic_socket.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/stream_socket_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides stream-oriented socket functionality. -/** - * The basic_stream_socket class template provides asynchronous and blocking - * stream-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template )> -class basic_stream_socket - : public basic_socket -{ -public: - /// The native representation of a socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename basic_socket< - Protocol ASIO_SVC_TARG>::native_handle_type native_handle_type; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_stream_socket without opening it. - /** - * This constructor creates a stream socket without opening it. The socket - * needs to be opened and then connected or accepted before data can be sent - * or received on it. - * - * @param io_context The io_context object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - */ - explicit basic_stream_socket(asio::io_context& io_context) - : basic_socket(io_context) - { - } - - /// Construct and open a basic_stream_socket. - /** - * This constructor creates and opens a stream socket. The socket needs to be - * connected or accepted before data can be sent or received on it. - * - * @param io_context The io_context object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_socket(asio::io_context& io_context, - const protocol_type& protocol) - : basic_socket(io_context, protocol) - { - } - - /// Construct a basic_stream_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a stream socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_context The io_context object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param endpoint An endpoint on the local machine to which the stream - * socket will be bound. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_socket(asio::io_context& io_context, - const endpoint_type& endpoint) - : basic_socket(io_context, endpoint) - { - } - - /// Construct a basic_stream_socket on an existing native socket. - /** - * This constructor creates a stream socket object to hold an existing native - * socket. - * - * @param io_context The io_context object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_socket(asio::io_context& io_context, - const protocol_type& protocol, const native_handle_type& native_socket) - : basic_socket( - io_context, protocol, native_socket) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_stream_socket from another. - /** - * This constructor moves a stream socket from one object to another. - * - * @param other The other basic_stream_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_socket(io_context&) constructor. - */ - basic_stream_socket(basic_stream_socket&& other) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_stream_socket from another. - /** - * This assignment operator moves a stream socket from one object to another. - * - * @param other The other basic_stream_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_socket(io_context&) constructor. - */ - basic_stream_socket& operator=(basic_stream_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } - - /// Move-construct a basic_stream_socket from a socket of another protocol - /// type. - /** - * This constructor moves a stream socket from one object to another. - * - * @param other The other basic_stream_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_socket(io_context&) constructor. - */ - template - basic_stream_socket( - basic_stream_socket&& other, - typename enable_if::value>::type* = 0) - : basic_socket(std::move(other)) - { - } - - /// Move-assign a basic_stream_socket from a socket of another protocol type. - /** - * This assignment operator moves a stream socket from one object to another. - * - * @param other The other basic_stream_socket object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_socket(io_context&) constructor. - */ - template - typename enable_if::value, - basic_stream_socket>::type& operator=( - basic_stream_socket&& other) - { - basic_socket::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the socket. - /** - * This function destroys the socket, cancelling any outstanding asynchronous - * operations associated with the socket as if by calling @c cancel. - */ - ~basic_stream_socket() - { - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws asio::system_error Thrown on failure. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "send"); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. Returns 0 if an error occurred. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().send( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send( - this->get_implementation(), buffers, 0, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send( - this->get_implementation(), buffers, 0, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send( - this->get_implementation(), buffers, flags, - ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send( - this->get_implementation(), buffers, flags, - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - asio::detail::throw_error(ec, "receive"); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. Returns 0 if an error occurred. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the stream - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref async_read function if you need to ensure - * that the requested amount of data is received before the asynchronous - * operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the stream - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref async_read function if you need to ensure - * that the requested amount of data is received before the asynchronous - * operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, flags, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, flags, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Write some data to the socket. - /** - * This function is used to write data to the stream socket. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the socket. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * socket.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().send( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the socket. - /** - * This function is used to write data to the stream socket. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().send(this->get_implementation(), buffers, 0, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the socket. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_send(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(WriteHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_send(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Read some data from the socket. - /** - * This function is used to read data from the stream socket. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * socket.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the socket. - /** - * This function is used to read data from the stream socket. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().receive( - this->get_implementation(), buffers, 0, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_receive(this->get_implementation(), - buffers, 0, ASIO_MOVE_CAST(ReadHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_receive(this->get_implementation(), - buffers, 0, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BASIC_STREAM_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_streambuf.hpp b/Sources/Vendor/asio/include/asio/basic_streambuf.hpp deleted file mode 100644 index 14f85d2..0000000 --- a/Sources/Vendor/asio/include/asio/basic_streambuf.hpp +++ /dev/null @@ -1,452 +0,0 @@ -// -// basic_streambuf.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_STREAMBUF_HPP -#define ASIO_BASIC_STREAMBUF_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_NO_IOSTREAM) - -#include -#include -#include -#include -#include -#include "asio/basic_streambuf_fwd.hpp" -#include "asio/buffer.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/throw_exception.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Automatically resizable buffer class based on std::streambuf. -/** - * The @c basic_streambuf class is derived from @c std::streambuf to associate - * the streambuf's input and output sequences with one or more character - * arrays. These character arrays are internal to the @c basic_streambuf - * object, but direct access to the array elements is provided to permit them - * to be used efficiently with I/O operations. Characters written to the output - * sequence of a @c basic_streambuf object are appended to the input sequence - * of the same object. - * - * The @c basic_streambuf class's public interface is intended to permit the - * following implementation strategies: - * - * @li A single contiguous character array, which is reallocated as necessary - * to accommodate changes in the size of the character sequence. This is the - * implementation approach currently used in Asio. - * - * @li A sequence of one or more character arrays, where each array is of the - * same size. Additional character array objects are appended to the sequence - * to accommodate changes in the size of the character sequence. - * - * @li A sequence of one or more character arrays of varying sizes. Additional - * character array objects are appended to the sequence to accommodate changes - * in the size of the character sequence. - * - * The constructor for basic_streambuf accepts a @c size_t argument specifying - * the maximum of the sum of the sizes of the input sequence and output - * sequence. During the lifetime of the @c basic_streambuf object, the following - * invariant holds: - * @code size() <= max_size()@endcode - * Any member function that would, if successful, cause the invariant to be - * violated shall throw an exception of class @c std::length_error. - * - * The constructor for @c basic_streambuf takes an Allocator argument. A copy - * of this argument is used for any memory allocation performed, by the - * constructor and by all member functions, during the lifetime of each @c - * basic_streambuf object. - * - * @par Examples - * Writing directly from an streambuf to a socket: - * @code - * asio::streambuf b; - * std::ostream os(&b); - * os << "Hello, World!\n"; - * - * // try sending some data in input sequence - * size_t n = sock.send(b.data()); - * - * b.consume(n); // sent data is removed from input sequence - * @endcode - * - * Reading from a socket directly into a streambuf: - * @code - * asio::streambuf b; - * - * // reserve 512 bytes in output sequence - * asio::streambuf::mutable_buffers_type bufs = b.prepare(512); - * - * size_t n = sock.receive(bufs); - * - * // received data is "committed" from output sequence to input sequence - * b.commit(n); - * - * std::istream is(&b); - * std::string s; - * is >> s; - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -template > -#else -template -#endif -class basic_streambuf - : public std::streambuf, - private noncopyable -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The type used to represent the input sequence as a list of buffers. - typedef implementation_defined const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef implementation_defined mutable_buffers_type; -#else - typedef ASIO_CONST_BUFFER const_buffers_type; - typedef ASIO_MUTABLE_BUFFER mutable_buffers_type; -#endif - - /// Construct a basic_streambuf object. - /** - * Constructs a streambuf with the specified maximum size. The initial size - * of the streambuf's input sequence is 0. - */ - explicit basic_streambuf( - std::size_t maximum_size = (std::numeric_limits::max)(), - const Allocator& allocator = Allocator()) - : max_size_(maximum_size), - buffer_(allocator) - { - std::size_t pend = (std::min)(max_size_, buffer_delta); - buffer_.resize((std::max)(pend, 1)); - setg(&buffer_[0], &buffer_[0], &buffer_[0]); - setp(&buffer_[0], &buffer_[0] + pend); - } - - /// Get the size of the input sequence. - /** - * @returns The size of the input sequence. The value is equal to that - * calculated for @c s in the following code: - * @code - * size_t s = 0; - * const_buffers_type bufs = data(); - * const_buffers_type::const_iterator i = bufs.begin(); - * while (i != bufs.end()) - * { - * const_buffer buf(*i++); - * s += buf.size(); - * } - * @endcode - */ - std::size_t size() const ASIO_NOEXCEPT - { - return pptr() - gptr(); - } - - /// Get the maximum size of the basic_streambuf. - /** - * @returns The allowed maximum of the sum of the sizes of the input sequence - * and output sequence. - */ - std::size_t max_size() const ASIO_NOEXCEPT - { - return max_size_; - } - - /// Get the current capacity of the basic_streambuf. - /** - * @returns The current total capacity of the streambuf, i.e. for both the - * input sequence and output sequence. - */ - std::size_t capacity() const ASIO_NOEXCEPT - { - return buffer_.capacity(); - } - - /// Get a list of buffers that represents the input sequence. - /** - * @returns An object of type @c const_buffers_type that satisfies - * ConstBufferSequence requirements, representing all character arrays in the - * input sequence. - * - * @note The returned object is invalidated by any @c basic_streambuf member - * function that modifies the input sequence or output sequence. - */ - const_buffers_type data() const ASIO_NOEXCEPT - { - return asio::buffer(asio::const_buffer(gptr(), - (pptr() - gptr()) * sizeof(char_type))); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - /** - * Ensures that the output sequence can accommodate @c n characters, - * reallocating character array objects as necessary. - * - * @returns An object of type @c mutable_buffers_type that satisfies - * MutableBufferSequence requirements, representing character array objects - * at the start of the output sequence such that the sum of the buffer sizes - * is @c n. - * - * @throws std::length_error If size() + n > max_size(). - * - * @note The returned object is invalidated by any @c basic_streambuf member - * function that modifies the input sequence or output sequence. - */ - mutable_buffers_type prepare(std::size_t n) - { - reserve(n); - return asio::buffer(asio::mutable_buffer( - pptr(), n * sizeof(char_type))); - } - - /// Move characters from the output sequence to the input sequence. - /** - * Appends @c n characters from the start of the output sequence to the input - * sequence. The beginning of the output sequence is advanced by @c n - * characters. - * - * Requires a preceding call prepare(x) where x >= n, and - * no intervening operations that modify the input or output sequence. - * - * @note If @c n is greater than the size of the output sequence, the entire - * output sequence is moved to the input sequence and no error is issued. - */ - void commit(std::size_t n) - { - n = std::min(n, epptr() - pptr()); - pbump(static_cast(n)); - setg(eback(), gptr(), pptr()); - } - - /// Remove characters from the input sequence. - /** - * Removes @c n characters from the beginning of the input sequence. - * - * @note If @c n is greater than the size of the input sequence, the entire - * input sequence is consumed and no error is issued. - */ - void consume(std::size_t n) - { - if (egptr() < pptr()) - setg(&buffer_[0], gptr(), pptr()); - if (gptr() + n > pptr()) - n = pptr() - gptr(); - gbump(static_cast(n)); - } - -protected: - enum { buffer_delta = 128 }; - - /// Override std::streambuf behaviour. - /** - * Behaves according to the specification of @c std::streambuf::underflow(). - */ - int_type underflow() - { - if (gptr() < pptr()) - { - setg(&buffer_[0], gptr(), pptr()); - return traits_type::to_int_type(*gptr()); - } - else - { - return traits_type::eof(); - } - } - - /// Override std::streambuf behaviour. - /** - * Behaves according to the specification of @c std::streambuf::overflow(), - * with the specialisation that @c std::length_error is thrown if appending - * the character to the input sequence would require the condition - * size() > max_size() to be true. - */ - int_type overflow(int_type c) - { - if (!traits_type::eq_int_type(c, traits_type::eof())) - { - if (pptr() == epptr()) - { - std::size_t buffer_size = pptr() - gptr(); - if (buffer_size < max_size_ && max_size_ - buffer_size < buffer_delta) - { - reserve(max_size_ - buffer_size); - } - else - { - reserve(buffer_delta); - } - } - - *pptr() = traits_type::to_char_type(c); - pbump(1); - return c; - } - - return traits_type::not_eof(c); - } - - void reserve(std::size_t n) - { - // Get current stream positions as offsets. - std::size_t gnext = gptr() - &buffer_[0]; - std::size_t pnext = pptr() - &buffer_[0]; - std::size_t pend = epptr() - &buffer_[0]; - - // Check if there is already enough space in the put area. - if (n <= pend - pnext) - { - return; - } - - // Shift existing contents of get area to start of buffer. - if (gnext > 0) - { - pnext -= gnext; - std::memmove(&buffer_[0], &buffer_[0] + gnext, pnext); - } - - // Ensure buffer is large enough to hold at least the specified size. - if (n > pend - pnext) - { - if (n <= max_size_ && pnext <= max_size_ - n) - { - pend = pnext + n; - buffer_.resize((std::max)(pend, 1)); - } - else - { - std::length_error ex("asio::streambuf too long"); - asio::detail::throw_exception(ex); - } - } - - // Update stream positions. - setg(&buffer_[0], &buffer_[0], &buffer_[0] + pnext); - setp(&buffer_[0] + pnext, &buffer_[0] + pend); - } - -private: - std::size_t max_size_; - std::vector buffer_; - - // Helper function to get the preferred size for reading data. - friend std::size_t read_size_helper( - basic_streambuf& sb, std::size_t max_size) - { - return std::min( - std::max(512, sb.buffer_.capacity() - sb.size()), - std::min(max_size, sb.max_size() - sb.size())); - } -}; - -/// Adapts basic_streambuf to the dynamic buffer sequence type requirements. -#if defined(GENERATING_DOCUMENTATION) -template > -#else -template -#endif -class basic_streambuf_ref -{ -public: - /// The type used to represent the input sequence as a list of buffers. - typedef typename basic_streambuf::const_buffers_type - const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef typename basic_streambuf::mutable_buffers_type - mutable_buffers_type; - - /// Construct a basic_streambuf_ref for the given basic_streambuf object. - explicit basic_streambuf_ref(basic_streambuf& sb) - : sb_(sb) - { - } - - /// Copy construct a basic_streambuf_ref. - basic_streambuf_ref(const basic_streambuf_ref& other) ASIO_NOEXCEPT - : sb_(other.sb_) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move construct a basic_streambuf_ref. - basic_streambuf_ref(basic_streambuf_ref&& other) ASIO_NOEXCEPT - : sb_(other.sb_) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get the size of the input sequence. - std::size_t size() const ASIO_NOEXCEPT - { - return sb_.size(); - } - - /// Get the maximum size of the dynamic buffer. - std::size_t max_size() const ASIO_NOEXCEPT - { - return sb_.max_size(); - } - - /// Get the current capacity of the dynamic buffer. - std::size_t capacity() const ASIO_NOEXCEPT - { - return sb_.capacity(); - } - - /// Get a list of buffers that represents the input sequence. - const_buffers_type data() const ASIO_NOEXCEPT - { - return sb_.data(); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - mutable_buffers_type prepare(std::size_t n) - { - return sb_.prepare(n); - } - - /// Move bytes from the output sequence to the input sequence. - void commit(std::size_t n) - { - return sb_.commit(n); - } - - /// Remove characters from the input sequence. - void consume(std::size_t n) - { - return sb_.consume(n); - } - -private: - basic_streambuf& sb_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_BASIC_STREAMBUF_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_streambuf_fwd.hpp b/Sources/Vendor/asio/include/asio/basic_streambuf_fwd.hpp deleted file mode 100644 index ed54fe9..0000000 --- a/Sources/Vendor/asio/include/asio/basic_streambuf_fwd.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// basic_streambuf_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_STREAMBUF_FWD_HPP -#define ASIO_BASIC_STREAMBUF_FWD_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_NO_IOSTREAM) - -#include - -namespace asio { - -template > -class basic_streambuf; - -template > -class basic_streambuf_ref; - -} // namespace asio - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_BASIC_STREAMBUF_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/basic_waitable_timer.hpp b/Sources/Vendor/asio/include/asio/basic_waitable_timer.hpp deleted file mode 100644 index 22b85a6..0000000 --- a/Sources/Vendor/asio/include/asio/basic_waitable_timer.hpp +++ /dev/null @@ -1,705 +0,0 @@ -// -// basic_waitable_timer.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BASIC_WAITABLE_TIMER_HPP -#define ASIO_BASIC_WAITABLE_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/wait_traits.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/waitable_timer_service.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/detail/chrono_time_traits.hpp" -# include "asio/detail/deadline_timer_service.hpp" -# define ASIO_SVC_T \ - detail::deadline_timer_service< \ - detail::chrono_time_traits > -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if !defined(ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) -#define ASIO_BASIC_WAITABLE_TIMER_FWD_DECL - -// Forward declaration with defaulted arguments. -template - ASIO_SVC_TPARAM_DEF2(= waitable_timer_service)> -class basic_waitable_timer; - -#endif // !defined(ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) - -/// Provides waitable timer functionality. -/** - * The basic_waitable_timer class template provides the ability to perform a - * blocking or asynchronous wait for a timer to expire. - * - * A waitable timer is always in one of two states: "expired" or "not expired". - * If the wait() or async_wait() function is called on an expired timer, the - * wait operation will complete immediately. - * - * Most applications will use one of the asio::steady_timer, - * asio::system_timer or asio::high_resolution_timer typedefs. - * - * @note This waitable timer functionality is for use with the C++11 standard - * library's @c <chrono> facility, or with the Boost.Chrono library. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Examples - * Performing a blocking wait (C++11): - * @code - * // Construct a timer without setting an expiry time. - * asio::steady_timer timer(io_context); - * - * // Set an expiry time relative to now. - * timer.expires_after(std::chrono::seconds(5)); - * - * // Wait for the timer to expire. - * timer.wait(); - * @endcode - * - * @par - * Performing an asynchronous wait (C++11): - * @code - * void handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Timer expired. - * } - * } - * - * ... - * - * // Construct a timer with an absolute expiry time. - * asio::steady_timer timer(io_context, - * std::chrono::steady_clock::now() + std::chrono::seconds(60)); - * - * // Start an asynchronous wait. - * timer.async_wait(handler); - * @endcode - * - * @par Changing an active waitable timer's expiry time - * - * Changing the expiry time of a timer while there are pending asynchronous - * waits causes those wait operations to be cancelled. To ensure that the action - * associated with the timer is performed only once, use something like this: - * used: - * - * @code - * void on_some_event() - * { - * if (my_timer.expires_after(seconds(5)) > 0) - * { - * // We managed to cancel the timer. Start new asynchronous wait. - * my_timer.async_wait(on_timeout); - * } - * else - * { - * // Too late, timer has already expired! - * } - * } - * - * void on_timeout(const asio::error_code& e) - * { - * if (e != asio::error::operation_aborted) - * { - * // Timer was not cancelled, take necessary action. - * } - * } - * @endcode - * - * @li The asio::basic_waitable_timer::expires_after() function - * cancels any pending asynchronous waits, and returns the number of - * asynchronous waits that were cancelled. If it returns 0 then you were too - * late and the wait handler has already been executed, or will soon be - * executed. If it returns 1 then the wait handler was successfully cancelled. - * - * @li If a wait handler is cancelled, the asio::error_code passed to - * it contains the value asio::error::operation_aborted. - */ -template -class basic_waitable_timer - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The clock type. - typedef Clock clock_type; - - /// The duration type of the clock. - typedef typename clock_type::duration duration; - - /// The time point type of the clock. - typedef typename clock_type::time_point time_point; - - /// The wait traits type. - typedef WaitTraits traits_type; - - /// Constructor. - /** - * This constructor creates a timer without setting an expiry time. The - * expires_at() or expires_after() functions must be called to set an expiry - * time before the timer can be waited on. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - */ - explicit basic_waitable_timer(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Constructor to set a particular expiry time as an absolute time. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, expressed - * as an absolute time. - */ - basic_waitable_timer(asio::io_context& io_context, - const time_point& expiry_time) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().expires_at(this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_at"); - } - - /// Constructor to set a particular expiry time relative to now. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_context The io_context object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, relative to - * now. - */ - basic_waitable_timer(asio::io_context& io_context, - const duration& expiry_time) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().expires_after( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_after"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_waitable_timer from another. - /** - * This constructor moves a timer from one object to another. - * - * @param other The other basic_waitable_timer object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_waitable_timer(io_context&) constructor. - */ - basic_waitable_timer(basic_waitable_timer&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_waitable_timer from another. - /** - * This assignment operator moves a timer from one object to another. Cancels - * any outstanding asynchronous operations associated with the target object. - * - * @param other The other basic_waitable_timer object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_waitable_timer(io_context&) constructor. - */ - basic_waitable_timer& operator=(basic_waitable_timer&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the timer. - /** - * This function destroys the timer, cancelling any outstanding asynchronous - * wait operations associated with the timer as if by calling @c cancel. - */ - ~basic_waitable_timer() - { - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel() - { - asio::error_code ec; - std::size_t s = this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - return s; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Cancel any asynchronous - /// operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel(asio::error_code& ec) - { - return this->get_service().cancel(this->get_implementation(), ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Cancels one asynchronous operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one() - { - asio::error_code ec; - std::size_t s = this->get_service().cancel_one( - this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel_one"); - return s; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Cancels one asynchronous - /// operation that is waiting on the timer. - /** - * This function forces the completion of one pending asynchronous wait - * operation against the timer. Handlers are cancelled in FIFO order. The - * handler for the cancelled operation will be invoked with the - * asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. That is, - * either 0 or 1. - * - * @note If the timer has already expired when cancel_one() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t cancel_one(asio::error_code& ec) - { - return this->get_service().cancel_one(this->get_implementation(), ec); - } - - /// (Deprecated: Use expiry().) Get the timer's expiry time as an absolute - /// time. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - time_point expires_at() const - { - return this->get_service().expires_at(this->get_implementation()); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the timer's expiry time as an absolute time. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - time_point expiry() const - { - return this->get_service().expiry(this->get_implementation()); - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_point& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_at( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_at"); - return s; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Set the timer's expiry time as - /// an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_at() is called, then - * the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_at(const time_point& expiry_time, - asio::error_code& ec) - { - return this->get_service().expires_at( - this->get_implementation(), expiry_time, ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_after() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_after(const duration& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_after( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_after"); - return s; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the timer's expiry time relative to now. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - duration expires_from_now() const - { - return this->get_service().expires_from_now(this->get_implementation()); - } - - /// (Deprecated: Use expires_after().) Set the timer's expiry time relative - /// to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws asio::system_error Thrown on failure. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration& expiry_time) - { - asio::error_code ec; - std::size_t s = this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - asio::detail::throw_error(ec, "expires_from_now"); - return s; - } - - /// (Deprecated: Use expires_after().) Set the timer's expiry time relative - /// to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - * - * @note If the timer has already expired when expires_from_now() is called, - * then the handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - std::size_t expires_from_now(const duration& expiry_time, - asio::error_code& ec) - { - return this->get_service().expires_from_now( - this->get_implementation(), expiry_time, ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @throws asio::system_error Thrown on failure. - */ - void wait() - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), ec); - } - - /// Start an asynchronous wait on the timer. - /** - * This function may be used to initiate an asynchronous wait against the - * timer. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li The timer has expired. - * - * @li The timer was cancelled, in which case the handler is passed the error - * code asio::error::operation_aborted. - * - * @param handler The handler to be called when the timer expires. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_wait(this->get_implementation(), - ASIO_MOVE_CAST(WaitHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - -private: - // Disallow copying and assignment. - basic_waitable_timer(const basic_waitable_timer&) ASIO_DELETED; - basic_waitable_timer& operator=( - const basic_waitable_timer&) ASIO_DELETED; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_BASIC_WAITABLE_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/bind_executor.hpp b/Sources/Vendor/asio/include/asio/bind_executor.hpp deleted file mode 100644 index 9e2094b..0000000 --- a/Sources/Vendor/asio/include/asio/bind_executor.hpp +++ /dev/null @@ -1,611 +0,0 @@ -// -// bind_executor.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BIND_EXECUTOR_HPP -#define ASIO_BIND_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/detail/type_traits.hpp" -#include "asio/detail/variadic_templates.hpp" -#include "asio/associated_executor.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/async_result.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" -#include "asio/uses_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct executor_binder_check -{ - typedef void type; -}; - -// Helper to automatically define nested typedef result_type. - -template -struct executor_binder_result_type -{ -protected: - typedef void result_type_or_void; -}; - -template -struct executor_binder_result_type::type> -{ - typedef typename T::result_type result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -template -struct executor_binder_result_type -{ - typedef R result_type; -protected: - typedef result_type result_type_or_void; -}; - -// Helper to automatically define nested typedef argument_type. - -template -struct executor_binder_argument_type {}; - -template -struct executor_binder_argument_type::type> -{ - typedef typename T::argument_type argument_type; -}; - -template -struct executor_binder_argument_type -{ - typedef A1 argument_type; -}; - -template -struct executor_binder_argument_type -{ - typedef A1 argument_type; -}; - -// Helper to automatically define nested typedefs first_argument_type and -// second_argument_type. - -template -struct executor_binder_argument_types {}; - -template -struct executor_binder_argument_types::type> -{ - typedef typename T::first_argument_type first_argument_type; - typedef typename T::second_argument_type second_argument_type; -}; - -template -struct executor_binder_argument_type -{ - typedef A1 first_argument_type; - typedef A2 second_argument_type; -}; - -template -struct executor_binder_argument_type -{ - typedef A1 first_argument_type; - typedef A2 second_argument_type; -}; - -// Helper to: -// - Apply the empty base optimisation to the executor. -// - Perform uses_executor construction of the target type, if required. - -template -class executor_binder_base; - -template -class executor_binder_base - : protected Executor -{ -protected: - template - executor_binder_base(ASIO_MOVE_ARG(E) e, ASIO_MOVE_ARG(U) u) - : executor_(ASIO_MOVE_CAST(E)(e)), - target_(executor_arg_t(), executor_, ASIO_MOVE_CAST(U)(u)) - { - } - - Executor executor_; - T target_; -}; - -template -class executor_binder_base -{ -protected: - template - executor_binder_base(ASIO_MOVE_ARG(E) e, ASIO_MOVE_ARG(U) u) - : executor_(ASIO_MOVE_CAST(E)(e)), - target_(ASIO_MOVE_CAST(U)(u)) - { - } - - Executor executor_; - T target_; -}; - -// Helper to enable SFINAE on zero-argument operator() below. - -template -struct executor_binder_result_of0 -{ - typedef void type; -}; - -template -struct executor_binder_result_of0::type>::type> -{ - typedef typename result_of::type type; -}; - -} // namespace detail - -/// A call wrapper type to bind an executor of type @c Executor to an object of -/// type @c T. -template -class executor_binder -#if !defined(GENERATING_DOCUMENTATION) - : public detail::executor_binder_result_type, - public detail::executor_binder_argument_type, - public detail::executor_binder_argument_types, - private detail::executor_binder_base< - T, Executor, uses_executor::value> -#endif // !defined(GENERATING_DOCUMENTATION) -{ -public: - /// The type of the target object. - typedef T target_type; - - /// The type of the associated executor. - typedef Executor executor_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The return type if a function. - /** - * The type of @c result_type is based on the type @c T of the wrapper's - * target object: - * - * @li if @c T is a pointer to function type, @c result_type is a synonym for - * the return type of @c T; - * - * @li if @c T is a class type with a member type @c result_type, then @c - * result_type is a synonym for @c T::result_type; - * - * @li otherwise @c result_type is not defined. - */ - typedef see_below result_type; - - /// The type of the function's argument. - /** - * The type of @c argument_type is based on the type @c T of the wrapper's - * target object: - * - * @li if @c T is a pointer to a function type accepting a single argument, - * @c argument_type is a synonym for the return type of @c T; - * - * @li if @c T is a class type with a member type @c argument_type, then @c - * argument_type is a synonym for @c T::argument_type; - * - * @li otherwise @c argument_type is not defined. - */ - typedef see_below argument_type; - - /// The type of the function's first argument. - /** - * The type of @c first_argument_type is based on the type @c T of the - * wrapper's target object: - * - * @li if @c T is a pointer to a function type accepting two arguments, @c - * first_argument_type is a synonym for the return type of @c T; - * - * @li if @c T is a class type with a member type @c first_argument_type, - * then @c first_argument_type is a synonym for @c T::first_argument_type; - * - * @li otherwise @c first_argument_type is not defined. - */ - typedef see_below first_argument_type; - - /// The type of the function's second argument. - /** - * The type of @c second_argument_type is based on the type @c T of the - * wrapper's target object: - * - * @li if @c T is a pointer to a function type accepting two arguments, @c - * second_argument_type is a synonym for the return type of @c T; - * - * @li if @c T is a class type with a member type @c first_argument_type, - * then @c second_argument_type is a synonym for @c T::second_argument_type; - * - * @li otherwise @c second_argument_type is not defined. - */ - typedef see_below second_argument_type; -#endif // defined(GENERATING_DOCUMENTATION) - - /// Construct an executor wrapper for the specified object. - /** - * This constructor is only valid if the type @c T is constructible from type - * @c U. - */ - template - executor_binder(executor_arg_t, const executor_type& e, - ASIO_MOVE_ARG(U) u) - : base_type(e, ASIO_MOVE_CAST(U)(u)) - { - } - - /// Copy constructor. - executor_binder(const executor_binder& other) - : base_type(other.get_executor(), other.get()) - { - } - - /// Construct a copy, but specify a different executor. - executor_binder(executor_arg_t, const executor_type& e, - const executor_binder& other) - : base_type(e, other.get()) - { - } - - /// Construct a copy of a different executor wrapper type. - /** - * This constructor is only valid if the @c Executor type is constructible - * from type @c OtherExecutor, and the type @c T is constructible from type - * @c U. - */ - template - executor_binder(const executor_binder& other) - : base_type(other.get_executor(), other.get()) - { - } - - /// Construct a copy of a different executor wrapper type, but specify a - /// different executor. - /** - * This constructor is only valid if the type @c T is constructible from type - * @c U. - */ - template - executor_binder(executor_arg_t, const executor_type& e, - const executor_binder& other) - : base_type(e, other.get()) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Move constructor. - executor_binder(executor_binder&& other) - : base_type(ASIO_MOVE_CAST(executor_type)(other.get_executor()), - ASIO_MOVE_CAST(T)(other.get())) - { - } - - /// Move construct the target object, but specify a different executor. - executor_binder(executor_arg_t, const executor_type& e, - executor_binder&& other) - : base_type(e, ASIO_MOVE_CAST(T)(other.get())) - { - } - - /// Move construct from a different executor wrapper type. - template - executor_binder(executor_binder&& other) - : base_type(ASIO_MOVE_CAST(OtherExecutor)(other.get_executor()), - ASIO_MOVE_CAST(U)(other.get())) - { - } - - /// Move construct from a different executor wrapper type, but specify a - /// different executor. - template - executor_binder(executor_arg_t, const executor_type& e, - executor_binder&& other) - : base_type(e, ASIO_MOVE_CAST(U)(other.get())) - { - } - -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - ~executor_binder() - { - } - - /// Obtain a reference to the target object. - target_type& get() ASIO_NOEXCEPT - { - return this->target_; - } - - /// Obtain a reference to the target object. - const target_type& get() const ASIO_NOEXCEPT - { - return this->target_; - } - - /// Obtain the associated executor. - executor_type get_executor() const ASIO_NOEXCEPT - { - return this->executor_; - } - -#if defined(GENERATING_DOCUMENTATION) - - template auto operator()(Args&& ...); - template auto operator()(Args&& ...) const; - -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - - /// Forwarding function call operator. - template - typename result_of::type operator()( - ASIO_MOVE_ARG(Args)... args) - { - return this->target_(ASIO_MOVE_CAST(Args)(args)...); - } - - /// Forwarding function call operator. - template - typename result_of::type operator()( - ASIO_MOVE_ARG(Args)... args) const - { - return this->target_(ASIO_MOVE_CAST(Args)(args)...); - } - -#elif defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - - typename detail::executor_binder_result_of0::type operator()() - { - return this->target_(); - } - - typename detail::executor_binder_result_of0::type operator()() const - { - return this->target_(); - } - -#define ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF(n) \ - template \ - typename result_of::type operator()( \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return this->target_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - typename result_of::type operator()( \ - ASIO_VARIADIC_MOVE_PARAMS(n)) const \ - { \ - return this->target_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF) -#undef ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF - -#else // defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - - typedef typename detail::executor_binder_result_type::result_type_or_void - result_type_or_void; - - result_type_or_void operator()() - { - return this->target_(); - } - - result_type_or_void operator()() const - { - return this->target_(); - } - -#define ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF(n) \ - template \ - result_type_or_void operator()( \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - return this->target_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - result_type_or_void operator()( \ - ASIO_VARIADIC_MOVE_PARAMS(n)) const \ - { \ - return this->target_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF) -#undef ASIO_PRIVATE_BIND_EXECUTOR_CALL_DEF - -#endif // defined(ASIO_HAS_STD_TYPE_TRAITS) && !defined(_MSC_VER) - -private: - typedef detail::executor_binder_base::value> base_type; -}; - -/// Associate an object of type @c T with an executor of type @c Executor. -template -inline executor_binder::type, Executor> -bind_executor(const Executor& ex, ASIO_MOVE_ARG(T) t, - typename enable_if::value>::type* = 0) -{ - return executor_binder::type, Executor>( - executor_arg_t(), ex, ASIO_MOVE_CAST(T)(t)); -} - -/// Associate an object of type @c T with an execution context's executor. -template -inline executor_binder::type, - typename ExecutionContext::executor_type> -bind_executor(ExecutionContext& ctx, ASIO_MOVE_ARG(T) t, - typename enable_if::value>::type* = 0) -{ - return executor_binder::type, - typename ExecutionContext::executor_type>( - executor_arg_t(), ctx.get_executor(), ASIO_MOVE_CAST(T)(t)); -} - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct uses_executor, Executor> - : true_type {}; - -template -class async_result, Signature> -{ -public: - typedef executor_binder< - typename async_result::completion_handler_type, Executor> - completion_handler_type; - - typedef typename async_result::return_type return_type; - - explicit async_result(executor_binder& b) - : target_(b.get()) - { - } - - return_type get() - { - return target_.get(); - } - -private: - async_result(const async_result&) ASIO_DELETED; - async_result& operator=(const async_result&) ASIO_DELETED; - - async_result target_; -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, Signature> -{ - typedef executor_binder< - typename handler_type::type, Executor> type; -}; - -template -class async_result > -{ -public: - typedef typename async_result::type type; - - explicit async_result(executor_binder& b) - : target_(b.get()) - { - } - - type get() - { - return target_.get(); - } - -private: - async_result target_; -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const executor_binder& b, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(b.get(), a); - } -}; - -template -struct associated_executor, Executor1> -{ - typedef Executor type; - - static type get(const executor_binder& b, - const Executor1& = Executor1()) ASIO_NOEXCEPT - { - return b.get_executor(); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BIND_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/buffer.hpp b/Sources/Vendor/asio/include/asio/buffer.hpp deleted file mode 100644 index 56a1488..0000000 --- a/Sources/Vendor/asio/include/asio/buffer.hpp +++ /dev/null @@ -1,2169 +0,0 @@ -// -// buffer.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BUFFER_HPP -#define ASIO_BUFFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include -#include -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/detail/type_traits.hpp" - -#if defined(ASIO_MSVC) && (ASIO_MSVC >= 1700) -# if defined(_HAS_ITERATOR_DEBUGGING) && (_HAS_ITERATOR_DEBUGGING != 0) -# if !defined(ASIO_DISABLE_BUFFER_DEBUGGING) -# define ASIO_ENABLE_BUFFER_DEBUGGING -# endif // !defined(ASIO_DISABLE_BUFFER_DEBUGGING) -# endif // defined(_HAS_ITERATOR_DEBUGGING) -#endif // defined(ASIO_MSVC) && (ASIO_MSVC >= 1700) - -#if defined(__GNUC__) -# if defined(_GLIBCXX_DEBUG) -# if !defined(ASIO_DISABLE_BUFFER_DEBUGGING) -# define ASIO_ENABLE_BUFFER_DEBUGGING -# endif // !defined(ASIO_DISABLE_BUFFER_DEBUGGING) -# endif // defined(_GLIBCXX_DEBUG) -#endif // defined(__GNUC__) - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) -# include "asio/detail/functional.hpp" -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - -#if defined(ASIO_HAS_BOOST_WORKAROUND) -# include -# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) -# define ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND -# endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) - // || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) -#endif // defined(ASIO_HAS_BOOST_WORKAROUND) - -#if defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) -# include "asio/detail/type_traits.hpp" -#endif // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class mutable_buffer; -class const_buffer; - -/// Holds a buffer that can be modified. -/** - * The mutable_buffer class provides a safe representation of a buffer that can - * be modified. It does not own the underlying data, and so is cheap to copy or - * assign. - * - * @par Accessing Buffer Contents - * - * The contents of a buffer may be accessed using the @c data() and @c size() - * member functions: - * - * @code asio::mutable_buffer b1 = ...; - * std::size_t s1 = b1.size(); - * unsigned char* p1 = static_cast(b1.data()); - * @endcode - * - * The @c data() member function permits violations of type safety, so uses of - * it in application code should be carefully considered. - */ -class mutable_buffer -{ -public: - /// Construct an empty buffer. - mutable_buffer() ASIO_NOEXCEPT - : data_(0), - size_(0) - { - } - - /// Construct a buffer to represent a given memory range. - mutable_buffer(void* data, std::size_t size) ASIO_NOEXCEPT - : data_(data), - size_(size) - { - } - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - mutable_buffer(void* data, std::size_t size, - asio::detail::function debug_check) - : data_(data), - size_(size), - debug_check_(debug_check) - { - } - - const asio::detail::function& get_debug_check() const - { - return debug_check_; - } -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - - /// Get a pointer to the beginning of the memory range. - void* data() const ASIO_NOEXCEPT - { -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - if (size_ && debug_check_) - debug_check_(); -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - return data_; - } - - /// Get the size of the memory range. - std::size_t size() const ASIO_NOEXCEPT - { - return size_; - } - - /// Move the start of the buffer by the specified number of bytes. - mutable_buffer& operator+=(std::size_t n) ASIO_NOEXCEPT - { - std::size_t offset = n < size_ ? n : size_; - data_ = static_cast(data_) + offset; - size_ -= offset; - return *this; - } - -private: - void* data_; - std::size_t size_; - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - asio::detail::function debug_check_; -#endif // ASIO_ENABLE_BUFFER_DEBUGGING -}; - -#if !defined(ASIO_NO_DEPRECATED) - -/// (Deprecated: Use mutable_buffer.) Adapts a single modifiable buffer so that -/// it meets the requirements of the MutableBufferSequence concept. -class mutable_buffers_1 - : public mutable_buffer -{ -public: - /// The type for each element in the list of buffers. - typedef mutable_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const mutable_buffer* const_iterator; - - /// Construct to represent a given memory range. - mutable_buffers_1(void* data, std::size_t size) ASIO_NOEXCEPT - : mutable_buffer(data, size) - { - } - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - mutable_buffers_1(void* data, std::size_t size, - asio::detail::function debug_check) - : mutable_buffer(data, size, debug_check) - { - } -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - - /// Construct to represent a single modifiable buffer. - explicit mutable_buffers_1(const mutable_buffer& b) ASIO_NOEXCEPT - : mutable_buffer(b) - { - } - - /// Get a random-access iterator to the first element. - const_iterator begin() const ASIO_NOEXCEPT - { - return this; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const ASIO_NOEXCEPT - { - return begin() + 1; - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Holds a buffer that cannot be modified. -/** - * The const_buffer class provides a safe representation of a buffer that cannot - * be modified. It does not own the underlying data, and so is cheap to copy or - * assign. - * - * @par Accessing Buffer Contents - * - * The contents of a buffer may be accessed using the @c data() and @c size() - * member functions: - * - * @code asio::const_buffer b1 = ...; - * std::size_t s1 = b1.size(); - * const unsigned char* p1 = static_cast(b1.data()); - * @endcode - * - * The @c data() member function permits violations of type safety, so uses of - * it in application code should be carefully considered. - */ -class const_buffer -{ -public: - /// Construct an empty buffer. - const_buffer() ASIO_NOEXCEPT - : data_(0), - size_(0) - { - } - - /// Construct a buffer to represent a given memory range. - const_buffer(const void* data, std::size_t size) ASIO_NOEXCEPT - : data_(data), - size_(size) - { - } - - /// Construct a non-modifiable buffer from a modifiable one. - const_buffer(const mutable_buffer& b) ASIO_NOEXCEPT - : data_(b.data()), - size_(b.size()) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , debug_check_(b.get_debug_check()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - { - } - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - const_buffer(const void* data, std::size_t size, - asio::detail::function debug_check) - : data_(data), - size_(size), - debug_check_(debug_check) - { - } - - const asio::detail::function& get_debug_check() const - { - return debug_check_; - } -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - - /// Get a pointer to the beginning of the memory range. - const void* data() const ASIO_NOEXCEPT - { -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - if (size_ && debug_check_) - debug_check_(); -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - return data_; - } - - /// Get the size of the memory range. - std::size_t size() const ASIO_NOEXCEPT - { - return size_; - } - - /// Move the start of the buffer by the specified number of bytes. - const_buffer& operator+=(std::size_t n) ASIO_NOEXCEPT - { - std::size_t offset = n < size_ ? n : size_; - data_ = static_cast(data_) + offset; - size_ -= offset; - return *this; - } - -private: - const void* data_; - std::size_t size_; - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - asio::detail::function debug_check_; -#endif // ASIO_ENABLE_BUFFER_DEBUGGING -}; - -#if !defined(ASIO_NO_DEPRECATED) - -/// (Deprecated: Use const_buffer.) Adapts a single non-modifiable buffer so -/// that it meets the requirements of the ConstBufferSequence concept. -class const_buffers_1 - : public const_buffer -{ -public: - /// The type for each element in the list of buffers. - typedef const_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const const_buffer* const_iterator; - - /// Construct to represent a given memory range. - const_buffers_1(const void* data, std::size_t size) ASIO_NOEXCEPT - : const_buffer(data, size) - { - } - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - const_buffers_1(const void* data, std::size_t size, - asio::detail::function debug_check) - : const_buffer(data, size, debug_check) - { - } -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - - /// Construct to represent a single non-modifiable buffer. - explicit const_buffers_1(const const_buffer& b) ASIO_NOEXCEPT - : const_buffer(b) - { - } - - /// Get a random-access iterator to the first element. - const_iterator begin() const ASIO_NOEXCEPT - { - return this; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const ASIO_NOEXCEPT - { - return begin() + 1; - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -/// (Deprecated: Use the socket/descriptor wait() and async_wait() member -/// functions.) An implementation of both the ConstBufferSequence and -/// MutableBufferSequence concepts to represent a null buffer sequence. -class null_buffers -{ -public: - /// The type for each element in the list of buffers. - typedef mutable_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const mutable_buffer* const_iterator; - - /// Get a random-access iterator to the first element. - const_iterator begin() const ASIO_NOEXCEPT - { - return &buf_; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const ASIO_NOEXCEPT - { - return &buf_; - } - -private: - mutable_buffer buf_; -}; - -/** @defgroup buffer_sequence_begin asio::buffer_sequence_begin - * - * @brief The asio::buffer_sequence_begin function returns an iterator - * pointing to the first element in a buffer sequence. - */ -/*@{*/ - -/// Get an iterator to the first element in a buffer sequence. -inline const mutable_buffer* buffer_sequence_begin(const mutable_buffer& b) -{ - return &b; -} - -/// Get an iterator to the first element in a buffer sequence. -inline const const_buffer* buffer_sequence_begin(const const_buffer& b) -{ - return &b; -} - -#if defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -/// Get an iterator to the first element in a buffer sequence. -template -inline auto buffer_sequence_begin(C& c) -> decltype(c.begin()) -{ - return c.begin(); -} - -/// Get an iterator to the first element in a buffer sequence. -template -inline auto buffer_sequence_begin(const C& c) -> decltype(c.begin()) -{ - return c.begin(); -} - -#else // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -template -inline typename C::iterator buffer_sequence_begin(C& c) -{ - return c.begin(); -} - -template -inline typename C::const_iterator buffer_sequence_begin(const C& c) -{ - return c.begin(); -} - -#endif // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -/*@}*/ - -/** @defgroup buffer_sequence_end asio::buffer_sequence_end - * - * @brief The asio::buffer_sequence_end function returns an iterator - * pointing to one past the end element in a buffer sequence. - */ -/*@{*/ - -/// Get an iterator to one past the end element in a buffer sequence. -inline const mutable_buffer* buffer_sequence_end(const mutable_buffer& b) -{ - return &b + 1; -} - -/// Get an iterator to one past the end element in a buffer sequence. -inline const const_buffer* buffer_sequence_end(const const_buffer& b) -{ - return &b + 1; -} - -#if defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -/// Get an iterator to one past the end element in a buffer sequence. -template -inline auto buffer_sequence_end(C& c) -> decltype(c.end()) -{ - return c.end(); -} - -/// Get an iterator to one past the end element in a buffer sequence. -template -inline auto buffer_sequence_end(const C& c) -> decltype(c.end()) -{ - return c.end(); -} - -#else // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -template -inline typename C::iterator buffer_sequence_end(C& c) -{ - return c.end(); -} - -template -inline typename C::const_iterator buffer_sequence_end(const C& c) -{ - return c.end(); -} - -#endif // defined(ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION) - -/*@}*/ - -namespace detail { - -// Tag types used to select appropriately optimised overloads. -struct one_buffer {}; -struct multiple_buffers {}; - -// Helper trait to detect single buffers. -template -struct buffer_sequence_cardinality : - conditional< - is_same::value -#if !defined(ASIO_NO_DEPRECATED) - || is_same::value - || is_same::value -#endif // !defined(ASIO_NO_DEPRECATED) - || is_same::value, - one_buffer, multiple_buffers>::type {}; - -template -inline std::size_t buffer_size(one_buffer, - Iterator begin, Iterator) ASIO_NOEXCEPT -{ - return const_buffer(*begin).size(); -} - -template -inline std::size_t buffer_size(multiple_buffers, - Iterator begin, Iterator end) ASIO_NOEXCEPT -{ - std::size_t total_buffer_size = 0; - - Iterator iter = begin; - for (; iter != end; ++iter) - { - const_buffer b(*iter); - total_buffer_size += b.size(); - } - - return total_buffer_size; -} - -} // namespace detail - -/// Get the total number of bytes in a buffer sequence. -/** - * The @c buffer_size function determines the total size of all buffers in the - * buffer sequence, as if computed as follows: - * - * @code size_t total_size = 0; - * auto i = asio::buffer_sequence_begin(buffers); - * auto end = asio::buffer_sequence_end(buffers); - * for (; i != end; ++i) - * { - * const_buffer b(*i); - * total_size += b.size(); - * } - * return total_size; @endcode - * - * The @c BufferSequence template parameter may meet either of the @c - * ConstBufferSequence or @c MutableBufferSequence type requirements. - */ -template -inline std::size_t buffer_size(const BufferSequence& b) ASIO_NOEXCEPT -{ - return detail::buffer_size( - detail::buffer_sequence_cardinality(), - asio::buffer_sequence_begin(b), - asio::buffer_sequence_end(b)); -} - -#if !defined(ASIO_NO_DEPRECATED) - -/** @defgroup buffer_cast asio::buffer_cast - * - * @brief (Deprecated: Use the @c data() member function.) The - * asio::buffer_cast function is used to obtain a pointer to the - * underlying memory region associated with a buffer. - * - * @par Examples: - * - * To access the memory of a non-modifiable buffer, use: - * @code asio::const_buffer b1 = ...; - * const unsigned char* p1 = asio::buffer_cast(b1); - * @endcode - * - * To access the memory of a modifiable buffer, use: - * @code asio::mutable_buffer b2 = ...; - * unsigned char* p2 = asio::buffer_cast(b2); - * @endcode - * - * The asio::buffer_cast function permits violations of type safety, so - * uses of it in application code should be carefully considered. - */ -/*@{*/ - -/// Cast a non-modifiable buffer to a specified pointer to POD type. -template -inline PointerToPodType buffer_cast(const mutable_buffer& b) ASIO_NOEXCEPT -{ - return static_cast(b.data()); -} - -/// Cast a non-modifiable buffer to a specified pointer to POD type. -template -inline PointerToPodType buffer_cast(const const_buffer& b) ASIO_NOEXCEPT -{ - return static_cast(b.data()); -} - -/*@}*/ - -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Create a new modifiable buffer that is offset from the start of another. -/** - * @relates mutable_buffer - */ -inline mutable_buffer operator+(const mutable_buffer& b, - std::size_t n) ASIO_NOEXCEPT -{ - std::size_t offset = n < b.size() ? n : b.size(); - char* new_data = static_cast(b.data()) + offset; - std::size_t new_size = b.size() - offset; - return mutable_buffer(new_data, new_size -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that is offset from the start of another. -/** - * @relates mutable_buffer - */ -inline mutable_buffer operator+(std::size_t n, - const mutable_buffer& b) ASIO_NOEXCEPT -{ - return b + n; -} - -/// Create a new non-modifiable buffer that is offset from the start of another. -/** - * @relates const_buffer - */ -inline const_buffer operator+(const const_buffer& b, - std::size_t n) ASIO_NOEXCEPT -{ - std::size_t offset = n < b.size() ? n : b.size(); - const char* new_data = static_cast(b.data()) + offset; - std::size_t new_size = b.size() - offset; - return const_buffer(new_data, new_size -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that is offset from the start of another. -/** - * @relates const_buffer - */ -inline const_buffer operator+(std::size_t n, - const const_buffer& b) ASIO_NOEXCEPT -{ - return b + n; -} - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) -namespace detail { - -template -class buffer_debug_check -{ -public: - buffer_debug_check(Iterator iter) - : iter_(iter) - { - } - - ~buffer_debug_check() - { -#if defined(ASIO_MSVC) && (ASIO_MSVC == 1400) - // MSVC 8's string iterator checking may crash in a std::string::iterator - // object's destructor when the iterator points to an already-destroyed - // std::string object, unless the iterator is cleared first. - iter_ = Iterator(); -#endif // defined(ASIO_MSVC) && (ASIO_MSVC == 1400) - } - - void operator()() - { - (void)*iter_; - } - -private: - Iterator iter_; -}; - -} // namespace detail -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - -/** @defgroup buffer asio::buffer - * - * @brief The asio::buffer function is used to create a buffer object to - * represent raw memory, an array of POD elements, a vector of POD elements, - * or a std::string. - * - * A buffer object represents a contiguous region of memory as a 2-tuple - * consisting of a pointer and size in bytes. A tuple of the form {void*, - * size_t} specifies a mutable (modifiable) region of memory. Similarly, a - * tuple of the form {const void*, size_t} specifies a const - * (non-modifiable) region of memory. These two forms correspond to the classes - * mutable_buffer and const_buffer, respectively. To mirror C++'s conversion - * rules, a mutable_buffer is implicitly convertible to a const_buffer, and the - * opposite conversion is not permitted. - * - * The simplest use case involves reading or writing a single buffer of a - * specified size: - * - * @code sock.send(asio::buffer(data, size)); @endcode - * - * In the above example, the return value of asio::buffer meets the - * requirements of the ConstBufferSequence concept so that it may be directly - * passed to the socket's write function. A buffer created for modifiable - * memory also meets the requirements of the MutableBufferSequence concept. - * - * An individual buffer may be created from a builtin array, std::vector, - * std::array or boost::array of POD elements. This helps prevent buffer - * overruns by automatically determining the size of the buffer: - * - * @code char d1[128]; - * size_t bytes_transferred = sock.receive(asio::buffer(d1)); - * - * std::vector d2(128); - * bytes_transferred = sock.receive(asio::buffer(d2)); - * - * std::array d3; - * bytes_transferred = sock.receive(asio::buffer(d3)); - * - * boost::array d4; - * bytes_transferred = sock.receive(asio::buffer(d4)); @endcode - * - * In all three cases above, the buffers created are exactly 128 bytes long. - * Note that a vector is @e never automatically resized when creating or using - * a buffer. The buffer size is determined using the vector's size() - * member function, and not its capacity. - * - * @par Accessing Buffer Contents - * - * The contents of a buffer may be accessed using the @c data() and @c size() - * member functions: - * - * @code asio::mutable_buffer b1 = ...; - * std::size_t s1 = b1.size(); - * unsigned char* p1 = static_cast(b1.data()); - * - * asio::const_buffer b2 = ...; - * std::size_t s2 = b2.size(); - * const void* p2 = b2.data(); @endcode - * - * The @c data() member function permits violations of type safety, so - * uses of it in application code should be carefully considered. - * - * For convenience, a @ref buffer_size function is provided that works with - * both buffers and buffer sequences (that is, types meeting the - * ConstBufferSequence or MutableBufferSequence type requirements). In this - * case, the function returns the total size of all buffers in the sequence. - * - * @par Buffer Copying - * - * The @ref buffer_copy function may be used to copy raw bytes between - * individual buffers and buffer sequences. -* - * In particular, when used with the @ref buffer_size function, the @ref - * buffer_copy function can be used to linearise a sequence of buffers. For - * example: - * - * @code vector buffers = ...; - * - * vector data(asio::buffer_size(buffers)); - * asio::buffer_copy(asio::buffer(data), buffers); @endcode - * - * Note that @ref buffer_copy is implemented in terms of @c memcpy, and - * consequently it cannot be used to copy between overlapping memory regions. - * - * @par Buffer Invalidation - * - * A buffer object does not have any ownership of the memory it refers to. It - * is the responsibility of the application to ensure the memory region remains - * valid until it is no longer required for an I/O operation. When the memory - * is no longer available, the buffer is said to have been invalidated. - * - * For the asio::buffer overloads that accept an argument of type - * std::vector, the buffer objects returned are invalidated by any vector - * operation that also invalidates all references, pointers and iterators - * referring to the elements in the sequence (C++ Std, 23.2.4) - * - * For the asio::buffer overloads that accept an argument of type - * std::basic_string, the buffer objects returned are invalidated according to - * the rules defined for invalidation of references, pointers and iterators - * referring to elements of the sequence (C++ Std, 21.3). - * - * @par Buffer Arithmetic - * - * Buffer objects may be manipulated using simple arithmetic in a safe way - * which helps prevent buffer overruns. Consider an array initialised as - * follows: - * - * @code boost::array a = { 'a', 'b', 'c', 'd', 'e' }; @endcode - * - * A buffer object @c b1 created using: - * - * @code b1 = asio::buffer(a); @endcode - * - * represents the entire array, { 'a', 'b', 'c', 'd', 'e' }. An - * optional second argument to the asio::buffer function may be used to - * limit the size, in bytes, of the buffer: - * - * @code b2 = asio::buffer(a, 3); @endcode - * - * such that @c b2 represents the data { 'a', 'b', 'c' }. Even if the - * size argument exceeds the actual size of the array, the size of the buffer - * object created will be limited to the array size. - * - * An offset may be applied to an existing buffer to create a new one: - * - * @code b3 = b1 + 2; @endcode - * - * where @c b3 will set to represent { 'c', 'd', 'e' }. If the offset - * exceeds the size of the existing buffer, the newly created buffer will be - * empty. - * - * Both an offset and size may be specified to create a buffer that corresponds - * to a specific range of bytes within an existing buffer: - * - * @code b4 = asio::buffer(b1 + 1, 3); @endcode - * - * so that @c b4 will refer to the bytes { 'b', 'c', 'd' }. - * - * @par Buffers and Scatter-Gather I/O - * - * To read or write using multiple buffers (i.e. scatter-gather I/O), multiple - * buffer objects may be assigned into a container that supports the - * MutableBufferSequence (for read) or ConstBufferSequence (for write) concepts: - * - * @code - * char d1[128]; - * std::vector d2(128); - * boost::array d3; - * - * boost::array bufs1 = { - * asio::buffer(d1), - * asio::buffer(d2), - * asio::buffer(d3) }; - * bytes_transferred = sock.receive(bufs1); - * - * std::vector bufs2; - * bufs2.push_back(asio::buffer(d1)); - * bufs2.push_back(asio::buffer(d2)); - * bufs2.push_back(asio::buffer(d3)); - * bytes_transferred = sock.send(bufs2); @endcode - */ -/*@{*/ - -#if defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -# define ASIO_MUTABLE_BUFFER mutable_buffer -# define ASIO_CONST_BUFFER const_buffer -#else // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) -# define ASIO_MUTABLE_BUFFER mutable_buffers_1 -# define ASIO_CONST_BUFFER const_buffers_1 -#endif // defined(ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION) - -/// Create a new modifiable buffer from an existing buffer. -/** - * @returns mutable_buffer(b). - */ -inline ASIO_MUTABLE_BUFFER buffer( - const mutable_buffer& b) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(b); -} - -/// Create a new modifiable buffer from an existing buffer. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * b.data(), - * min(b.size(), max_size_in_bytes)); @endcode - */ -inline ASIO_MUTABLE_BUFFER buffer(const mutable_buffer& b, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER( - mutable_buffer(b.data(), - b.size() < max_size_in_bytes - ? b.size() : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new non-modifiable buffer from an existing buffer. -/** - * @returns const_buffer(b). - */ -inline ASIO_CONST_BUFFER buffer( - const const_buffer& b) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(b); -} - -/// Create a new non-modifiable buffer from an existing buffer. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * b.data(), - * min(b.size(), max_size_in_bytes)); @endcode - */ -inline ASIO_CONST_BUFFER buffer(const const_buffer& b, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(b.data(), - b.size() < max_size_in_bytes - ? b.size() : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that represents the given memory range. -/** - * @returns mutable_buffer(data, size_in_bytes). - */ -inline ASIO_MUTABLE_BUFFER buffer(void* data, - std::size_t size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data, size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given memory range. -/** - * @returns const_buffer(data, size_in_bytes). - */ -inline ASIO_CONST_BUFFER buffer(const void* data, - std::size_t size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data, size_in_bytes); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * static_cast(data), - * N * sizeof(PodType)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer(PodType (&data)[N]) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data, N * sizeof(PodType)); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * static_cast(data), - * min(N * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer(PodType (&data)[N], - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data, - N * sizeof(PodType) < max_size_in_bytes - ? N * sizeof(PodType) : max_size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * static_cast(data), - * N * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - const PodType (&data)[N]) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data, N * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * static_cast(data), - * min(N * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(const PodType (&data)[N], - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data, - N * sizeof(PodType) < max_size_in_bytes - ? N * sizeof(PodType) : max_size_in_bytes); -} - -#if defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) - -// Borland C++ and Sun Studio think the overloads: -// -// unspecified buffer(boost::array& array ...); -// -// and -// -// unspecified buffer(boost::array& array ...); -// -// are ambiguous. This will be worked around by using a buffer_types traits -// class that contains typedefs for the appropriate buffer and container -// classes, based on whether PodType is const or non-const. - -namespace detail { - -template -struct buffer_types_base; - -template <> -struct buffer_types_base -{ - typedef mutable_buffer buffer_type; - typedef ASIO_MUTABLE_BUFFER container_type; -}; - -template <> -struct buffer_types_base -{ - typedef const_buffer buffer_type; - typedef ASIO_CONST_BUFFER container_type; -}; - -template -struct buffer_types - : public buffer_types_base::value> -{ -}; - -} // namespace detail - -template -inline typename detail::buffer_types::container_type -buffer(boost::array& data) ASIO_NOEXCEPT -{ - typedef typename asio::detail::buffer_types::buffer_type - buffer_type; - typedef typename asio::detail::buffer_types::container_type - container_type; - return container_type( - buffer_type(data.c_array(), data.size() * sizeof(PodType))); -} - -template -inline typename detail::buffer_types::container_type -buffer(boost::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - typedef typename asio::detail::buffer_types::buffer_type - buffer_type; - typedef typename asio::detail::buffer_types::container_type - container_type; - return container_type( - buffer_type(data.c_array(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes)); -} - -#else // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - boost::array& data) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER( - data.c_array(), data.size() * sizeof(PodType)); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer(boost::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.c_array(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - boost::array& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(boost::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -#endif // defined(ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND) - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - const boost::array& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(const boost::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -#if defined(ASIO_HAS_STD_ARRAY) || defined(GENERATING_DOCUMENTATION) - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - std::array& data) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_MUTABLE_BUFFER buffer(std::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - std::array& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(std::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::array& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer(const std::array& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes); -} - -#endif // defined(ASIO_HAS_STD_ARRAY) || defined(GENERATING_DOCUMENTATION) - -/// Create a new modifiable buffer that represents the given POD vector. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.size() ? &data[0] : 0, - * data.size() * sizeof(PodType)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - std::vector& data) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER( - data.size() ? &data[0] : 0, data.size() * sizeof(PodType) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that represents the given POD vector. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline ASIO_MUTABLE_BUFFER buffer(std::vector& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given POD vector. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.size() ? &data[0] : 0, - * data.size() * sizeof(PodType)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::vector& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER( - data.size() ? &data[0] : 0, data.size() * sizeof(PodType) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::const_iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given POD vector. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::vector& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::const_iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that represents the given string. -/** - * @returns mutable_buffer(data.size() ? &data[0] : 0, - * data.size() * sizeof(Elem)). - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - std::basic_string& data) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(Elem) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::basic_string::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that represents the given string. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -template -inline ASIO_MUTABLE_BUFFER buffer( - std::basic_string& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(Elem) < max_size_in_bytes - ? data.size() * sizeof(Elem) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::basic_string::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given string. -/** - * @returns const_buffer(data.data(), data.size() * sizeof(Elem)). - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::basic_string& data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(Elem) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::basic_string::const_iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given string. -/** - * @returns A const_buffer value equivalent to: - * @code const_buffer( - * data.data(), - * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -template -inline ASIO_CONST_BUFFER buffer( - const std::basic_string& data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.data(), - data.size() * sizeof(Elem) < max_size_in_bytes - ? data.size() * sizeof(Elem) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::basic_string::const_iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create a new modifiable buffer that represents the given string_view. -/** - * @returns mutable_buffer(data.size() ? &data[0] : 0, - * data.size() * sizeof(Elem)). - */ -template -inline ASIO_CONST_BUFFER buffer( - basic_string_view data) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(Elem) -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename basic_string_view::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that represents the given string. -/** - * @returns A mutable_buffer value equivalent to: - * @code mutable_buffer( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode - */ -template -inline ASIO_CONST_BUFFER buffer( - basic_string_view data, - std::size_t max_size_in_bytes) ASIO_NOEXCEPT -{ - return ASIO_CONST_BUFFER(data.size() ? &data[0] : 0, - data.size() * sizeof(Elem) < max_size_in_bytes - ? data.size() * sizeof(Elem) : max_size_in_bytes -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename basic_string_view::iterator - >(data.begin()) -#endif // ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -/*@}*/ - -/// Adapt a basic_string to the DynamicBuffer requirements. -/** - * Requires that sizeof(Elem) == 1. - */ -template -class dynamic_string_buffer -{ -public: - /// The type used to represent the input sequence as a list of buffers. - typedef ASIO_CONST_BUFFER const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef ASIO_MUTABLE_BUFFER mutable_buffers_type; - - /// Construct a dynamic buffer from a string. - /** - * @param s The string to be used as backing storage for the dynamic buffer. - * Any existing data in the string is treated as the dynamic buffer's input - * sequence. The object stores a reference to the string and the user is - * responsible for ensuring that the string object remains valid until the - * dynamic_string_buffer object is destroyed. - * - * @param maximum_size Specifies a maximum size for the buffer, in bytes. - */ - explicit dynamic_string_buffer(std::basic_string& s, - std::size_t maximum_size = - (std::numeric_limits::max)()) ASIO_NOEXCEPT - : string_(s), - size_(string_.size()), - max_size_(maximum_size) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move construct a dynamic buffer. - dynamic_string_buffer(dynamic_string_buffer&& other) ASIO_NOEXCEPT - : string_(other.string_), - size_(other.size_), - max_size_(other.max_size_) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get the size of the input sequence. - std::size_t size() const ASIO_NOEXCEPT - { - return size_; - } - - /// Get the maximum size of the dynamic buffer. - /** - * @returns The allowed maximum of the sum of the sizes of the input sequence - * and output sequence. - */ - std::size_t max_size() const ASIO_NOEXCEPT - { - return max_size_; - } - - /// Get the current capacity of the dynamic buffer. - /** - * @returns The current total capacity of the buffer, i.e. for both the input - * sequence and output sequence. - */ - std::size_t capacity() const ASIO_NOEXCEPT - { - return string_.capacity(); - } - - /// Get a list of buffers that represents the input sequence. - /** - * @returns An object of type @c const_buffers_type that satisfies - * ConstBufferSequence requirements, representing the basic_string memory in - * input sequence. - * - * @note The returned object is invalidated by any @c dynamic_string_buffer - * or @c basic_string member function that modifies the input sequence or - * output sequence. - */ - const_buffers_type data() const ASIO_NOEXCEPT - { - return const_buffers_type(asio::buffer(string_, size_)); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - /** - * Ensures that the output sequence can accommodate @c n bytes, resizing the - * basic_string object as necessary. - * - * @returns An object of type @c mutable_buffers_type that satisfies - * MutableBufferSequence requirements, representing basic_string memory - * at the start of the output sequence of size @c n. - * - * @throws std::length_error If size() + n > max_size(). - * - * @note The returned object is invalidated by any @c dynamic_string_buffer - * or @c basic_string member function that modifies the input sequence or - * output sequence. - */ - mutable_buffers_type prepare(std::size_t n) - { - if (size () > max_size() || max_size() - size() < n) - { - std::length_error ex("dynamic_string_buffer too long"); - asio::detail::throw_exception(ex); - } - - string_.resize(size_ + n); - - return asio::buffer(asio::buffer(string_) + size_, n); - } - - /// Move bytes from the output sequence to the input sequence. - /** - * @param n The number of bytes to append from the start of the output - * sequence to the end of the input sequence. The remainder of the output - * sequence is discarded. - * - * Requires a preceding call prepare(x) where x >= n, and - * no intervening operations that modify the input or output sequence. - * - * @note If @c n is greater than the size of the output sequence, the entire - * output sequence is moved to the input sequence and no error is issued. - */ - void commit(std::size_t n) - { - size_ += (std::min)(n, string_.size() - size_); - string_.resize(size_); - } - - /// Remove characters from the input sequence. - /** - * Removes @c n characters from the beginning of the input sequence. - * - * @note If @c n is greater than the size of the input sequence, the entire - * input sequence is consumed and no error is issued. - */ - void consume(std::size_t n) - { - std::size_t consume_length = (std::min)(n, size_); - string_.erase(0, consume_length); - size_ -= consume_length; - } - -private: - std::basic_string& string_; - std::size_t size_; - const std::size_t max_size_; -}; - -/// Adapt a vector to the DynamicBuffer requirements. -/** - * Requires that sizeof(Elem) == 1. - */ -template -class dynamic_vector_buffer -{ -public: - /// The type used to represent the input sequence as a list of buffers. - typedef ASIO_CONST_BUFFER const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef ASIO_MUTABLE_BUFFER mutable_buffers_type; - - /// Construct a dynamic buffer from a string. - /** - * @param v The vector to be used as backing storage for the dynamic buffer. - * Any existing data in the vector is treated as the dynamic buffer's input - * sequence. The object stores a reference to the vector and the user is - * responsible for ensuring that the vector object remains valid until the - * dynamic_vector_buffer object is destroyed. - * - * @param maximum_size Specifies a maximum size for the buffer, in bytes. - */ - explicit dynamic_vector_buffer(std::vector& v, - std::size_t maximum_size = - (std::numeric_limits::max)()) ASIO_NOEXCEPT - : vector_(v), - size_(vector_.size()), - max_size_(maximum_size) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move construct a dynamic buffer. - dynamic_vector_buffer(dynamic_vector_buffer&& other) ASIO_NOEXCEPT - : vector_(other.vector_), - size_(other.size_), - max_size_(other.max_size_) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get the size of the input sequence. - std::size_t size() const ASIO_NOEXCEPT - { - return size_; - } - - /// Get the maximum size of the dynamic buffer. - /** - * @returns The allowed maximum of the sum of the sizes of the input sequence - * and output sequence. - */ - std::size_t max_size() const ASIO_NOEXCEPT - { - return max_size_; - } - - /// Get the current capacity of the dynamic buffer. - /** - * @returns The current total capacity of the buffer, i.e. for both the input - * sequence and output sequence. - */ - std::size_t capacity() const ASIO_NOEXCEPT - { - return vector_.capacity(); - } - - /// Get a list of buffers that represents the input sequence. - /** - * @returns An object of type @c const_buffers_type that satisfies - * ConstBufferSequence requirements, representing the basic_string memory in - * input sequence. - * - * @note The returned object is invalidated by any @c dynamic_vector_buffer - * or @c basic_string member function that modifies the input sequence or - * output sequence. - */ - const_buffers_type data() const ASIO_NOEXCEPT - { - return const_buffers_type(asio::buffer(vector_, size_)); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - /** - * Ensures that the output sequence can accommodate @c n bytes, resizing the - * basic_string object as necessary. - * - * @returns An object of type @c mutable_buffers_type that satisfies - * MutableBufferSequence requirements, representing basic_string memory - * at the start of the output sequence of size @c n. - * - * @throws std::length_error If size() + n > max_size(). - * - * @note The returned object is invalidated by any @c dynamic_vector_buffer - * or @c basic_string member function that modifies the input sequence or - * output sequence. - */ - mutable_buffers_type prepare(std::size_t n) - { - if (size () > max_size() || max_size() - size() < n) - { - std::length_error ex("dynamic_vector_buffer too long"); - asio::detail::throw_exception(ex); - } - - vector_.resize(size_ + n); - - return asio::buffer(asio::buffer(vector_) + size_, n); - } - - /// Move bytes from the output sequence to the input sequence. - /** - * @param n The number of bytes to append from the start of the output - * sequence to the end of the input sequence. The remainder of the output - * sequence is discarded. - * - * Requires a preceding call prepare(x) where x >= n, and - * no intervening operations that modify the input or output sequence. - * - * @note If @c n is greater than the size of the output sequence, the entire - * output sequence is moved to the input sequence and no error is issued. - */ - void commit(std::size_t n) - { - size_ += (std::min)(n, vector_.size() - size_); - vector_.resize(size_); - } - - /// Remove characters from the input sequence. - /** - * Removes @c n characters from the beginning of the input sequence. - * - * @note If @c n is greater than the size of the input sequence, the entire - * input sequence is consumed and no error is issued. - */ - void consume(std::size_t n) - { - std::size_t consume_length = (std::min)(n, size_); - vector_.erase(vector_.begin(), vector_.begin() + consume_length); - size_ -= consume_length; - } - -private: - std::vector& vector_; - std::size_t size_; - const std::size_t max_size_; -}; - -/** @defgroup dynamic_buffer asio::dynamic_buffer - * - * @brief The asio::dynamic_buffer function is used to create a - * dynamically resized buffer from a @c std::basic_string or @c std::vector. - */ -/*@{*/ - -/// Create a new dynamic buffer that represents the given string. -/** - * @returns dynamic_string_buffer(data). - */ -template -inline dynamic_string_buffer dynamic_buffer( - std::basic_string& data) ASIO_NOEXCEPT -{ - return dynamic_string_buffer(data); -} - -/// Create a new dynamic buffer that represents the given string. -/** - * @returns dynamic_string_buffer(data, - * max_size). - */ -template -inline dynamic_string_buffer dynamic_buffer( - std::basic_string& data, - std::size_t max_size) ASIO_NOEXCEPT -{ - return dynamic_string_buffer(data, max_size); -} - -/// Create a new dynamic buffer that represents the given vector. -/** - * @returns dynamic_vector_buffer(data). - */ -template -inline dynamic_vector_buffer dynamic_buffer( - std::vector& data) ASIO_NOEXCEPT -{ - return dynamic_vector_buffer(data); -} - -/// Create a new dynamic buffer that represents the given vector. -/** - * @returns dynamic_vector_buffer(data, max_size). - */ -template -inline dynamic_vector_buffer dynamic_buffer( - std::vector& data, - std::size_t max_size) ASIO_NOEXCEPT -{ - return dynamic_vector_buffer(data, max_size); -} - -/*@}*/ - -/** @defgroup buffer_copy asio::buffer_copy - * - * @brief The asio::buffer_copy function is used to copy bytes from a - * source buffer (or buffer sequence) to a target buffer (or buffer sequence). - * - * The @c buffer_copy function is available in two forms: - * - * @li A 2-argument form: @c buffer_copy(target, source) - * - * @li A 3-argument form: @c buffer_copy(target, source, max_bytes_to_copy) - * - * Both forms return the number of bytes actually copied. The number of bytes - * copied is the lesser of: - * - * @li @c buffer_size(target) - * - * @li @c buffer_size(source) - * - * @li @c If specified, @c max_bytes_to_copy. - * - * This prevents buffer overflow, regardless of the buffer sizes used in the - * copy operation. - * - * Note that @ref buffer_copy is implemented in terms of @c memcpy, and - * consequently it cannot be used to copy between overlapping memory regions. - */ -/*@{*/ - -namespace detail { - -inline std::size_t buffer_copy_1(const mutable_buffer& target, - const const_buffer& source) -{ - using namespace std; // For memcpy. - std::size_t target_size = target.size(); - std::size_t source_size = source.size(); - std::size_t n = target_size < source_size ? target_size : source_size; - if (n > 0) - memcpy(target.data(), source.data(), n); - return n; -} - -template -inline std::size_t buffer_copy(one_buffer, one_buffer, - TargetIterator target_begin, TargetIterator, - SourceIterator source_begin, SourceIterator) ASIO_NOEXCEPT -{ - return (buffer_copy_1)(*target_begin, *source_begin); -} - -template -inline std::size_t buffer_copy(one_buffer, one_buffer, - TargetIterator target_begin, TargetIterator, - SourceIterator source_begin, SourceIterator, - std::size_t max_bytes_to_copy) ASIO_NOEXCEPT -{ - return (buffer_copy_1)(*target_begin, - asio::buffer(*source_begin, max_bytes_to_copy)); -} - -template -std::size_t buffer_copy(one_buffer, multiple_buffers, - TargetIterator target_begin, TargetIterator, - SourceIterator source_begin, SourceIterator source_end, - std::size_t max_bytes_to_copy - = (std::numeric_limits::max)()) ASIO_NOEXCEPT -{ - std::size_t total_bytes_copied = 0; - SourceIterator source_iter = source_begin; - - for (mutable_buffer target_buffer( - asio::buffer(*target_begin, max_bytes_to_copy)); - target_buffer.size() && source_iter != source_end; ++source_iter) - { - const_buffer source_buffer(*source_iter); - std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer); - total_bytes_copied += bytes_copied; - target_buffer += bytes_copied; - } - - return total_bytes_copied; -} - -template -std::size_t buffer_copy(multiple_buffers, one_buffer, - TargetIterator target_begin, TargetIterator target_end, - SourceIterator source_begin, SourceIterator, - std::size_t max_bytes_to_copy - = (std::numeric_limits::max)()) ASIO_NOEXCEPT -{ - std::size_t total_bytes_copied = 0; - TargetIterator target_iter = target_begin; - - for (const_buffer source_buffer( - asio::buffer(*source_begin, max_bytes_to_copy)); - source_buffer.size() && target_iter != target_end; ++target_iter) - { - mutable_buffer target_buffer(*target_iter); - std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer); - total_bytes_copied += bytes_copied; - source_buffer += bytes_copied; - } - - return total_bytes_copied; -} - -template -std::size_t buffer_copy(multiple_buffers, multiple_buffers, - TargetIterator target_begin, TargetIterator target_end, - SourceIterator source_begin, SourceIterator source_end) ASIO_NOEXCEPT -{ - std::size_t total_bytes_copied = 0; - - TargetIterator target_iter = target_begin; - std::size_t target_buffer_offset = 0; - - SourceIterator source_iter = source_begin; - std::size_t source_buffer_offset = 0; - - while (target_iter != target_end && source_iter != source_end) - { - mutable_buffer target_buffer = - mutable_buffer(*target_iter) + target_buffer_offset; - - const_buffer source_buffer = - const_buffer(*source_iter) + source_buffer_offset; - - std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer); - total_bytes_copied += bytes_copied; - - if (bytes_copied == target_buffer.size()) - { - ++target_iter; - target_buffer_offset = 0; - } - else - target_buffer_offset += bytes_copied; - - if (bytes_copied == source_buffer.size()) - { - ++source_iter; - source_buffer_offset = 0; - } - else - source_buffer_offset += bytes_copied; - } - - return total_bytes_copied; -} - -template -std::size_t buffer_copy(multiple_buffers, multiple_buffers, - TargetIterator target_begin, TargetIterator target_end, - SourceIterator source_begin, SourceIterator source_end, - std::size_t max_bytes_to_copy) ASIO_NOEXCEPT -{ - std::size_t total_bytes_copied = 0; - - TargetIterator target_iter = target_begin; - std::size_t target_buffer_offset = 0; - - SourceIterator source_iter = source_begin; - std::size_t source_buffer_offset = 0; - - while (total_bytes_copied != max_bytes_to_copy - && target_iter != target_end && source_iter != source_end) - { - mutable_buffer target_buffer = - mutable_buffer(*target_iter) + target_buffer_offset; - - const_buffer source_buffer = - const_buffer(*source_iter) + source_buffer_offset; - - std::size_t bytes_copied = (buffer_copy_1)( - target_buffer, asio::buffer(source_buffer, - max_bytes_to_copy - total_bytes_copied)); - total_bytes_copied += bytes_copied; - - if (bytes_copied == target_buffer.size()) - { - ++target_iter; - target_buffer_offset = 0; - } - else - target_buffer_offset += bytes_copied; - - if (bytes_copied == source_buffer.size()) - { - ++source_iter; - source_buffer_offset = 0; - } - else - source_buffer_offset += bytes_copied; - } - - return total_bytes_copied; -} - -} // namespace detail - -/// Copies bytes from a source buffer sequence to a target buffer sequence. -/** - * @param target A modifiable buffer sequence representing the memory regions to - * which the bytes will be copied. - * - * @param source A non-modifiable buffer sequence representing the memory - * regions from which the bytes will be copied. - * - * @returns The number of bytes copied. - * - * @note The number of bytes copied is the lesser of: - * - * @li @c buffer_size(target) - * - * @li @c buffer_size(source) - * - * This function is implemented in terms of @c memcpy, and consequently it - * cannot be used to copy between overlapping memory regions. - */ -template -inline std::size_t buffer_copy(const MutableBufferSequence& target, - const ConstBufferSequence& source) ASIO_NOEXCEPT -{ - return detail::buffer_copy( - detail::buffer_sequence_cardinality(), - detail::buffer_sequence_cardinality(), - asio::buffer_sequence_begin(target), - asio::buffer_sequence_end(target), - asio::buffer_sequence_begin(source), - asio::buffer_sequence_end(source)); -} - -/// Copies a limited number of bytes from a source buffer sequence to a target -/// buffer sequence. -/** - * @param target A modifiable buffer sequence representing the memory regions to - * which the bytes will be copied. - * - * @param source A non-modifiable buffer sequence representing the memory - * regions from which the bytes will be copied. - * - * @param max_bytes_to_copy The maximum number of bytes to be copied. - * - * @returns The number of bytes copied. - * - * @note The number of bytes copied is the lesser of: - * - * @li @c buffer_size(target) - * - * @li @c buffer_size(source) - * - * @li @c max_bytes_to_copy - * - * This function is implemented in terms of @c memcpy, and consequently it - * cannot be used to copy between overlapping memory regions. - */ -template -inline std::size_t buffer_copy(const MutableBufferSequence& target, - const ConstBufferSequence& source, - std::size_t max_bytes_to_copy) ASIO_NOEXCEPT -{ - return detail::buffer_copy( - detail::buffer_sequence_cardinality(), - detail::buffer_sequence_cardinality(), - asio::buffer_sequence_begin(target), - asio::buffer_sequence_end(target), - asio::buffer_sequence_begin(source), - asio::buffer_sequence_end(source), max_bytes_to_copy); -} - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" -#include "asio/detail/is_buffer_sequence.hpp" -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Trait to determine whether a type satisfies the MutableBufferSequence -/// requirements. -template -struct is_mutable_buffer_sequence -#if defined(GENERATING_DOCUMENTATION) - : integral_constant -#else // defined(GENERATING_DOCUMENTATION) - : asio::detail::is_buffer_sequence -#endif // defined(GENERATING_DOCUMENTATION) -{ -}; - -/// Trait to determine whether a type satisfies the ConstBufferSequence -/// requirements. -template -struct is_const_buffer_sequence -#if defined(GENERATING_DOCUMENTATION) - : integral_constant -#else // defined(GENERATING_DOCUMENTATION) - : asio::detail::is_buffer_sequence -#endif // defined(GENERATING_DOCUMENTATION) -{ -}; - -/// Trait to determine whether a type satisfies the DynamicBuffer requirements. -template -struct is_dynamic_buffer -#if defined(GENERATING_DOCUMENTATION) - : integral_constant -#else // defined(GENERATING_DOCUMENTATION) - : asio::detail::is_dynamic_buffer -#endif // defined(GENERATING_DOCUMENTATION) -{ -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BUFFER_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_read_stream.hpp b/Sources/Vendor/asio/include/asio/buffered_read_stream.hpp deleted file mode 100644 index c3e7f0b..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_read_stream.hpp +++ /dev/null @@ -1,257 +0,0 @@ -// -// buffered_read_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BUFFERED_READ_STREAM_HPP -#define ASIO_BUFFERED_READ_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/buffered_read_stream_fwd.hpp" -#include "asio/buffer.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_resize_guard.hpp" -#include "asio/detail/buffered_stream_storage.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Adds buffering to the read-related operations of a stream. -/** - * The buffered_read_stream class template can be used to add buffering to the - * synchronous and asynchronous read operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class buffered_read_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// The type of the executor associated with the object. - typedef typename lowest_layer_type::executor_type executor_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The default buffer size. - static const std::size_t default_buffer_size = implementation_defined; -#else - ASIO_STATIC_CONSTANT(std::size_t, default_buffer_size = 1024); -#endif - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_read_stream(Arg& a) - : next_layer_(a), - storage_(default_buffer_size) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - buffered_read_stream(Arg& a, std::size_t buffer_size) - : next_layer_(a), - storage_(buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return next_layer_; - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return next_layer_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return next_layer_.lowest_layer(); - } - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return next_layer_.lowest_layer().get_executor(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_context() - { - return next_layer_.get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_service() - { - return next_layer_.get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Close the stream. - void close() - { - next_layer_.close(); - } - - /// Close the stream. - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - next_layer_.close(ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - return next_layer_.write_some(buffers); - } - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred. - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return next_layer_.write_some(buffers, ec); - } - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - return next_layer_.async_write_some(buffers, - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation. Throws an exception on failure. - std::size_t fill(); - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation, or 0 if an error occurred. - std::size_t fill(asio::error_code& ec); - - /// Start an asynchronous fill. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_fill(ASIO_MOVE_ARG(ReadHandler) handler); - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers); - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec); - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler); - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers); - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - asio::error_code& ec); - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return storage_.size(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(asio::error_code& ec) - { - ec = asio::error_code(); - return storage_.size(); - } - -private: - /// Copy data out of the internal buffer to the specified target buffer. - /// Returns the number of bytes copied. - template - std::size_t copy(const MutableBufferSequence& buffers) - { - std::size_t bytes_copied = asio::buffer_copy( - buffers, storage_.data(), storage_.size()); - storage_.consume(bytes_copied); - return bytes_copied; - } - - /// Copy data from the internal buffer to the specified target buffer, without - /// removing the data from the internal buffer. Returns the number of bytes - /// copied. - template - std::size_t peek_copy(const MutableBufferSequence& buffers) - { - return asio::buffer_copy(buffers, storage_.data(), storage_.size()); - } - - /// The next layer. - Stream next_layer_; - - // The data in the buffer. - detail::buffered_stream_storage storage_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/buffered_read_stream.hpp" - -#endif // ASIO_BUFFERED_READ_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_read_stream_fwd.hpp b/Sources/Vendor/asio/include/asio/buffered_read_stream_fwd.hpp deleted file mode 100644 index 334b88a..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_read_stream_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// buffered_read_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BUFFERED_READ_STREAM_FWD_HPP -#define ASIO_BUFFERED_READ_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -namespace asio { - -template -class buffered_read_stream; - -} // namespace asio - -#endif // ASIO_BUFFERED_READ_STREAM_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_stream.hpp b/Sources/Vendor/asio/include/asio/buffered_stream.hpp deleted file mode 100644 index 8014fa4..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_stream.hpp +++ /dev/null @@ -1,278 +0,0 @@ -// -// buffered_stream.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BUFFERED_STREAM_HPP -#define ASIO_BUFFERED_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/buffered_read_stream.hpp" -#include "asio/buffered_write_stream.hpp" -#include "asio/buffered_stream_fwd.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Adds buffering to the read- and write-related operations of a stream. -/** - * The buffered_stream class template can be used to add buffering to the - * synchronous and asynchronous read and write operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class buffered_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// The type of the executor associated with the object. - typedef typename lowest_layer_type::executor_type executor_type; - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_stream(Arg& a) - : inner_stream_impl_(a), - stream_impl_(inner_stream_impl_) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_stream(Arg& a, std::size_t read_buffer_size, - std::size_t write_buffer_size) - : inner_stream_impl_(a, write_buffer_size), - stream_impl_(inner_stream_impl_, read_buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return stream_impl_.next_layer().next_layer(); - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return stream_impl_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return stream_impl_.lowest_layer(); - } - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return stream_impl_.lowest_layer().get_executor(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_context() - { - return stream_impl_.get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_service() - { - return stream_impl_.get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Close the stream. - void close() - { - stream_impl_.close(); - } - - /// Close the stream. - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - stream_impl_.close(ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation. Throws an - /// exception on failure. - std::size_t flush() - { - return stream_impl_.next_layer().flush(); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation, or 0 if an - /// error occurred. - std::size_t flush(asio::error_code& ec) - { - return stream_impl_.next_layer().flush(ec); - } - - /// Start an asynchronous flush. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_flush(ASIO_MOVE_ARG(WriteHandler) handler) - { - return stream_impl_.next_layer().async_flush( - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - return stream_impl_.write_some(buffers); - } - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred. - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return stream_impl_.write_some(buffers, ec); - } - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - return stream_impl_.async_write_some(buffers, - ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation. Throws an exception on failure. - std::size_t fill() - { - return stream_impl_.fill(); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation, or 0 if an error occurred. - std::size_t fill(asio::error_code& ec) - { - return stream_impl_.fill(ec); - } - - /// Start an asynchronous fill. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_fill(ASIO_MOVE_ARG(ReadHandler) handler) - { - return stream_impl_.async_fill(ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - return stream_impl_.read_some(buffers); - } - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return stream_impl_.read_some(buffers, ec); - } - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - return stream_impl_.async_read_some(buffers, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers) - { - return stream_impl_.peek(buffers); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return stream_impl_.peek(buffers, ec); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return stream_impl_.in_avail(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(asio::error_code& ec) - { - return stream_impl_.in_avail(ec); - } - -private: - // The buffered write stream. - typedef buffered_write_stream write_stream_type; - write_stream_type inner_stream_impl_; - - // The buffered read stream. - typedef buffered_read_stream read_stream_type; - read_stream_type stream_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BUFFERED_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_stream_fwd.hpp b/Sources/Vendor/asio/include/asio/buffered_stream_fwd.hpp deleted file mode 100644 index 3492979..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_stream_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// buffered_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BUFFERED_STREAM_FWD_HPP -#define ASIO_BUFFERED_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -namespace asio { - -template -class buffered_stream; - -} // namespace asio - -#endif // ASIO_BUFFERED_STREAM_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_write_stream.hpp b/Sources/Vendor/asio/include/asio/buffered_write_stream.hpp deleted file mode 100644 index aac33d3..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_write_stream.hpp +++ /dev/null @@ -1,249 +0,0 @@ -// -// buffered_write_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BUFFERED_WRITE_STREAM_HPP -#define ASIO_BUFFERED_WRITE_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/buffered_write_stream_fwd.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffered_stream_storage.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/write.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Adds buffering to the write-related operations of a stream. -/** - * The buffered_write_stream class template can be used to add buffering to the - * synchronous and asynchronous write operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class buffered_write_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// The type of the executor associated with the object. - typedef typename lowest_layer_type::executor_type executor_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The default buffer size. - static const std::size_t default_buffer_size = implementation_defined; -#else - ASIO_STATIC_CONSTANT(std::size_t, default_buffer_size = 1024); -#endif - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_write_stream(Arg& a) - : next_layer_(a), - storage_(default_buffer_size) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - buffered_write_stream(Arg& a, std::size_t buffer_size) - : next_layer_(a), - storage_(buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return next_layer_; - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return next_layer_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return next_layer_.lowest_layer(); - } - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return next_layer_.lowest_layer().get_executor(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_context() - { - return next_layer_.get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_service() - { - return next_layer_.get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Close the stream. - void close() - { - next_layer_.close(); - } - - /// Close the stream. - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - next_layer_.close(ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation. Throws an - /// exception on failure. - std::size_t flush(); - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation, or 0 if an - /// error occurred. - std::size_t flush(asio::error_code& ec); - - /// Start an asynchronous flush. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_flush(ASIO_MOVE_ARG(WriteHandler) handler); - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers); - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred and the error handler did not throw. - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec); - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler); - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - return next_layer_.read_some(buffers); - } - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return next_layer_.read_some(buffers, ec); - } - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - return next_layer_.async_read_some(buffers, - ASIO_MOVE_CAST(ReadHandler)(handler)); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers) - { - return next_layer_.peek(buffers); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return next_layer_.peek(buffers, ec); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return next_layer_.in_avail(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(asio::error_code& ec) - { - return next_layer_.in_avail(ec); - } - -private: - /// Copy data into the internal buffer from the specified source buffer. - /// Returns the number of bytes copied. - template - std::size_t copy(const ConstBufferSequence& buffers); - - /// The next layer. - Stream next_layer_; - - // The data in the buffer. - detail::buffered_stream_storage storage_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/buffered_write_stream.hpp" - -#endif // ASIO_BUFFERED_WRITE_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/buffered_write_stream_fwd.hpp b/Sources/Vendor/asio/include/asio/buffered_write_stream_fwd.hpp deleted file mode 100644 index 6ef54ba..0000000 --- a/Sources/Vendor/asio/include/asio/buffered_write_stream_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// buffered_write_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BUFFERED_WRITE_STREAM_FWD_HPP -#define ASIO_BUFFERED_WRITE_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -namespace asio { - -template -class buffered_write_stream; - -} // namespace asio - -#endif // ASIO_BUFFERED_WRITE_STREAM_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/buffers_iterator.hpp b/Sources/Vendor/asio/include/asio/buffers_iterator.hpp deleted file mode 100644 index f5c9d4c..0000000 --- a/Sources/Vendor/asio/include/asio/buffers_iterator.hpp +++ /dev/null @@ -1,521 +0,0 @@ -// -// buffers_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_BUFFERS_ITERATOR_HPP -#define ASIO_BUFFERS_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/buffer.hpp" -#include "asio/detail/assert.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - struct buffers_iterator_types_helper; - - template <> - struct buffers_iterator_types_helper - { - typedef const_buffer buffer_type; - template - struct byte_type - { - typedef typename add_const::type type; - }; - }; - - template <> - struct buffers_iterator_types_helper - { - typedef mutable_buffer buffer_type; - template - struct byte_type - { - typedef ByteType type; - }; - }; - - template - struct buffers_iterator_types - { - enum - { - is_mutable = is_convertible< - typename BufferSequence::value_type, - mutable_buffer>::value - }; - typedef buffers_iterator_types_helper helper; - typedef typename helper::buffer_type buffer_type; - typedef typename helper::template byte_type::type byte_type; - typedef typename BufferSequence::const_iterator const_iterator; - }; - - template - struct buffers_iterator_types - { - typedef mutable_buffer buffer_type; - typedef ByteType byte_type; - typedef const mutable_buffer* const_iterator; - }; - - template - struct buffers_iterator_types - { - typedef const_buffer buffer_type; - typedef typename add_const::type byte_type; - typedef const const_buffer* const_iterator; - }; - -#if !defined(ASIO_NO_DEPRECATED) - - template - struct buffers_iterator_types - { - typedef mutable_buffer buffer_type; - typedef ByteType byte_type; - typedef const mutable_buffer* const_iterator; - }; - - template - struct buffers_iterator_types - { - typedef const_buffer buffer_type; - typedef typename add_const::type byte_type; - typedef const const_buffer* const_iterator; - }; - -#endif // !defined(ASIO_NO_DEPRECATED) -} - -/// A random access iterator over the bytes in a buffer sequence. -template -class buffers_iterator -{ -private: - typedef typename detail::buffers_iterator_types< - BufferSequence, ByteType>::buffer_type buffer_type; - - typedef typename detail::buffers_iterator_types::const_iterator buffer_sequence_iterator_type; - -public: - /// The type used for the distance between two iterators. - typedef std::ptrdiff_t difference_type; - - /// The type of the value pointed to by the iterator. - typedef ByteType value_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The type of the result of applying operator->() to the iterator. - /** - * If the buffer sequence stores buffer objects that are convertible to - * mutable_buffer, this is a pointer to a non-const ByteType. Otherwise, a - * pointer to a const ByteType. - */ - typedef const_or_non_const_ByteType* pointer; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::buffers_iterator_types< - BufferSequence, ByteType>::byte_type* pointer; -#endif // defined(GENERATING_DOCUMENTATION) - -#if defined(GENERATING_DOCUMENTATION) - /// The type of the result of applying operator*() to the iterator. - /** - * If the buffer sequence stores buffer objects that are convertible to - * mutable_buffer, this is a reference to a non-const ByteType. Otherwise, a - * reference to a const ByteType. - */ - typedef const_or_non_const_ByteType& reference; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::buffers_iterator_types< - BufferSequence, ByteType>::byte_type& reference; -#endif // defined(GENERATING_DOCUMENTATION) - - /// The iterator category. - typedef std::random_access_iterator_tag iterator_category; - - /// Default constructor. Creates an iterator in an undefined state. - buffers_iterator() - : current_buffer_(), - current_buffer_position_(0), - begin_(), - current_(), - end_(), - position_(0) - { - } - - /// Construct an iterator representing the beginning of the buffers' data. - static buffers_iterator begin(const BufferSequence& buffers) -#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - __attribute__ ((__noinline__)) -#endif // defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - { - buffers_iterator new_iter; - new_iter.begin_ = asio::buffer_sequence_begin(buffers); - new_iter.current_ = asio::buffer_sequence_begin(buffers); - new_iter.end_ = asio::buffer_sequence_end(buffers); - while (new_iter.current_ != new_iter.end_) - { - new_iter.current_buffer_ = *new_iter.current_; - if (new_iter.current_buffer_.size() > 0) - break; - ++new_iter.current_; - } - return new_iter; - } - - /// Construct an iterator representing the end of the buffers' data. - static buffers_iterator end(const BufferSequence& buffers) -#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - __attribute__ ((__noinline__)) -#endif // defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 3) - { - buffers_iterator new_iter; - new_iter.begin_ = asio::buffer_sequence_begin(buffers); - new_iter.current_ = asio::buffer_sequence_begin(buffers); - new_iter.end_ = asio::buffer_sequence_end(buffers); - while (new_iter.current_ != new_iter.end_) - { - buffer_type buffer = *new_iter.current_; - new_iter.position_ += buffer.size(); - ++new_iter.current_; - } - return new_iter; - } - - /// Dereference an iterator. - reference operator*() const - { - return dereference(); - } - - /// Dereference an iterator. - pointer operator->() const - { - return &dereference(); - } - - /// Access an individual element. - reference operator[](std::ptrdiff_t difference) const - { - buffers_iterator tmp(*this); - tmp.advance(difference); - return *tmp; - } - - /// Increment operator (prefix). - buffers_iterator& operator++() - { - increment(); - return *this; - } - - /// Increment operator (postfix). - buffers_iterator operator++(int) - { - buffers_iterator tmp(*this); - ++*this; - return tmp; - } - - /// Decrement operator (prefix). - buffers_iterator& operator--() - { - decrement(); - return *this; - } - - /// Decrement operator (postfix). - buffers_iterator operator--(int) - { - buffers_iterator tmp(*this); - --*this; - return tmp; - } - - /// Addition operator. - buffers_iterator& operator+=(std::ptrdiff_t difference) - { - advance(difference); - return *this; - } - - /// Subtraction operator. - buffers_iterator& operator-=(std::ptrdiff_t difference) - { - advance(-difference); - return *this; - } - - /// Addition operator. - friend buffers_iterator operator+(const buffers_iterator& iter, - std::ptrdiff_t difference) - { - buffers_iterator tmp(iter); - tmp.advance(difference); - return tmp; - } - - /// Addition operator. - friend buffers_iterator operator+(std::ptrdiff_t difference, - const buffers_iterator& iter) - { - buffers_iterator tmp(iter); - tmp.advance(difference); - return tmp; - } - - /// Subtraction operator. - friend buffers_iterator operator-(const buffers_iterator& iter, - std::ptrdiff_t difference) - { - buffers_iterator tmp(iter); - tmp.advance(-difference); - return tmp; - } - - /// Subtraction operator. - friend std::ptrdiff_t operator-(const buffers_iterator& a, - const buffers_iterator& b) - { - return b.distance_to(a); - } - - /// Test two iterators for equality. - friend bool operator==(const buffers_iterator& a, const buffers_iterator& b) - { - return a.equal(b); - } - - /// Test two iterators for inequality. - friend bool operator!=(const buffers_iterator& a, const buffers_iterator& b) - { - return !a.equal(b); - } - - /// Compare two iterators. - friend bool operator<(const buffers_iterator& a, const buffers_iterator& b) - { - return a.distance_to(b) > 0; - } - - /// Compare two iterators. - friend bool operator<=(const buffers_iterator& a, const buffers_iterator& b) - { - return !(b < a); - } - - /// Compare two iterators. - friend bool operator>(const buffers_iterator& a, const buffers_iterator& b) - { - return b < a; - } - - /// Compare two iterators. - friend bool operator>=(const buffers_iterator& a, const buffers_iterator& b) - { - return !(a < b); - } - -private: - // Dereference the iterator. - reference dereference() const - { - return static_cast( - current_buffer_.data())[current_buffer_position_]; - } - - // Compare two iterators for equality. - bool equal(const buffers_iterator& other) const - { - return position_ == other.position_; - } - - // Increment the iterator. - void increment() - { - ASIO_ASSERT(current_ != end_ && "iterator out of bounds"); - ++position_; - - // Check if the increment can be satisfied by the current buffer. - ++current_buffer_position_; - if (current_buffer_position_ != current_buffer_.size()) - return; - - // Find the next non-empty buffer. - ++current_; - current_buffer_position_ = 0; - while (current_ != end_) - { - current_buffer_ = *current_; - if (current_buffer_.size() > 0) - return; - ++current_; - } - } - - // Decrement the iterator. - void decrement() - { - ASIO_ASSERT(position_ > 0 && "iterator out of bounds"); - --position_; - - // Check if the decrement can be satisfied by the current buffer. - if (current_buffer_position_ != 0) - { - --current_buffer_position_; - return; - } - - // Find the previous non-empty buffer. - buffer_sequence_iterator_type iter = current_; - while (iter != begin_) - { - --iter; - buffer_type buffer = *iter; - std::size_t buffer_size = buffer.size(); - if (buffer_size > 0) - { - current_ = iter; - current_buffer_ = buffer; - current_buffer_position_ = buffer_size - 1; - return; - } - } - } - - // Advance the iterator by the specified distance. - void advance(std::ptrdiff_t n) - { - if (n > 0) - { - ASIO_ASSERT(current_ != end_ && "iterator out of bounds"); - for (;;) - { - std::ptrdiff_t current_buffer_balance - = current_buffer_.size() - current_buffer_position_; - - // Check if the advance can be satisfied by the current buffer. - if (current_buffer_balance > n) - { - position_ += n; - current_buffer_position_ += n; - return; - } - - // Update position. - n -= current_buffer_balance; - position_ += current_buffer_balance; - - // Move to next buffer. If it is empty then it will be skipped on the - // next iteration of this loop. - if (++current_ == end_) - { - ASIO_ASSERT(n == 0 && "iterator out of bounds"); - current_buffer_ = buffer_type(); - current_buffer_position_ = 0; - return; - } - current_buffer_ = *current_; - current_buffer_position_ = 0; - } - } - else if (n < 0) - { - std::size_t abs_n = -n; - ASIO_ASSERT(position_ >= abs_n && "iterator out of bounds"); - for (;;) - { - // Check if the advance can be satisfied by the current buffer. - if (current_buffer_position_ >= abs_n) - { - position_ -= abs_n; - current_buffer_position_ -= abs_n; - return; - } - - // Update position. - abs_n -= current_buffer_position_; - position_ -= current_buffer_position_; - - // Check if we've reached the beginning of the buffers. - if (current_ == begin_) - { - ASIO_ASSERT(abs_n == 0 && "iterator out of bounds"); - current_buffer_position_ = 0; - return; - } - - // Find the previous non-empty buffer. - buffer_sequence_iterator_type iter = current_; - while (iter != begin_) - { - --iter; - buffer_type buffer = *iter; - std::size_t buffer_size = buffer.size(); - if (buffer_size > 0) - { - current_ = iter; - current_buffer_ = buffer; - current_buffer_position_ = buffer_size; - break; - } - } - } - } - } - - // Determine the distance between two iterators. - std::ptrdiff_t distance_to(const buffers_iterator& other) const - { - return other.position_ - position_; - } - - buffer_type current_buffer_; - std::size_t current_buffer_position_; - buffer_sequence_iterator_type begin_; - buffer_sequence_iterator_type current_; - buffer_sequence_iterator_type end_; - std::size_t position_; -}; - -/// Construct an iterator representing the beginning of the buffers' data. -template -inline buffers_iterator buffers_begin( - const BufferSequence& buffers) -{ - return buffers_iterator::begin(buffers); -} - -/// Construct an iterator representing the end of the buffers' data. -template -inline buffers_iterator buffers_end( - const BufferSequence& buffers) -{ - return buffers_iterator::end(buffers); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_BUFFERS_ITERATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/completion_condition.hpp b/Sources/Vendor/asio/include/asio/completion_condition.hpp deleted file mode 100644 index 563f417..0000000 --- a/Sources/Vendor/asio/include/asio/completion_condition.hpp +++ /dev/null @@ -1,218 +0,0 @@ -// -// completion_condition.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_COMPLETION_CONDITION_HPP -#define ASIO_COMPLETION_CONDITION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail { - -// The default maximum number of bytes to transfer in a single operation. -enum default_max_transfer_size_t { default_max_transfer_size = 65536 }; - -// Adapt result of old-style completion conditions (which had a bool result -// where true indicated that the operation was complete). -inline std::size_t adapt_completion_condition_result(bool result) -{ - return result ? 0 : default_max_transfer_size; -} - -// Adapt result of current completion conditions (which have a size_t result -// where 0 means the operation is complete, and otherwise the result is the -// maximum number of bytes to transfer on the next underlying operation). -inline std::size_t adapt_completion_condition_result(std::size_t result) -{ - return result; -} - -class transfer_all_t -{ -public: - typedef std::size_t result_type; - - template - std::size_t operator()(const Error& err, std::size_t) - { - return !!err ? 0 : default_max_transfer_size; - } -}; - -class transfer_at_least_t -{ -public: - typedef std::size_t result_type; - - explicit transfer_at_least_t(std::size_t minimum) - : minimum_(minimum) - { - } - - template - std::size_t operator()(const Error& err, std::size_t bytes_transferred) - { - return (!!err || bytes_transferred >= minimum_) - ? 0 : default_max_transfer_size; - } - -private: - std::size_t minimum_; -}; - -class transfer_exactly_t -{ -public: - typedef std::size_t result_type; - - explicit transfer_exactly_t(std::size_t size) - : size_(size) - { - } - - template - std::size_t operator()(const Error& err, std::size_t bytes_transferred) - { - return (!!err || bytes_transferred >= size_) ? 0 : - (size_ - bytes_transferred < default_max_transfer_size - ? size_ - bytes_transferred : std::size_t(default_max_transfer_size)); - } - -private: - std::size_t size_; -}; - -} // namespace detail - -/** - * @defgroup completion_condition Completion Condition Function Objects - * - * Function objects used for determining when a read or write operation should - * complete. - */ -/*@{*/ - -/// Return a completion condition function object that indicates that a read or -/// write operation should continue until all of the data has been transferred, -/// or until an error occurs. -/** - * This function is used to create an object, of unspecified type, that meets - * CompletionCondition requirements. - * - * @par Example - * Reading until a buffer is full: - * @code - * boost::array buf; - * asio::error_code ec; - * std::size_t n = asio::read( - * sock, asio::buffer(buf), - * asio::transfer_all(), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * // n == 128 - * } - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -unspecified transfer_all(); -#else -inline detail::transfer_all_t transfer_all() -{ - return detail::transfer_all_t(); -} -#endif - -/// Return a completion condition function object that indicates that a read or -/// write operation should continue until a minimum number of bytes has been -/// transferred, or until an error occurs. -/** - * This function is used to create an object, of unspecified type, that meets - * CompletionCondition requirements. - * - * @par Example - * Reading until a buffer is full or contains at least 64 bytes: - * @code - * boost::array buf; - * asio::error_code ec; - * std::size_t n = asio::read( - * sock, asio::buffer(buf), - * asio::transfer_at_least(64), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * // n >= 64 && n <= 128 - * } - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -unspecified transfer_at_least(std::size_t minimum); -#else -inline detail::transfer_at_least_t transfer_at_least(std::size_t minimum) -{ - return detail::transfer_at_least_t(minimum); -} -#endif - -/// Return a completion condition function object that indicates that a read or -/// write operation should continue until an exact number of bytes has been -/// transferred, or until an error occurs. -/** - * This function is used to create an object, of unspecified type, that meets - * CompletionCondition requirements. - * - * @par Example - * Reading until a buffer is full or contains exactly 64 bytes: - * @code - * boost::array buf; - * asio::error_code ec; - * std::size_t n = asio::read( - * sock, asio::buffer(buf), - * asio::transfer_exactly(64), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * // n == 64 - * } - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -unspecified transfer_exactly(std::size_t size); -#else -inline detail::transfer_exactly_t transfer_exactly(std::size_t size) -{ - return detail::transfer_exactly_t(size); -} -#endif - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_COMPLETION_CONDITION_HPP diff --git a/Sources/Vendor/asio/include/asio/connect.hpp b/Sources/Vendor/asio/include/asio/connect.hpp deleted file mode 100644 index 89a9f35..0000000 --- a/Sources/Vendor/asio/include/asio/connect.hpp +++ /dev/null @@ -1,1060 +0,0 @@ -// -// connect.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_CONNECT_HPP -#define ASIO_CONNECT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/basic_socket.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - char (&has_iterator_helper(...))[2]; - - template - char has_iterator_helper(T*, typename T::iterator* = 0); - - template - struct has_iterator_typedef - { - enum { value = (sizeof((has_iterator_helper)((T*)(0))) == 1) }; - }; -} // namespace detail - -/// Type trait used to determine whether a type is an endpoint sequence that can -/// be used with with @c connect and @c async_connect. -template -struct is_endpoint_sequence -{ -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true if the type may be used as an endpoint sequence. - static const bool value; -#else - enum - { - value = detail::has_iterator_typedef::value - }; -#endif -}; - -/** - * @defgroup connect asio::connect - * - * @brief The @c connect function is a composed operation that establishes a - * socket connection by trying each endpoint in a sequence. - */ -/*@{*/ - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @returns The successfully connected endpoint. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * asio::connect(s, r.resolve(q)); @endcode - */ -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, - typename enable_if::value>::type* = 0); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, the successfully connected endpoint. Otherwise, a - * default-constructed endpoint. - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * asio::error_code ec; - * asio::connect(s, r.resolve(q), ec); - * if (ec) - * { - * // An error occurred. - * } @endcode - */ -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, asio::error_code& ec, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use range overload.) Establishes a socket connection by trying -/// each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -Iterator connect(basic_socket& s, Iterator begin, - typename enable_if::value>::type* = 0); - -/// (Deprecated: Use range overload.) Establishes a socket connection by trying -/// each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -Iterator connect(basic_socket& s, - Iterator begin, asio::error_code& ec, - typename enable_if::value>::type* = 0); -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @returns An iterator denoting the successfully connected endpoint. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::resolver::results_type e = r.resolve(q); - * tcp::socket s(io_context); - * asio::connect(s, e.begin(), e.end()); @endcode - */ -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::resolver::results_type e = r.resolve(q); - * tcp::socket s(io_context); - * asio::error_code ec; - * asio::connect(s, e.begin(), e.end(), ec); - * if (ec) - * { - * // An error occurred. - * } @endcode - */ -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end, asio::error_code& ec); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @returns The successfully connected endpoint. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * tcp::endpoint e = asio::connect(s, - * r.resolve(q), my_connect_condition()); - * std::cout << "Connected to: " << e << std::endl; @endcode - */ -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - typename enable_if::value>::type* = 0); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, the successfully connected endpoint. Otherwise, a - * default-constructed endpoint. - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * asio::error_code ec; - * tcp::endpoint e = asio::connect(s, - * r.resolve(q), my_connect_condition(), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * std::cout << "Connected to: " << e << std::endl; - * } @endcode - */ -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - asio::error_code& ec, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use range overload.) Establishes a socket connection by trying -/// each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -Iterator connect(basic_socket& s, - Iterator begin, ConnectCondition connect_condition, - typename enable_if::value>::type* = 0); - -/// (Deprecated: Use range overload.) Establishes a socket connection by trying -/// each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -Iterator connect(basic_socket& s, Iterator begin, - ConnectCondition connect_condition, asio::error_code& ec, - typename enable_if::value>::type* = 0); -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @returns An iterator denoting the successfully connected endpoint. - * - * @throws asio::system_error Thrown on failure. If the sequence is - * empty, the associated @c error_code is asio::error::not_found. - * Otherwise, contains the error from the last connection attempt. - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::resolver::results_type e = r.resolve(q); - * tcp::socket s(io_context); - * tcp::resolver::results_type::iterator i = asio::connect( - * s, e.begin(), e.end(), my_connect_condition()); - * std::cout << "Connected to: " << i->endpoint() << std::endl; @endcode - */ -template -Iterator connect(basic_socket& s, Iterator begin, - Iterator end, ConnectCondition connect_condition); - -/// Establishes a socket connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c connect member - * function, once for each endpoint in the sequence, until a connection is - * successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param ec Set to indicate what error occurred, if any. If the sequence is - * empty, set to asio::error::not_found. Otherwise, contains the error - * from the last connection attempt. - * - * @returns On success, an iterator denoting the successfully connected - * endpoint. Otherwise, the end iterator. - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::resolver::results_type e = r.resolve(q); - * tcp::socket s(io_context); - * asio::error_code ec; - * tcp::resolver::results_type::iterator i = asio::connect( - * s, e.begin(), e.end(), my_connect_condition()); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * std::cout << "Connected to: " << i->endpoint() << std::endl; - * } @endcode - */ -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition, - asio::error_code& ec); - -/*@}*/ - -/** - * @defgroup async_connect asio::async_connect - * - * @brief The @c async_connect function is a composed asynchronous operation - * that establishes a socket connection by trying each endpoint in a sequence. - */ -/*@{*/ - -/// Asynchronously establishes a socket connection by trying each endpoint in a -/// sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, the successfully connected endpoint. - * // Otherwise, a default-constructed endpoint. - * const typename Protocol::endpoint& endpoint - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * - * // ... - * - * r.async_resolve(q, resolve_handler); - * - * // ... - * - * void resolve_handler( - * const asio::error_code& ec, - * tcp::resolver::results_type results) - * { - * if (!ec) - * { - * asio::async_connect(s, results, connect_handler); - * } - * } - * - * // ... - * - * void connect_handler( - * const asio::error_code& ec, - * const tcp::endpoint& endpoint) - * { - * // ... - * } @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(RangeConnectHandler, - void (asio::error_code, typename Protocol::endpoint)) -async_connect(basic_socket& s, - const EndpointSequence& endpoints, - ASIO_MOVE_ARG(RangeConnectHandler) handler, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use range overload.) Asynchronously establishes a socket -/// connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, ASIO_MOVE_ARG(IteratorConnectHandler) handler, - typename enable_if::value>::type* = 0); -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Asynchronously establishes a socket connection by trying each endpoint in a -/// sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code std::vector endpoints = ...; - * tcp::socket s(io_context); - * asio::async_connect(s, - * endpoints.begin(), endpoints.end(), - * connect_handler); - * - * // ... - * - * void connect_handler( - * const asio::error_code& ec, - * std::vector::iterator i) - * { - * // ... - * } @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, Iterator end, - ASIO_MOVE_ARG(IteratorConnectHandler) handler); - -/// Asynchronously establishes a socket connection by trying each endpoint in a -/// sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param endpoints A sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * - * // ... - * - * r.async_resolve(q, resolve_handler); - * - * // ... - * - * void resolve_handler( - * const asio::error_code& ec, - * tcp::resolver::results_type results) - * { - * if (!ec) - * { - * asio::async_connect(s, results, - * my_connect_condition(), - * connect_handler); - * } - * } - * - * // ... - * - * void connect_handler( - * const asio::error_code& ec, - * const tcp::endpoint& endpoint) - * { - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * std::cout << "Connected to: " << endpoint << std::endl; - * } - * } @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(RangeConnectHandler, - void (asio::error_code, typename Protocol::endpoint)) -async_connect(basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - ASIO_MOVE_ARG(RangeConnectHandler) handler, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use range overload.) Asynchronously establishes a socket -/// connection by trying each endpoint in a sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload assumes that a default constructed object of type @c - * Iterator represents the end of the sequence. This is a valid assumption for - * iterator types such as @c asio::ip::tcp::resolver::iterator. - */ -template -ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, Iterator begin, - ConnectCondition connect_condition, - ASIO_MOVE_ARG(IteratorConnectHandler) handler, - typename enable_if::value>::type* = 0); -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Asynchronously establishes a socket connection by trying each endpoint in a -/// sequence. -/** - * This function attempts to connect a socket to one of a sequence of - * endpoints. It does this by repeated calls to the socket's @c async_connect - * member function, once for each endpoint in the sequence, until a connection - * is successfully established. - * - * @param s The socket to be connected. If the socket is already open, it will - * be closed. - * - * @param begin An iterator pointing to the start of a sequence of endpoints. - * - * @param end An iterator pointing to the end of a sequence of endpoints. - * - * @param connect_condition A function object that is called prior to each - * connection attempt. The signature of the function object must be: - * @code bool connect_condition( - * const asio::error_code& ec, - * const typename Protocol::endpoint& next); @endcode - * The @c ec parameter contains the result from the most recent connect - * operation. Before the first connection attempt, @c ec is always set to - * indicate success. The @c next parameter is the next endpoint to be tried. - * The function object should return true if the next endpoint should be tried, - * and false if it should be skipped. - * - * @param handler The handler to be called when the connect operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * // Result of operation. if the sequence is empty, set to - * // asio::error::not_found. Otherwise, contains the - * // error from the last connection attempt. - * const asio::error_code& error, - * - * // On success, an iterator denoting the successfully - * // connected endpoint. Otherwise, the end iterator. - * Iterator iterator - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * The following connect condition function object can be used to output - * information about the individual connection attempts: - * @code struct my_connect_condition - * { - * bool operator()( - * const asio::error_code& ec, - * const::tcp::endpoint& next) - * { - * if (ec) std::cout << "Error: " << ec.message() << std::endl; - * std::cout << "Trying: " << next << std::endl; - * return true; - * } - * }; @endcode - * It would be used with the asio::connect function as follows: - * @code tcp::resolver r(io_context); - * tcp::resolver::query q("host", "service"); - * tcp::socket s(io_context); - * - * // ... - * - * r.async_resolve(q, resolve_handler); - * - * // ... - * - * void resolve_handler( - * const asio::error_code& ec, - * tcp::resolver::iterator i) - * { - * if (!ec) - * { - * tcp::resolver::iterator end; - * asio::async_connect(s, i, end, - * my_connect_condition(), - * connect_handler); - * } - * } - * - * // ... - * - * void connect_handler( - * const asio::error_code& ec, - * tcp::resolver::iterator i) - * { - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * std::cout << "Connected to: " << i->endpoint() << std::endl; - * } - * } @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition, - ASIO_MOVE_ARG(IteratorConnectHandler) handler); - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/connect.hpp" - -#endif diff --git a/Sources/Vendor/asio/include/asio/coroutine.hpp b/Sources/Vendor/asio/include/asio/coroutine.hpp deleted file mode 100644 index cd2d99e..0000000 --- a/Sources/Vendor/asio/include/asio/coroutine.hpp +++ /dev/null @@ -1,328 +0,0 @@ -// -// coroutine.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_COROUTINE_HPP -#define ASIO_COROUTINE_HPP - -namespace asio { -namespace detail { - -class coroutine_ref; - -} // namespace detail - -/// Provides support for implementing stackless coroutines. -/** - * The @c coroutine class may be used to implement stackless coroutines. The - * class itself is used to store the current state of the coroutine. - * - * Coroutines are copy-constructible and assignable, and the space overhead is - * a single int. They can be used as a base class: - * - * @code class session : coroutine - * { - * ... - * }; @endcode - * - * or as a data member: - * - * @code class session - * { - * ... - * coroutine coro_; - * }; @endcode - * - * or even bound in as a function argument using lambdas or @c bind(). The - * important thing is that as the application maintains a copy of the object - * for as long as the coroutine must be kept alive. - * - * @par Pseudo-keywords - * - * A coroutine is used in conjunction with certain "pseudo-keywords", which - * are implemented as macros. These macros are defined by a header file: - * - * @code #include @endcode - * - * and may conversely be undefined as follows: - * - * @code #include @endcode - * - * reenter - * - * The @c reenter macro is used to define the body of a coroutine. It takes a - * single argument: a pointer or reference to a coroutine object. For example, - * if the base class is a coroutine object you may write: - * - * @code reenter (this) - * { - * ... coroutine body ... - * } @endcode - * - * and if a data member or other variable you can write: - * - * @code reenter (coro_) - * { - * ... coroutine body ... - * } @endcode - * - * When @c reenter is executed at runtime, control jumps to the location of the - * last @c yield or @c fork. - * - * The coroutine body may also be a single statement, such as: - * - * @code reenter (this) for (;;) - * { - * ... - * } @endcode - * - * @b Limitation: The @c reenter macro is implemented using a switch. This - * means that you must take care when using local variables within the - * coroutine body. The local variable is not allowed in a position where - * reentering the coroutine could bypass the variable definition. - * - * yield statement - * - * This form of the @c yield keyword is often used with asynchronous operations: - * - * @code yield socket_->async_read_some(buffer(*buffer_), *this); @endcode - * - * This divides into four logical steps: - * - * @li @c yield saves the current state of the coroutine. - * @li The statement initiates the asynchronous operation. - * @li The resume point is defined immediately following the statement. - * @li Control is transferred to the end of the coroutine body. - * - * When the asynchronous operation completes, the function object is invoked - * and @c reenter causes control to transfer to the resume point. It is - * important to remember to carry the coroutine state forward with the - * asynchronous operation. In the above snippet, the current class is a - * function object object with a coroutine object as base class or data member. - * - * The statement may also be a compound statement, and this permits us to - * define local variables with limited scope: - * - * @code yield - * { - * mutable_buffers_1 b = buffer(*buffer_); - * socket_->async_read_some(b, *this); - * } @endcode - * - * yield return expression ; - * - * This form of @c yield is often used in generators or coroutine-based parsers. - * For example, the function object: - * - * @code struct interleave : coroutine - * { - * istream& is1; - * istream& is2; - * char operator()(char c) - * { - * reenter (this) for (;;) - * { - * yield return is1.get(); - * yield return is2.get(); - * } - * } - * }; @endcode - * - * defines a trivial coroutine that interleaves the characters from two input - * streams. - * - * This type of @c yield divides into three logical steps: - * - * @li @c yield saves the current state of the coroutine. - * @li The resume point is defined immediately following the semicolon. - * @li The value of the expression is returned from the function. - * - * yield ; - * - * This form of @c yield is equivalent to the following steps: - * - * @li @c yield saves the current state of the coroutine. - * @li The resume point is defined immediately following the semicolon. - * @li Control is transferred to the end of the coroutine body. - * - * This form might be applied when coroutines are used for cooperative - * threading and scheduling is explicitly managed. For example: - * - * @code struct task : coroutine - * { - * ... - * void operator()() - * { - * reenter (this) - * { - * while (... not finished ...) - * { - * ... do something ... - * yield; - * ... do some more ... - * yield; - * } - * } - * } - * ... - * }; - * ... - * task t1, t2; - * for (;;) - * { - * t1(); - * t2(); - * } @endcode - * - * yield break ; - * - * The final form of @c yield is used to explicitly terminate the coroutine. - * This form is comprised of two steps: - * - * @li @c yield sets the coroutine state to indicate termination. - * @li Control is transferred to the end of the coroutine body. - * - * Once terminated, calls to is_complete() return true and the coroutine cannot - * be reentered. - * - * Note that a coroutine may also be implicitly terminated if the coroutine - * body is exited without a yield, e.g. by return, throw or by running to the - * end of the body. - * - * fork statement - * - * The @c fork pseudo-keyword is used when "forking" a coroutine, i.e. splitting - * it into two (or more) copies. One use of @c fork is in a server, where a new - * coroutine is created to handle each client connection: - * - * @code reenter (this) - * { - * do - * { - * socket_.reset(new tcp::socket(io_context_)); - * yield acceptor->async_accept(*socket_, *this); - * fork server(*this)(); - * } while (is_parent()); - * ... client-specific handling follows ... - * } @endcode - * - * The logical steps involved in a @c fork are: - * - * @li @c fork saves the current state of the coroutine. - * @li The statement creates a copy of the coroutine and either executes it - * immediately or schedules it for later execution. - * @li The resume point is defined immediately following the semicolon. - * @li For the "parent", control immediately continues from the next line. - * - * The functions is_parent() and is_child() can be used to differentiate - * between parent and child. You would use these functions to alter subsequent - * control flow. - * - * Note that @c fork doesn't do the actual forking by itself. It is the - * application's responsibility to create a clone of the coroutine and call it. - * The clone can be called immediately, as above, or scheduled for delayed - * execution using something like io_context::post(). - * - * @par Alternate macro names - * - * If preferred, an application can use macro names that follow a more typical - * naming convention, rather than the pseudo-keywords. These are: - * - * @li @c ASIO_CORO_REENTER instead of @c reenter - * @li @c ASIO_CORO_YIELD instead of @c yield - * @li @c ASIO_CORO_FORK instead of @c fork - */ -class coroutine -{ -public: - /// Constructs a coroutine in its initial state. - coroutine() : value_(0) {} - - /// Returns true if the coroutine is the child of a fork. - bool is_child() const { return value_ < 0; } - - /// Returns true if the coroutine is the parent of a fork. - bool is_parent() const { return !is_child(); } - - /// Returns true if the coroutine has reached its terminal state. - bool is_complete() const { return value_ == -1; } - -private: - friend class detail::coroutine_ref; - int value_; -}; - - -namespace detail { - -class coroutine_ref -{ -public: - coroutine_ref(coroutine& c) : value_(c.value_), modified_(false) {} - coroutine_ref(coroutine* c) : value_(c->value_), modified_(false) {} - ~coroutine_ref() { if (!modified_) value_ = -1; } - operator int() const { return value_; } - int& operator=(int v) { modified_ = true; return value_ = v; } -private: - void operator=(const coroutine_ref&); - int& value_; - bool modified_; -}; - -} // namespace detail -} // namespace asio - -#define ASIO_CORO_REENTER(c) \ - switch (::asio::detail::coroutine_ref _coro_value = c) \ - case -1: if (_coro_value) \ - { \ - goto terminate_coroutine; \ - terminate_coroutine: \ - _coro_value = -1; \ - goto bail_out_of_coroutine; \ - bail_out_of_coroutine: \ - break; \ - } \ - else /* fall-through */ case 0: - -#define ASIO_CORO_YIELD_IMPL(n) \ - for (_coro_value = (n);;) \ - if (_coro_value == 0) \ - { \ - case (n): ; \ - break; \ - } \ - else \ - switch (_coro_value ? 0 : 1) \ - for (;;) \ - /* fall-through */ case -1: if (_coro_value) \ - goto terminate_coroutine; \ - else for (;;) \ - /* fall-through */ case 1: if (_coro_value) \ - goto bail_out_of_coroutine; \ - else /* fall-through */ case 0: - -#define ASIO_CORO_FORK_IMPL(n) \ - for (_coro_value = -(n);; _coro_value = (n)) \ - if (_coro_value == (n)) \ - { \ - case -(n): ; \ - break; \ - } \ - else - -#if defined(_MSC_VER) -# define ASIO_CORO_YIELD ASIO_CORO_YIELD_IMPL(__COUNTER__ + 1) -# define ASIO_CORO_FORK ASIO_CORO_FORK_IMPL(__COUNTER__ + 1) -#else // defined(_MSC_VER) -# define ASIO_CORO_YIELD ASIO_CORO_YIELD_IMPL(__LINE__) -# define ASIO_CORO_FORK ASIO_CORO_FORK_IMPL(__LINE__) -#endif // defined(_MSC_VER) - -#endif // ASIO_COROUTINE_HPP diff --git a/Sources/Vendor/asio/include/asio/datagram_socket_service.hpp b/Sources/Vendor/asio/include/asio/datagram_socket_service.hpp deleted file mode 100644 index 7dc1a3b..0000000 --- a/Sources/Vendor/asio/include/asio/datagram_socket_service.hpp +++ /dev/null @@ -1,466 +0,0 @@ -// -// datagram_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DATAGRAM_SOCKET_SERVICE_HPP -#define ASIO_DATAGRAM_SOCKET_SERVICE_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_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a datagram socket. -template -class datagram_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::null_socket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The type of a datagram socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new datagram socket service for the specified io_context. - explicit datagram_socket_service(asio::io_context& io_context) - : asio::detail::service_base< - datagram_socket_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new datagram socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new datagram socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another datagram socket implementation. - void move_assign(implementation_type& impl, - datagram_socket_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All socket services have access to each other's implementations. - template friend class datagram_socket_service; - - /// Move-construct a new datagram socket implementation from another protocol - /// type. - template - void converting_move_construct(implementation_type& impl, - datagram_socket_service& other_service, - typename datagram_socket_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a datagram socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - // Open a new datagram socket implementation. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (protocol.type() == ASIO_OS_DEF(SOCK_DGRAM)) - service_impl_.open(impl, protocol, ec); - else - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to a datagram socket. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a datagram socket implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying socket. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native socket implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - // Bind the datagram socket to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the datagram socket to the specified endpoint. - ASIO_SYNC_OP_VOID connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - service_impl_.connect(impl, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - async_completion init(handler); - - service_impl_.async_connect(impl, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the socket. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native socket implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - ASIO_SYNC_OP_VOID shutdown(implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - service_impl_.shutdown(impl, what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Send a datagram to the specified endpoint. - template - std::size_t send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send_to(impl, buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send_to(impl, buffers, - destination, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive a datagram with the endpoint of the sender. - template - std::size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive_from(impl, buffers, sender_endpoint, flags, - ec); - } - - /// Start an asynchronous receive that will get the endpoint of the sender. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive_from(impl, buffers, - sender_endpoint, flags, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_DATAGRAM_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/deadline_timer.hpp b/Sources/Vendor/asio/include/asio/deadline_timer.hpp deleted file mode 100644 index 5a21554..0000000 --- a/Sources/Vendor/asio/include/asio/deadline_timer.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// deadline_timer.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DEADLINE_TIMER_HPP -#define ASIO_DEADLINE_TIMER_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_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/socket_types.hpp" // Must come before posix_time. -#include "asio/basic_deadline_timer.hpp" - -#include - -namespace asio { - -/// Typedef for the typical usage of timer. Uses a UTC clock. -typedef basic_deadline_timer deadline_timer; - -} // namespace asio - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_DEADLINE_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/deadline_timer_service.hpp b/Sources/Vendor/asio/include/asio/deadline_timer_service.hpp deleted file mode 100644 index 2dcc83e..0000000 --- a/Sources/Vendor/asio/include/asio/deadline_timer_service.hpp +++ /dev/null @@ -1,173 +0,0 @@ -// -// deadline_timer_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DEADLINE_TIMER_SERVICE_HPP -#define ASIO_DEADLINE_TIMER_SERVICE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/deadline_timer_service.hpp" -#include "asio/io_context.hpp" -#include "asio/time_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a timer. -template > -class deadline_timer_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base< - deadline_timer_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The time traits type. - typedef TimeTraits traits_type; - - /// The time type. - typedef typename traits_type::time_type time_type; - - /// The duration type. - typedef typename traits_type::duration_type duration_type; - -private: - // The type of the platform-specific implementation. - typedef detail::deadline_timer_service service_impl_type; - -public: - /// The implementation type of the deadline timer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// Construct a new timer service for the specified io_context. - explicit deadline_timer_service(asio::io_context& io_context) - : asio::detail::service_base< - deadline_timer_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new timer implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a timer implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Cancel any asynchronous wait operations associated with the timer. - std::size_t cancel(implementation_type& impl, asio::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Cancels one asynchronous wait operation associated with the timer. - std::size_t cancel_one(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.cancel_one(impl, ec); - } - - /// Get the expiry time for the timer as an absolute time. - time_type expires_at(const implementation_type& impl) const - { - return service_impl_.expiry(impl); - } - - /// Set the expiry time for the timer as an absolute time. - std::size_t expires_at(implementation_type& impl, - const time_type& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_at(impl, expiry_time, ec); - } - - /// Get the expiry time for the timer relative to now. - duration_type expires_from_now(const implementation_type& impl) const - { - return TimeTraits::subtract(service_impl_.expiry(impl), TimeTraits::now()); - } - - /// Set the expiry time for the timer relative to now. - std::size_t expires_from_now(implementation_type& impl, - const duration_type& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_after(impl, expiry_time, ec); - } - - // Perform a blocking wait on the timer. - void wait(implementation_type& impl, asio::error_code& ec) - { - service_impl_.wait(impl, ec); - } - - // Start an asynchronous wait on the timer. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_DEADLINE_TIMER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/defer.hpp b/Sources/Vendor/asio/include/asio/defer.hpp deleted file mode 100644 index a0897f2..0000000 --- a/Sources/Vendor/asio/include/asio/defer.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// -// defer.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DEFER_HPP -#define ASIO_DEFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the object's associated - * executor. The function object is queued for execution, and is never called - * from the current thread prior to returning from defer(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex by performing - * get_associated_executor(handler). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Performs ex.defer(std::move(handler), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - ASIO_MOVE_ARG(CompletionToken) token); - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the specified executor. - * The function object is queued for execution, and is never called from the - * current thread prior to returning from defer(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex1 by performing - * get_associated_executor(handler). - * - * @li Creates a work object @c w by performing make_work(ex1). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Constructs a function object @c f with a function call operator that - * performs ex1.dispatch(std::move(handler), alloc) followed by - * w.reset(). - * - * @li Performs Executor(ex).defer(std::move(f), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -/// Submits a completion token or function object for execution. -/** - * @returns defer(ctx.get_executor(), forward(token)). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/defer.hpp" - -#endif // ASIO_DEFER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/array.hpp b/Sources/Vendor/asio/include/asio/detail/array.hpp deleted file mode 100644 index ba42974..0000000 --- a/Sources/Vendor/asio/include/asio/detail/array.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// detail/array.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_ARRAY_HPP -#define ASIO_DETAIL_ARRAY_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_ARRAY) -# include -#else // defined(ASIO_HAS_STD_ARRAY) -# include -#endif // defined(ASIO_HAS_STD_ARRAY) - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_STD_ARRAY) -using std::array; -#else // defined(ASIO_HAS_STD_ARRAY) -using boost::array; -#endif // defined(ASIO_HAS_STD_ARRAY) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_ARRAY_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/array_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/array_fwd.hpp deleted file mode 100644 index 4161db0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/array_fwd.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// detail/array_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_ARRAY_FWD_HPP -#define ASIO_DETAIL_ARRAY_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace boost { - -template -class array; - -} // namespace boost - -// Standard library components can't be forward declared, so we'll have to -// include the array header. Fortunately, it's fairly lightweight and doesn't -// add significantly to the compile time. -#if defined(ASIO_HAS_STD_ARRAY) -# include -#endif // defined(ASIO_HAS_STD_ARRAY) - -#endif // ASIO_DETAIL_ARRAY_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/assert.hpp b/Sources/Vendor/asio/include/asio/detail/assert.hpp deleted file mode 100644 index a952a44..0000000 --- a/Sources/Vendor/asio/include/asio/detail/assert.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// detail/assert.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_ASSERT_HPP -#define ASIO_DETAIL_ASSERT_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_BOOST_ASSERT) -# include -#else // defined(ASIO_HAS_BOOST_ASSERT) -# include -#endif // defined(ASIO_HAS_BOOST_ASSERT) - -#if defined(ASIO_HAS_BOOST_ASSERT) -# define ASIO_ASSERT(expr) BOOST_ASSERT(expr) -#else // defined(ASIO_HAS_BOOST_ASSERT) -# define ASIO_ASSERT(expr) assert(expr) -#endif // defined(ASIO_HAS_BOOST_ASSERT) - -#endif // ASIO_DETAIL_ASSERT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/atomic_count.hpp b/Sources/Vendor/asio/include/asio/detail/atomic_count.hpp deleted file mode 100644 index 2bf75a5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/atomic_count.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// detail/atomic_count.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_ATOMIC_COUNT_HPP -#define ASIO_DETAIL_ATOMIC_COUNT_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_THREADS) -// Nothing to include. -#elif defined(ASIO_HAS_STD_ATOMIC) -# include -#else // defined(ASIO_HAS_STD_ATOMIC) -# include -#endif // defined(ASIO_HAS_STD_ATOMIC) - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef long atomic_count; -inline void increment(atomic_count& a, long b) { a += b; } -#elif defined(ASIO_HAS_STD_ATOMIC) -typedef std::atomic atomic_count; -inline void increment(atomic_count& a, long b) { a += b; } -#else // defined(ASIO_HAS_STD_ATOMIC) -typedef boost::detail::atomic_count atomic_count; -inline void increment(atomic_count& a, long b) { while (b > 0) ++a, --b; } -#endif // defined(ASIO_HAS_STD_ATOMIC) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_ATOMIC_COUNT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/base_from_completion_cond.hpp b/Sources/Vendor/asio/include/asio/detail/base_from_completion_cond.hpp deleted file mode 100644 index 73b4a95..0000000 --- a/Sources/Vendor/asio/include/asio/detail/base_from_completion_cond.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/base_from_completion_cond.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_BASE_FROM_COMPLETION_COND_HPP -#define ASIO_DETAIL_BASE_FROM_COMPLETION_COND_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/completion_condition.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class base_from_completion_cond -{ -protected: - explicit base_from_completion_cond(CompletionCondition completion_condition) - : completion_condition_(completion_condition) - { - } - - std::size_t check_for_completion( - const asio::error_code& ec, - std::size_t total_transferred) - { - return detail::adapt_completion_condition_result( - completion_condition_(ec, total_transferred)); - } - -private: - CompletionCondition completion_condition_; -}; - -template <> -class base_from_completion_cond -{ -protected: - explicit base_from_completion_cond(transfer_all_t) - { - } - - static std::size_t check_for_completion( - const asio::error_code& ec, - std::size_t total_transferred) - { - return transfer_all_t()(ec, total_transferred); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_BASE_FROM_COMPLETION_COND_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/bind_handler.hpp b/Sources/Vendor/asio/include/asio/detail/bind_handler.hpp deleted file mode 100644 index 0f4f066..0000000 --- a/Sources/Vendor/asio/include/asio/detail/bind_handler.hpp +++ /dev/null @@ -1,816 +0,0 @@ -// -// detail/bind_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_BIND_HANDLER_HPP -#define ASIO_DETAIL_BIND_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class binder1 -{ -public: - template - binder1(int, ASIO_MOVE_ARG(T) handler, const Arg1& arg1) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1) - { - } - - binder1(Handler& handler, const Arg1& arg1) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1) - { - } - -#if defined(ASIO_HAS_MOVE) - binder1(const binder1& other) - : handler_(other.handler_), - arg1_(other.arg1_) - { - } - - binder1(binder1&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_)); - } - - void operator()() const - { - handler_(arg1_); - } - -//private: - Handler handler_; - Arg1 arg1_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder1* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder1* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder1* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder1* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder1* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder1::type, Arg1> bind_handler( - ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1) -{ - return binder1::type, Arg1>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1); -} - -template -class binder2 -{ -public: - template - binder2(int, ASIO_MOVE_ARG(T) handler, - const Arg1& arg1, const Arg2& arg2) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1), - arg2_(arg2) - { - } - - binder2(Handler& handler, const Arg1& arg1, const Arg2& arg2) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(arg2) - { - } - -#if defined(ASIO_HAS_MOVE) - binder2(const binder2& other) - : handler_(other.handler_), - arg1_(other.arg1_), - arg2_(other.arg2_) - { - } - - binder2(binder2&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_), - static_cast(arg2_)); - } - - void operator()() const - { - handler_(arg1_, arg2_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder2* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder2* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder2* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder2* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder2* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder2::type, Arg1, Arg2> bind_handler( - ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1, const Arg2& arg2) -{ - return binder2::type, Arg1, Arg2>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1, arg2); -} - -template -class binder3 -{ -public: - template - binder3(int, ASIO_MOVE_ARG(T) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3) - { - } - - binder3(Handler& handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3) - { - } - -#if defined(ASIO_HAS_MOVE) - binder3(const binder3& other) - : handler_(other.handler_), - arg1_(other.arg1_), - arg2_(other.arg2_), - arg3_(other.arg3_) - { - } - - binder3(binder3&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)), - arg3_(ASIO_MOVE_CAST(Arg3)(other.arg3_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_), - static_cast(arg2_), static_cast(arg3_)); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder3* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder3* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder3* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder3* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder3* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder3::type, Arg1, Arg2, Arg3> bind_handler( - ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3) -{ - return binder3::type, Arg1, Arg2, Arg3>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1, arg2, arg3); -} - -template -class binder4 -{ -public: - template - binder4(int, ASIO_MOVE_ARG(T) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4) - { - } - - binder4(Handler& handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4) - { - } - -#if defined(ASIO_HAS_MOVE) - binder4(const binder4& other) - : handler_(other.handler_), - arg1_(other.arg1_), - arg2_(other.arg2_), - arg3_(other.arg3_), - arg4_(other.arg4_) - { - } - - binder4(binder4&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)), - arg3_(ASIO_MOVE_CAST(Arg3)(other.arg3_)), - arg4_(ASIO_MOVE_CAST(Arg4)(other.arg4_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_), - static_cast(arg2_), static_cast(arg3_), - static_cast(arg4_)); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_, arg4_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; - Arg4 arg4_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder4* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder4* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder4* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder4* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder4* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder4::type, Arg1, Arg2, Arg3, Arg4> -bind_handler(ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4) -{ - return binder4::type, Arg1, Arg2, Arg3, Arg4>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1, arg2, arg3, arg4); -} - -template -class binder5 -{ -public: - template - binder5(int, ASIO_MOVE_ARG(T) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4, const Arg5& arg5) - : handler_(ASIO_MOVE_CAST(T)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4), - arg5_(arg5) - { - } - - binder5(Handler& handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3, const Arg4& arg4, const Arg5& arg5) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4), - arg5_(arg5) - { - } - -#if defined(ASIO_HAS_MOVE) - binder5(const binder5& other) - : handler_(other.handler_), - arg1_(other.arg1_), - arg2_(other.arg2_), - arg3_(other.arg3_), - arg4_(other.arg4_), - arg5_(other.arg5_) - { - } - - binder5(binder5&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)), - arg3_(ASIO_MOVE_CAST(Arg3)(other.arg3_)), - arg4_(ASIO_MOVE_CAST(Arg4)(other.arg4_)), - arg5_(ASIO_MOVE_CAST(Arg5)(other.arg5_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(static_cast(arg1_), - static_cast(arg2_), static_cast(arg3_), - static_cast(arg4_), static_cast(arg5_)); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_, arg4_, arg5_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; - Arg4 arg4_; - Arg5 arg5_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder5* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder5* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - binder5* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - binder5* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder5* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline binder5::type, Arg1, Arg2, Arg3, Arg4, Arg5> -bind_handler(ASIO_MOVE_ARG(Handler) handler, const Arg1& arg1, - const Arg2& arg2, const Arg3& arg3, const Arg4& arg4, const Arg5& arg5) -{ - return binder5::type, Arg1, Arg2, Arg3, Arg4, Arg5>(0, - ASIO_MOVE_CAST(Handler)(handler), arg1, arg2, arg3, arg4, arg5); -} - -#if defined(ASIO_HAS_MOVE) - -template -class move_binder1 -{ -public: - move_binder1(int, ASIO_MOVE_ARG(Handler) handler, - ASIO_MOVE_ARG(Arg1) arg1) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(ASIO_MOVE_CAST(Arg1)(arg1)) - { - } - - move_binder1(move_binder1&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)) - { - } - - void operator()() - { - handler_(ASIO_MOVE_CAST(Arg1)(arg1_)); - } - -//private: - Handler handler_; - Arg1 arg1_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - move_binder1* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - move_binder1* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - move_binder1* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(ASIO_MOVE_ARG(Function) function, - move_binder1* this_handler) -{ - asio_handler_invoke_helpers::invoke( - ASIO_MOVE_CAST(Function)(function), this_handler->handler_); -} - -template -class move_binder2 -{ -public: - move_binder2(int, ASIO_MOVE_ARG(Handler) handler, - const Arg1& arg1, ASIO_MOVE_ARG(Arg2) arg2) - : handler_(ASIO_MOVE_CAST(Handler)(handler)), - arg1_(arg1), - arg2_(ASIO_MOVE_CAST(Arg2)(arg2)) - { - } - - move_binder2(move_binder2&& other) - : handler_(ASIO_MOVE_CAST(Handler)(other.handler_)), - arg1_(ASIO_MOVE_CAST(Arg1)(other.arg1_)), - arg2_(ASIO_MOVE_CAST(Arg2)(other.arg2_)) - { - } - - void operator()() - { - handler_(static_cast(arg1_), - ASIO_MOVE_CAST(Arg2)(arg2_)); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - move_binder2* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - move_binder2* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - move_binder2* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(ASIO_MOVE_ARG(Function) function, - move_binder2* this_handler) -{ - asio_handler_invoke_helpers::invoke( - ASIO_MOVE_CAST(Function)(function), this_handler->handler_); -} - -#endif // defined(ASIO_HAS_MOVE) - -} // namespace detail - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::binder1& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::binder2& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::binder1& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::binder2& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#if defined(ASIO_HAS_MOVE) - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::move_binder1& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_allocator< - detail::move_binder2, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::move_binder2& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::move_binder1& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::move_binder2& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // defined(ASIO_HAS_MOVE) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_BIND_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/buffer_resize_guard.hpp b/Sources/Vendor/asio/include/asio/detail/buffer_resize_guard.hpp deleted file mode 100644 index 58ebc4c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/buffer_resize_guard.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// detail/buffer_resize_guard.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_BUFFER_RESIZE_GUARD_HPP -#define ASIO_DETAIL_BUFFER_RESIZE_GUARD_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/limits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper class to manage buffer resizing in an exception safe way. -template -class buffer_resize_guard -{ -public: - // Constructor. - buffer_resize_guard(Buffer& buffer) - : buffer_(buffer), - old_size_(buffer.size()) - { - } - - // Destructor rolls back the buffer resize unless commit was called. - ~buffer_resize_guard() - { - if (old_size_ != (std::numeric_limits::max)()) - { - buffer_.resize(old_size_); - } - } - - // Commit the resize transaction. - void commit() - { - old_size_ = (std::numeric_limits::max)(); - } - -private: - // The buffer being managed. - Buffer& buffer_; - - // The size of the buffer at the time the guard was constructed. - size_t old_size_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/buffer_sequence_adapter.hpp b/Sources/Vendor/asio/include/asio/detail/buffer_sequence_adapter.hpp deleted file mode 100644 index 92a8e3d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/buffer_sequence_adapter.hpp +++ /dev/null @@ -1,544 +0,0 @@ -// -// detail/buffer_sequence_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_BUFFER_SEQUENCE_ADAPTER_HPP -#define ASIO_DETAIL_BUFFER_SEQUENCE_ADAPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/buffer.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class buffer_sequence_adapter_base -{ -#if defined(ASIO_WINDOWS_RUNTIME) -public: - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 1 }; - -protected: - typedef Windows::Storage::Streams::IBuffer^ native_buffer_type; - - ASIO_DECL static void init_native_buffer( - native_buffer_type& buf, - const asio::mutable_buffer& buffer); - - ASIO_DECL static void init_native_buffer( - native_buffer_type& buf, - const asio::const_buffer& buffer); -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -public: - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len }; - -protected: - typedef WSABUF native_buffer_type; - - static void init_native_buffer(WSABUF& buf, - const asio::mutable_buffer& buffer) - { - buf.buf = static_cast(buffer.data()); - buf.len = static_cast(buffer.size()); - } - - static void init_native_buffer(WSABUF& buf, - const asio::const_buffer& buffer) - { - buf.buf = const_cast(static_cast(buffer.data())); - buf.len = static_cast(buffer.size()); - } -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -public: - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len }; - -protected: - typedef iovec native_buffer_type; - - static void init_iov_base(void*& base, void* addr) - { - base = addr; - } - - template - static void init_iov_base(T& base, void* addr) - { - base = static_cast(addr); - } - - static void init_native_buffer(iovec& iov, - const asio::mutable_buffer& buffer) - { - init_iov_base(iov.iov_base, buffer.data()); - iov.iov_len = buffer.size(); - } - - static void init_native_buffer(iovec& iov, - const asio::const_buffer& buffer) - { - init_iov_base(iov.iov_base, const_cast(buffer.data())); - iov.iov_len = buffer.size(); - } -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -}; - -// Helper class to translate buffers into the native buffer representation. -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter(const Buffers& buffer_sequence) - : count_(0), total_buffer_size_(0) - { - buffer_sequence_adapter::init( - asio::buffer_sequence_begin(buffer_sequence), - asio::buffer_sequence_end(buffer_sequence)); - } - - native_buffer_type* buffers() - { - return buffers_; - } - - std::size_t count() const - { - return count_; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const Buffers& buffer_sequence) - { - return buffer_sequence_adapter::all_empty( - asio::buffer_sequence_begin(buffer_sequence), - asio::buffer_sequence_end(buffer_sequence)); - } - - static void validate(const Buffers& buffer_sequence) - { - buffer_sequence_adapter::validate( - asio::buffer_sequence_begin(buffer_sequence), - asio::buffer_sequence_end(buffer_sequence)); - } - - static Buffer first(const Buffers& buffer_sequence) - { - return buffer_sequence_adapter::first( - asio::buffer_sequence_begin(buffer_sequence), - asio::buffer_sequence_end(buffer_sequence)); - } - -private: - template - void init(Iterator begin, Iterator end) - { - Iterator iter = begin; - for (; iter != end && count_ < max_buffers; ++iter, ++count_) - { - Buffer buffer(*iter); - init_native_buffer(buffers_[count_], buffer); - total_buffer_size_ += buffer.size(); - } - } - - template - static bool all_empty(Iterator begin, Iterator end) - { - Iterator iter = begin; - std::size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - if (Buffer(*iter).size() > 0) - return false; - return true; - } - - template - static void validate(Iterator begin, Iterator end) - { - Iterator iter = begin; - for (; iter != end; ++iter) - { - Buffer buffer(*iter); - buffer.data(); - } - } - - template - static Buffer first(Iterator begin, Iterator end) - { - Iterator iter = begin; - for (; iter != end; ++iter) - { - Buffer buffer(*iter); - if (buffer.size() != 0) - return buffer; - } - return Buffer(); - } - - native_buffer_type buffers_[max_buffers]; - std::size_t count_; - std::size_t total_buffer_size_; -}; - -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const asio::mutable_buffer& buffer_sequence) - { - init_native_buffer(buffer_, Buffer(buffer_sequence)); - total_buffer_size_ = buffer_sequence.size(); - } - - native_buffer_type* buffers() - { - return &buffer_; - } - - std::size_t count() const - { - return 1; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const asio::mutable_buffer& buffer_sequence) - { - return buffer_sequence.size() == 0; - } - - static void validate(const asio::mutable_buffer& buffer_sequence) - { - buffer_sequence.data(); - } - - static Buffer first(const asio::mutable_buffer& buffer_sequence) - { - return Buffer(buffer_sequence); - } - -private: - native_buffer_type buffer_; - std::size_t total_buffer_size_; -}; - -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const asio::const_buffer& buffer_sequence) - { - init_native_buffer(buffer_, Buffer(buffer_sequence)); - total_buffer_size_ = buffer_sequence.size(); - } - - native_buffer_type* buffers() - { - return &buffer_; - } - - std::size_t count() const - { - return 1; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const asio::const_buffer& buffer_sequence) - { - return buffer_sequence.size() == 0; - } - - static void validate(const asio::const_buffer& buffer_sequence) - { - buffer_sequence.data(); - } - - static Buffer first(const asio::const_buffer& buffer_sequence) - { - return Buffer(buffer_sequence); - } - -private: - native_buffer_type buffer_; - std::size_t total_buffer_size_; -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const asio::mutable_buffers_1& buffer_sequence) - { - init_native_buffer(buffer_, Buffer(buffer_sequence)); - total_buffer_size_ = buffer_sequence.size(); - } - - native_buffer_type* buffers() - { - return &buffer_; - } - - std::size_t count() const - { - return 1; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const asio::mutable_buffers_1& buffer_sequence) - { - return buffer_sequence.size() == 0; - } - - static void validate(const asio::mutable_buffers_1& buffer_sequence) - { - buffer_sequence.data(); - } - - static Buffer first(const asio::mutable_buffers_1& buffer_sequence) - { - return Buffer(buffer_sequence); - } - -private: - native_buffer_type buffer_; - std::size_t total_buffer_size_; -}; - -template -class buffer_sequence_adapter - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const asio::const_buffers_1& buffer_sequence) - { - init_native_buffer(buffer_, Buffer(buffer_sequence)); - total_buffer_size_ = buffer_sequence.size(); - } - - native_buffer_type* buffers() - { - return &buffer_; - } - - std::size_t count() const - { - return 1; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const asio::const_buffers_1& buffer_sequence) - { - return buffer_sequence.size() == 0; - } - - static void validate(const asio::const_buffers_1& buffer_sequence) - { - buffer_sequence.data(); - } - - static Buffer first(const asio::const_buffers_1& buffer_sequence) - { - return Buffer(buffer_sequence); - } - -private: - native_buffer_type buffer_; - std::size_t total_buffer_size_; -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -class buffer_sequence_adapter > - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const boost::array& buffer_sequence) - { - init_native_buffer(buffers_[0], Buffer(buffer_sequence[0])); - init_native_buffer(buffers_[1], Buffer(buffer_sequence[1])); - total_buffer_size_ = buffer_sequence[0].size() + buffer_sequence[1].size(); - } - - native_buffer_type* buffers() - { - return buffers_; - } - - std::size_t count() const - { - return 2; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const boost::array& buffer_sequence) - { - return buffer_sequence[0].size() == 0 && buffer_sequence[1].size() == 0; - } - - static void validate(const boost::array& buffer_sequence) - { - buffer_sequence[0].data(); - buffer_sequence[1].data(); - } - - static Buffer first(const boost::array& buffer_sequence) - { - return Buffer(buffer_sequence[0].size() != 0 - ? buffer_sequence[0] : buffer_sequence[1]); - } - -private: - native_buffer_type buffers_[2]; - std::size_t total_buffer_size_; -}; - -#if defined(ASIO_HAS_STD_ARRAY) - -template -class buffer_sequence_adapter > - : buffer_sequence_adapter_base -{ -public: - explicit buffer_sequence_adapter( - const std::array& buffer_sequence) - { - init_native_buffer(buffers_[0], Buffer(buffer_sequence[0])); - init_native_buffer(buffers_[1], Buffer(buffer_sequence[1])); - total_buffer_size_ = buffer_sequence[0].size() + buffer_sequence[1].size(); - } - - native_buffer_type* buffers() - { - return buffers_; - } - - std::size_t count() const - { - return 2; - } - - std::size_t total_size() const - { - return total_buffer_size_; - } - - bool all_empty() const - { - return total_buffer_size_ == 0; - } - - static bool all_empty(const std::array& buffer_sequence) - { - return buffer_sequence[0].size() == 0 && buffer_sequence[1].size() == 0; - } - - static void validate(const std::array& buffer_sequence) - { - buffer_sequence[0].data(); - buffer_sequence[1].data(); - } - - static Buffer first(const std::array& buffer_sequence) - { - return Buffer(buffer_sequence[0].size() != 0 - ? buffer_sequence[0] : buffer_sequence[1]); - } - -private: - native_buffer_type buffers_[2]; - std::size_t total_buffer_size_; -}; - -#endif // defined(ASIO_HAS_STD_ARRAY) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/buffer_sequence_adapter.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_BUFFER_SEQUENCE_ADAPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/buffered_stream_storage.hpp b/Sources/Vendor/asio/include/asio/detail/buffered_stream_storage.hpp deleted file mode 100644 index c5eb081..0000000 --- a/Sources/Vendor/asio/include/asio/detail/buffered_stream_storage.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// -// detail/buffered_stream_storage.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_BUFFERED_STREAM_STORAGE_HPP -#define ASIO_DETAIL_BUFFERED_STREAM_STORAGE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/buffer.hpp" -#include "asio/detail/assert.hpp" -#include -#include -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class buffered_stream_storage -{ -public: - // The type of the bytes stored in the buffer. - typedef unsigned char byte_type; - - // The type used for offsets into the buffer. - typedef std::size_t size_type; - - // Constructor. - explicit buffered_stream_storage(std::size_t buffer_capacity) - : begin_offset_(0), - end_offset_(0), - buffer_(buffer_capacity) - { - } - - /// Clear the buffer. - void clear() - { - begin_offset_ = 0; - end_offset_ = 0; - } - - // Return a pointer to the beginning of the unread data. - mutable_buffer data() - { - return asio::buffer(buffer_) + begin_offset_; - } - - // Return a pointer to the beginning of the unread data. - const_buffer data() const - { - return asio::buffer(buffer_) + begin_offset_; - } - - // Is there no unread data in the buffer. - bool empty() const - { - return begin_offset_ == end_offset_; - } - - // Return the amount of unread data the is in the buffer. - size_type size() const - { - return end_offset_ - begin_offset_; - } - - // Resize the buffer to the specified length. - void resize(size_type length) - { - ASIO_ASSERT(length <= capacity()); - if (begin_offset_ + length <= capacity()) - { - end_offset_ = begin_offset_ + length; - } - else - { - using namespace std; // For memmove. - memmove(&buffer_[0], &buffer_[0] + begin_offset_, size()); - end_offset_ = length; - begin_offset_ = 0; - } - } - - // Return the maximum size for data in the buffer. - size_type capacity() const - { - return buffer_.size(); - } - - // Consume multiple bytes from the beginning of the buffer. - void consume(size_type count) - { - ASIO_ASSERT(begin_offset_ + count <= end_offset_); - begin_offset_ += count; - if (empty()) - clear(); - } - -private: - // The offset to the beginning of the unread data. - size_type begin_offset_; - - // The offset to the end of the unread data. - size_type end_offset_; - - // The data in the buffer. - std::vector buffer_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_BUFFERED_STREAM_STORAGE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/call_stack.hpp b/Sources/Vendor/asio/include/asio/detail/call_stack.hpp deleted file mode 100644 index 5725a10..0000000 --- a/Sources/Vendor/asio/include/asio/detail/call_stack.hpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// detail/call_stack.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CALL_STACK_HPP -#define ASIO_DETAIL_CALL_STACK_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/noncopyable.hpp" -#include "asio/detail/tss_ptr.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper class to determine whether or not the current thread is inside an -// invocation of io_context::run() for a specified io_context object. -template -class call_stack -{ -public: - // Context class automatically pushes the key/value pair on to the stack. - class context - : private noncopyable - { - public: - // Push the key on to the stack. - explicit context(Key* k) - : key_(k), - next_(call_stack::top_) - { - value_ = reinterpret_cast(this); - call_stack::top_ = this; - } - - // Push the key/value pair on to the stack. - context(Key* k, Value& v) - : key_(k), - value_(&v), - next_(call_stack::top_) - { - call_stack::top_ = this; - } - - // Pop the key/value pair from the stack. - ~context() - { - call_stack::top_ = next_; - } - - // Find the next context with the same key. - Value* next_by_key() const - { - context* elem = next_; - while (elem) - { - if (elem->key_ == key_) - return elem->value_; - elem = elem->next_; - } - return 0; - } - - private: - friend class call_stack; - - // The key associated with the context. - Key* key_; - - // The value associated with the context. - Value* value_; - - // The next element in the stack. - context* next_; - }; - - friend class context; - - // Determine whether the specified owner is on the stack. Returns address of - // key if present, 0 otherwise. - static Value* contains(Key* k) - { - context* elem = top_; - while (elem) - { - if (elem->key_ == k) - return elem->value_; - elem = elem->next_; - } - return 0; - } - - // Obtain the value at the top of the stack. - static Value* top() - { - context* elem = top_; - return elem ? elem->value_ : 0; - } - -private: - // The top of the stack of calls for the current thread. - static tss_ptr top_; -}; - -template -tss_ptr::context> -call_stack::top_; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CALL_STACK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/chrono.hpp b/Sources/Vendor/asio/include/asio/detail/chrono.hpp deleted file mode 100644 index 8f56bee..0000000 --- a/Sources/Vendor/asio/include/asio/detail/chrono.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// detail/chrono.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CHRONO_HPP -#define ASIO_DETAIL_CHRONO_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_CHRONO) -# include -#elif defined(ASIO_HAS_BOOST_CHRONO) -# include -#endif // defined(ASIO_HAS_BOOST_CHRONO) - -namespace asio { -namespace chrono { - -#if defined(ASIO_HAS_STD_CHRONO) -using std::chrono::duration; -using std::chrono::time_point; -using std::chrono::duration_cast; -using std::chrono::nanoseconds; -using std::chrono::microseconds; -using std::chrono::milliseconds; -using std::chrono::seconds; -using std::chrono::minutes; -using std::chrono::hours; -using std::chrono::time_point_cast; -#if defined(ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK) -typedef std::chrono::monotonic_clock steady_clock; -#else // defined(ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK) -using std::chrono::steady_clock; -#endif // defined(ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK) -using std::chrono::system_clock; -using std::chrono::high_resolution_clock; -#elif defined(ASIO_HAS_BOOST_CHRONO) -using boost::chrono::duration; -using boost::chrono::time_point; -using boost::chrono::duration_cast; -using boost::chrono::nanoseconds; -using boost::chrono::microseconds; -using boost::chrono::milliseconds; -using boost::chrono::seconds; -using boost::chrono::minutes; -using boost::chrono::hours; -using boost::chrono::time_point_cast; -using boost::chrono::system_clock; -using boost::chrono::steady_clock; -using boost::chrono::high_resolution_clock; -#endif // defined(ASIO_HAS_BOOST_CHRONO) - -} // namespace chrono -} // namespace asio - -#endif // ASIO_DETAIL_CHRONO_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/chrono_time_traits.hpp b/Sources/Vendor/asio/include/asio/detail/chrono_time_traits.hpp deleted file mode 100644 index d1528f7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/chrono_time_traits.hpp +++ /dev/null @@ -1,190 +0,0 @@ -// -// detail/chrono_time_traits.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CHRONO_TIME_TRAITS_HPP -#define ASIO_DETAIL_CHRONO_TIME_TRAITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/cstdint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper template to compute the greatest common divisor. -template -struct gcd { enum { value = gcd::value }; }; - -template -struct gcd { enum { value = v1 }; }; - -// Adapts std::chrono clocks for use with a deadline timer. -template -struct chrono_time_traits -{ - // The clock type. - typedef Clock clock_type; - - // The duration type of the clock. - typedef typename clock_type::duration duration_type; - - // The time point type of the clock. - typedef typename clock_type::time_point time_type; - - // The period of the clock. - typedef typename duration_type::period period_type; - - // Get the current time. - static time_type now() - { - return clock_type::now(); - } - - // Add a duration to a time. - static time_type add(const time_type& t, const duration_type& d) - { - const time_type epoch; - if (t >= epoch) - { - if ((time_type::max)() - t < d) - return (time_type::max)(); - } - else // t < epoch - { - if (-(t - (time_type::min)()) > d) - return (time_type::min)(); - } - - return t + d; - } - - // Subtract one time from another. - static duration_type subtract(const time_type& t1, const time_type& t2) - { - const time_type epoch; - if (t1 >= epoch) - { - if (t2 >= epoch) - { - return t1 - t2; - } - else if (t2 == (time_type::min)()) - { - return (duration_type::max)(); - } - else if ((time_type::max)() - t1 < epoch - t2) - { - return (duration_type::max)(); - } - else - { - return t1 - t2; - } - } - else // t1 < epoch - { - if (t2 < epoch) - { - return t1 - t2; - } - else if (t1 == (time_type::min)()) - { - return (duration_type::min)(); - } - else if ((time_type::max)() - t2 < epoch - t1) - { - return (duration_type::min)(); - } - else - { - return -(t2 - t1); - } - } - } - - // Test whether one time is less than another. - static bool less_than(const time_type& t1, const time_type& t2) - { - return t1 < t2; - } - - // Implement just enough of the posix_time::time_duration interface to supply - // what the timer_queue requires. - class posix_time_duration - { - public: - explicit posix_time_duration(const duration_type& d) - : d_(d) - { - } - - int64_t ticks() const - { - return d_.count(); - } - - int64_t total_seconds() const - { - return duration_cast<1, 1>(); - } - - int64_t total_milliseconds() const - { - return duration_cast<1, 1000>(); - } - - int64_t total_microseconds() const - { - return duration_cast<1, 1000000>(); - } - - private: - template - int64_t duration_cast() const - { - const int64_t num1 = period_type::num / gcd::value; - const int64_t num2 = Num / gcd::value; - - const int64_t den1 = period_type::den / gcd::value; - const int64_t den2 = Den / gcd::value; - - const int64_t num = num1 * den2; - const int64_t den = num2 * den1; - - if (num == 1 && den == 1) - return ticks(); - else if (num != 1 && den == 1) - return ticks() * num; - else if (num == 1 && period_type::den != 1) - return ticks() / den; - else - return ticks() * num / den; - } - - duration_type d_; - }; - - // Convert to POSIX duration type. - static posix_time_duration to_posix_duration(const duration_type& d) - { - return posix_time_duration(WaitTraits::to_wait_duration(d)); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CHRONO_TIME_TRAITS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/completion_handler.hpp b/Sources/Vendor/asio/include/asio/detail/completion_handler.hpp deleted file mode 100644 index 58a2e6d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/completion_handler.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// detail/completion_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_COMPLETION_HANDLER_HPP -#define ASIO_DETAIL_COMPLETION_HANDLER_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/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_work.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class completion_handler : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(completion_handler); - - completion_handler(Handler& h) - : operation(&completion_handler::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(h)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - completion_handler* h(static_cast(base)); - ptr p = { asio::detail::addressof(h->handler_), h, h }; - handler_work w(h->handler_); - - ASIO_HANDLER_COMPLETION((*h)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - Handler handler(ASIO_MOVE_CAST(Handler)(h->handler_)); - p.h = asio::detail::addressof(handler); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN(()); - w.complete(handler, handler); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_COMPLETION_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/concurrency_hint.hpp b/Sources/Vendor/asio/include/asio/detail/concurrency_hint.hpp deleted file mode 100644 index 229124d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/concurrency_hint.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// detail/concurrency_hint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CONCURRENCY_HINT_HPP -#define ASIO_DETAIL_CONCURRENCY_HINT_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/noncopyable.hpp" - -// The concurrency hint ID and mask are used to identify when a "well-known" -// concurrency hint value has been passed to the io_context. -#define ASIO_CONCURRENCY_HINT_ID 0xA5100000u -#define ASIO_CONCURRENCY_HINT_ID_MASK 0xFFFF0000u - -// If set, this bit indicates that the scheduler should perform locking. -#define ASIO_CONCURRENCY_HINT_LOCKING_SCHEDULER 0x1u - -// If set, this bit indicates that the reactor should perform locking when -// managing descriptor registrations. -#define ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_REGISTRATION 0x2u - -// If set, this bit indicates that the reactor should perform locking for I/O. -#define ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_IO 0x4u - -// Helper macro to determine if we have a special concurrency hint. -#define ASIO_CONCURRENCY_HINT_IS_SPECIAL(hint) \ - ((static_cast(hint) \ - & ASIO_CONCURRENCY_HINT_ID_MASK) \ - == ASIO_CONCURRENCY_HINT_ID) - -// Helper macro to determine if locking is enabled for a given facility. -#define ASIO_CONCURRENCY_HINT_IS_LOCKING(facility, hint) \ - (((static_cast(hint) \ - & (ASIO_CONCURRENCY_HINT_ID_MASK \ - | ASIO_CONCURRENCY_HINT_LOCKING_ ## facility)) \ - ^ ASIO_CONCURRENCY_HINT_ID) != 0) - -// This special concurrency hint disables locking in both the scheduler and -// reactor I/O. This hint has the following restrictions: -// -// - Care must be taken to ensure that all operations on the io_context and any -// of its associated I/O objects (such as sockets and timers) occur in only -// one thread at a time. -// -// - Asynchronous resolve operations fail with operation_not_supported. -// -// - If a signal_set is used with the io_context, signal_set objects cannot be -// used with any other io_context in the program. -#define ASIO_CONCURRENCY_HINT_UNSAFE \ - static_cast(ASIO_CONCURRENCY_HINT_ID) - -// This special concurrency hint disables locking in the reactor I/O. This hint -// has the following restrictions: -// -// - Care must be taken to ensure that run functions on the io_context, and all -// operations on the io_context's associated I/O objects (such as sockets and -// timers), occur in only one thread at a time. -#define ASIO_CONCURRENCY_HINT_UNSAFE_IO \ - static_cast(ASIO_CONCURRENCY_HINT_ID \ - | ASIO_CONCURRENCY_HINT_LOCKING_SCHEDULER \ - | ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_REGISTRATION) - -// The special concurrency hint provides full thread safety. -#define ASIO_CONCURRENCY_HINT_SAFE \ - static_cast(ASIO_CONCURRENCY_HINT_ID \ - | ASIO_CONCURRENCY_HINT_LOCKING_SCHEDULER \ - | ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_REGISTRATION \ - | ASIO_CONCURRENCY_HINT_LOCKING_REACTOR_IO) - -// This #define may be overridden at compile time to specify a program-wide -// default concurrency hint, used by the zero-argument io_context constructor. -#if !defined(ASIO_CONCURRENCY_HINT_DEFAULT) -# define ASIO_CONCURRENCY_HINT_DEFAULT -1 -#endif // !defined(ASIO_CONCURRENCY_HINT_DEFAULT) - -// This #define may be overridden at compile time to specify a program-wide -// concurrency hint, used by the one-argument io_context constructor when -// passed a value of 1. -#if !defined(ASIO_CONCURRENCY_HINT_1) -# define ASIO_CONCURRENCY_HINT_1 1 -#endif // !defined(ASIO_CONCURRENCY_HINT_DEFAULT) - -#endif // ASIO_DETAIL_CONCURRENCY_HINT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_event.hpp b/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_event.hpp deleted file mode 100644 index 0fda401..0000000 --- a/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_event.hpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// detail/conditionally_enabled_event.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CONDITIONALLY_ENABLED_EVENT_HPP -#define ASIO_DETAIL_CONDITIONALLY_ENABLED_EVENT_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/conditionally_enabled_mutex.hpp" -#include "asio/detail/event.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/null_event.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Mutex adapter used to conditionally enable or disable locking. -class conditionally_enabled_event - : private noncopyable -{ -public: - // Constructor. - conditionally_enabled_event() - { - } - - // Destructor. - ~conditionally_enabled_event() - { - } - - // Signal the event. (Retained for backward compatibility.) - void signal(conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.signal(lock); - } - - // Signal all waiters. - void signal_all(conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.signal_all(lock); - } - - // Unlock the mutex and signal one waiter. - void unlock_and_signal_one( - conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.unlock_and_signal_one(lock); - } - - // If there's a waiter, unlock the mutex and signal it. - bool maybe_unlock_and_signal_one( - conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - return event_.maybe_unlock_and_signal_one(lock); - else - return false; - } - - // Reset the event. - void clear(conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.clear(lock); - } - - // Wait for the event to become signalled. - void wait(conditionally_enabled_mutex::scoped_lock& lock) - { - if (lock.mutex_.enabled_) - event_.wait(lock); - else - null_event().wait(lock); - } - - // Timed wait for the event to become signalled. - bool wait_for_usec( - conditionally_enabled_mutex::scoped_lock& lock, long usec) - { - if (lock.mutex_.enabled_) - return event_.wait_for_usec(lock, usec); - else - return null_event().wait_for_usec(lock, usec); - } - -private: - asio::detail::event event_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CONDITIONALLY_ENABLED_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_mutex.hpp deleted file mode 100644 index 2872db9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/conditionally_enabled_mutex.hpp +++ /dev/null @@ -1,149 +0,0 @@ -// -// detail/conditionally_enabled_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CONDITIONALLY_ENABLED_MUTEX_HPP -#define ASIO_DETAIL_CONDITIONALLY_ENABLED_MUTEX_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/mutex.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Mutex adapter used to conditionally enable or disable locking. -class conditionally_enabled_mutex - : private noncopyable -{ -public: - // Helper class to lock and unlock a mutex automatically. - class scoped_lock - : private noncopyable - { - public: - // Tag type used to distinguish constructors. - enum adopt_lock_t { adopt_lock }; - - // Constructor adopts a lock that is already held. - scoped_lock(conditionally_enabled_mutex& m, adopt_lock_t) - : mutex_(m), - locked_(m.enabled_) - { - } - - // Constructor acquires the lock. - explicit scoped_lock(conditionally_enabled_mutex& m) - : mutex_(m) - { - if (m.enabled_) - { - mutex_.mutex_.lock(); - locked_ = true; - } - else - locked_ = false; - } - - // Destructor releases the lock. - ~scoped_lock() - { - if (locked_) - mutex_.mutex_.unlock(); - } - - // Explicitly acquire the lock. - void lock() - { - if (mutex_.enabled_ && !locked_) - { - mutex_.mutex_.lock(); - locked_ = true; - } - } - - // Explicitly release the lock. - void unlock() - { - if (locked_) - { - mutex_.unlock(); - locked_ = false; - } - } - - // Test whether the lock is held. - bool locked() const - { - return locked_; - } - - // Get the underlying mutex. - asio::detail::mutex& mutex() - { - return mutex_.mutex_; - } - - private: - friend class conditionally_enabled_event; - conditionally_enabled_mutex& mutex_; - bool locked_; - }; - - // Constructor. - explicit conditionally_enabled_mutex(bool enabled) - : enabled_(enabled) - { - } - - // Destructor. - ~conditionally_enabled_mutex() - { - } - - // Determine whether locking is enabled. - bool enabled() const - { - return enabled_; - } - - // Lock the mutex. - void lock() - { - if (enabled_) - mutex_.lock(); - } - - // Unlock the mutex. - void unlock() - { - if (enabled_) - mutex_.unlock(); - } - -private: - friend class scoped_lock; - friend class conditionally_enabled_event; - asio::detail::mutex mutex_; - const bool enabled_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CONDITIONALLY_ENABLED_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/config.hpp b/Sources/Vendor/asio/include/asio/detail/config.hpp deleted file mode 100644 index e54eea7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/config.hpp +++ /dev/null @@ -1,1456 +0,0 @@ -// -// detail/config.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CONFIG_HPP -#define ASIO_DETAIL_CONFIG_HPP - -#if defined(ASIO_STANDALONE) -# define ASIO_DISABLE_BOOST_ARRAY 1 -# define ASIO_DISABLE_BOOST_ASSERT 1 -# define ASIO_DISABLE_BOOST_BIND 1 -# define ASIO_DISABLE_BOOST_CHRONO 1 -# define ASIO_DISABLE_BOOST_DATE_TIME 1 -# define ASIO_DISABLE_BOOST_LIMITS 1 -# define ASIO_DISABLE_BOOST_REGEX 1 -# define ASIO_DISABLE_BOOST_STATIC_CONSTANT 1 -# define ASIO_DISABLE_BOOST_THROW_EXCEPTION 1 -# define ASIO_DISABLE_BOOST_WORKAROUND 1 -#else // defined(ASIO_STANDALONE) -# include -# include -# define ASIO_HAS_BOOST_CONFIG 1 -#endif // defined(ASIO_STANDALONE) - -// Default to a header-only implementation. The user must specifically request -// separate compilation by defining either ASIO_SEPARATE_COMPILATION or -// ASIO_DYN_LINK (as a DLL/shared library implies separate compilation). -#if !defined(ASIO_HEADER_ONLY) -# if !defined(ASIO_SEPARATE_COMPILATION) -# if !defined(ASIO_DYN_LINK) -# define ASIO_HEADER_ONLY 1 -# endif // !defined(ASIO_DYN_LINK) -# endif // !defined(ASIO_SEPARATE_COMPILATION) -#endif // !defined(ASIO_HEADER_ONLY) - -#if defined(ASIO_HEADER_ONLY) -# define ASIO_DECL inline -#else // defined(ASIO_HEADER_ONLY) -# if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CODEGEARC__) -// We need to import/export our code only if the user has specifically asked -// for it by defining ASIO_DYN_LINK. -# if defined(ASIO_DYN_LINK) -// Export if this is our own source, otherwise import. -# if defined(ASIO_SOURCE) -# define ASIO_DECL __declspec(dllexport) -# else // defined(ASIO_SOURCE) -# define ASIO_DECL __declspec(dllimport) -# endif // defined(ASIO_SOURCE) -# endif // defined(ASIO_DYN_LINK) -# endif // defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CODEGEARC__) -#endif // defined(ASIO_HEADER_ONLY) - -// If ASIO_DECL isn't defined yet define it now. -#if !defined(ASIO_DECL) -# define ASIO_DECL -#endif // !defined(ASIO_DECL) - -// Microsoft Visual C++ detection. -#if !defined(ASIO_MSVC) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC) -# define ASIO_MSVC BOOST_MSVC -# elif defined(_MSC_VER) && (defined(__INTELLISENSE__) \ - || (!defined(__MWERKS__) && !defined(__EDG_VERSION__))) -# define ASIO_MSVC _MSC_VER -# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC) -#endif // !defined(ASIO_MSVC) - -// Clang / libc++ detection. -#if defined(__clang__) -# if (__cplusplus >= 201103) -# if __has_include(<__config>) -# include <__config> -# if defined(_LIBCPP_VERSION) -# define ASIO_HAS_CLANG_LIBCXX 1 -# endif // defined(_LIBCPP_VERSION) -# endif // __has_include(<__config>) -# endif // (__cplusplus >= 201103) -#endif // defined(__clang__) - -// Android platform detection. -#if defined(__ANDROID__) -# include -#endif // defined(__ANDROID__) - -// Support move construction and assignment on compilers known to allow it. -#if !defined(ASIO_HAS_MOVE) -# if !defined(ASIO_DISABLE_MOVE) -# if defined(__clang__) -# if __has_feature(__cxx_rvalue_references__) -# define ASIO_HAS_MOVE 1 -# endif // __has_feature(__cxx_rvalue_references__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_MOVE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_MOVE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# if defined(__INTEL_CXX11_MODE__) -# if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) -# define BOOST_ASIO_HAS_MOVE 1 -# endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) -# if defined(__ICL) && (__ICL >= 1500) -# define BOOST_ASIO_HAS_MOVE 1 -# endif // defined(__ICL) && (__ICL >= 1500) -# endif // defined(__INTEL_CXX11_MODE__) -# endif // !defined(ASIO_DISABLE_MOVE) -#endif // !defined(ASIO_HAS_MOVE) - -// If ASIO_MOVE_CAST isn't defined, and move support is available, define -// ASIO_MOVE_ARG and ASIO_MOVE_CAST to take advantage of rvalue -// references and perfect forwarding. -#if defined(ASIO_HAS_MOVE) && !defined(ASIO_MOVE_CAST) -# define ASIO_MOVE_ARG(type) type&& -# define ASIO_MOVE_ARG2(type1, type2) type1, type2&& -# define ASIO_MOVE_CAST(type) static_cast -# define ASIO_MOVE_CAST2(type1, type2) static_cast -#endif // defined(ASIO_HAS_MOVE) && !defined(ASIO_MOVE_CAST) - -// If ASIO_MOVE_CAST still isn't defined, default to a C++03-compatible -// implementation. Note that older g++ and MSVC versions don't like it when you -// pass a non-member function through a const reference, so for most compilers -// we'll play it safe and stick with the old approach of passing the handler by -// value. -#if !defined(ASIO_MOVE_CAST) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4) -# define ASIO_MOVE_ARG(type) const type& -# else // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4) -# define ASIO_MOVE_ARG(type) type -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4) -# elif defined(ASIO_MSVC) -# if (_MSC_VER >= 1400) -# define ASIO_MOVE_ARG(type) const type& -# else // (_MSC_VER >= 1400) -# define ASIO_MOVE_ARG(type) type -# endif // (_MSC_VER >= 1400) -# else -# define ASIO_MOVE_ARG(type) type -# endif -# define ASIO_MOVE_CAST(type) static_cast -# define ASIO_MOVE_CAST2(type1, type2) static_cast -#endif // !defined(ASIO_MOVE_CAST) - -// Support variadic templates on compilers known to allow it. -#if !defined(ASIO_HAS_VARIADIC_TEMPLATES) -# if !defined(ASIO_DISABLE_VARIADIC_TEMPLATES) -# if defined(__clang__) -# if __has_feature(__cxx_variadic_templates__) -# define ASIO_HAS_VARIADIC_TEMPLATES 1 -# endif // __has_feature(__cxx_variadic_templates__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_VARIADIC_TEMPLATES 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_HAS_VARIADIC_TEMPLATES 1 -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_VARIADIC_TEMPLATES) -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -// Support deleted functions on compilers known to allow it. -#if !defined(ASIO_DELETED) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_DELETED = delete -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(__clang__) -# if __has_feature(__cxx_deleted_functions__) -# define ASIO_DELETED = delete -# endif // __has_feature(__cxx_deleted_functions__) -# endif // defined(__clang__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_DELETED = delete -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# if !defined(ASIO_DELETED) -# define ASIO_DELETED -# endif // !defined(ASIO_DELETED) -#endif // !defined(ASIO_DELETED) - -// Support constexpr on compilers known to allow it. -#if !defined(ASIO_HAS_CONSTEXPR) -# if !defined(ASIO_DISABLE_CONSTEXPR) -# if defined(__clang__) -# if __has_feature(__cxx_constexpr__) -# define ASIO_HAS_CONSTEXPR 1 -# endif // __has_feature(__cxx_constexr__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_CONSTEXPR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_HAS_CONSTEXPR 1 -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_CONSTEXPR) -#endif // !defined(ASIO_HAS_CONSTEXPR) -#if !defined(ASIO_CONSTEXPR) -# if defined(ASIO_HAS_CONSTEXPR) -# define ASIO_CONSTEXPR constexpr -# else // defined(ASIO_HAS_CONSTEXPR) -# define ASIO_CONSTEXPR -# endif // defined(ASIO_HAS_CONSTEXPR) -#endif // !defined(ASIO_CONSTEXPR) - -// Support noexcept on compilers known to allow it. -#if !defined(ASIO_NOEXCEPT) -# if !defined(ASIO_DISABLE_NOEXCEPT) -# if defined(ASIO_HAS_BOOST_CONFIG) && (BOOST_VERSION >= 105300) -# define ASIO_NOEXCEPT BOOST_NOEXCEPT -# define ASIO_NOEXCEPT_OR_NOTHROW BOOST_NOEXCEPT_OR_NOTHROW -# elif defined(__clang__) -# if __has_feature(__cxx_noexcept__) -# define ASIO_NOEXCEPT noexcept(true) -# define ASIO_NOEXCEPT_OR_NOTHROW noexcept(true) -# endif // __has_feature(__cxx_noexcept__) -# elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_NOEXCEPT noexcept(true) -# define ASIO_NOEXCEPT_OR_NOTHROW noexcept(true) -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# elif defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_NOEXCEPT noexcept(true) -# define ASIO_NOEXCEPT_OR_NOTHROW noexcept(true) -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_NOEXCEPT) -# if !defined(ASIO_NOEXCEPT) -# define ASIO_NOEXCEPT -# endif // !defined(ASIO_NOEXCEPT) -# if !defined(ASIO_NOEXCEPT_OR_NOTHROW) -# define ASIO_NOEXCEPT_OR_NOTHROW throw() -# endif // !defined(ASIO_NOEXCEPT_OR_NOTHROW) -#endif // !defined(ASIO_NOEXCEPT) - -// Support automatic type deduction on compilers known to support it. -#if !defined(ASIO_HAS_DECLTYPE) -# if !defined(ASIO_DISABLE_DECLTYPE) -# if defined(__clang__) -# if __has_feature(__cxx_decltype__) -# define ASIO_HAS_DECLTYPE 1 -# endif // __has_feature(__cxx_decltype__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_DECLTYPE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_DECLTYPE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_DECLTYPE) -#endif // !defined(ASIO_HAS_DECLTYPE) - -// Support alias templates on compilers known to allow it. -#if !defined(ASIO_HAS_ALIAS_TEMPLATES) -# if !defined(ASIO_DISABLE_ALIAS_TEMPLATES) -# if defined(__clang__) -# if __has_feature(__cxx_alias_templates__) -# define ASIO_HAS_ALIAS_TEMPLATES 1 -# endif // __has_feature(__cxx_alias_templates__) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_ALIAS_TEMPLATES 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_HAS_ALIAS_TEMPLATES 1 -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_ALIAS_TEMPLATES) -#endif // !defined(ASIO_HAS_ALIAS_TEMPLATES) - -// Standard library support for system errors. -#if !defined(ASIO_HAS_STD_SYSTEM_ERROR) -# if !defined(ASIO_DISABLE_STD_SYSTEM_ERROR) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_SYSTEM_ERROR 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_SYSTEM_ERROR 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_SYSTEM_ERROR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_SYSTEM_ERROR 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_SYSTEM_ERROR) -#endif // !defined(ASIO_HAS_STD_SYSTEM_ERROR) - -// Compliant C++11 compilers put noexcept specifiers on error_category members. -#if !defined(ASIO_ERROR_CATEGORY_NOEXCEPT) -# if (BOOST_VERSION >= 105300) -# define ASIO_ERROR_CATEGORY_NOEXCEPT BOOST_NOEXCEPT -# elif defined(__clang__) -# if __has_feature(__cxx_noexcept__) -# define ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true) -# endif // __has_feature(__cxx_noexcept__) -# elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true) -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# elif defined(ASIO_MSVC) -# if (_MSC_VER >= 1900) -# define ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true) -# endif // (_MSC_VER >= 1900) -# endif // defined(ASIO_MSVC) -# if !defined(ASIO_ERROR_CATEGORY_NOEXCEPT) -# define ASIO_ERROR_CATEGORY_NOEXCEPT -# endif // !defined(ASIO_ERROR_CATEGORY_NOEXCEPT) -#endif // !defined(ASIO_ERROR_CATEGORY_NOEXCEPT) - -// Standard library support for arrays. -#if !defined(ASIO_HAS_STD_ARRAY) -# if !defined(ASIO_DISABLE_STD_ARRAY) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_ARRAY 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_ARRAY 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_ARRAY 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1600) -# define ASIO_HAS_STD_ARRAY 1 -# endif // (_MSC_VER >= 1600) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_ARRAY) -#endif // !defined(ASIO_HAS_STD_ARRAY) - -// Standard library support for shared_ptr and weak_ptr. -#if !defined(ASIO_HAS_STD_SHARED_PTR) -# if !defined(ASIO_DISABLE_STD_SHARED_PTR) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_SHARED_PTR 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_STD_SHARED_PTR 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_SHARED_PTR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1600) -# define ASIO_HAS_STD_SHARED_PTR 1 -# endif // (_MSC_VER >= 1600) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_SHARED_PTR) -#endif // !defined(ASIO_HAS_STD_SHARED_PTR) - -// Standard library support for allocator_arg_t. -#if !defined(ASIO_HAS_STD_ALLOCATOR_ARG) -# if !defined(ASIO_DISABLE_STD_ALLOCATOR_ARG) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_ALLOCATOR_ARG 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_STD_ALLOCATOR_ARG 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_ALLOCATOR_ARG 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1600) -# define ASIO_HAS_STD_ALLOCATOR_ARG 1 -# endif // (_MSC_VER >= 1600) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_ALLOCATOR_ARG) -#endif // !defined(ASIO_HAS_STD_ALLOCATOR_ARG) - -// Standard library support for atomic operations. -#if !defined(ASIO_HAS_STD_ATOMIC) -# if !defined(ASIO_DISABLE_STD_ATOMIC) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_ATOMIC 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_ATOMIC 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_ATOMIC 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_ATOMIC 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_ATOMIC) -#endif // !defined(ASIO_HAS_STD_ATOMIC) - -// Standard library support for chrono. Some standard libraries (such as the -// libstdc++ shipped with gcc 4.6) provide monotonic_clock as per early C++0x -// drafts, rather than the eventually standardised name of steady_clock. -#if !defined(ASIO_HAS_STD_CHRONO) -# if !defined(ASIO_DISABLE_STD_CHRONO) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_CHRONO 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_CHRONO 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_CHRONO 1 -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6)) -# define ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK 1 -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6)) -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_CHRONO 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_CHRONO) -#endif // !defined(ASIO_HAS_STD_CHRONO) - -// Boost support for chrono. -#if !defined(ASIO_HAS_BOOST_CHRONO) -# if !defined(ASIO_DISABLE_BOOST_CHRONO) -# if (BOOST_VERSION >= 104700) -# define ASIO_HAS_BOOST_CHRONO 1 -# endif // (BOOST_VERSION >= 104700) -# endif // !defined(ASIO_DISABLE_BOOST_CHRONO) -#endif // !defined(ASIO_HAS_BOOST_CHRONO) - -// Some form of chrono library is available. -#if !defined(ASIO_HAS_CHRONO) -# if defined(ASIO_HAS_STD_CHRONO) \ - || defined(ASIO_HAS_BOOST_CHRONO) -# define ASIO_HAS_CHRONO 1 -# endif // defined(ASIO_HAS_STD_CHRONO) - // || defined(ASIO_HAS_BOOST_CHRONO) -#endif // !defined(ASIO_HAS_CHRONO) - -// Boost support for the DateTime library. -#if !defined(ASIO_HAS_BOOST_DATE_TIME) -# if !defined(ASIO_DISABLE_BOOST_DATE_TIME) -# define ASIO_HAS_BOOST_DATE_TIME 1 -# endif // !defined(ASIO_DISABLE_BOOST_DATE_TIME) -#endif // !defined(ASIO_HAS_BOOST_DATE_TIME) - -// Standard library support for addressof. -#if !defined(ASIO_HAS_STD_ADDRESSOF) -# if !defined(ASIO_DISABLE_STD_ADDRESSOF) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_ADDRESSOF 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_STD_ADDRESSOF 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_ADDRESSOF 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_ADDRESSOF 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_ADDRESSOF) -#endif // !defined(ASIO_HAS_STD_ADDRESSOF) - -// Standard library support for the function class. -#if !defined(ASIO_HAS_STD_FUNCTION) -# if !defined(ASIO_DISABLE_STD_FUNCTION) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_FUNCTION 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_STD_FUNCTION 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_FUNCTION 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_FUNCTION 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_FUNCTION) -#endif // !defined(ASIO_HAS_STD_FUNCTION) - -// Standard library support for type traits. -#if !defined(ASIO_HAS_STD_TYPE_TRAITS) -# if !defined(ASIO_DISABLE_STD_TYPE_TRAITS) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_TYPE_TRAITS 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_TYPE_TRAITS 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_TYPE_TRAITS 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_TYPE_TRAITS 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_TYPE_TRAITS) -#endif // !defined(ASIO_HAS_STD_TYPE_TRAITS) - -// Standard library support for the nullptr_t type. -#if !defined(ASIO_HAS_NULLPTR) -# if !defined(ASIO_DISABLE_NULLPTR) -# if defined(__clang__) -# if __has_feature(__cxx_nullptr__) -# define ASIO_HAS_NULLPTR 1 -# endif // __has_feature(__cxx_rvalue_references__) -# elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_NULLPTR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_NULLPTR 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_NULLPTR) -#endif // !defined(ASIO_HAS_NULLPTR) - -// Standard library support for the C++11 allocator additions. -#if !defined(ASIO_HAS_CXX11_ALLOCATORS) -# if !defined(ASIO_DISABLE_CXX11_ALLOCATORS) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_CXX11_ALLOCATORS 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_CXX11_ALLOCATORS 1 -# endif // (__cplusplus >= 201103) -# elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_CXX11_ALLOCATORS 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1800) -# define ASIO_HAS_CXX11_ALLOCATORS 1 -# endif // (_MSC_VER >= 1800) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_CXX11_ALLOCATORS) -#endif // !defined(ASIO_HAS_CXX11_ALLOCATORS) - -// Standard library support for the cstdint header. -#if !defined(ASIO_HAS_CSTDINT) -# if !defined(ASIO_DISABLE_CSTDINT) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_CSTDINT 1 -# elif (__cplusplus >= 201103) -# define ASIO_HAS_CSTDINT 1 -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_CSTDINT 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_CSTDINT 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_CSTDINT) -#endif // !defined(ASIO_HAS_CSTDINT) - -// Standard library support for the thread class. -#if !defined(ASIO_HAS_STD_THREAD) -# if !defined(ASIO_DISABLE_STD_THREAD) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_THREAD 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_THREAD 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_THREAD 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_THREAD 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_THREAD) -#endif // !defined(ASIO_HAS_STD_THREAD) - -// Standard library support for the mutex and condition variable classes. -#if !defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -# if !defined(ASIO_DISABLE_STD_MUTEX_AND_CONDVAR) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_MUTEX_AND_CONDVAR 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_MUTEX_AND_CONDVAR) -#endif // !defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -// Standard library support for the call_once function. -#if !defined(ASIO_HAS_STD_CALL_ONCE) -# if !defined(ASIO_DISABLE_STD_CALL_ONCE) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_CALL_ONCE 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_CALL_ONCE 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_CALL_ONCE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_CALL_ONCE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_CALL_ONCE) -#endif // !defined(ASIO_HAS_STD_CALL_ONCE) - -// Standard library support for futures. -#if !defined(ASIO_HAS_STD_FUTURE) -# if !defined(ASIO_DISABLE_STD_FUTURE) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_FUTURE 1 -# elif (__cplusplus >= 201103) -# if __has_include() -# define ASIO_HAS_STD_FUTURE 1 -# endif // __has_include() -# endif // (__cplusplus >= 201103) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_FUTURE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_FUTURE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_FUTURE) -#endif // !defined(ASIO_HAS_STD_FUTURE) - -// Standard library support for std::string_view. -#if !defined(ASIO_HAS_STD_STRING_VIEW) -# if !defined(ASIO_DISABLE_STD_STRING_VIEW) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# if (__cplusplus >= 201402) -# if __has_include() -# define ASIO_HAS_STD_STRING_VIEW 1 -# endif // __has_include() -# endif // (__cplusplus >= 201402) -# else // defined(ASIO_HAS_CLANG_LIBCXX) -# if (__cplusplus >= 201703) -# if __has_include() -# define ASIO_HAS_STD_STRING_VIEW 1 -# endif // __has_include() -# endif // (__cplusplus >= 201703) -# endif // defined(ASIO_HAS_CLANG_LIBCXX) -# elif defined(__GNUC__) -# if (__GNUC__ >= 7) -# if (__cplusplus >= 201703) -# define ASIO_HAS_STD_STRING_VIEW 1 -# endif // (__cplusplus >= 201703) -# endif // (__GNUC__ >= 7) -# elif defined(ASIO_MSVC) -# if (_MSC_VER >= 1910 && _MSVC_LANG >= 201703) -# define ASIO_HAS_STD_STRING_VIEW 1 -# endif // (_MSC_VER >= 1910 && _MSVC_LANG >= 201703) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_STRING_VIEW) -#endif // !defined(ASIO_HAS_STD_STRING_VIEW) - -// Standard library support for std::experimental::string_view. -#if !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# if !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW) -# if defined(__clang__) -# if defined(ASIO_HAS_CLANG_LIBCXX) -# if (_LIBCPP_VERSION < 7000) -# if (__cplusplus >= 201402) -# if __has_include() -# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 -# endif // __has_include() -# endif // (__cplusplus >= 201402) -# endif // (_LIBCPP_VERSION < 7000) -# else // defined(ASIO_HAS_CLANG_LIBCXX) -# if (__cplusplus >= 201402) -# if __has_include() -# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 -# endif // __has_include() -# endif // (__cplusplus >= 201402) -# endif // // defined(ASIO_HAS_CLANG_LIBCXX) -# endif // defined(__clang__) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4) -# if (__cplusplus >= 201402) -# define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1 -# endif // (__cplusplus >= 201402) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# endif // !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW) -#endif // !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) - -// Standard library has a string_view that we can use. -#if !defined(ASIO_HAS_STRING_VIEW) -# if !defined(ASIO_DISABLE_STRING_VIEW) -# if defined(ASIO_HAS_STD_STRING_VIEW) -# define ASIO_HAS_STRING_VIEW 1 -# elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# define ASIO_HAS_STRING_VIEW 1 -# endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# endif // !defined(ASIO_DISABLE_STRING_VIEW) -#endif // !defined(ASIO_HAS_STRING_VIEW) - -// Standard library support for iostream move construction and assignment. -#if !defined(ASIO_HAS_STD_IOSTREAM_MOVE) -# if !defined(ASIO_DISABLE_STD_IOSTREAM_MOVE) -# if defined(__GNUC__) -# if (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_HAS_STD_IOSTREAM_MOVE 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_STD_IOSTREAM_MOVE 1 -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_IOSTREAM_MOVE) -#endif // !defined(ASIO_HAS_STD_IOSTREAM_MOVE) - -// Standard library has invoke_result (which supersedes result_of). -#if !defined(ASIO_HAS_STD_INVOKE_RESULT) -# if !defined(ASIO_DISABLE_STD_INVOKE_RESULT) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1911 && _MSVC_LANG >= 201703) -# define ASIO_HAS_STD_INVOKE_RESULT 1 -# endif // (_MSC_VER >= 1911 && _MSVC_LANG >= 201703) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_STD_INVOKE_RESULT) -#endif // !defined(ASIO_HAS_STD_INVOKE_RESULT) - -// Windows App target. Windows but with a limited API. -#if !defined(ASIO_WINDOWS_APP) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0603) -# include -# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) \ - && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# define ASIO_WINDOWS_APP 1 -# endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - // && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0603) -#endif // !defined(ASIO_WINDOWS_APP) - -// Legacy WinRT target. Windows App is preferred. -#if !defined(ASIO_WINDOWS_RUNTIME) -# if !defined(ASIO_WINDOWS_APP) -# if defined(__cplusplus_winrt) -# include -# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) \ - && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# define ASIO_WINDOWS_RUNTIME 1 -# endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - // && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -# endif // defined(__cplusplus_winrt) -# endif // !defined(ASIO_WINDOWS_APP) -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -// Windows target. Excludes WinRT but includes Windows App targets. -#if !defined(ASIO_WINDOWS) -# if !defined(ASIO_WINDOWS_RUNTIME) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_WINDOWS) -# define ASIO_WINDOWS 1 -# elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) -# define ASIO_WINDOWS 1 -# elif defined(ASIO_WINDOWS_APP) -# define ASIO_WINDOWS 1 -# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_WINDOWS) -# endif // !defined(ASIO_WINDOWS_RUNTIME) -#endif // !defined(ASIO_WINDOWS) - -// Windows: target OS version. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS) -# if defined(_MSC_VER) || defined(__BORLANDC__) -# pragma message( \ - "Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:\n"\ - "- add -D_WIN32_WINNT=0x0501 to the compiler command line; or\n"\ - "- add _WIN32_WINNT=0x0501 to your project's Preprocessor Definitions.\n"\ - "Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target).") -# else // defined(_MSC_VER) || defined(__BORLANDC__) -# warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. -# warning For example, add -D_WIN32_WINNT=0x0501 to the compiler command line. -# warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target). -# endif // defined(_MSC_VER) || defined(__BORLANDC__) -# define _WIN32_WINNT 0x0501 -# endif // !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS) -# if defined(_MSC_VER) -# if defined(_WIN32) && !defined(WIN32) -# if !defined(_WINSOCK2API_) -# define WIN32 // Needed for correct types in winsock2.h -# else // !defined(_WINSOCK2API_) -# error Please define the macro WIN32 in your compiler options -# endif // !defined(_WINSOCK2API_) -# endif // defined(_WIN32) && !defined(WIN32) -# endif // defined(_MSC_VER) -# if defined(__BORLANDC__) -# if defined(__WIN32__) && !defined(WIN32) -# if !defined(_WINSOCK2API_) -# define WIN32 // Needed for correct types in winsock2.h -# else // !defined(_WINSOCK2API_) -# error Please define the macro WIN32 in your compiler options -# endif // !defined(_WINSOCK2API_) -# endif // defined(__WIN32__) && !defined(WIN32) -# endif // defined(__BORLANDC__) -# if defined(__CYGWIN__) -# if !defined(__USE_W32_SOCKETS) -# error You must add -D__USE_W32_SOCKETS to your compiler options. -# endif // !defined(__USE_W32_SOCKETS) -# endif // defined(__CYGWIN__) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Windows: minimise header inclusion. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if !defined(ASIO_NO_WIN32_LEAN_AND_MEAN) -# if !defined(WIN32_LEAN_AND_MEAN) -# define WIN32_LEAN_AND_MEAN -# endif // !defined(WIN32_LEAN_AND_MEAN) -# endif // !defined(ASIO_NO_WIN32_LEAN_AND_MEAN) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Windows: suppress definition of "min" and "max" macros. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if !defined(ASIO_NO_NOMINMAX) -# if !defined(NOMINMAX) -# define NOMINMAX 1 -# endif // !defined(NOMINMAX) -# endif // !defined(ASIO_NO_NOMINMAX) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Windows: IO Completion Ports. -#if !defined(ASIO_HAS_IOCP) -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) -# if !defined(UNDER_CE) && !defined(ASIO_WINDOWS_APP) -# if !defined(ASIO_DISABLE_IOCP) -# define ASIO_HAS_IOCP 1 -# endif // !defined(ASIO_DISABLE_IOCP) -# endif // !defined(UNDER_CE) && !defined(ASIO_WINDOWS_APP) -# endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -#endif // !defined(ASIO_HAS_IOCP) - -// On POSIX (and POSIX-like) platforms we need to include unistd.h in order to -// get access to the various platform feature macros, e.g. to be able to test -// for threads support. -#if !defined(ASIO_HAS_UNISTD_H) -# if !defined(ASIO_HAS_BOOST_CONFIG) -# if defined(unix) \ - || defined(__unix) \ - || defined(_XOPEN_SOURCE) \ - || defined(_POSIX_SOURCE) \ - || (defined(__MACH__) && defined(__APPLE__)) \ - || defined(__FreeBSD__) \ - || defined(__NetBSD__) \ - || defined(__OpenBSD__) \ - || defined(__linux__) -# define ASIO_HAS_UNISTD_H 1 -# endif -# endif // !defined(ASIO_HAS_BOOST_CONFIG) -#endif // !defined(ASIO_HAS_UNISTD_H) -#if defined(ASIO_HAS_UNISTD_H) -# include -#endif // defined(ASIO_HAS_UNISTD_H) - -// Linux: epoll, eventfd and timerfd. -#if defined(__linux__) -# include -# if !defined(ASIO_HAS_EPOLL) -# if !defined(ASIO_DISABLE_EPOLL) -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) -# define ASIO_HAS_EPOLL 1 -# endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45) -# endif // !defined(ASIO_DISABLE_EPOLL) -# endif // !defined(ASIO_HAS_EPOLL) -# if !defined(ASIO_HAS_EVENTFD) -# if !defined(ASIO_DISABLE_EVENTFD) -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -# define ASIO_HAS_EVENTFD 1 -# endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -# endif // !defined(ASIO_DISABLE_EVENTFD) -# endif // !defined(ASIO_HAS_EVENTFD) -# if !defined(ASIO_HAS_TIMERFD) -# if defined(ASIO_HAS_EPOLL) -# if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) -# define ASIO_HAS_TIMERFD 1 -# endif // (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8) -# endif // defined(ASIO_HAS_EPOLL) -# endif // !defined(ASIO_HAS_TIMERFD) -#endif // defined(__linux__) - -// Mac OS X, FreeBSD, NetBSD, OpenBSD: kqueue. -#if (defined(__MACH__) && defined(__APPLE__)) \ - || defined(__FreeBSD__) \ - || defined(__NetBSD__) \ - || defined(__OpenBSD__) -# if !defined(ASIO_HAS_KQUEUE) -# if !defined(ASIO_DISABLE_KQUEUE) -# define ASIO_HAS_KQUEUE 1 -# endif // !defined(ASIO_DISABLE_KQUEUE) -# endif // !defined(ASIO_HAS_KQUEUE) -#endif // (defined(__MACH__) && defined(__APPLE__)) - // || defined(__FreeBSD__) - // || defined(__NetBSD__) - // || defined(__OpenBSD__) - -// Solaris: /dev/poll. -#if defined(__sun) -# if !defined(ASIO_HAS_DEV_POLL) -# if !defined(ASIO_DISABLE_DEV_POLL) -# define ASIO_HAS_DEV_POLL 1 -# endif // !defined(ASIO_DISABLE_DEV_POLL) -# endif // !defined(ASIO_HAS_DEV_POLL) -#endif // defined(__sun) - -// Serial ports. -#if !defined(ASIO_HAS_SERIAL_PORT) -# if defined(ASIO_HAS_IOCP) \ - || !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -# if !defined(__SYMBIAN32__) -# if !defined(ASIO_DISABLE_SERIAL_PORT) -# define ASIO_HAS_SERIAL_PORT 1 -# endif // !defined(ASIO_DISABLE_SERIAL_PORT) -# endif // !defined(__SYMBIAN32__) -# endif // defined(ASIO_HAS_IOCP) - // || !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -#endif // !defined(ASIO_HAS_SERIAL_PORT) - -// Windows: stream handles. -#if !defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) -# if !defined(ASIO_DISABLE_WINDOWS_STREAM_HANDLE) -# if defined(ASIO_HAS_IOCP) -# define ASIO_HAS_WINDOWS_STREAM_HANDLE 1 -# endif // defined(ASIO_HAS_IOCP) -# endif // !defined(ASIO_DISABLE_WINDOWS_STREAM_HANDLE) -#endif // !defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - -// Windows: random access handles. -#if !defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) -# if !defined(ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) -# if defined(ASIO_HAS_IOCP) -# define ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE 1 -# endif // defined(ASIO_HAS_IOCP) -# endif // !defined(ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) -#endif // !defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - -// Windows: object handles. -#if !defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) -# if !defined(ASIO_DISABLE_WINDOWS_OBJECT_HANDLE) -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if !defined(UNDER_CE) && !defined(ASIO_WINDOWS_APP) -# define ASIO_HAS_WINDOWS_OBJECT_HANDLE 1 -# endif // !defined(UNDER_CE) && !defined(ASIO_WINDOWS_APP) -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# endif // !defined(ASIO_DISABLE_WINDOWS_OBJECT_HANDLE) -#endif // !defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - -// Windows: OVERLAPPED wrapper. -#if !defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) -# if !defined(ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) -# if defined(ASIO_HAS_IOCP) -# define ASIO_HAS_WINDOWS_OVERLAPPED_PTR 1 -# endif // defined(ASIO_HAS_IOCP) -# endif // !defined(ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) -#endif // !defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) - -// POSIX: stream-oriented file descriptors. -#if !defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) -# if !defined(ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) -# if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -# define ASIO_HAS_POSIX_STREAM_DESCRIPTOR 1 -# endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -# endif // !defined(ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) -#endif // !defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - -// UNIX domain sockets. -#if !defined(ASIO_HAS_LOCAL_SOCKETS) -# if !defined(ASIO_DISABLE_LOCAL_SOCKETS) -# if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -# define ASIO_HAS_LOCAL_SOCKETS 1 -# endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -# endif // !defined(ASIO_DISABLE_LOCAL_SOCKETS) -#endif // !defined(ASIO_HAS_LOCAL_SOCKETS) - -// Can use sigaction() instead of signal(). -#if !defined(ASIO_HAS_SIGACTION) -# if !defined(ASIO_DISABLE_SIGACTION) -# if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -# define ASIO_HAS_SIGACTION 1 -# endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -# endif // !defined(ASIO_DISABLE_SIGACTION) -#endif // !defined(ASIO_HAS_SIGACTION) - -// Can use signal(). -#if !defined(ASIO_HAS_SIGNAL) -# if !defined(ASIO_DISABLE_SIGNAL) -# if !defined(UNDER_CE) -# define ASIO_HAS_SIGNAL 1 -# endif // !defined(UNDER_CE) -# endif // !defined(ASIO_DISABLE_SIGNAL) -#endif // !defined(ASIO_HAS_SIGNAL) - -// Can use getaddrinfo() and getnameinfo(). -#if !defined(ASIO_HAS_GETADDRINFO) -# if !defined(ASIO_DISABLE_GETADDRINFO) -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) -# define ASIO_HAS_GETADDRINFO 1 -# elif defined(UNDER_CE) -# define ASIO_HAS_GETADDRINFO 1 -# endif // defined(UNDER_CE) -# elif defined(__MACH__) && defined(__APPLE__) -# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -# if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1050) -# define ASIO_HAS_GETADDRINFO 1 -# endif // (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1050) -# else // defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -# define ASIO_HAS_GETADDRINFO 1 -# endif // defined(__MAC_OS_X_VERSION_MIN_REQUIRED) -# else // defined(__MACH__) && defined(__APPLE__) -# define ASIO_HAS_GETADDRINFO 1 -# endif // defined(__MACH__) && defined(__APPLE__) -# endif // !defined(ASIO_DISABLE_GETADDRINFO) -#endif // !defined(ASIO_HAS_GETADDRINFO) - -// Whether standard iostreams are disabled. -#if !defined(ASIO_NO_IOSTREAM) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_IOSTREAM) -# define ASIO_NO_IOSTREAM 1 -# endif // !defined(BOOST_NO_IOSTREAM) -#endif // !defined(ASIO_NO_IOSTREAM) - -// Whether exception handling is disabled. -#if !defined(ASIO_NO_EXCEPTIONS) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_EXCEPTIONS) -# define ASIO_NO_EXCEPTIONS 1 -# endif // !defined(BOOST_NO_EXCEPTIONS) -#endif // !defined(ASIO_NO_EXCEPTIONS) - -// Whether the typeid operator is supported. -#if !defined(ASIO_NO_TYPEID) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_TYPEID) -# define ASIO_NO_TYPEID 1 -# endif // !defined(BOOST_NO_TYPEID) -#endif // !defined(ASIO_NO_TYPEID) - -// Threads. -#if !defined(ASIO_HAS_THREADS) -# if !defined(ASIO_DISABLE_THREADS) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS) -# define ASIO_HAS_THREADS 1 -# elif defined(__GNUC__) && !defined(__MINGW32__) \ - && !defined(linux) && !defined(__linux) && !defined(__linux__) -# define ASIO_HAS_THREADS 1 -# elif defined(_MT) || defined(__MT__) -# define ASIO_HAS_THREADS 1 -# elif defined(_REENTRANT) -# define ASIO_HAS_THREADS 1 -# elif defined(__APPLE__) -# define ASIO_HAS_THREADS 1 -# elif defined(_POSIX_THREADS) && (_POSIX_THREADS + 0 >= 0) -# define ASIO_HAS_THREADS 1 -# elif defined(_PTHREADS) -# define ASIO_HAS_THREADS 1 -# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS) -# endif // !defined(ASIO_DISABLE_THREADS) -#endif // !defined(ASIO_HAS_THREADS) - -// POSIX threads. -#if !defined(ASIO_HAS_PTHREADS) -# if defined(ASIO_HAS_THREADS) -# if defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_PTHREADS) -# define ASIO_HAS_PTHREADS 1 -# elif defined(_POSIX_THREADS) && (_POSIX_THREADS + 0 >= 0) -# define ASIO_HAS_PTHREADS 1 -# endif // defined(ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_PTHREADS) -# endif // defined(ASIO_HAS_THREADS) -#endif // !defined(ASIO_HAS_PTHREADS) - -// Helper to prevent macro expansion. -#define ASIO_PREVENT_MACRO_SUBSTITUTION - -// Helper to define in-class constants. -#if !defined(ASIO_STATIC_CONSTANT) -# if !defined(ASIO_DISABLE_BOOST_STATIC_CONSTANT) -# define ASIO_STATIC_CONSTANT(type, assignment) \ - BOOST_STATIC_CONSTANT(type, assignment) -# else // !defined(ASIO_DISABLE_BOOST_STATIC_CONSTANT) -# define ASIO_STATIC_CONSTANT(type, assignment) \ - static const type assignment -# endif // !defined(ASIO_DISABLE_BOOST_STATIC_CONSTANT) -#endif // !defined(ASIO_STATIC_CONSTANT) - -// Boost array library. -#if !defined(ASIO_HAS_BOOST_ARRAY) -# if !defined(ASIO_DISABLE_BOOST_ARRAY) -# define ASIO_HAS_BOOST_ARRAY 1 -# endif // !defined(ASIO_DISABLE_BOOST_ARRAY) -#endif // !defined(ASIO_HAS_BOOST_ARRAY) - -// Boost assert macro. -#if !defined(ASIO_HAS_BOOST_ASSERT) -# if !defined(ASIO_DISABLE_BOOST_ASSERT) -# define ASIO_HAS_BOOST_ASSERT 1 -# endif // !defined(ASIO_DISABLE_BOOST_ASSERT) -#endif // !defined(ASIO_HAS_BOOST_ASSERT) - -// Boost limits header. -#if !defined(ASIO_HAS_BOOST_LIMITS) -# if !defined(ASIO_DISABLE_BOOST_LIMITS) -# define ASIO_HAS_BOOST_LIMITS 1 -# endif // !defined(ASIO_DISABLE_BOOST_LIMITS) -#endif // !defined(ASIO_HAS_BOOST_LIMITS) - -// Boost throw_exception function. -#if !defined(ASIO_HAS_BOOST_THROW_EXCEPTION) -# if !defined(ASIO_DISABLE_BOOST_THROW_EXCEPTION) -# define ASIO_HAS_BOOST_THROW_EXCEPTION 1 -# endif // !defined(ASIO_DISABLE_BOOST_THROW_EXCEPTION) -#endif // !defined(ASIO_HAS_BOOST_THROW_EXCEPTION) - -// Boost regex library. -#if !defined(ASIO_HAS_BOOST_REGEX) -# if !defined(ASIO_DISABLE_BOOST_REGEX) -# define ASIO_HAS_BOOST_REGEX 1 -# endif // !defined(ASIO_DISABLE_BOOST_REGEX) -#endif // !defined(ASIO_HAS_BOOST_REGEX) - -// Boost bind function. -#if !defined(ASIO_HAS_BOOST_BIND) -# if !defined(ASIO_DISABLE_BOOST_BIND) -# define ASIO_HAS_BOOST_BIND 1 -# endif // !defined(ASIO_DISABLE_BOOST_BIND) -#endif // !defined(ASIO_HAS_BOOST_BIND) - -// Boost's BOOST_WORKAROUND macro. -#if !defined(ASIO_HAS_BOOST_WORKAROUND) -# if !defined(ASIO_DISABLE_BOOST_WORKAROUND) -# define ASIO_HAS_BOOST_WORKAROUND 1 -# endif // !defined(ASIO_DISABLE_BOOST_WORKAROUND) -#endif // !defined(ASIO_HAS_BOOST_WORKAROUND) - -// Microsoft Visual C++'s secure C runtime library. -#if !defined(ASIO_HAS_SECURE_RTL) -# if !defined(ASIO_DISABLE_SECURE_RTL) -# if defined(ASIO_MSVC) \ - && (ASIO_MSVC >= 1400) \ - && !defined(UNDER_CE) -# define ASIO_HAS_SECURE_RTL 1 -# endif // defined(ASIO_MSVC) - // && (ASIO_MSVC >= 1400) - // && !defined(UNDER_CE) -# endif // !defined(ASIO_DISABLE_SECURE_RTL) -#endif // !defined(ASIO_HAS_SECURE_RTL) - -// Handler hooking. Disabled for ancient Borland C++ and gcc compilers. -#if !defined(ASIO_HAS_HANDLER_HOOKS) -# if !defined(ASIO_DISABLE_HANDLER_HOOKS) -# if defined(__GNUC__) -# if (__GNUC__ >= 3) -# define ASIO_HAS_HANDLER_HOOKS 1 -# endif // (__GNUC__ >= 3) -# elif !defined(__BORLANDC__) -# define ASIO_HAS_HANDLER_HOOKS 1 -# endif // !defined(__BORLANDC__) -# endif // !defined(ASIO_DISABLE_HANDLER_HOOKS) -#endif // !defined(ASIO_HAS_HANDLER_HOOKS) - -// Support for the __thread keyword extension. -#if !defined(ASIO_DISABLE_THREAD_KEYWORD_EXTENSION) -# if defined(__linux__) -# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -# if ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3) -# if !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !(defined(__clang__) && defined(__ANDROID__)) -# define ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 -# define ASIO_THREAD_KEYWORD __thread -# elif defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1100) -# define ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 -# endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1100) - // && !(defined(__clang__) && defined(__ANDROID__)) -# endif // ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3) -# endif // defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -# endif // defined(__linux__) -# if defined(ASIO_MSVC) && defined(ASIO_WINDOWS_RUNTIME) -# if (_MSC_VER >= 1700) -# define ASIO_HAS_THREAD_KEYWORD_EXTENSION 1 -# define ASIO_THREAD_KEYWORD __declspec(thread) -# endif // (_MSC_VER >= 1700) -# endif // defined(ASIO_MSVC) && defined(ASIO_WINDOWS_RUNTIME) -#endif // !defined(ASIO_DISABLE_THREAD_KEYWORD_EXTENSION) -#if !defined(ASIO_THREAD_KEYWORD) -# define ASIO_THREAD_KEYWORD __thread -#endif // !defined(ASIO_THREAD_KEYWORD) - -// Support for POSIX ssize_t typedef. -#if !defined(ASIO_DISABLE_SSIZE_T) -# if defined(__linux__) \ - || (defined(__MACH__) && defined(__APPLE__)) -# define ASIO_HAS_SSIZE_T 1 -# endif // defined(__linux__) - // || (defined(__MACH__) && defined(__APPLE__)) -#endif // !defined(ASIO_DISABLE_SSIZE_T) - -// Helper macros to manage the transition away from the old services-based API. -#if defined(ASIO_ENABLE_OLD_SERVICES) -# define ASIO_SVC_TPARAM , typename Service -# define ASIO_SVC_TPARAM_DEF1(d1) , typename Service d1 -# define ASIO_SVC_TPARAM_DEF2(d1, d2) , typename Service d1, d2 -# define ASIO_SVC_TARG , Service -# define ASIO_SVC_T Service -# define ASIO_SVC_TPARAM1 , typename Service1 -# define ASIO_SVC_TPARAM1_DEF1(d1) , typename Service1 d1 -# define ASIO_SVC_TPARAM1_DEF2(d1, d2) , typename Service1 d1, d2 -# define ASIO_SVC_TARG1 , Service1 -# define ASIO_SVC_T1 Service1 -# define ASIO_SVC_ACCESS public -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# define ASIO_SVC_TPARAM -# define ASIO_SVC_TPARAM_DEF1(d1) -# define ASIO_SVC_TPARAM_DEF2(d1, d2) -# define ASIO_SVC_TARG -// ASIO_SVC_T is defined at each point of use. -# define ASIO_SVC_TPARAM1 -# define ASIO_SVC_TPARAM1_DEF1(d1) -# define ASIO_SVC_TPARAM1_DEF2(d1, d2) -# define ASIO_SVC_TARG1 -// ASIO_SVC_T1 is defined at each point of use. -# define ASIO_SVC_ACCESS protected -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -// Helper macros to manage transition away from error_code return values. -#if defined(ASIO_NO_DEPRECATED) -# define ASIO_SYNC_OP_VOID void -# define ASIO_SYNC_OP_VOID_RETURN(e) return -#else // defined(ASIO_NO_DEPRECATED) -# define ASIO_SYNC_OP_VOID asio::error_code -# define ASIO_SYNC_OP_VOID_RETURN(e) return e -#endif // defined(ASIO_NO_DEPRECATED) - -// Newer gcc, clang need special treatment to suppress unused typedef warnings. -#if defined(__clang__) -# if defined(__apple_build_version__) -# if (__clang_major__ >= 7) -# define ASIO_UNUSED_TYPEDEF __attribute__((__unused__)) -# endif // (__clang_major__ >= 7) -# elif ((__clang_major__ == 3) && (__clang_minor__ >= 6)) \ - || (__clang_major__ > 3) -# define ASIO_UNUSED_TYPEDEF __attribute__((__unused__)) -# endif // ((__clang_major__ == 3) && (__clang_minor__ >= 6)) - // || (__clang_major__ > 3) -#elif defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4) -# define ASIO_UNUSED_TYPEDEF __attribute__((__unused__)) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4) -#endif // defined(__GNUC__) -#if !defined(ASIO_UNUSED_TYPEDEF) -# define ASIO_UNUSED_TYPEDEF -#endif // !defined(ASIO_UNUSED_TYPEDEF) - -// Some versions of gcc generate spurious warnings about unused variables. -#if defined(__GNUC__) -# if (__GNUC__ >= 4) -# define ASIO_UNUSED_VARIABLE __attribute__((__unused__)) -# endif // (__GNUC__ >= 4) -#endif // defined(__GNUC__) -#if !defined(ASIO_UNUSED_VARIABLE) -# define ASIO_UNUSED_VARIABLE -#endif // !defined(ASIO_UNUSED_VARIABLE) - -// Support co_await on compilers known to allow it. -#if !defined(ASIO_HAS_CO_AWAIT) -# if !defined(ASIO_DISABLE_CO_AWAIT) -# if defined(ASIO_MSVC) -# if (_MSC_FULL_VER >= 190023506) -# if defined(_RESUMABLE_FUNCTIONS_SUPPORTED) -# define ASIO_HAS_CO_AWAIT 1 -# endif // defined(_RESUMABLE_FUNCTIONS_SUPPORTED) -# endif // (_MSC_FULL_VER >= 190023506) -# endif // defined(ASIO_MSVC) -# endif // !defined(ASIO_DISABLE_CO_AWAIT) -# if defined(__clang__) -# if (__cpp_coroutines >= 201703) -# if __has_include() -# define ASIO_HAS_CO_AWAIT 1 -# endif // __has_include() -# endif // (__cpp_coroutines >= 201703) -# endif // defined(__clang__) -#endif // !defined(ASIO_HAS_CO_AWAIT) - -#endif // ASIO_DETAIL_CONFIG_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/consuming_buffers.hpp b/Sources/Vendor/asio/include/asio/detail/consuming_buffers.hpp deleted file mode 100644 index 8127ae7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/consuming_buffers.hpp +++ /dev/null @@ -1,414 +0,0 @@ -// -// detail/consuming_buffers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CONSUMING_BUFFERS_HPP -#define ASIO_DETAIL_CONSUMING_BUFFERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/buffer.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/limits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper template to determine the maximum number of prepared buffers. -template -struct prepared_buffers_max -{ - enum { value = buffer_sequence_adapter_base::max_buffers }; -}; - -template -struct prepared_buffers_max > -{ - enum { value = N }; -}; - -#if defined(ASIO_HAS_STD_ARRAY) - -template -struct prepared_buffers_max > -{ - enum { value = N }; -}; - -#endif // defined(ASIO_HAS_STD_ARRAY) - -// A buffer sequence used to represent a subsequence of the buffers. -template -struct prepared_buffers -{ - typedef Buffer value_type; - typedef const Buffer* const_iterator; - - enum { max_buffers = MaxBuffers < 16 ? MaxBuffers : 16 }; - - prepared_buffers() : count(0) {} - const_iterator begin() const { return elems; } - const_iterator end() const { return elems + count; } - - Buffer elems[max_buffers]; - std::size_t count; -}; - -// A proxy for a sub-range in a list of buffers. -template -class consuming_buffers -{ -public: - typedef prepared_buffers::value> - prepared_buffers_type; - - // Construct to represent the entire list of buffers. - explicit consuming_buffers(const Buffers& buffers) - : buffers_(buffers), - total_consumed_(0), - next_elem_(0), - next_elem_offset_(0) - { - using asio::buffer_size; - total_size_ = buffer_size(buffers); - } - - // Determine if we are at the end of the buffers. - bool empty() const - { - return total_consumed_ >= total_size_; - } - - // Get the buffer for a single transfer, with a size. - prepared_buffers_type prepare(std::size_t max_size) - { - prepared_buffers_type result; - - Buffer_Iterator next = asio::buffer_sequence_begin(buffers_); - Buffer_Iterator end = asio::buffer_sequence_end(buffers_); - - std::advance(next, next_elem_); - std::size_t elem_offset = next_elem_offset_; - while (next != end && max_size > 0 && (result.count) < result.max_buffers) - { - Buffer next_buf = Buffer(*next) + elem_offset; - result.elems[result.count] = asio::buffer(next_buf, max_size); - max_size -= result.elems[result.count].size(); - elem_offset = 0; - if (result.elems[result.count].size() > 0) - ++result.count; - ++next; - } - - return result; - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - total_consumed_ += size; - - Buffer_Iterator next = asio::buffer_sequence_begin(buffers_); - Buffer_Iterator end = asio::buffer_sequence_end(buffers_); - - std::advance(next, next_elem_); - while (next != end && size > 0) - { - Buffer next_buf = Buffer(*next) + next_elem_offset_; - if (size < next_buf.size()) - { - next_elem_offset_ += size; - size = 0; - } - else - { - size -= next_buf.size(); - next_elem_offset_ = 0; - ++next_elem_; - ++next; - } - } - } - - // Get the total number of bytes consumed from the buffers. - std::size_t total_consumed() const - { - return total_consumed_; - } - -private: - Buffers buffers_; - std::size_t total_size_; - std::size_t total_consumed_; - std::size_t next_elem_; - std::size_t next_elem_offset_; -}; - -// Base class of all consuming_buffers specialisations for single buffers. -template -class consuming_single_buffer -{ -public: - // Construct to represent the entire list of buffers. - template - explicit consuming_single_buffer(const Buffer1& buffer) - : buffer_(buffer), - total_consumed_(0) - { - } - - // Determine if we are at the end of the buffers. - bool empty() const - { - return total_consumed_ >= buffer_.size(); - } - - // Get the buffer for a single transfer, with a size. - Buffer prepare(std::size_t max_size) - { - return asio::buffer(buffer_ + total_consumed_, max_size); - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - total_consumed_ += size; - } - - // Get the total number of bytes consumed from the buffers. - std::size_t total_consumed() const - { - return total_consumed_; - } - -private: - Buffer buffer_; - std::size_t total_consumed_; -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const mutable_buffer& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const mutable_buffer& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const const_buffer& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const mutable_buffers_1& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const mutable_buffers_1& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -template <> -class consuming_buffers - : public consuming_single_buffer -{ -public: - explicit consuming_buffers(const const_buffers_1& buffer) - : consuming_single_buffer(buffer) - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -class consuming_buffers, - typename boost::array::const_iterator> -{ -public: - // Construct to represent the entire list of buffers. - explicit consuming_buffers(const boost::array& buffers) - : buffers_(buffers), - total_consumed_(0) - { - } - - // Determine if we are at the end of the buffers. - bool empty() const - { - return total_consumed_ >= - Buffer(buffers_[0]).size() + Buffer(buffers_[1]).size(); - } - - // Get the buffer for a single transfer, with a size. - boost::array prepare(std::size_t max_size) - { - boost::array result = {{ - Buffer(buffers_[0]), Buffer(buffers_[1]) }}; - std::size_t buffer0_size = result[0].size(); - result[0] = asio::buffer(result[0] + total_consumed_, max_size); - result[1] = asio::buffer( - result[1] + (total_consumed_ < buffer0_size - ? 0 : total_consumed_ - buffer0_size), - max_size - result[0].size()); - return result; - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - total_consumed_ += size; - } - - // Get the total number of bytes consumed from the buffers. - std::size_t total_consumed() const - { - return total_consumed_; - } - -private: - boost::array buffers_; - std::size_t total_consumed_; -}; - -#if defined(ASIO_HAS_STD_ARRAY) - -template -class consuming_buffers, - typename std::array::const_iterator> -{ -public: - // Construct to represent the entire list of buffers. - explicit consuming_buffers(const std::array& buffers) - : buffers_(buffers), - total_consumed_(0) - { - } - - // Determine if we are at the end of the buffers. - bool empty() const - { - return total_consumed_ >= - Buffer(buffers_[0]).size() + Buffer(buffers_[1]).size(); - } - - // Get the buffer for a single transfer, with a size. - std::array prepare(std::size_t max_size) - { - std::array result = {{ - Buffer(buffers_[0]), Buffer(buffers_[1]) }}; - std::size_t buffer0_size = result[0].size(); - result[0] = asio::buffer(result[0] + total_consumed_, max_size); - result[1] = asio::buffer( - result[1] + (total_consumed_ < buffer0_size - ? 0 : total_consumed_ - buffer0_size), - max_size - result[0].size()); - return result; - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - total_consumed_ += size; - } - - // Get the total number of bytes consumed from the buffers. - std::size_t total_consumed() const - { - return total_consumed_; - } - -private: - std::array buffers_; - std::size_t total_consumed_; -}; - -#endif // defined(ASIO_HAS_STD_ARRAY) - -// Specialisation for null_buffers to ensure that the null_buffers type is -// always passed through to the underlying read or write operation. -template -class consuming_buffers - : public asio::null_buffers -{ -public: - consuming_buffers(const null_buffers&) - { - // No-op. - } - - bool empty() - { - return false; - } - - null_buffers prepare(std::size_t) - { - return null_buffers(); - } - - void consume(std::size_t) - { - // No-op. - } - - std::size_t total_consumed() const - { - return 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_CONSUMING_BUFFERS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/cstddef.hpp b/Sources/Vendor/asio/include/asio/detail/cstddef.hpp deleted file mode 100644 index 3912da4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/cstddef.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// detail/cstddef.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CSTDDEF_HPP -#define ASIO_DETAIL_CSTDDEF_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -namespace asio { - -#if defined(ASIO_HAS_NULLPTR) -using std::nullptr_t; -#else // defined(ASIO_HAS_NULLPTR) -struct nullptr_t {}; -#endif // defined(ASIO_HAS_NULLPTR) - -} // namespace asio - -#endif // ASIO_DETAIL_CSTDDEF_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/cstdint.hpp b/Sources/Vendor/asio/include/asio/detail/cstdint.hpp deleted file mode 100644 index 62342b2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/cstdint.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// detail/cstdint.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_CSTDINT_HPP -#define ASIO_DETAIL_CSTDINT_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_CSTDINT) -# include -#else // defined(ASIO_HAS_CSTDINT) -# include -#endif // defined(ASIO_HAS_CSTDINT) - -namespace asio { - -#if defined(ASIO_HAS_CSTDINT) -using std::int16_t; -using std::int_least16_t; -using std::uint16_t; -using std::uint_least16_t; -using std::int32_t; -using std::int_least32_t; -using std::uint32_t; -using std::uint_least32_t; -using std::int64_t; -using std::int_least64_t; -using std::uint64_t; -using std::uint_least64_t; -using std::uintmax_t; -#else // defined(ASIO_HAS_CSTDINT) -using boost::int16_t; -using boost::int_least16_t; -using boost::uint16_t; -using boost::uint_least16_t; -using boost::int32_t; -using boost::int_least32_t; -using boost::uint32_t; -using boost::uint_least32_t; -using boost::int64_t; -using boost::int_least64_t; -using boost::uint64_t; -using boost::uint_least64_t; -using boost::uintmax_t; -#endif // defined(ASIO_HAS_CSTDINT) - -} // namespace asio - -#endif // ASIO_DETAIL_CSTDINT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/date_time_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/date_time_fwd.hpp deleted file mode 100644 index a159562..0000000 --- a/Sources/Vendor/asio/include/asio/detail/date_time_fwd.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// detail/date_time_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_DATE_TIME_FWD_HPP -#define ASIO_DETAIL_DATE_TIME_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace boost { -namespace date_time { - -template -class base_time; - -} // namespace date_time -namespace posix_time { - -class ptime; - -} // namespace posix_time -} // namespace boost - -#endif // ASIO_DETAIL_DATE_TIME_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/deadline_timer_service.hpp b/Sources/Vendor/asio/include/asio/detail/deadline_timer_service.hpp deleted file mode 100644 index f58a6e0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/deadline_timer_service.hpp +++ /dev/null @@ -1,278 +0,0 @@ -// -// detail/deadline_timer_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_DEADLINE_TIMER_SERVICE_HPP -#define ASIO_DETAIL_DEADLINE_TIMER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue.hpp" -#include "asio/detail/timer_queue_ptime.hpp" -#include "asio/detail/timer_scheduler.hpp" -#include "asio/detail/wait_handler.hpp" -#include "asio/detail/wait_op.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include -# include -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class deadline_timer_service - : public service_base > -{ -public: - // The time type. - typedef typename Time_Traits::time_type time_type; - - // The duration type. - typedef typename Time_Traits::duration_type duration_type; - - // The implementation type of the timer. This type is dependent on the - // underlying implementation of the timer service. - struct implementation_type - : private asio::detail::noncopyable - { - time_type expiry; - bool might_have_pending_waits; - typename timer_queue::per_timer_data timer_data; - }; - - // Constructor. - deadline_timer_service(asio::io_context& io_context) - : service_base >(io_context), - scheduler_(asio::use_service(io_context)) - { - scheduler_.init_task(); - scheduler_.add_timer_queue(timer_queue_); - } - - // Destructor. - ~deadline_timer_service() - { - scheduler_.remove_timer_queue(timer_queue_); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - } - - // Construct a new timer implementation. - void construct(implementation_type& impl) - { - impl.expiry = time_type(); - impl.might_have_pending_waits = false; - } - - // Destroy a timer implementation. - void destroy(implementation_type& impl) - { - asio::error_code ec; - cancel(impl, ec); - } - - // Move-construct a new serial port implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - scheduler_.move_timer(timer_queue_, impl.timer_data, other_impl.timer_data); - - impl.expiry = other_impl.expiry; - other_impl.expiry = time_type(); - - impl.might_have_pending_waits = other_impl.might_have_pending_waits; - other_impl.might_have_pending_waits = false; - } - - // Move-assign from another serial port implementation. - void move_assign(implementation_type& impl, - deadline_timer_service& other_service, - implementation_type& other_impl) - { - if (this != &other_service) - if (impl.might_have_pending_waits) - scheduler_.cancel_timer(timer_queue_, impl.timer_data); - - other_service.scheduler_.move_timer(other_service.timer_queue_, - impl.timer_data, other_impl.timer_data); - - impl.expiry = other_impl.expiry; - other_impl.expiry = time_type(); - - impl.might_have_pending_waits = other_impl.might_have_pending_waits; - other_impl.might_have_pending_waits = false; - } - - // Cancel any asynchronous wait operations associated with the timer. - std::size_t cancel(implementation_type& impl, asio::error_code& ec) - { - if (!impl.might_have_pending_waits) - { - ec = asio::error_code(); - return 0; - } - - ASIO_HANDLER_OPERATION((scheduler_.context(), - "deadline_timer", &impl, 0, "cancel")); - - std::size_t count = scheduler_.cancel_timer(timer_queue_, impl.timer_data); - impl.might_have_pending_waits = false; - ec = asio::error_code(); - return count; - } - - // Cancels one asynchronous wait operation associated with the timer. - std::size_t cancel_one(implementation_type& impl, - asio::error_code& ec) - { - if (!impl.might_have_pending_waits) - { - ec = asio::error_code(); - return 0; - } - - ASIO_HANDLER_OPERATION((scheduler_.context(), - "deadline_timer", &impl, 0, "cancel_one")); - - std::size_t count = scheduler_.cancel_timer( - timer_queue_, impl.timer_data, 1); - if (count == 0) - impl.might_have_pending_waits = false; - ec = asio::error_code(); - return count; - } - - // Get the expiry time for the timer as an absolute time. - time_type expiry(const implementation_type& impl) const - { - return impl.expiry; - } - - // Get the expiry time for the timer as an absolute time. - time_type expires_at(const implementation_type& impl) const - { - return impl.expiry; - } - - // Get the expiry time for the timer relative to now. - duration_type expires_from_now(const implementation_type& impl) const - { - return Time_Traits::subtract(this->expiry(impl), Time_Traits::now()); - } - - // Set the expiry time for the timer as an absolute time. - std::size_t expires_at(implementation_type& impl, - const time_type& expiry_time, asio::error_code& ec) - { - std::size_t count = cancel(impl, ec); - impl.expiry = expiry_time; - ec = asio::error_code(); - return count; - } - - // Set the expiry time for the timer relative to now. - std::size_t expires_after(implementation_type& impl, - const duration_type& expiry_time, asio::error_code& ec) - { - return expires_at(impl, - Time_Traits::add(Time_Traits::now(), expiry_time), ec); - } - - // Set the expiry time for the timer relative to now. - std::size_t expires_from_now(implementation_type& impl, - const duration_type& expiry_time, asio::error_code& ec) - { - return expires_at(impl, - Time_Traits::add(Time_Traits::now(), expiry_time), ec); - } - - // Perform a blocking wait on the timer. - void wait(implementation_type& impl, asio::error_code& ec) - { - time_type now = Time_Traits::now(); - ec = asio::error_code(); - while (Time_Traits::less_than(now, impl.expiry) && !ec) - { - this->do_wait(Time_Traits::to_posix_duration( - Time_Traits::subtract(impl.expiry, now)), ec); - now = Time_Traits::now(); - } - } - - // Start an asynchronous wait on the timer. - template - void async_wait(implementation_type& impl, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef wait_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - impl.might_have_pending_waits = true; - - ASIO_HANDLER_CREATION((scheduler_.context(), - *p.p, "deadline_timer", &impl, 0, "async_wait")); - - scheduler_.schedule_timer(timer_queue_, impl.expiry, impl.timer_data, p.p); - p.v = p.p = 0; - } - -private: - // Helper function to wait given a duration type. The duration type should - // either be of type boost::posix_time::time_duration, or implement the - // required subset of its interface. - template - void do_wait(const Duration& timeout, asio::error_code& ec) - { -#if defined(ASIO_WINDOWS_RUNTIME) - std::this_thread::sleep_for( - std::chrono::seconds(timeout.total_seconds()) - + std::chrono::microseconds(timeout.total_microseconds())); - ec = asio::error_code(); -#else // defined(ASIO_WINDOWS_RUNTIME) - ::timeval tv; - tv.tv_sec = timeout.total_seconds(); - tv.tv_usec = timeout.total_microseconds() % 1000000; - socket_ops::select(0, 0, 0, 0, &tv, ec); -#endif // defined(ASIO_WINDOWS_RUNTIME) - } - - // The queue of timers. - timer_queue timer_queue_; - - // The object that schedules and executes timers. Usually a reactor. - timer_scheduler& scheduler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_DEADLINE_TIMER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/dependent_type.hpp b/Sources/Vendor/asio/include/asio/detail/dependent_type.hpp deleted file mode 100644 index 85b41c8..0000000 --- a/Sources/Vendor/asio/include/asio/detail/dependent_type.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// detail/dependent_type.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_DEPENDENT_TYPE_HPP -#define ASIO_DETAIL_DEPENDENT_TYPE_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 { -namespace detail { - -template -struct dependent_type -{ - typedef T type; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_DEPENDENT_TYPE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/descriptor_ops.hpp b/Sources/Vendor/asio/include/asio/detail/descriptor_ops.hpp deleted file mode 100644 index 9c0560a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/descriptor_ops.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// detail/descriptor_ops.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_DESCRIPTOR_OPS_HPP -#define ASIO_DETAIL_DESCRIPTOR_OPS_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_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - -#include -#include "asio/error.hpp" -#include "asio/error_code.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace descriptor_ops { - -// Descriptor state bits. -enum -{ - // The user wants a non-blocking descriptor. - user_set_non_blocking = 1, - - // The descriptor has been set non-blocking. - internal_non_blocking = 2, - - // Helper "state" used to determine whether the descriptor is non-blocking. - non_blocking = user_set_non_blocking | internal_non_blocking, - - // The descriptor may have been dup()-ed. - possible_dup = 4 -}; - -typedef unsigned char state_type; - -template -inline ReturnType error_wrapper(ReturnType return_value, - asio::error_code& ec) -{ - ec = asio::error_code(errno, - asio::error::get_system_category()); - return return_value; -} - -ASIO_DECL int open(const char* path, int flags, - asio::error_code& ec); - -ASIO_DECL int close(int d, state_type& state, - asio::error_code& ec); - -ASIO_DECL bool set_user_non_blocking(int d, - state_type& state, bool value, asio::error_code& ec); - -ASIO_DECL bool set_internal_non_blocking(int d, - state_type& state, bool value, asio::error_code& ec); - -typedef iovec buf; - -ASIO_DECL std::size_t sync_read(int d, state_type state, buf* bufs, - std::size_t count, bool all_empty, asio::error_code& ec); - -ASIO_DECL bool non_blocking_read(int d, buf* bufs, std::size_t count, - asio::error_code& ec, std::size_t& bytes_transferred); - -ASIO_DECL std::size_t sync_write(int d, state_type state, - const buf* bufs, std::size_t count, bool all_empty, - asio::error_code& ec); - -ASIO_DECL bool non_blocking_write(int d, - const buf* bufs, std::size_t count, - asio::error_code& ec, std::size_t& bytes_transferred); - -ASIO_DECL int ioctl(int d, state_type& state, long cmd, - ioctl_arg_type* arg, asio::error_code& ec); - -ASIO_DECL int fcntl(int d, int cmd, asio::error_code& ec); - -ASIO_DECL int fcntl(int d, int cmd, - long arg, asio::error_code& ec); - -ASIO_DECL int poll_read(int d, - state_type state, asio::error_code& ec); - -ASIO_DECL int poll_write(int d, - state_type state, asio::error_code& ec); - -ASIO_DECL int poll_error(int d, - state_type state, asio::error_code& ec); - -} // namespace descriptor_ops -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/descriptor_ops.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_DESCRIPTOR_OPS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/descriptor_read_op.hpp b/Sources/Vendor/asio/include/asio/detail/descriptor_read_op.hpp deleted file mode 100644 index 6db4bfb..0000000 --- a/Sources/Vendor/asio/include/asio/detail/descriptor_read_op.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// -// detail/descriptor_read_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_DESCRIPTOR_READ_OP_HPP -#define ASIO_DETAIL_DESCRIPTOR_READ_OP_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_WINDOWS) && !defined(__CYGWIN__) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/descriptor_ops.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_work.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class descriptor_read_op_base : public reactor_op -{ -public: - descriptor_read_op_base(int descriptor, - const MutableBufferSequence& buffers, func_type complete_func) - : reactor_op(&descriptor_read_op_base::do_perform, complete_func), - descriptor_(descriptor), - buffers_(buffers) - { - } - - static status do_perform(reactor_op* base) - { - descriptor_read_op_base* o(static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = descriptor_ops::non_blocking_read(o->descriptor_, - bufs.buffers(), bufs.count(), o->ec_, o->bytes_transferred_) - ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_read", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - int descriptor_; - MutableBufferSequence buffers_; -}; - -template -class descriptor_read_op - : public descriptor_read_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(descriptor_read_op); - - descriptor_read_op(int descriptor, - const MutableBufferSequence& buffers, Handler& handler) - : descriptor_read_op_base( - descriptor, buffers, &descriptor_read_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - descriptor_read_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_DESCRIPTOR_READ_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/descriptor_write_op.hpp b/Sources/Vendor/asio/include/asio/detail/descriptor_write_op.hpp deleted file mode 100644 index a9ec2a9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/descriptor_write_op.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// -// detail/descriptor_write_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_DESCRIPTOR_WRITE_OP_HPP -#define ASIO_DETAIL_DESCRIPTOR_WRITE_OP_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_WINDOWS) && !defined(__CYGWIN__) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/descriptor_ops.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_work.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class descriptor_write_op_base : public reactor_op -{ -public: - descriptor_write_op_base(int descriptor, - const ConstBufferSequence& buffers, func_type complete_func) - : reactor_op(&descriptor_write_op_base::do_perform, complete_func), - descriptor_(descriptor), - buffers_(buffers) - { - } - - static status do_perform(reactor_op* base) - { - descriptor_write_op_base* o(static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = descriptor_ops::non_blocking_write(o->descriptor_, - bufs.buffers(), bufs.count(), o->ec_, o->bytes_transferred_) - ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_write", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - int descriptor_; - ConstBufferSequence buffers_; -}; - -template -class descriptor_write_op - : public descriptor_write_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(descriptor_write_op); - - descriptor_write_op(int descriptor, - const ConstBufferSequence& buffers, Handler& handler) - : descriptor_write_op_base( - descriptor, buffers, &descriptor_write_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - descriptor_write_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_DESCRIPTOR_WRITE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/dev_poll_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/dev_poll_reactor.hpp deleted file mode 100644 index e9e4e29..0000000 --- a/Sources/Vendor/asio/include/asio/detail/dev_poll_reactor.hpp +++ /dev/null @@ -1,218 +0,0 @@ -// -// detail/dev_poll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_DEV_POLL_REACTOR_HPP -#define ASIO_DETAIL_DEV_POLL_REACTOR_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_DEV_POLL) - -#include -#include -#include -#include "asio/detail/hash_map.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/reactor_op_queue.hpp" -#include "asio/detail/select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class dev_poll_reactor - : public execution_context_service_base -{ -public: - enum op_types { read_op = 0, write_op = 1, - connect_op = 1, except_op = 2, max_ops = 3 }; - - // Per-descriptor data. - struct per_descriptor_data - { - }; - - // Constructor. - ASIO_DECL dev_poll_reactor(asio::execution_context& ctx); - - // Destructor. - ASIO_DECL ~dev_poll_reactor(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::execution_context::fork_event fork_ev); - - // Initialise the task. - ASIO_DECL void init_task(); - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - ASIO_DECL int register_descriptor(socket_type, per_descriptor_data&); - - // Register a descriptor with an associated single operation. Returns 0 on - // success, system error code on failure. - ASIO_DECL int register_internal_descriptor( - int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op); - - // Move descriptor registration from one descriptor_data object to another. - ASIO_DECL void move_descriptor(socket_type descriptor, - per_descriptor_data& target_descriptor_data, - per_descriptor_data& source_descriptor_data); - - // Post a reactor operation for immediate completion. - void post_immediate_completion(reactor_op* op, bool is_continuation) - { - scheduler_.post_immediate_completion(op, is_continuation); - } - - // Start a new operation. The reactor operation will be performed when the - // given descriptor is flagged as ready, or an error has occurred. - ASIO_DECL void start_op(int op_type, socket_type descriptor, - per_descriptor_data&, reactor_op* op, - bool is_continuation, bool allow_speculative); - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - ASIO_DECL void cancel_ops(socket_type descriptor, per_descriptor_data&); - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. The reactor resources associated with - // the descriptor must be released by calling cleanup_descriptor_data. - ASIO_DECL void deregister_descriptor(socket_type descriptor, - per_descriptor_data&, bool closing); - - // Remove the descriptor's registration from the reactor. The reactor - // resources associated with the descriptor must be released by calling - // cleanup_descriptor_data. - ASIO_DECL void deregister_internal_descriptor( - socket_type descriptor, per_descriptor_data&); - - // Perform any post-deregistration cleanup tasks associated with the - // descriptor data. - ASIO_DECL void cleanup_descriptor_data(per_descriptor_data&); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source); - - // Run /dev/poll once until interrupted or events are ready to be dispatched. - ASIO_DECL void run(long usec, op_queue& ops); - - // Interrupt the select loop. - ASIO_DECL void interrupt(); - -private: - // Create the /dev/poll file descriptor. Throws an exception if the descriptor - // cannot be created. - ASIO_DECL static int do_dev_poll_create(); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Get the timeout value for the /dev/poll DP_POLL operation. The timeout - // value is returned as a number of milliseconds. A return value of -1 - // indicates that the poll should block indefinitely. - ASIO_DECL int get_timeout(int msec); - - // Cancel all operations associated with the given descriptor. The do_cancel - // function of the handler objects will be invoked. This function does not - // acquire the dev_poll_reactor's mutex. - ASIO_DECL void cancel_ops_unlocked(socket_type descriptor, - const asio::error_code& ec); - - // Add a pending event entry for the given descriptor. - ASIO_DECL ::pollfd& add_pending_event_change(int descriptor); - - // The scheduler implementation used to post completions. - scheduler& scheduler_; - - // Mutex to protect access to internal data. - asio::detail::mutex mutex_; - - // The /dev/poll file descriptor. - int dev_poll_fd_; - - // Vector of /dev/poll events waiting to be written to the descriptor. - std::vector< ::pollfd> pending_event_changes_; - - // Hash map to associate a descriptor with a pending event change index. - hash_map pending_event_change_index_; - - // The interrupter is used to break a blocking DP_POLL operation. - select_interrupter interrupter_; - - // The queues of read, write and except operations. - reactor_op_queue op_queue_[max_ops]; - - // The timer queues. - timer_queue_set timer_queues_; - - // Whether the service has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/dev_poll_reactor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/dev_poll_reactor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_DEV_POLL) - -#endif // ASIO_DETAIL_DEV_POLL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/epoll_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/epoll_reactor.hpp deleted file mode 100644 index 5f58109..0000000 --- a/Sources/Vendor/asio/include/asio/detail/epoll_reactor.hpp +++ /dev/null @@ -1,266 +0,0 @@ -// -// detail/epoll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_EPOLL_REACTOR_HPP -#define ASIO_DETAIL_EPOLL_REACTOR_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_EPOLL) - -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/conditionally_enabled_mutex.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/object_pool.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/execution_context.hpp" - -#if defined(ASIO_HAS_TIMERFD) -# include -#endif // defined(ASIO_HAS_TIMERFD) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class epoll_reactor - : public execution_context_service_base -{ -private: - // The mutex type used by this reactor. - typedef conditionally_enabled_mutex mutex; - -public: - enum op_types { read_op = 0, write_op = 1, - connect_op = 1, except_op = 2, max_ops = 3 }; - - // Per-descriptor queues. - class descriptor_state : operation - { - friend class epoll_reactor; - friend class object_pool_access; - - descriptor_state* next_; - descriptor_state* prev_; - - mutex mutex_; - epoll_reactor* reactor_; - int descriptor_; - uint32_t registered_events_; - op_queue op_queue_[max_ops]; - bool try_speculative_[max_ops]; - bool shutdown_; - - ASIO_DECL descriptor_state(bool locking); - void set_ready_events(uint32_t events) { task_result_ = events; } - void add_ready_events(uint32_t events) { task_result_ |= events; } - ASIO_DECL operation* perform_io(uint32_t events); - ASIO_DECL static void do_complete( - void* owner, operation* base, - const asio::error_code& ec, std::size_t bytes_transferred); - }; - - // Per-descriptor data. - typedef descriptor_state* per_descriptor_data; - - // Constructor. - ASIO_DECL epoll_reactor(asio::execution_context& ctx); - - // Destructor. - ASIO_DECL ~epoll_reactor(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::execution_context::fork_event fork_ev); - - // Initialise the task. - ASIO_DECL void init_task(); - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - ASIO_DECL int register_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data); - - // Register a descriptor with an associated single operation. Returns 0 on - // success, system error code on failure. - ASIO_DECL int register_internal_descriptor( - int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op); - - // Move descriptor registration from one descriptor_data object to another. - ASIO_DECL void move_descriptor(socket_type descriptor, - per_descriptor_data& target_descriptor_data, - per_descriptor_data& source_descriptor_data); - - // Post a reactor operation for immediate completion. - void post_immediate_completion(reactor_op* op, bool is_continuation) - { - scheduler_.post_immediate_completion(op, is_continuation); - } - - // Start a new operation. The reactor operation will be performed when the - // given descriptor is flagged as ready, or an error has occurred. - ASIO_DECL void start_op(int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op, - bool is_continuation, bool allow_speculative); - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - ASIO_DECL void cancel_ops(socket_type descriptor, - per_descriptor_data& descriptor_data); - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. The reactor resources associated with - // the descriptor must be released by calling cleanup_descriptor_data. - ASIO_DECL void deregister_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data, bool closing); - - // Remove the descriptor's registration from the reactor. The reactor - // resources associated with the descriptor must be released by calling - // cleanup_descriptor_data. - ASIO_DECL void deregister_internal_descriptor( - socket_type descriptor, per_descriptor_data& descriptor_data); - - // Perform any post-deregistration cleanup tasks associated with the - // descriptor data. - ASIO_DECL void cleanup_descriptor_data( - per_descriptor_data& descriptor_data); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& timer_queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& timer_queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source); - - // Run epoll once until interrupted or events are ready to be dispatched. - ASIO_DECL void run(long usec, op_queue& ops); - - // Interrupt the select loop. - ASIO_DECL void interrupt(); - -private: - // The hint to pass to epoll_create to size its data structures. - enum { epoll_size = 20000 }; - - // Create the epoll file descriptor. Throws an exception if the descriptor - // cannot be created. - ASIO_DECL static int do_epoll_create(); - - // Create the timerfd file descriptor. Does not throw. - ASIO_DECL static int do_timerfd_create(); - - // Allocate a new descriptor state object. - ASIO_DECL descriptor_state* allocate_descriptor_state(); - - // Free an existing descriptor state object. - ASIO_DECL void free_descriptor_state(descriptor_state* s); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Called to recalculate and update the timeout. - ASIO_DECL void update_timeout(); - - // Get the timeout value for the epoll_wait call. The timeout value is - // returned as a number of milliseconds. A return value of -1 indicates - // that epoll_wait should block indefinitely. - ASIO_DECL int get_timeout(int msec); - -#if defined(ASIO_HAS_TIMERFD) - // Get the timeout value for the timer descriptor. The return value is the - // flag argument to be used when calling timerfd_settime. - ASIO_DECL int get_timeout(itimerspec& ts); -#endif // defined(ASIO_HAS_TIMERFD) - - // The scheduler implementation used to post completions. - scheduler& scheduler_; - - // Mutex to protect access to internal data. - mutex mutex_; - - // The interrupter is used to break a blocking epoll_wait call. - select_interrupter interrupter_; - - // The epoll file descriptor. - int epoll_fd_; - - // The timer file descriptor. - int timer_fd_; - - // The timer queues. - timer_queue_set timer_queues_; - - // Whether the service has been shut down. - bool shutdown_; - - // Mutex to protect access to the registered descriptors. - mutex registered_descriptors_mutex_; - - // Keep track of all registered descriptors. - object_pool registered_descriptors_; - - // Helper class to do post-perform_io cleanup. - struct perform_io_cleanup_on_block_exit; - friend struct perform_io_cleanup_on_block_exit; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/epoll_reactor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/epoll_reactor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_EPOLL) - -#endif // ASIO_DETAIL_EPOLL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/event.hpp b/Sources/Vendor/asio/include/asio/detail/event.hpp deleted file mode 100644 index da8fa77..0000000 --- a/Sources/Vendor/asio/include/asio/detail/event.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// detail/event.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_EVENT_HPP -#define ASIO_DETAIL_EVENT_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_THREADS) -# include "asio/detail/null_event.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_event.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_event.hpp" -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -# include "asio/detail/std_event.hpp" -#else -# error Only Windows, POSIX and std::condition_variable are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef null_event event; -#elif defined(ASIO_WINDOWS) -typedef win_event event; -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_event event; -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -typedef std_event event; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/eventfd_select_interrupter.hpp b/Sources/Vendor/asio/include/asio/detail/eventfd_select_interrupter.hpp deleted file mode 100644 index f6e594b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/eventfd_select_interrupter.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// detail/eventfd_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Roelof Naude (roelof.naude at gmail 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_DETAIL_EVENTFD_SELECT_INTERRUPTER_HPP -#define ASIO_DETAIL_EVENTFD_SELECT_INTERRUPTER_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_EVENTFD) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class eventfd_select_interrupter -{ -public: - // Constructor. - ASIO_DECL eventfd_select_interrupter(); - - // Destructor. - ASIO_DECL ~eventfd_select_interrupter(); - - // Recreate the interrupter's descriptors. Used after a fork. - ASIO_DECL void recreate(); - - // Interrupt the select call. - ASIO_DECL void interrupt(); - - // Reset the select interrupt. Returns true if the call was interrupted. - ASIO_DECL bool reset(); - - // Get the read descriptor to be passed to select. - int read_descriptor() const - { - return read_descriptor_; - } - -private: - // Open the descriptors. Throws on error. - ASIO_DECL void open_descriptors(); - - // Close the descriptors. - ASIO_DECL void close_descriptors(); - - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // 64bit value will be written on the other end of the connection and this - // descriptor will become readable. - int read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // 64bit non-zero value may be written to this to wake up the select which is - // waiting for the other end to become readable. This descriptor will only - // differ from the read descriptor when a pipe is used. - int write_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/eventfd_select_interrupter.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_EVENTFD) - -#endif // ASIO_DETAIL_EVENTFD_SELECT_INTERRUPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/executor_op.hpp b/Sources/Vendor/asio/include/asio/detail/executor_op.hpp deleted file mode 100644 index 2d5c7e8..0000000 --- a/Sources/Vendor/asio/include/asio/detail/executor_op.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// detail/executor_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_EXECUTOR_OP_HPP -#define ASIO_DETAIL_EXECUTOR_OP_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/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/scheduler_operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class executor_op : public Operation -{ -public: - ASIO_DEFINE_HANDLER_ALLOCATOR_PTR(executor_op); - - template - executor_op(ASIO_MOVE_ARG(H) h, const Alloc& allocator) - : Operation(&executor_op::do_complete), - handler_(ASIO_MOVE_CAST(H)(h)), - allocator_(allocator) - { - } - - static void do_complete(void* owner, Operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - executor_op* o(static_cast(base)); - Alloc allocator(o->allocator_); - ptr p = { detail::addressof(allocator), o, o }; - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - Handler handler(ASIO_MOVE_CAST(Handler)(o->handler_)); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN(()); - asio_handler_invoke_helpers::invoke(handler, handler); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; - Alloc allocator_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_EXECUTOR_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/fd_set_adapter.hpp b/Sources/Vendor/asio/include/asio/detail/fd_set_adapter.hpp deleted file mode 100644 index fd373da..0000000 --- a/Sources/Vendor/asio/include/asio/detail/fd_set_adapter.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// -// detail/fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_FD_SET_ADAPTER_HPP -#define ASIO_DETAIL_FD_SET_ADAPTER_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_WINDOWS_RUNTIME) - -#include "asio/detail/posix_fd_set_adapter.hpp" -#include "asio/detail/win_fd_set_adapter.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef win_fd_set_adapter fd_set_adapter; -#else -typedef posix_fd_set_adapter fd_set_adapter; -#endif - -} // namespace detail -} // namespace asio - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_FD_SET_ADAPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/fenced_block.hpp deleted file mode 100644 index dc34bd9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/fenced_block.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// detail/fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_FENCED_BLOCK_HPP -#define ASIO_DETAIL_FENCED_BLOCK_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_THREADS) \ - || defined(ASIO_DISABLE_FENCED_BLOCK) -# include "asio/detail/null_fenced_block.hpp" -#elif defined(ASIO_HAS_STD_ATOMIC) -# include "asio/detail/std_fenced_block.hpp" -#elif defined(__MACH__) && defined(__APPLE__) -# include "asio/detail/macos_fenced_block.hpp" -#elif defined(__sun) -# include "asio/detail/solaris_fenced_block.hpp" -#elif defined(__GNUC__) && defined(__arm__) \ - && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) -# include "asio/detail/gcc_arm_fenced_block.hpp" -#elif defined(__GNUC__) && (defined(__hppa) || defined(__hppa__)) -# include "asio/detail/gcc_hppa_fenced_block.hpp" -#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -# include "asio/detail/gcc_x86_fenced_block.hpp" -#elif defined(__GNUC__) \ - && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ - && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) -# include "asio/detail/gcc_sync_fenced_block.hpp" -#elif defined(ASIO_WINDOWS) && !defined(UNDER_CE) -# include "asio/detail/win_fenced_block.hpp" -#else -# include "asio/detail/null_fenced_block.hpp" -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) \ - || defined(ASIO_DISABLE_FENCED_BLOCK) -typedef null_fenced_block fenced_block; -#elif defined(ASIO_HAS_STD_ATOMIC) -typedef std_fenced_block fenced_block; -#elif defined(__MACH__) && defined(__APPLE__) -typedef macos_fenced_block fenced_block; -#elif defined(__sun) -typedef solaris_fenced_block fenced_block; -#elif defined(__GNUC__) && defined(__arm__) \ - && !defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4) -typedef gcc_arm_fenced_block fenced_block; -#elif defined(__GNUC__) && (defined(__hppa) || defined(__hppa__)) -typedef gcc_hppa_fenced_block fenced_block; -#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) -typedef gcc_x86_fenced_block fenced_block; -#elif defined(__GNUC__) \ - && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ - && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) -typedef gcc_sync_fenced_block fenced_block; -#elif defined(ASIO_WINDOWS) && !defined(UNDER_CE) -typedef win_fenced_block fenced_block; -#else -typedef null_fenced_block fenced_block; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/functional.hpp b/Sources/Vendor/asio/include/asio/detail/functional.hpp deleted file mode 100644 index a37e9e6..0000000 --- a/Sources/Vendor/asio/include/asio/detail/functional.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// detail/functional.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_FUNCTIONAL_HPP -#define ASIO_DETAIL_FUNCTIONAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include - -#if !defined(ASIO_HAS_STD_FUNCTION) -# include -#endif // !defined(ASIO_HAS_STD_FUNCTION) - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_STD_FUNCTION) -using std::function; -#else // defined(ASIO_HAS_STD_FUNCTION) -using boost::function; -#endif // defined(ASIO_HAS_STD_FUNCTION) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_FUNCTIONAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/future.hpp b/Sources/Vendor/asio/include/asio/detail/future.hpp deleted file mode 100644 index 2746155..0000000 --- a/Sources/Vendor/asio/include/asio/detail/future.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// detail/future.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_FUTURE_HPP -#define ASIO_DETAIL_FUTURE_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_FUTURE) -# include -// Even though the future header is available, libstdc++ may not implement the -// std::future class itself. However, we need to have already included the -// future header to reliably test for _GLIBCXX_HAS_GTHREADS. -# if defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX) -# if defined(_GLIBCXX_HAS_GTHREADS) -# define ASIO_HAS_STD_FUTURE_CLASS 1 -# endif // defined(_GLIBCXX_HAS_GTHREADS) -# else // defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX) -# define ASIO_HAS_STD_FUTURE_CLASS 1 -# endif // defined(__GNUC__) && !defined(ASIO_HAS_CLANG_LIBCXX) -#endif // defined(ASIO_HAS_STD_FUTURE) - -#endif // ASIO_DETAIL_FUTURE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/gcc_arm_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/gcc_arm_fenced_block.hpp deleted file mode 100644 index 7919a55..0000000 --- a/Sources/Vendor/asio/include/asio/detail/gcc_arm_fenced_block.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// detail/gcc_arm_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_GCC_ARM_FENCED_BLOCK_HPP -#define ASIO_DETAIL_GCC_ARM_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__GNUC__) && defined(__arm__) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class gcc_arm_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit gcc_arm_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit gcc_arm_fenced_block(full_t) - { - barrier(); - } - - // Destructor. - ~gcc_arm_fenced_block() - { - barrier(); - } - -private: - static void barrier() - { -#if defined(__ARM_ARCH_4__) \ - || defined(__ARM_ARCH_4T__) \ - || defined(__ARM_ARCH_5__) \ - || defined(__ARM_ARCH_5E__) \ - || defined(__ARM_ARCH_5T__) \ - || defined(__ARM_ARCH_5TE__) \ - || defined(__ARM_ARCH_5TEJ__) \ - || defined(__ARM_ARCH_6__) \ - || defined(__ARM_ARCH_6J__) \ - || defined(__ARM_ARCH_6K__) \ - || defined(__ARM_ARCH_6Z__) \ - || defined(__ARM_ARCH_6ZK__) \ - || defined(__ARM_ARCH_6T2__) -# if defined(__thumb__) - // This is just a placeholder and almost certainly not sufficient. - __asm__ __volatile__ ("" : : : "memory"); -# else // defined(__thumb__) - int a = 0, b = 0; - __asm__ __volatile__ ("swp %0, %1, [%2]" - : "=&r"(a) : "r"(1), "r"(&b) : "memory", "cc"); -# endif // defined(__thumb__) -#else - // ARMv7 and later. - __asm__ __volatile__ ("dmb" : : : "memory"); -#endif - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__GNUC__) && defined(__arm__) - -#endif // ASIO_DETAIL_GCC_ARM_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/gcc_hppa_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/gcc_hppa_fenced_block.hpp deleted file mode 100644 index d3957ce..0000000 --- a/Sources/Vendor/asio/include/asio/detail/gcc_hppa_fenced_block.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/gcc_hppa_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP -#define ASIO_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__GNUC__) && (defined(__hppa) || defined(__hppa__)) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class gcc_hppa_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit gcc_hppa_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit gcc_hppa_fenced_block(full_t) - { - barrier(); - } - - // Destructor. - ~gcc_hppa_fenced_block() - { - barrier(); - } - -private: - static void barrier() - { - // This is just a placeholder and almost certainly not sufficient. - __asm__ __volatile__ ("" : : : "memory"); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__GNUC__) && (defined(__hppa) || defined(__hppa__)) - -#endif // ASIO_DETAIL_GCC_HPPA_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/gcc_sync_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/gcc_sync_fenced_block.hpp deleted file mode 100644 index 90d176f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/gcc_sync_fenced_block.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// detail/gcc_sync_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP -#define ASIO_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__GNUC__) \ - && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) \ - && !defined(__INTEL_COMPILER) && !defined(__ICL) \ - && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class gcc_sync_fenced_block - : private noncopyable -{ -public: - enum half_or_full_t { half, full }; - - // Constructor. - explicit gcc_sync_fenced_block(half_or_full_t) - : value_(0) - { - __sync_lock_test_and_set(&value_, 1); - } - - // Destructor. - ~gcc_sync_fenced_block() - { - __sync_lock_release(&value_); - } - -private: - int value_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__GNUC__) - // && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)) - // && !defined(__INTEL_COMPILER) && !defined(__ICL) - // && !defined(__ICC) && !defined(__ECC) && !defined(__PATHSCALE__) - -#endif // ASIO_DETAIL_GCC_SYNC_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/gcc_x86_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/gcc_x86_fenced_block.hpp deleted file mode 100644 index 1366def..0000000 --- a/Sources/Vendor/asio/include/asio/detail/gcc_x86_fenced_block.hpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// detail/gcc_x86_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_GCC_X86_FENCED_BLOCK_HPP -#define ASIO_DETAIL_GCC_X86_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class gcc_x86_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit gcc_x86_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit gcc_x86_fenced_block(full_t) - { - lbarrier(); - } - - // Destructor. - ~gcc_x86_fenced_block() - { - sbarrier(); - } - -private: - static int barrier() - { - int r = 0, m = 1; - __asm__ __volatile__ ( - "xchgl %0, %1" : - "=r"(r), "=m"(m) : - "0"(1), "m"(m) : - "memory", "cc"); - return r; - } - - static void lbarrier() - { -#if defined(__SSE2__) -# if (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) - __builtin_ia32_lfence(); -# else // (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) - __asm__ __volatile__ ("lfence" ::: "memory"); -# endif // (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) -#else // defined(__SSE2__) - barrier(); -#endif // defined(__SSE2__) - } - - static void sbarrier() - { -#if defined(__SSE2__) -# if (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) - __builtin_ia32_sfence(); -# else // (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) - __asm__ __volatile__ ("sfence" ::: "memory"); -# endif // (__GNUC__ >= 4) && !defined(__INTEL_COMPILER) && !defined(__ICL) -#else // defined(__SSE2__) - barrier(); -#endif // defined(__SSE2__) - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) - -#endif // ASIO_DETAIL_GCC_X86_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/global.hpp b/Sources/Vendor/asio/include/asio/detail/global.hpp deleted file mode 100644 index 085ac64..0000000 --- a/Sources/Vendor/asio/include/asio/detail/global.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// detail/global.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_GLOBAL_HPP -#define ASIO_DETAIL_GLOBAL_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_THREADS) -# include "asio/detail/null_global.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_global.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_global.hpp" -#elif defined(ASIO_HAS_STD_CALL_ONCE) -# include "asio/detail/std_global.hpp" -#else -# error Only Windows, POSIX and std::call_once are supported! -#endif - -namespace asio { -namespace detail { - -template -inline T& global() -{ -#if !defined(ASIO_HAS_THREADS) - return null_global(); -#elif defined(ASIO_WINDOWS) - return win_global(); -#elif defined(ASIO_HAS_PTHREADS) - return posix_global(); -#elif defined(ASIO_HAS_STD_CALL_ONCE) - return std_global(); -#endif -} - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_alloc_helpers.hpp b/Sources/Vendor/asio/include/asio/detail/handler_alloc_helpers.hpp deleted file mode 100644 index afefb4d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_alloc_helpers.hpp +++ /dev/null @@ -1,235 +0,0 @@ -// -// detail/handler_alloc_helpers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_HANDLER_ALLOC_HELPERS_HPP -#define ASIO_DETAIL_HANDLER_ALLOC_HELPERS_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/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/handler_alloc_hook.hpp" - -#include "asio/detail/push_options.hpp" - -// Calls to asio_handler_allocate and asio_handler_deallocate must be made from -// a namespace that does not contain any overloads of these functions. The -// asio_handler_alloc_helpers namespace is defined here for that purpose. -namespace asio_handler_alloc_helpers { - -template -inline void* allocate(std::size_t s, Handler& h) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - return ::operator new(s); -#else - using asio::asio_handler_allocate; - return asio_handler_allocate(s, asio::detail::addressof(h)); -#endif -} - -template -inline void deallocate(void* p, std::size_t s, Handler& h) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - ::operator delete(p); -#else - using asio::asio_handler_deallocate; - asio_handler_deallocate(p, s, asio::detail::addressof(h)); -#endif -} - -} // namespace asio_handler_alloc_helpers - -namespace asio { -namespace detail { - -template -class hook_allocator -{ -public: - typedef T value_type; - - template - struct rebind - { - typedef hook_allocator other; - }; - - explicit hook_allocator(Handler& h) - : handler_(h) - { - } - - template - hook_allocator(const hook_allocator& a) - : handler_(a.handler_) - { - } - - T* allocate(std::size_t n) - { - return static_cast( - asio_handler_alloc_helpers::allocate(sizeof(T) * n, handler_)); - } - - void deallocate(T* p, std::size_t n) - { - asio_handler_alloc_helpers::deallocate(p, sizeof(T) * n, handler_); - } - -//private: - Handler& handler_; -}; - -template -class hook_allocator -{ -public: - typedef void value_type; - - template - struct rebind - { - typedef hook_allocator other; - }; - - explicit hook_allocator(Handler& h) - : handler_(h) - { - } - - template - hook_allocator(const hook_allocator& a) - : handler_(a.handler_) - { - } - -//private: - Handler& handler_; -}; - -template -struct get_hook_allocator -{ - typedef Allocator type; - - static type get(Handler&, const Allocator& a) - { - return a; - } -}; - -template -struct get_hook_allocator > -{ - typedef hook_allocator type; - - static type get(Handler& handler, const std::allocator&) - { - return type(handler); - } -}; - -} // namespace detail -} // namespace asio - -#define ASIO_DEFINE_HANDLER_PTR(op) \ - struct ptr \ - { \ - Handler* h; \ - op* v; \ - op* p; \ - ~ptr() \ - { \ - reset(); \ - } \ - static op* allocate(Handler& handler) \ - { \ - typedef typename ::asio::associated_allocator< \ - Handler>::type associated_allocator_type; \ - typedef typename ::asio::detail::get_hook_allocator< \ - Handler, associated_allocator_type>::type hook_allocator_type; \ - ASIO_REBIND_ALLOC(hook_allocator_type, op) a( \ - ::asio::detail::get_hook_allocator< \ - Handler, associated_allocator_type>::get( \ - handler, ::asio::get_associated_allocator(handler))); \ - return a.allocate(1); \ - } \ - void reset() \ - { \ - if (p) \ - { \ - p->~op(); \ - p = 0; \ - } \ - if (v) \ - { \ - typedef typename ::asio::associated_allocator< \ - Handler>::type associated_allocator_type; \ - typedef typename ::asio::detail::get_hook_allocator< \ - Handler, associated_allocator_type>::type hook_allocator_type; \ - ASIO_REBIND_ALLOC(hook_allocator_type, op) a( \ - ::asio::detail::get_hook_allocator< \ - Handler, associated_allocator_type>::get( \ - *h, ::asio::get_associated_allocator(*h))); \ - a.deallocate(static_cast(v), 1); \ - v = 0; \ - } \ - } \ - } \ - /**/ - -#define ASIO_DEFINE_HANDLER_ALLOCATOR_PTR(op) \ - struct ptr \ - { \ - const Alloc* a; \ - void* v; \ - op* p; \ - ~ptr() \ - { \ - reset(); \ - } \ - static op* allocate(const Alloc& a) \ - { \ - typedef typename ::asio::detail::get_recycling_allocator< \ - Alloc>::type recycling_allocator_type; \ - ASIO_REBIND_ALLOC(recycling_allocator_type, op) a1( \ - ::asio::detail::get_recycling_allocator::get(a)); \ - return a1.allocate(1); \ - } \ - void reset() \ - { \ - if (p) \ - { \ - p->~op(); \ - p = 0; \ - } \ - if (v) \ - { \ - typedef typename ::asio::detail::get_recycling_allocator< \ - Alloc>::type recycling_allocator_type; \ - ASIO_REBIND_ALLOC(recycling_allocator_type, op) a1( \ - ::asio::detail::get_recycling_allocator::get(*a)); \ - a1.deallocate(static_cast(v), 1); \ - v = 0; \ - } \ - } \ - } \ - /**/ - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HANDLER_ALLOC_HELPERS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_cont_helpers.hpp b/Sources/Vendor/asio/include/asio/detail/handler_cont_helpers.hpp deleted file mode 100644 index 110ba94..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_cont_helpers.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// detail/handler_cont_helpers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_HANDLER_CONT_HELPERS_HPP -#define ASIO_DETAIL_HANDLER_CONT_HELPERS_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/memory.hpp" -#include "asio/handler_continuation_hook.hpp" - -#include "asio/detail/push_options.hpp" - -// Calls to asio_handler_is_continuation must be made from a namespace that -// does not contain overloads of this function. This namespace is defined here -// for that purpose. -namespace asio_handler_cont_helpers { - -template -inline bool is_continuation(Context& context) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - return false; -#else - using asio::asio_handler_is_continuation; - return asio_handler_is_continuation( - asio::detail::addressof(context)); -#endif -} - -} // namespace asio_handler_cont_helpers - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HANDLER_CONT_HELPERS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_invoke_helpers.hpp b/Sources/Vendor/asio/include/asio/detail/handler_invoke_helpers.hpp deleted file mode 100644 index 4c65c4c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_invoke_helpers.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// -// detail/handler_invoke_helpers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_HANDLER_INVOKE_HELPERS_HPP -#define ASIO_DETAIL_HANDLER_INVOKE_HELPERS_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/memory.hpp" -#include "asio/handler_invoke_hook.hpp" - -#include "asio/detail/push_options.hpp" - -// Calls to asio_handler_invoke must be made from a namespace that does not -// contain overloads of this function. The asio_handler_invoke_helpers -// namespace is defined here for that purpose. -namespace asio_handler_invoke_helpers { - -template -inline void invoke(Function& function, Context& context) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - Function tmp(function); - tmp(); -#else - using asio::asio_handler_invoke; - asio_handler_invoke(function, asio::detail::addressof(context)); -#endif -} - -template -inline void invoke(const Function& function, Context& context) -{ -#if !defined(ASIO_HAS_HANDLER_HOOKS) - Function tmp(function); - tmp(); -#else - using asio::asio_handler_invoke; - asio_handler_invoke(function, asio::detail::addressof(context)); -#endif -} - -} // namespace asio_handler_invoke_helpers - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_tracking.hpp b/Sources/Vendor/asio/include/asio/detail/handler_tracking.hpp deleted file mode 100644 index 83f820e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_tracking.hpp +++ /dev/null @@ -1,238 +0,0 @@ -// -// detail/handler_tracking.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_HANDLER_TRACKING_HPP -#define ASIO_DETAIL_HANDLER_TRACKING_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace asio { - -class execution_context; - -} // namespace asio - -#if defined(ASIO_CUSTOM_HANDLER_TRACKING) -# include ASIO_CUSTOM_HANDLER_TRACKING -#elif defined(ASIO_ENABLE_HANDLER_TRACKING) -# include "asio/error_code.hpp" -# include "asio/detail/cstdint.hpp" -# include "asio/detail/static_mutex.hpp" -# include "asio/detail/tss_ptr.hpp" -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_CUSTOM_HANDLER_TRACKING) - -// The user-specified header must define the following macros: -// - ASIO_INHERIT_TRACKED_HANDLER -// - ASIO_ALSO_INHERIT_TRACKED_HANDLER -// - ASIO_HANDLER_TRACKING_INIT -// - ASIO_HANDLER_CREATION(args) -// - ASIO_HANDLER_COMPLETION(args) -// - ASIO_HANDLER_INVOCATION_BEGIN(args) -// - ASIO_HANDLER_INVOCATION_END -// - ASIO_HANDLER_OPERATION(args) -// - ASIO_HANDLER_REACTOR_REGISTRATION(args) -// - ASIO_HANDLER_REACTOR_DEREGISTRATION(args) -// - ASIO_HANDLER_REACTOR_READ_EVENT -// - ASIO_HANDLER_REACTOR_WRITE_EVENT -// - ASIO_HANDLER_REACTOR_ERROR_EVENT -// - ASIO_HANDLER_REACTOR_EVENTS(args) -// - ASIO_HANDLER_REACTOR_OPERATION(args) - -# if !defined(ASIO_ENABLE_HANDLER_TRACKING) -# define ASIO_ENABLE_HANDLER_TRACKING 1 -# endif /// !defined(ASIO_ENABLE_HANDLER_TRACKING) - -#elif defined(ASIO_ENABLE_HANDLER_TRACKING) - -class handler_tracking -{ -public: - class completion; - - // Base class for objects containing tracked handlers. - class tracked_handler - { - private: - // Only the handler_tracking class will have access to the id. - friend class handler_tracking; - friend class completion; - uint64_t id_; - - protected: - // Constructor initialises with no id. - tracked_handler() : id_(0) {} - - // Prevent deletion through this type. - ~tracked_handler() {} - }; - - // Initialise the tracking system. - ASIO_DECL static void init(); - - // Record the creation of a tracked handler. - ASIO_DECL static void creation( - execution_context& context, tracked_handler& h, - const char* object_type, void* object, - uintmax_t native_handle, const char* op_name); - - class completion - { - public: - // Constructor records that handler is to be invoked with no arguments. - ASIO_DECL explicit completion(const tracked_handler& h); - - // Destructor records only when an exception is thrown from the handler, or - // if the memory is being freed without the handler having been invoked. - ASIO_DECL ~completion(); - - // Records that handler is to be invoked with no arguments. - ASIO_DECL void invocation_begin(); - - // Records that handler is to be invoked with one arguments. - ASIO_DECL void invocation_begin(const asio::error_code& ec); - - // Constructor records that handler is to be invoked with two arguments. - ASIO_DECL void invocation_begin( - const asio::error_code& ec, std::size_t bytes_transferred); - - // Constructor records that handler is to be invoked with two arguments. - ASIO_DECL void invocation_begin( - const asio::error_code& ec, int signal_number); - - // Constructor records that handler is to be invoked with two arguments. - ASIO_DECL void invocation_begin( - const asio::error_code& ec, const char* arg); - - // Record that handler invocation has ended. - ASIO_DECL void invocation_end(); - - private: - friend class handler_tracking; - uint64_t id_; - bool invoked_; - completion* next_; - }; - - // Record an operation that is not directly associated with a handler. - ASIO_DECL static void operation(execution_context& context, - const char* object_type, void* object, - uintmax_t native_handle, const char* op_name); - - // Record that a descriptor has been registered with the reactor. - ASIO_DECL static void reactor_registration(execution_context& context, - uintmax_t native_handle, uintmax_t registration); - - // Record that a descriptor has been deregistered from the reactor. - ASIO_DECL static void reactor_deregistration(execution_context& context, - uintmax_t native_handle, uintmax_t registration); - - // Record a reactor-based operation that is associated with a handler. - ASIO_DECL static void reactor_events(execution_context& context, - uintmax_t registration, unsigned events); - - // Record a reactor-based operation that is associated with a handler. - ASIO_DECL static void reactor_operation( - const tracked_handler& h, const char* op_name, - const asio::error_code& ec); - - // Record a reactor-based operation that is associated with a handler. - ASIO_DECL static void reactor_operation( - const tracked_handler& h, const char* op_name, - const asio::error_code& ec, std::size_t bytes_transferred); - - // Write a line of output. - ASIO_DECL static void write_line(const char* format, ...); - -private: - struct tracking_state; - ASIO_DECL static tracking_state* get_state(); -}; - -# define ASIO_INHERIT_TRACKED_HANDLER \ - : public asio::detail::handler_tracking::tracked_handler - -# define ASIO_ALSO_INHERIT_TRACKED_HANDLER \ - , public asio::detail::handler_tracking::tracked_handler - -# define ASIO_HANDLER_TRACKING_INIT \ - asio::detail::handler_tracking::init() - -# define ASIO_HANDLER_CREATION(args) \ - asio::detail::handler_tracking::creation args - -# define ASIO_HANDLER_COMPLETION(args) \ - asio::detail::handler_tracking::completion tracked_completion args - -# define ASIO_HANDLER_INVOCATION_BEGIN(args) \ - tracked_completion.invocation_begin args - -# define ASIO_HANDLER_INVOCATION_END \ - tracked_completion.invocation_end() - -# define ASIO_HANDLER_OPERATION(args) \ - asio::detail::handler_tracking::operation args - -# define ASIO_HANDLER_REACTOR_REGISTRATION(args) \ - asio::detail::handler_tracking::reactor_registration args - -# define ASIO_HANDLER_REACTOR_DEREGISTRATION(args) \ - asio::detail::handler_tracking::reactor_deregistration args - -# define ASIO_HANDLER_REACTOR_READ_EVENT 1 -# define ASIO_HANDLER_REACTOR_WRITE_EVENT 2 -# define ASIO_HANDLER_REACTOR_ERROR_EVENT 4 - -# define ASIO_HANDLER_REACTOR_EVENTS(args) \ - asio::detail::handler_tracking::reactor_events args - -# define ASIO_HANDLER_REACTOR_OPERATION(args) \ - asio::detail::handler_tracking::reactor_operation args - -#else // defined(ASIO_ENABLE_HANDLER_TRACKING) - -# define ASIO_INHERIT_TRACKED_HANDLER -# define ASIO_ALSO_INHERIT_TRACKED_HANDLER -# define ASIO_HANDLER_TRACKING_INIT (void)0 -# define ASIO_HANDLER_CREATION(args) (void)0 -# define ASIO_HANDLER_COMPLETION(args) (void)0 -# define ASIO_HANDLER_INVOCATION_BEGIN(args) (void)0 -# define ASIO_HANDLER_INVOCATION_END (void)0 -# define ASIO_HANDLER_OPERATION(args) (void)0 -# define ASIO_HANDLER_REACTOR_REGISTRATION(args) (void)0 -# define ASIO_HANDLER_REACTOR_DEREGISTRATION(args) (void)0 -# define ASIO_HANDLER_REACTOR_READ_EVENT 0 -# define ASIO_HANDLER_REACTOR_WRITE_EVENT 0 -# define ASIO_HANDLER_REACTOR_ERROR_EVENT 0 -# define ASIO_HANDLER_REACTOR_EVENTS(args) (void)0 -# define ASIO_HANDLER_REACTOR_OPERATION(args) (void)0 - -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/handler_tracking.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_HANDLER_TRACKING_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_type_requirements.hpp b/Sources/Vendor/asio/include/asio/detail/handler_type_requirements.hpp deleted file mode 100644 index 9181bc5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_type_requirements.hpp +++ /dev/null @@ -1,556 +0,0 @@ -// -// detail/handler_type_requirements.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_HANDLER_TYPE_REQUIREMENTS_HPP -#define ASIO_DETAIL_HANDLER_TYPE_REQUIREMENTS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -// Older versions of gcc have difficulty compiling the sizeof expressions where -// we test the handler type requirements. We'll disable checking of handler type -// requirements for those compilers, but otherwise enable it by default. -#if !defined(ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS) -# if !defined(__GNUC__) || (__GNUC__ >= 4) -# define ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS 1 -# endif // !defined(__GNUC__) || (__GNUC__ >= 4) -#endif // !defined(ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS) - -// With C++0x we can use a combination of enhanced SFINAE and static_assert to -// generate better template error messages. As this technique is not yet widely -// portable, we'll only enable it for tested compilers. -#if !defined(ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT) -# if defined(__GNUC__) -# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# if defined(__GXX_EXPERIMENTAL_CXX0X__) -# define ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT 1 -# endif // defined(__GXX_EXPERIMENTAL_CXX0X__) -# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4) -# endif // defined(__GNUC__) -# if defined(ASIO_MSVC) -# if (_MSC_VER >= 1600) -# define ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT 1 -# endif // (_MSC_VER >= 1600) -# endif // defined(ASIO_MSVC) -# if defined(__clang__) -# if __has_feature(__cxx_static_assert__) -# define ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT 1 -# endif // __has_feature(cxx_static_assert) -# endif // defined(__clang__) -#endif // !defined(ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS) - -#if defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) -# include "asio/async_result.hpp" -#endif // defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) - -namespace asio { -namespace detail { - -#if defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) - -# if defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT) - -template -auto zero_arg_copyable_handler_test(Handler h, void*) - -> decltype( - sizeof(Handler(static_cast(h))), - ((h)()), - char(0)); - -template -char (&zero_arg_copyable_handler_test(Handler, ...))[2]; - -template -auto one_arg_handler_test(Handler h, Arg1* a1) - -> decltype( - sizeof(Handler(ASIO_MOVE_CAST(Handler)(h))), - ((h)(*a1)), - char(0)); - -template -char (&one_arg_handler_test(Handler h, ...))[2]; - -template -auto two_arg_handler_test(Handler h, Arg1* a1, Arg2* a2) - -> decltype( - sizeof(Handler(ASIO_MOVE_CAST(Handler)(h))), - ((h)(*a1, *a2)), - char(0)); - -template -char (&two_arg_handler_test(Handler, ...))[2]; - -template -auto two_arg_move_handler_test(Handler h, Arg1* a1, Arg2* a2) - -> decltype( - sizeof(Handler(ASIO_MOVE_CAST(Handler)(h))), - ((h)(*a1, ASIO_MOVE_CAST(Arg2)(*a2))), - char(0)); - -template -char (&two_arg_move_handler_test(Handler, ...))[2]; - -# define ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT(expr, msg) \ - static_assert(expr, msg); - -# else // defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT) - -# define ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT(expr, msg) - -# endif // defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS_ASSERT) - -template T& lvref(); -template T& lvref(T); -template const T& clvref(); -template const T& clvref(T); -#if defined(ASIO_HAS_MOVE) -template T rvref(); -template T rvref(T); -#else // defined(ASIO_HAS_MOVE) -template const T& rvref(); -template const T& rvref(T); -#endif // defined(ASIO_HAS_MOVE) -template char argbyv(T); - -template -struct handler_type_requirements -{ -}; - -#define ASIO_LEGACY_COMPLETION_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void()) asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::zero_arg_copyable_handler_test( \ - asio::detail::clvref< \ - asio_true_handler_type>(), 0)) == 1, \ - "CompletionHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::clvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()(), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_READ_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, std::size_t)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "ReadHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_WRITE_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, std::size_t)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "WriteHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_ACCEPT_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "AcceptHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_MOVE_ACCEPT_HANDLER_CHECK( \ - handler_type, handler, socket_type) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, socket_type)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_move_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "MoveAcceptHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::rvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_CONNECT_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "ConnectHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_RANGE_CONNECT_HANDLER_CHECK( \ - handler_type, handler, endpoint_type) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, endpoint_type)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "RangeConnectHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_ITERATOR_CONNECT_HANDLER_CHECK( \ - handler_type, handler, iter_type) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, iter_type)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "IteratorConnectHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_RESOLVE_HANDLER_CHECK( \ - handler_type, handler, range_type) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, range_type)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "ResolveHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_WAIT_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "WaitHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_SIGNAL_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, int)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "SignalHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_HANDSHAKE_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "HandshakeHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_BUFFERED_HANDSHAKE_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code, std::size_t)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::two_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0), \ - static_cast(0))) == 1, \ - "BufferedHandshakeHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref(), \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#define ASIO_SHUTDOWN_HANDLER_CHECK( \ - handler_type, handler) \ - \ - typedef ASIO_HANDLER_TYPE(handler_type, \ - void(asio::error_code)) \ - asio_true_handler_type; \ - \ - ASIO_HANDLER_TYPE_REQUIREMENTS_ASSERT( \ - sizeof(asio::detail::one_arg_handler_test( \ - asio::detail::rvref< \ - asio_true_handler_type>(), \ - static_cast(0))) == 1, \ - "ShutdownHandler type requirements not met") \ - \ - typedef asio::detail::handler_type_requirements< \ - sizeof( \ - asio::detail::argbyv( \ - asio::detail::rvref< \ - asio_true_handler_type>())) + \ - sizeof( \ - asio::detail::lvref< \ - asio_true_handler_type>()( \ - asio::detail::lvref()), \ - char(0))> ASIO_UNUSED_TYPEDEF - -#else // !defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) - -#define ASIO_LEGACY_COMPLETION_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_READ_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_WRITE_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_ACCEPT_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_MOVE_ACCEPT_HANDLER_CHECK( \ - handler_type, handler, socket_type) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_CONNECT_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_RANGE_CONNECT_HANDLER_CHECK( \ - handler_type, handler, iter_type) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_ITERATOR_CONNECT_HANDLER_CHECK( \ - handler_type, handler, iter_type) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_RESOLVE_HANDLER_CHECK( \ - handler_type, handler, iter_type) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_WAIT_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_SIGNAL_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_HANDSHAKE_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_BUFFERED_HANDSHAKE_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#define ASIO_SHUTDOWN_HANDLER_CHECK( \ - handler_type, handler) \ - typedef int ASIO_UNUSED_TYPEDEF - -#endif // !defined(ASIO_ENABLE_HANDLER_TYPE_REQUIREMENTS) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_HANDLER_TYPE_REQUIREMENTS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/handler_work.hpp b/Sources/Vendor/asio/include/asio/detail/handler_work.hpp deleted file mode 100644 index cce5c4b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/handler_work.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// detail/handler_work.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_HANDLER_WORK_HPP -#define ASIO_DETAIL_HANDLER_WORK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// A helper class template to allow completion handlers to be dispatched -// through either the new executors framework or the old invocaton hook. The -// primary template uses the new executors framework. -template ::type> -class handler_work -{ -public: - explicit handler_work(Handler& handler) ASIO_NOEXCEPT - : executor_(associated_executor::get(handler)) - { - } - - static void start(Handler& handler) ASIO_NOEXCEPT - { - Executor ex(associated_executor::get(handler)); - ex.on_work_started(); - } - - ~handler_work() - { - executor_.on_work_finished(); - } - - template - void complete(Function& function, Handler& handler) - { - executor_.dispatch(ASIO_MOVE_CAST(Function)(function), - associated_allocator::get(handler)); - } - -private: - // Disallow copying and assignment. - handler_work(const handler_work&); - handler_work& operator=(const handler_work&); - - typename associated_executor::type executor_; -}; - -// This specialisation dispatches a handler through the old invocation hook. -// The specialisation is not strictly required for correctness, as the -// system_executor will dispatch through the hook anyway. However, by doing -// this we avoid an extra copy of the handler. -template -class handler_work -{ -public: - explicit handler_work(Handler&) ASIO_NOEXCEPT {} - static void start(Handler&) ASIO_NOEXCEPT {} - ~handler_work() {} - - template - void complete(Function& function, Handler& handler) - { - asio_handler_invoke_helpers::invoke(function, handler); - } - -private: - // Disallow copying and assignment. - handler_work(const handler_work&); - handler_work& operator=(const handler_work&); -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HANDLER_WORK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/hash_map.hpp b/Sources/Vendor/asio/include/asio/detail/hash_map.hpp deleted file mode 100644 index e70970d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/hash_map.hpp +++ /dev/null @@ -1,331 +0,0 @@ -// -// detail/hash_map.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_HASH_MAP_HPP -#define ASIO_DETAIL_HASH_MAP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/noncopyable.hpp" - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# include "asio/detail/socket_types.hpp" -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -inline std::size_t calculate_hash_value(int i) -{ - return static_cast(i); -} - -inline std::size_t calculate_hash_value(void* p) -{ - return reinterpret_cast(p) - + (reinterpret_cast(p) >> 3); -} - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -inline std::size_t calculate_hash_value(SOCKET s) -{ - return static_cast(s); -} -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -// Note: assumes K and V are POD types. -template -class hash_map - : private noncopyable -{ -public: - // The type of a value in the map. - typedef std::pair value_type; - - // The type of a non-const iterator over the hash map. - typedef typename std::list::iterator iterator; - - // The type of a const iterator over the hash map. - typedef typename std::list::const_iterator const_iterator; - - // Constructor. - hash_map() - : size_(0), - buckets_(0), - num_buckets_(0) - { - } - - // Destructor. - ~hash_map() - { - delete[] buckets_; - } - - // Get an iterator for the beginning of the map. - iterator begin() - { - return values_.begin(); - } - - // Get an iterator for the beginning of the map. - const_iterator begin() const - { - return values_.begin(); - } - - // Get an iterator for the end of the map. - iterator end() - { - return values_.end(); - } - - // Get an iterator for the end of the map. - const_iterator end() const - { - return values_.end(); - } - - // Check whether the map is empty. - bool empty() const - { - return values_.empty(); - } - - // Find an entry in the map. - iterator find(const K& k) - { - if (num_buckets_) - { - size_t bucket = calculate_hash_value(k) % num_buckets_; - iterator it = buckets_[bucket].first; - if (it == values_.end()) - return values_.end(); - iterator end_it = buckets_[bucket].last; - ++end_it; - while (it != end_it) - { - if (it->first == k) - return it; - ++it; - } - } - return values_.end(); - } - - // Find an entry in the map. - const_iterator find(const K& k) const - { - if (num_buckets_) - { - size_t bucket = calculate_hash_value(k) % num_buckets_; - const_iterator it = buckets_[bucket].first; - if (it == values_.end()) - return it; - const_iterator end_it = buckets_[bucket].last; - ++end_it; - while (it != end_it) - { - if (it->first == k) - return it; - ++it; - } - } - return values_.end(); - } - - // Insert a new entry into the map. - std::pair insert(const value_type& v) - { - if (size_ + 1 >= num_buckets_) - rehash(hash_size(size_ + 1)); - size_t bucket = calculate_hash_value(v.first) % num_buckets_; - iterator it = buckets_[bucket].first; - if (it == values_.end()) - { - buckets_[bucket].first = buckets_[bucket].last = - values_insert(values_.end(), v); - ++size_; - return std::pair(buckets_[bucket].last, true); - } - iterator end_it = buckets_[bucket].last; - ++end_it; - while (it != end_it) - { - if (it->first == v.first) - return std::pair(it, false); - ++it; - } - buckets_[bucket].last = values_insert(end_it, v); - ++size_; - return std::pair(buckets_[bucket].last, true); - } - - // Erase an entry from the map. - void erase(iterator it) - { - ASIO_ASSERT(it != values_.end()); - ASIO_ASSERT(num_buckets_ != 0); - - size_t bucket = calculate_hash_value(it->first) % num_buckets_; - bool is_first = (it == buckets_[bucket].first); - bool is_last = (it == buckets_[bucket].last); - if (is_first && is_last) - buckets_[bucket].first = buckets_[bucket].last = values_.end(); - else if (is_first) - ++buckets_[bucket].first; - else if (is_last) - --buckets_[bucket].last; - - values_erase(it); - --size_; - } - - // Erase a key from the map. - void erase(const K& k) - { - iterator it = find(k); - if (it != values_.end()) - erase(it); - } - - // Remove all entries from the map. - void clear() - { - // Clear the values. - values_.clear(); - size_ = 0; - - // Initialise all buckets to empty. - iterator end_it = values_.end(); - for (size_t i = 0; i < num_buckets_; ++i) - buckets_[i].first = buckets_[i].last = end_it; - } - -private: - // Calculate the hash size for the specified number of elements. - static std::size_t hash_size(std::size_t num_elems) - { - static std::size_t sizes[] = - { -#if defined(ASIO_HASH_MAP_BUCKETS) - ASIO_HASH_MAP_BUCKETS -#else // ASIO_HASH_MAP_BUCKETS - 3, 13, 23, 53, 97, 193, 389, 769, 1543, 3079, 6151, 12289, 24593, - 49157, 98317, 196613, 393241, 786433, 1572869, 3145739, 6291469, - 12582917, 25165843 -#endif // ASIO_HASH_MAP_BUCKETS - }; - const std::size_t nth_size = sizeof(sizes) / sizeof(std::size_t) - 1; - for (std::size_t i = 0; i < nth_size; ++i) - if (num_elems < sizes[i]) - return sizes[i]; - return sizes[nth_size]; - } - - // Re-initialise the hash from the values already contained in the list. - void rehash(std::size_t num_buckets) - { - if (num_buckets == num_buckets_) - return; - ASIO_ASSERT(num_buckets != 0); - - iterator end_iter = values_.end(); - - // Update number of buckets and initialise all buckets to empty. - bucket_type* tmp = new bucket_type[num_buckets]; - delete[] buckets_; - buckets_ = tmp; - num_buckets_ = num_buckets; - for (std::size_t i = 0; i < num_buckets_; ++i) - buckets_[i].first = buckets_[i].last = end_iter; - - // Put all values back into the hash. - iterator iter = values_.begin(); - while (iter != end_iter) - { - std::size_t bucket = calculate_hash_value(iter->first) % num_buckets_; - if (buckets_[bucket].last == end_iter) - { - buckets_[bucket].first = buckets_[bucket].last = iter++; - } - else if (++buckets_[bucket].last == iter) - { - ++iter; - } - else - { - values_.splice(buckets_[bucket].last, values_, iter++); - --buckets_[bucket].last; - } - } - } - - // Insert an element into the values list by splicing from the spares list, - // if a spare is available, and otherwise by inserting a new element. - iterator values_insert(iterator it, const value_type& v) - { - if (spares_.empty()) - { - return values_.insert(it, v); - } - else - { - spares_.front() = v; - values_.splice(it, spares_, spares_.begin()); - return --it; - } - } - - // Erase an element from the values list by splicing it to the spares list. - void values_erase(iterator it) - { - *it = value_type(); - spares_.splice(spares_.begin(), values_, it); - } - - // The number of elements in the hash. - std::size_t size_; - - // The list of all values in the hash map. - std::list values_; - - // The list of spare nodes waiting to be recycled. Assumes that POD types only - // are stored in the hash map. - std::list spares_; - - // The type for a bucket in the hash table. - struct bucket_type - { - iterator first; - iterator last; - }; - - // The buckets in the hash. - bucket_type* buckets_; - - // The number of buckets in the hash. - std::size_t num_buckets_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_HASH_MAP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp b/Sources/Vendor/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp deleted file mode 100644 index 323c8ad..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/buffer_sequence_adapter.ipp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/impl/buffer_sequence_adapter.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_BUFFER_SEQUENCE_ADAPTER_IPP -#define ASIO_DETAIL_IMPL_BUFFER_SEQUENCE_ADAPTER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include -#include -#include -#include "asio/detail/buffer_sequence_adapter.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winrt_buffer_impl : - public Microsoft::WRL::RuntimeClass< - Microsoft::WRL::RuntimeClassFlags< - Microsoft::WRL::RuntimeClassType::WinRtClassicComMix>, - ABI::Windows::Storage::Streams::IBuffer, - Windows::Storage::Streams::IBufferByteAccess> -{ -public: - explicit winrt_buffer_impl(const asio::const_buffer& b) - { - bytes_ = const_cast(static_cast(b.data())); - length_ = b.size(); - capacity_ = b.size(); - } - - explicit winrt_buffer_impl(const asio::mutable_buffer& b) - { - bytes_ = static_cast(b.data()); - length_ = 0; - capacity_ = b.size(); - } - - ~winrt_buffer_impl() - { - } - - STDMETHODIMP Buffer(byte** value) - { - *value = bytes_; - return S_OK; - } - - STDMETHODIMP get_Capacity(UINT32* value) - { - *value = capacity_; - return S_OK; - } - - STDMETHODIMP get_Length(UINT32 *value) - { - *value = length_; - return S_OK; - } - - STDMETHODIMP put_Length(UINT32 value) - { - if (value > capacity_) - return E_INVALIDARG; - length_ = value; - return S_OK; - } - -private: - byte* bytes_; - UINT32 length_; - UINT32 capacity_; -}; - -void buffer_sequence_adapter_base::init_native_buffer( - buffer_sequence_adapter_base::native_buffer_type& buf, - const asio::mutable_buffer& buffer) -{ - std::memset(&buf, 0, sizeof(native_buffer_type)); - Microsoft::WRL::ComPtr insp - = Microsoft::WRL::Make(buffer); - buf = reinterpret_cast(insp.Get()); -} - -void buffer_sequence_adapter_base::init_native_buffer( - buffer_sequence_adapter_base::native_buffer_type& buf, - const asio::const_buffer& buffer) -{ - std::memset(&buf, 0, sizeof(native_buffer_type)); - Microsoft::WRL::ComPtr insp - = Microsoft::WRL::Make(buffer); - Platform::Object^ buf_obj = reinterpret_cast(insp.Get()); - buf = reinterpret_cast(insp.Get()); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_BUFFER_SEQUENCE_ADAPTER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/descriptor_ops.ipp b/Sources/Vendor/asio/include/asio/detail/impl/descriptor_ops.ipp deleted file mode 100644 index 1af643f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/descriptor_ops.ipp +++ /dev/null @@ -1,474 +0,0 @@ -// -// detail/impl/descriptor_ops.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_DESCRIPTOR_OPS_IPP -#define ASIO_DETAIL_IMPL_DESCRIPTOR_OPS_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/descriptor_ops.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace descriptor_ops { - -int open(const char* path, int flags, asio::error_code& ec) -{ - errno = 0; - int result = error_wrapper(::open(path, flags), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -} - -int close(int d, state_type& state, asio::error_code& ec) -{ - int result = 0; - if (d != -1) - { - errno = 0; - result = error_wrapper(::close(d), ec); - - if (result != 0 - && (ec == asio::error::would_block - || ec == asio::error::try_again)) - { - // According to UNIX Network Programming Vol. 1, it is possible for - // close() to fail with EWOULDBLOCK under certain circumstances. What - // isn't clear is the state of the descriptor after this error. The one - // current OS where this behaviour is seen, Windows, says that the socket - // remains open. Therefore we'll put the descriptor back into blocking - // mode and have another attempt at closing it. -#if defined(__SYMBIAN32__) - int flags = ::fcntl(d, F_GETFL, 0); - if (flags >= 0) - ::fcntl(d, F_SETFL, flags & ~O_NONBLOCK); -#else // defined(__SYMBIAN32__) - ioctl_arg_type arg = 0; - ::ioctl(d, FIONBIO, &arg); -#endif // defined(__SYMBIAN32__) - state &= ~non_blocking; - - errno = 0; - result = error_wrapper(::close(d), ec); - } - } - - if (result == 0) - ec = asio::error_code(); - return result; -} - -bool set_user_non_blocking(int d, state_type& state, - bool value, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return false; - } - - errno = 0; -#if defined(__SYMBIAN32__) - int result = error_wrapper(::fcntl(d, F_GETFL, 0), ec); - if (result >= 0) - { - errno = 0; - int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK)); - result = error_wrapper(::fcntl(d, F_SETFL, flag), ec); - } -#else // defined(__SYMBIAN32__) - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctl(d, FIONBIO, &arg), ec); -#endif // defined(__SYMBIAN32__) - - if (result >= 0) - { - ec = asio::error_code(); - if (value) - state |= user_set_non_blocking; - else - { - // Clearing the user-set non-blocking mode always overrides any - // internally-set non-blocking flag. Any subsequent asynchronous - // operations will need to re-enable non-blocking I/O. - state &= ~(user_set_non_blocking | internal_non_blocking); - } - return true; - } - - return false; -} - -bool set_internal_non_blocking(int d, state_type& state, - bool value, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return false; - } - - if (!value && (state & user_set_non_blocking)) - { - // It does not make sense to clear the internal non-blocking flag if the - // user still wants non-blocking behaviour. Return an error and let the - // caller figure out whether to update the user-set non-blocking flag. - ec = asio::error::invalid_argument; - return false; - } - - errno = 0; -#if defined(__SYMBIAN32__) - int result = error_wrapper(::fcntl(d, F_GETFL, 0), ec); - if (result >= 0) - { - errno = 0; - int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK)); - result = error_wrapper(::fcntl(d, F_SETFL, flag), ec); - } -#else // defined(__SYMBIAN32__) - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctl(d, FIONBIO, &arg), ec); -#endif // defined(__SYMBIAN32__) - - if (result >= 0) - { - ec = asio::error_code(); - if (value) - state |= internal_non_blocking; - else - state &= ~internal_non_blocking; - return true; - } - - return false; -} - -std::size_t sync_read(int d, state_type state, buf* bufs, - std::size_t count, bool all_empty, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to read 0 bytes on a stream is a no-op. - if (all_empty) - { - ec = asio::error_code(); - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - errno = 0; - signed_size_type bytes = error_wrapper(::readv( - d, bufs, static_cast(count)), ec); - - // Check if operation succeeded. - if (bytes > 0) - return bytes; - - // Check for EOF. - if (bytes == 0) - { - ec = asio::error::eof; - return 0; - } - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for descriptor to become ready. - if (descriptor_ops::poll_read(d, 0, ec) < 0) - return 0; - } -} - -bool non_blocking_read(int d, buf* bufs, std::size_t count, - asio::error_code& ec, std::size_t& bytes_transferred) -{ - for (;;) - { - // Read some data. - errno = 0; - signed_size_type bytes = error_wrapper(::readv( - d, bufs, static_cast(count)), ec); - - // Check for end of stream. - if (bytes == 0) - { - ec = asio::error::eof; - return true; - } - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes > 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -std::size_t sync_write(int d, state_type state, const buf* bufs, - std::size_t count, bool all_empty, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to write 0 bytes on a stream is a no-op. - if (all_empty) - { - ec = asio::error_code(); - return 0; - } - - // Write some data. - for (;;) - { - // Try to complete the operation without blocking. - errno = 0; - signed_size_type bytes = error_wrapper(::writev( - d, bufs, static_cast(count)), ec); - - // Check if operation succeeded. - if (bytes > 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for descriptor to become ready. - if (descriptor_ops::poll_write(d, 0, ec) < 0) - return 0; - } -} - -bool non_blocking_write(int d, const buf* bufs, std::size_t count, - asio::error_code& ec, std::size_t& bytes_transferred) -{ - for (;;) - { - // Write some data. - errno = 0; - signed_size_type bytes = error_wrapper(::writev( - d, bufs, static_cast(count)), ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -int ioctl(int d, state_type& state, long cmd, - ioctl_arg_type* arg, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - errno = 0; - int result = error_wrapper(::ioctl(d, cmd, arg), ec); - - if (result >= 0) - { - ec = asio::error_code(); - - // When updating the non-blocking mode we always perform the ioctl syscall, - // even if the flags would otherwise indicate that the descriptor is - // already in the correct state. This ensures that the underlying - // descriptor is put into the state that has been requested by the user. If - // the ioctl syscall was successful then we need to update the flags to - // match. - if (cmd == static_cast(FIONBIO)) - { - if (*arg) - { - state |= user_set_non_blocking; - } - else - { - // Clearing the non-blocking mode always overrides any internally-set - // non-blocking flag. Any subsequent asynchronous operations will need - // to re-enable non-blocking I/O. - state &= ~(user_set_non_blocking | internal_non_blocking); - } - } - } - - return result; -} - -int fcntl(int d, int cmd, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - errno = 0; - int result = error_wrapper(::fcntl(d, cmd), ec); - if (result != -1) - ec = asio::error_code(); - return result; -} - -int fcntl(int d, int cmd, long arg, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - errno = 0; - int result = error_wrapper(::fcntl(d, cmd, arg), ec); - if (result != -1) - ec = asio::error_code(); - return result; -} - -int poll_read(int d, state_type state, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - pollfd fds; - fds.fd = d; - fds.events = POLLIN; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : -1; - errno = 0; - int result = error_wrapper(::poll(&fds, 1, timeout), ec); - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_write(int d, state_type state, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - pollfd fds; - fds.fd = d; - fds.events = POLLOUT; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : -1; - errno = 0; - int result = error_wrapper(::poll(&fds, 1, timeout), ec); - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_error(int d, state_type state, asio::error_code& ec) -{ - if (d == -1) - { - ec = asio::error::bad_descriptor; - return -1; - } - - pollfd fds; - fds.fd = d; - fds.events = POLLPRI | POLLERR | POLLHUP; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : -1; - errno = 0; - int result = error_wrapper(::poll(&fds, 1, timeout), ec); - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -} // namespace descriptor_ops -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_IMPL_DESCRIPTOR_OPS_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.hpp deleted file mode 100644 index 4cd8aaf..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// detail/impl/dev_poll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_DEV_POLL_REACTOR_HPP -#define ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_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_DEV_POLL) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void dev_poll_reactor::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -template -void dev_poll_reactor::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void dev_poll_reactor::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - scheduler_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - scheduler_.work_started(); - if (earliest) - interrupter_.interrupt(); -} - -template -std::size_t dev_poll_reactor::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - scheduler_.post_deferred_completions(ops); - return n; -} - -template -void dev_poll_reactor::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(target, ops); - queue.move_timer(target, source); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_DEV_POLL) - -#endif // ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.ipp b/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.ipp deleted file mode 100644 index 1ca376c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/dev_poll_reactor.ipp +++ /dev/null @@ -1,446 +0,0 @@ -// -// detail/impl/dev_poll_reactor.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_DEV_POLL_REACTOR_IPP -#define ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_IPP - -#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_DEV_POLL) - -#include "asio/detail/dev_poll_reactor.hpp" -#include "asio/detail/assert.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -dev_poll_reactor::dev_poll_reactor(asio::execution_context& ctx) - : asio::detail::execution_context_service_base(ctx), - scheduler_(use_service(ctx)), - mutex_(), - dev_poll_fd_(do_dev_poll_create()), - interrupter_(), - shutdown_(false) -{ - // Add the interrupter's descriptor to /dev/poll. - ::pollfd ev = { 0, 0, 0 }; - ev.fd = interrupter_.read_descriptor(); - ev.events = POLLIN | POLLERR; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); -} - -dev_poll_reactor::~dev_poll_reactor() -{ - shutdown(); - ::close(dev_poll_fd_); -} - -void dev_poll_reactor::shutdown() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - op_queue ops; - - for (int i = 0; i < max_ops; ++i) - op_queue_[i].get_all_operations(ops); - - timer_queues_.get_all_timers(ops); - - scheduler_.abandon_operations(ops); -} - -void dev_poll_reactor::notify_fork( - asio::execution_context::fork_event fork_ev) -{ - if (fork_ev == asio::execution_context::fork_child) - { - detail::mutex::scoped_lock lock(mutex_); - - if (dev_poll_fd_ != -1) - ::close(dev_poll_fd_); - dev_poll_fd_ = -1; - dev_poll_fd_ = do_dev_poll_create(); - - interrupter_.recreate(); - - // Add the interrupter's descriptor to /dev/poll. - ::pollfd ev = { 0, 0, 0 }; - ev.fd = interrupter_.read_descriptor(); - ev.events = POLLIN | POLLERR; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); - - // Re-register all descriptors with /dev/poll. The changes will be written - // to the /dev/poll descriptor the next time the reactor is run. - for (int i = 0; i < max_ops; ++i) - { - reactor_op_queue::iterator iter = op_queue_[i].begin(); - reactor_op_queue::iterator end = op_queue_[i].end(); - for (; iter != end; ++iter) - { - ::pollfd& pending_ev = add_pending_event_change(iter->first); - pending_ev.events |= POLLERR | POLLHUP; - switch (i) - { - case read_op: pending_ev.events |= POLLIN; break; - case write_op: pending_ev.events |= POLLOUT; break; - case except_op: pending_ev.events |= POLLPRI; break; - default: break; - } - } - } - interrupter_.interrupt(); - } -} - -void dev_poll_reactor::init_task() -{ - scheduler_.init_task(); -} - -int dev_poll_reactor::register_descriptor(socket_type, per_descriptor_data&) -{ - return 0; -} - -int dev_poll_reactor::register_internal_descriptor(int op_type, - socket_type descriptor, per_descriptor_data&, reactor_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - op_queue_[op_type].enqueue_operation(descriptor, op); - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLERR | POLLHUP; - switch (op_type) - { - case read_op: ev.events |= POLLIN; break; - case write_op: ev.events |= POLLOUT; break; - case except_op: ev.events |= POLLPRI; break; - default: break; - } - interrupter_.interrupt(); - - return 0; -} - -void dev_poll_reactor::move_descriptor(socket_type, - dev_poll_reactor::per_descriptor_data&, - dev_poll_reactor::per_descriptor_data&) -{ -} - -void dev_poll_reactor::start_op(int op_type, socket_type descriptor, - dev_poll_reactor::per_descriptor_data&, reactor_op* op, - bool is_continuation, bool allow_speculative) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - post_immediate_completion(op, is_continuation); - return; - } - - if (allow_speculative) - { - if (op_type != read_op || !op_queue_[except_op].has_operation(descriptor)) - { - if (!op_queue_[op_type].has_operation(descriptor)) - { - if (op->perform()) - { - lock.unlock(); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - } - } - } - - bool first = op_queue_[op_type].enqueue_operation(descriptor, op); - scheduler_.work_started(); - if (first) - { - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLERR | POLLHUP; - if (op_type == read_op - || op_queue_[read_op].has_operation(descriptor)) - ev.events |= POLLIN; - if (op_type == write_op - || op_queue_[write_op].has_operation(descriptor)) - ev.events |= POLLOUT; - if (op_type == except_op - || op_queue_[except_op].has_operation(descriptor)) - ev.events |= POLLPRI; - interrupter_.interrupt(); - } -} - -void dev_poll_reactor::cancel_ops(socket_type descriptor, - dev_poll_reactor::per_descriptor_data&) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor, asio::error::operation_aborted); -} - -void dev_poll_reactor::deregister_descriptor(socket_type descriptor, - dev_poll_reactor::per_descriptor_data&, bool) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - // Remove the descriptor from /dev/poll. - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLREMOVE; - interrupter_.interrupt(); - - // Cancel any outstanding operations associated with the descriptor. - cancel_ops_unlocked(descriptor, asio::error::operation_aborted); -} - -void dev_poll_reactor::deregister_internal_descriptor( - socket_type descriptor, dev_poll_reactor::per_descriptor_data&) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - // Remove the descriptor from /dev/poll. Since this function is only called - // during a fork, we can apply the change immediately. - ::pollfd ev = { 0, 0, 0 }; - ev.fd = descriptor; - ev.events = POLLREMOVE; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); - - // Destroy all operations associated with the descriptor. - op_queue ops; - asio::error_code ec; - for (int i = 0; i < max_ops; ++i) - op_queue_[i].cancel_operations(descriptor, ops, ec); -} - -void dev_poll_reactor::cleanup_descriptor_data( - dev_poll_reactor::per_descriptor_data&) -{ -} - -void dev_poll_reactor::run(long usec, op_queue& ops) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - // We can return immediately if there's no work to do and the reactor is - // not supposed to block. - if (usec == 0 && op_queue_[read_op].empty() && op_queue_[write_op].empty() - && op_queue_[except_op].empty() && timer_queues_.all_empty()) - return; - - // Write the pending event registration changes to the /dev/poll descriptor. - std::size_t events_size = sizeof(::pollfd) * pending_event_changes_.size(); - if (events_size > 0) - { - errno = 0; - int result = ::write(dev_poll_fd_, - &pending_event_changes_[0], events_size); - if (result != static_cast(events_size)) - { - asio::error_code ec = asio::error_code( - errno, asio::error::get_system_category()); - for (std::size_t i = 0; i < pending_event_changes_.size(); ++i) - { - int descriptor = pending_event_changes_[i].fd; - for (int j = 0; j < max_ops; ++j) - op_queue_[j].cancel_operations(descriptor, ops, ec); - } - } - pending_event_changes_.clear(); - pending_event_change_index_.clear(); - } - - // Calculate timeout. - int timeout; - if (usec == 0) - timeout = 0; - else - { - timeout = (usec < 0) ? -1 : ((usec - 1) / 1000 + 1); - timeout = get_timeout(timeout); - } - lock.unlock(); - - // Block on the /dev/poll descriptor. - ::pollfd events[128] = { { 0, 0, 0 } }; - ::dvpoll dp = { 0, 0, 0 }; - dp.dp_fds = events; - dp.dp_nfds = 128; - dp.dp_timeout = timeout; - int num_events = ::ioctl(dev_poll_fd_, DP_POLL, &dp); - - lock.lock(); - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - int descriptor = events[i].fd; - if (descriptor == interrupter_.read_descriptor()) - { - interrupter_.reset(); - } - else - { - bool more_reads = false; - bool more_writes = false; - bool more_except = false; - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - if (events[i].events & (POLLPRI | POLLERR | POLLHUP)) - more_except = - op_queue_[except_op].perform_operations(descriptor, ops); - else - more_except = op_queue_[except_op].has_operation(descriptor); - - if (events[i].events & (POLLIN | POLLERR | POLLHUP)) - more_reads = op_queue_[read_op].perform_operations(descriptor, ops); - else - more_reads = op_queue_[read_op].has_operation(descriptor); - - if (events[i].events & (POLLOUT | POLLERR | POLLHUP)) - more_writes = op_queue_[write_op].perform_operations(descriptor, ops); - else - more_writes = op_queue_[write_op].has_operation(descriptor); - - if ((events[i].events & (POLLERR | POLLHUP)) != 0 - && !more_except && !more_reads && !more_writes) - { - // If we have an event and no operations associated with the - // descriptor then we need to delete the descriptor from /dev/poll. - // The poll operation can produce POLLHUP or POLLERR events when there - // is no operation pending, so if we do not remove the descriptor we - // can end up in a tight polling loop. - ::pollfd ev = { 0, 0, 0 }; - ev.fd = descriptor; - ev.events = POLLREMOVE; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); - } - else - { - ::pollfd ev = { 0, 0, 0 }; - ev.fd = descriptor; - ev.events = POLLERR | POLLHUP; - if (more_reads) - ev.events |= POLLIN; - if (more_writes) - ev.events |= POLLOUT; - if (more_except) - ev.events |= POLLPRI; - ev.revents = 0; - int result = ::write(dev_poll_fd_, &ev, sizeof(ev)); - if (result != sizeof(ev)) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - for (int j = 0; j < max_ops; ++j) - op_queue_[j].cancel_operations(descriptor, ops, ec); - } - } - } - } - timer_queues_.get_ready_timers(ops); -} - -void dev_poll_reactor::interrupt() -{ - interrupter_.interrupt(); -} - -int dev_poll_reactor::do_dev_poll_create() -{ - int fd = ::open("/dev/poll", O_RDWR); - if (fd == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "/dev/poll"); - } - return fd; -} - -void dev_poll_reactor::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void dev_poll_reactor::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -int dev_poll_reactor::get_timeout(int msec) -{ - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - const int max_msec = 5 * 60 * 1000; - return timer_queues_.wait_duration_msec( - (msec < 0 || max_msec < msec) ? max_msec : msec); -} - -void dev_poll_reactor::cancel_ops_unlocked(socket_type descriptor, - const asio::error_code& ec) -{ - bool need_interrupt = false; - op_queue ops; - for (int i = 0; i < max_ops; ++i) - need_interrupt = op_queue_[i].cancel_operations( - descriptor, ops, ec) || need_interrupt; - scheduler_.post_deferred_completions(ops); - if (need_interrupt) - interrupter_.interrupt(); -} - -::pollfd& dev_poll_reactor::add_pending_event_change(int descriptor) -{ - hash_map::iterator iter - = pending_event_change_index_.find(descriptor); - if (iter == pending_event_change_index_.end()) - { - std::size_t index = pending_event_changes_.size(); - pending_event_changes_.reserve(pending_event_changes_.size() + 1); - pending_event_change_index_.insert(std::make_pair(descriptor, index)); - pending_event_changes_.push_back(::pollfd()); - pending_event_changes_[index].fd = descriptor; - pending_event_changes_[index].revents = 0; - return pending_event_changes_[index]; - } - else - { - return pending_event_changes_[iter->second]; - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_DEV_POLL) - -#endif // ASIO_DETAIL_IMPL_DEV_POLL_REACTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.hpp deleted file mode 100644 index f990059..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// detail/impl/epoll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_EPOLL_REACTOR_HPP -#define ASIO_DETAIL_IMPL_EPOLL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if defined(ASIO_HAS_EPOLL) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void epoll_reactor::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -template -void epoll_reactor::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void epoll_reactor::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - scheduler_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - scheduler_.work_started(); - if (earliest) - update_timeout(); -} - -template -std::size_t epoll_reactor::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - scheduler_.post_deferred_completions(ops); - return n; -} - -template -void epoll_reactor::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source) -{ - mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(target, ops); - queue.move_timer(target, source); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_EPOLL) - -#endif // ASIO_DETAIL_IMPL_EPOLL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.ipp b/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.ipp deleted file mode 100644 index 65584a4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/epoll_reactor.ipp +++ /dev/null @@ -1,787 +0,0 @@ -// -// detail/impl/epoll_reactor.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_EPOLL_REACTOR_IPP -#define ASIO_DETAIL_IMPL_EPOLL_REACTOR_IPP - -#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_EPOLL) - -#include -#include -#include "asio/detail/epoll_reactor.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_HAS_TIMERFD) -# include -#endif // defined(ASIO_HAS_TIMERFD) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -epoll_reactor::epoll_reactor(asio::execution_context& ctx) - : execution_context_service_base(ctx), - scheduler_(use_service(ctx)), - mutex_(ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_REGISTRATION, scheduler_.concurrency_hint())), - interrupter_(), - epoll_fd_(do_epoll_create()), - timer_fd_(do_timerfd_create()), - shutdown_(false), - registered_descriptors_mutex_(mutex_.enabled()) -{ - // Add the interrupter's descriptor to epoll. - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLET; - ev.data.ptr = &interrupter_; - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, interrupter_.read_descriptor(), &ev); - interrupter_.interrupt(); - - // Add the timer descriptor to epoll. - if (timer_fd_ != -1) - { - ev.events = EPOLLIN | EPOLLERR; - ev.data.ptr = &timer_fd_; - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, timer_fd_, &ev); - } -} - -epoll_reactor::~epoll_reactor() -{ - if (epoll_fd_ != -1) - close(epoll_fd_); - if (timer_fd_ != -1) - close(timer_fd_); -} - -void epoll_reactor::shutdown() -{ - mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - op_queue ops; - - while (descriptor_state* state = registered_descriptors_.first()) - { - for (int i = 0; i < max_ops; ++i) - ops.push(state->op_queue_[i]); - state->shutdown_ = true; - registered_descriptors_.free(state); - } - - timer_queues_.get_all_timers(ops); - - scheduler_.abandon_operations(ops); -} - -void epoll_reactor::notify_fork( - asio::execution_context::fork_event fork_ev) -{ - if (fork_ev == asio::execution_context::fork_child) - { - if (epoll_fd_ != -1) - ::close(epoll_fd_); - epoll_fd_ = -1; - epoll_fd_ = do_epoll_create(); - - if (timer_fd_ != -1) - ::close(timer_fd_); - timer_fd_ = -1; - timer_fd_ = do_timerfd_create(); - - interrupter_.recreate(); - - // Add the interrupter's descriptor to epoll. - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLET; - ev.data.ptr = &interrupter_; - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, interrupter_.read_descriptor(), &ev); - interrupter_.interrupt(); - - // Add the timer descriptor to epoll. - if (timer_fd_ != -1) - { - ev.events = EPOLLIN | EPOLLERR; - ev.data.ptr = &timer_fd_; - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, timer_fd_, &ev); - } - - update_timeout(); - - // Re-register all descriptors with epoll. - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - for (descriptor_state* state = registered_descriptors_.first(); - state != 0; state = state->next_) - { - ev.events = state->registered_events_; - ev.data.ptr = state; - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, state->descriptor_, &ev); - if (result != 0) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "epoll re-registration"); - } - } - } -} - -void epoll_reactor::init_task() -{ - scheduler_.init_task(); -} - -int epoll_reactor::register_descriptor(socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data) -{ - descriptor_data = allocate_descriptor_state(); - - ASIO_HANDLER_REACTOR_REGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - { - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - descriptor_data->reactor_ = this; - descriptor_data->descriptor_ = descriptor; - descriptor_data->shutdown_ = false; - for (int i = 0; i < max_ops; ++i) - descriptor_data->try_speculative_[i] = true; - } - - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET; - descriptor_data->registered_events_ = ev.events; - ev.data.ptr = descriptor_data; - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - { - if (errno == EPERM) - { - // This file descriptor type is not supported by epoll. However, if it is - // a regular file then operations on it will not block. We will allow - // this descriptor to be used and fail later if an operation on it would - // otherwise require a trip through the reactor. - descriptor_data->registered_events_ = 0; - return 0; - } - return errno; - } - - return 0; -} - -int epoll_reactor::register_internal_descriptor( - int op_type, socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data, reactor_op* op) -{ - descriptor_data = allocate_descriptor_state(); - - ASIO_HANDLER_REACTOR_REGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - { - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - descriptor_data->reactor_ = this; - descriptor_data->descriptor_ = descriptor; - descriptor_data->shutdown_ = false; - descriptor_data->op_queue_[op_type].push(op); - for (int i = 0; i < max_ops; ++i) - descriptor_data->try_speculative_[i] = true; - } - - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLHUP | EPOLLPRI | EPOLLET; - descriptor_data->registered_events_ = ev.events; - ev.data.ptr = descriptor_data; - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - return errno; - - return 0; -} - -void epoll_reactor::move_descriptor(socket_type, - epoll_reactor::per_descriptor_data& target_descriptor_data, - epoll_reactor::per_descriptor_data& source_descriptor_data) -{ - target_descriptor_data = source_descriptor_data; - source_descriptor_data = 0; -} - -void epoll_reactor::start_op(int op_type, socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data, reactor_op* op, - bool is_continuation, bool allow_speculative) -{ - if (!descriptor_data) - { - op->ec_ = asio::error::bad_descriptor; - post_immediate_completion(op, is_continuation); - return; - } - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (descriptor_data->shutdown_) - { - post_immediate_completion(op, is_continuation); - return; - } - - if (descriptor_data->op_queue_[op_type].empty()) - { - if (allow_speculative - && (op_type != read_op - || descriptor_data->op_queue_[except_op].empty())) - { - if (descriptor_data->try_speculative_[op_type]) - { - if (reactor_op::status status = op->perform()) - { - if (status == reactor_op::done_and_exhausted) - if (descriptor_data->registered_events_ != 0) - descriptor_data->try_speculative_[op_type] = false; - descriptor_lock.unlock(); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - } - - if (descriptor_data->registered_events_ == 0) - { - op->ec_ = asio::error::operation_not_supported; - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - - if (op_type == write_op) - { - if ((descriptor_data->registered_events_ & EPOLLOUT) == 0) - { - epoll_event ev = { 0, { 0 } }; - ev.events = descriptor_data->registered_events_ | EPOLLOUT; - ev.data.ptr = descriptor_data; - if (epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev) == 0) - { - descriptor_data->registered_events_ |= ev.events; - } - else - { - op->ec_ = asio::error_code(errno, - asio::error::get_system_category()); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - } - } - } - else if (descriptor_data->registered_events_ == 0) - { - op->ec_ = asio::error::operation_not_supported; - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - else - { - if (op_type == write_op) - { - descriptor_data->registered_events_ |= EPOLLOUT; - } - - epoll_event ev = { 0, { 0 } }; - ev.events = descriptor_data->registered_events_; - ev.data.ptr = descriptor_data; - epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev); - } - } - - descriptor_data->op_queue_[op_type].push(op); - scheduler_.work_started(); -} - -void epoll_reactor::cancel_ops(socket_type, - epoll_reactor::per_descriptor_data& descriptor_data) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - { - while (reactor_op* op = descriptor_data->op_queue_[i].front()) - { - op->ec_ = asio::error::operation_aborted; - descriptor_data->op_queue_[i].pop(); - ops.push(op); - } - } - - descriptor_lock.unlock(); - - scheduler_.post_deferred_completions(ops); -} - -void epoll_reactor::deregister_descriptor(socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data, bool closing) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (!descriptor_data->shutdown_) - { - if (closing) - { - // The descriptor will be automatically removed from the epoll set when - // it is closed. - } - else if (descriptor_data->registered_events_ != 0) - { - epoll_event ev = { 0, { 0 } }; - epoll_ctl(epoll_fd_, EPOLL_CTL_DEL, descriptor, &ev); - } - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - { - while (reactor_op* op = descriptor_data->op_queue_[i].front()) - { - op->ec_ = asio::error::operation_aborted; - descriptor_data->op_queue_[i].pop(); - ops.push(op); - } - } - - descriptor_data->descriptor_ = -1; - descriptor_data->shutdown_ = true; - - descriptor_lock.unlock(); - - ASIO_HANDLER_REACTOR_DEREGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - scheduler_.post_deferred_completions(ops); - - // Leave descriptor_data set so that it will be freed by the subsequent - // call to cleanup_descriptor_data. - } - else - { - // We are shutting down, so prevent cleanup_descriptor_data from freeing - // the descriptor_data object and let the destructor free it instead. - descriptor_data = 0; - } -} - -void epoll_reactor::deregister_internal_descriptor(socket_type descriptor, - epoll_reactor::per_descriptor_data& descriptor_data) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (!descriptor_data->shutdown_) - { - epoll_event ev = { 0, { 0 } }; - epoll_ctl(epoll_fd_, EPOLL_CTL_DEL, descriptor, &ev); - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - ops.push(descriptor_data->op_queue_[i]); - - descriptor_data->descriptor_ = -1; - descriptor_data->shutdown_ = true; - - descriptor_lock.unlock(); - - ASIO_HANDLER_REACTOR_DEREGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - // Leave descriptor_data set so that it will be freed by the subsequent - // call to cleanup_descriptor_data. - } - else - { - // We are shutting down, so prevent cleanup_descriptor_data from freeing - // the descriptor_data object and let the destructor free it instead. - descriptor_data = 0; - } -} - -void epoll_reactor::cleanup_descriptor_data( - per_descriptor_data& descriptor_data) -{ - if (descriptor_data) - { - free_descriptor_state(descriptor_data); - descriptor_data = 0; - } -} - -void epoll_reactor::run(long usec, op_queue& ops) -{ - // This code relies on the fact that the scheduler queues the reactor task - // behind all descriptor operations generated by this function. This means, - // that by the time we reach this point, any previously returned descriptor - // operations have already been dequeued. Therefore it is now safe for us to - // reuse and return them for the scheduler to queue again. - - // Calculate timeout. Check the timer queues only if timerfd is not in use. - int timeout; - if (usec == 0) - timeout = 0; - else - { - timeout = (usec < 0) ? -1 : ((usec - 1) / 1000 + 1); - if (timer_fd_ == -1) - { - mutex::scoped_lock lock(mutex_); - timeout = get_timeout(timeout); - } - } - - // Block on the epoll descriptor. - epoll_event events[128]; - int num_events = epoll_wait(epoll_fd_, events, 128, timeout); - -#if defined(ASIO_ENABLE_HANDLER_TRACKING) - // Trace the waiting events. - for (int i = 0; i < num_events; ++i) - { - void* ptr = events[i].data.ptr; - if (ptr == &interrupter_) - { - // Ignore. - } -# if defined(ASIO_HAS_TIMERFD) - else if (ptr == &timer_fd_) - { - // Ignore. - } -# endif // defined(ASIO_HAS_TIMERFD) - else - { - unsigned event_mask = 0; - if ((events[i].events & EPOLLIN) != 0) - event_mask |= ASIO_HANDLER_REACTOR_READ_EVENT; - if ((events[i].events & EPOLLOUT)) - event_mask |= ASIO_HANDLER_REACTOR_WRITE_EVENT; - if ((events[i].events & (EPOLLERR | EPOLLHUP)) != 0) - event_mask |= ASIO_HANDLER_REACTOR_ERROR_EVENT; - ASIO_HANDLER_REACTOR_EVENTS((context(), - reinterpret_cast(ptr), event_mask)); - } - } -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - -#if defined(ASIO_HAS_TIMERFD) - bool check_timers = (timer_fd_ == -1); -#else // defined(ASIO_HAS_TIMERFD) - bool check_timers = true; -#endif // defined(ASIO_HAS_TIMERFD) - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - void* ptr = events[i].data.ptr; - if (ptr == &interrupter_) - { - // No need to reset the interrupter since we're leaving the descriptor - // in a ready-to-read state and relying on edge-triggered notifications - // to make it so that we only get woken up when the descriptor's epoll - // registration is updated. - -#if defined(ASIO_HAS_TIMERFD) - if (timer_fd_ == -1) - check_timers = true; -#else // defined(ASIO_HAS_TIMERFD) - check_timers = true; -#endif // defined(ASIO_HAS_TIMERFD) - } -#if defined(ASIO_HAS_TIMERFD) - else if (ptr == &timer_fd_) - { - check_timers = true; - } -#endif // defined(ASIO_HAS_TIMERFD) - else - { - // The descriptor operation doesn't count as work in and of itself, so we - // don't call work_started() here. This still allows the scheduler to - // stop if the only remaining operations are descriptor operations. - descriptor_state* descriptor_data = static_cast(ptr); - if (!ops.is_enqueued(descriptor_data)) - { - descriptor_data->set_ready_events(events[i].events); - ops.push(descriptor_data); - } - else - { - descriptor_data->add_ready_events(events[i].events); - } - } - } - - if (check_timers) - { - mutex::scoped_lock common_lock(mutex_); - timer_queues_.get_ready_timers(ops); - -#if defined(ASIO_HAS_TIMERFD) - if (timer_fd_ != -1) - { - itimerspec new_timeout; - itimerspec old_timeout; - int flags = get_timeout(new_timeout); - timerfd_settime(timer_fd_, flags, &new_timeout, &old_timeout); - } -#endif // defined(ASIO_HAS_TIMERFD) - } -} - -void epoll_reactor::interrupt() -{ - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLET; - ev.data.ptr = &interrupter_; - epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, interrupter_.read_descriptor(), &ev); -} - -int epoll_reactor::do_epoll_create() -{ -#if defined(EPOLL_CLOEXEC) - int fd = epoll_create1(EPOLL_CLOEXEC); -#else // defined(EPOLL_CLOEXEC) - int fd = -1; - errno = EINVAL; -#endif // defined(EPOLL_CLOEXEC) - - if (fd == -1 && (errno == EINVAL || errno == ENOSYS)) - { - fd = epoll_create(epoll_size); - if (fd != -1) - ::fcntl(fd, F_SETFD, FD_CLOEXEC); - } - - if (fd == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "epoll"); - } - - return fd; -} - -int epoll_reactor::do_timerfd_create() -{ -#if defined(ASIO_HAS_TIMERFD) -# if defined(TFD_CLOEXEC) - int fd = timerfd_create(CLOCK_MONOTONIC, TFD_CLOEXEC); -# else // defined(TFD_CLOEXEC) - int fd = -1; - errno = EINVAL; -# endif // defined(TFD_CLOEXEC) - - if (fd == -1 && errno == EINVAL) - { - fd = timerfd_create(CLOCK_MONOTONIC, 0); - if (fd != -1) - ::fcntl(fd, F_SETFD, FD_CLOEXEC); - } - - return fd; -#else // defined(ASIO_HAS_TIMERFD) - return -1; -#endif // defined(ASIO_HAS_TIMERFD) -} - -epoll_reactor::descriptor_state* epoll_reactor::allocate_descriptor_state() -{ - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - return registered_descriptors_.alloc(ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_IO, scheduler_.concurrency_hint())); -} - -void epoll_reactor::free_descriptor_state(epoll_reactor::descriptor_state* s) -{ - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - registered_descriptors_.free(s); -} - -void epoll_reactor::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void epoll_reactor::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -void epoll_reactor::update_timeout() -{ -#if defined(ASIO_HAS_TIMERFD) - if (timer_fd_ != -1) - { - itimerspec new_timeout; - itimerspec old_timeout; - int flags = get_timeout(new_timeout); - timerfd_settime(timer_fd_, flags, &new_timeout, &old_timeout); - return; - } -#endif // defined(ASIO_HAS_TIMERFD) - interrupt(); -} - -int epoll_reactor::get_timeout(int msec) -{ - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - const int max_msec = 5 * 60 * 1000; - return timer_queues_.wait_duration_msec( - (msec < 0 || max_msec < msec) ? max_msec : msec); -} - -#if defined(ASIO_HAS_TIMERFD) -int epoll_reactor::get_timeout(itimerspec& ts) -{ - ts.it_interval.tv_sec = 0; - ts.it_interval.tv_nsec = 0; - - long usec = timer_queues_.wait_duration_usec(5 * 60 * 1000 * 1000); - ts.it_value.tv_sec = usec / 1000000; - ts.it_value.tv_nsec = usec ? (usec % 1000000) * 1000 : 1; - - return usec ? 0 : TFD_TIMER_ABSTIME; -} -#endif // defined(ASIO_HAS_TIMERFD) - -struct epoll_reactor::perform_io_cleanup_on_block_exit -{ - explicit perform_io_cleanup_on_block_exit(epoll_reactor* r) - : reactor_(r), first_op_(0) - { - } - - ~perform_io_cleanup_on_block_exit() - { - if (first_op_) - { - // Post the remaining completed operations for invocation. - if (!ops_.empty()) - reactor_->scheduler_.post_deferred_completions(ops_); - - // A user-initiated operation has completed, but there's no need to - // explicitly call work_finished() here. Instead, we'll take advantage of - // the fact that the scheduler will call work_finished() once we return. - } - else - { - // No user-initiated operations have completed, so we need to compensate - // for the work_finished() call that the scheduler will make once this - // operation returns. - reactor_->scheduler_.compensating_work_started(); - } - } - - epoll_reactor* reactor_; - op_queue ops_; - operation* first_op_; -}; - -epoll_reactor::descriptor_state::descriptor_state(bool locking) - : operation(&epoll_reactor::descriptor_state::do_complete), - mutex_(locking) -{ -} - -operation* epoll_reactor::descriptor_state::perform_io(uint32_t events) -{ - mutex_.lock(); - perform_io_cleanup_on_block_exit io_cleanup(reactor_); - mutex::scoped_lock descriptor_lock(mutex_, mutex::scoped_lock::adopt_lock); - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - static const int flag[max_ops] = { EPOLLIN, EPOLLOUT, EPOLLPRI }; - for (int j = max_ops - 1; j >= 0; --j) - { - if (events & (flag[j] | EPOLLERR | EPOLLHUP)) - { - try_speculative_[j] = true; - while (reactor_op* op = op_queue_[j].front()) - { - if (reactor_op::status status = op->perform()) - { - op_queue_[j].pop(); - io_cleanup.ops_.push(op); - if (status == reactor_op::done_and_exhausted) - { - try_speculative_[j] = false; - break; - } - } - else - break; - } - } - } - - // The first operation will be returned for completion now. The others will - // be posted for later by the io_cleanup object's destructor. - io_cleanup.first_op_ = io_cleanup.ops_.front(); - io_cleanup.ops_.pop(); - return io_cleanup.first_op_; -} - -void epoll_reactor::descriptor_state::do_complete( - void* owner, operation* base, - const asio::error_code& ec, std::size_t bytes_transferred) -{ - if (owner) - { - descriptor_state* descriptor_data = static_cast(base); - uint32_t events = static_cast(bytes_transferred); - if (operation* op = descriptor_data->perform_io(events)) - { - op->complete(owner, ec, 0); - } - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_EPOLL) - -#endif // ASIO_DETAIL_IMPL_EPOLL_REACTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp b/Sources/Vendor/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp deleted file mode 100644 index c56e89a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/eventfd_select_interrupter.ipp +++ /dev/null @@ -1,165 +0,0 @@ -// -// detail/impl/eventfd_select_interrupter.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Roelof Naude (roelof.naude at gmail 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_DETAIL_IMPL_EVENTFD_SELECT_INTERRUPTER_IPP -#define ASIO_DETAIL_IMPL_EVENTFD_SELECT_INTERRUPTER_IPP - -#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_EVENTFD) - -#include -#include -#include -#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -# include -#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -# include -#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -#include "asio/detail/cstdint.hpp" -#include "asio/detail/eventfd_select_interrupter.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -eventfd_select_interrupter::eventfd_select_interrupter() -{ - open_descriptors(); -} - -void eventfd_select_interrupter::open_descriptors() -{ -#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 - write_descriptor_ = read_descriptor_ = syscall(__NR_eventfd, 0); - if (read_descriptor_ != -1) - { - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); - } -#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -# if defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK) - write_descriptor_ = read_descriptor_ = - ::eventfd(0, EFD_CLOEXEC | EFD_NONBLOCK); -# else // defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK) - errno = EINVAL; - write_descriptor_ = read_descriptor_ = -1; -# endif // defined(EFD_CLOEXEC) && defined(EFD_NONBLOCK) - if (read_descriptor_ == -1 && errno == EINVAL) - { - write_descriptor_ = read_descriptor_ = ::eventfd(0, 0); - if (read_descriptor_ != -1) - { - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); - } - } -#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 - - if (read_descriptor_ == -1) - { - int pipe_fds[2]; - if (pipe(pipe_fds) == 0) - { - read_descriptor_ = pipe_fds[0]; - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); - write_descriptor_ = pipe_fds[1]; - ::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK); - ::fcntl(write_descriptor_, F_SETFD, FD_CLOEXEC); - } - else - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "eventfd_select_interrupter"); - } - } -} - -eventfd_select_interrupter::~eventfd_select_interrupter() -{ - close_descriptors(); -} - -void eventfd_select_interrupter::close_descriptors() -{ - if (write_descriptor_ != -1 && write_descriptor_ != read_descriptor_) - ::close(write_descriptor_); - if (read_descriptor_ != -1) - ::close(read_descriptor_); -} - -void eventfd_select_interrupter::recreate() -{ - close_descriptors(); - - write_descriptor_ = -1; - read_descriptor_ = -1; - - open_descriptors(); -} - -void eventfd_select_interrupter::interrupt() -{ - uint64_t counter(1UL); - int result = ::write(write_descriptor_, &counter, sizeof(uint64_t)); - (void)result; -} - -bool eventfd_select_interrupter::reset() -{ - if (write_descriptor_ == read_descriptor_) - { - for (;;) - { - // Only perform one read. The kernel maintains an atomic counter. - uint64_t counter(0); - errno = 0; - int bytes_read = ::read(read_descriptor_, &counter, sizeof(uint64_t)); - if (bytes_read < 0 && errno == EINTR) - continue; - bool was_interrupted = (bytes_read > 0); - return was_interrupted; - } - } - else - { - for (;;) - { - // Clear all data from the pipe. - char data[1024]; - int bytes_read = ::read(read_descriptor_, data, sizeof(data)); - if (bytes_read < 0 && errno == EINTR) - continue; - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = ::read(read_descriptor_, data, sizeof(data)); - return was_interrupted; - } - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_EVENTFD) - -#endif // ASIO_DETAIL_IMPL_EVENTFD_SELECT_INTERRUPTER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/handler_tracking.ipp b/Sources/Vendor/asio/include/asio/detail/impl/handler_tracking.ipp deleted file mode 100644 index 5a4ff6f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/handler_tracking.ipp +++ /dev/null @@ -1,358 +0,0 @@ -// -// detail/impl/handler_tracking.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_HANDLER_TRACKING_IPP -#define ASIO_DETAIL_IMPL_HANDLER_TRACKING_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_CUSTOM_HANDLER_TRACKING) - -// The handler tracking implementation is provided by the user-specified header. - -#elif defined(ASIO_ENABLE_HANDLER_TRACKING) - -#include -#include -#include "asio/detail/handler_tracking.hpp" - -#if defined(ASIO_HAS_BOOST_DATE_TIME) -# include "asio/time_traits.hpp" -#elif defined(ASIO_HAS_CHRONO) -# include "asio/detail/chrono.hpp" -# include "asio/detail/chrono_time_traits.hpp" -# include "asio/wait_traits.hpp" -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/socket_types.hpp" -#elif !defined(ASIO_WINDOWS) -# include -#endif // !defined(ASIO_WINDOWS) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct handler_tracking_timestamp -{ - uint64_t seconds; - uint64_t microseconds; - - handler_tracking_timestamp() - { -#if defined(ASIO_HAS_BOOST_DATE_TIME) - boost::posix_time::ptime epoch(boost::gregorian::date(1970, 1, 1)); - boost::posix_time::time_duration now = - boost::posix_time::microsec_clock::universal_time() - epoch; -#elif defined(ASIO_HAS_CHRONO) - typedef chrono_time_traits > traits_helper; - traits_helper::posix_time_duration now( - chrono::system_clock::now().time_since_epoch()); -#endif - seconds = static_cast(now.total_seconds()); - microseconds = static_cast(now.total_microseconds() % 1000000); - } -}; - -struct handler_tracking::tracking_state -{ - static_mutex mutex_; - uint64_t next_id_; - tss_ptr* current_completion_; -}; - -handler_tracking::tracking_state* handler_tracking::get_state() -{ - static tracking_state state = { ASIO_STATIC_MUTEX_INIT, 1, 0 }; - return &state; -} - -void handler_tracking::init() -{ - static tracking_state* state = get_state(); - - state->mutex_.init(); - - static_mutex::scoped_lock lock(state->mutex_); - if (state->current_completion_ == 0) - state->current_completion_ = new tss_ptr; -} - -void handler_tracking::creation(execution_context&, - handler_tracking::tracked_handler& h, - const char* object_type, void* object, - uintmax_t /*native_handle*/, const char* op_name) -{ - static tracking_state* state = get_state(); - - static_mutex::scoped_lock lock(state->mutex_); - h.id_ = state->next_id_++; - lock.unlock(); - - handler_tracking_timestamp timestamp; - - uint64_t current_id = 0; - if (completion* current_completion = *state->current_completion_) - current_id = current_completion->id_; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|%I64u*%I64u|%.20s@%p.%.50s\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|%llu*%llu|%.20s@%p.%.50s\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - current_id, h.id_, object_type, object, op_name); -} - -handler_tracking::completion::completion( - const handler_tracking::tracked_handler& h) - : id_(h.id_), - invoked_(false), - next_(*get_state()->current_completion_) -{ - *get_state()->current_completion_ = this; -} - -handler_tracking::completion::~completion() -{ - if (id_) - { - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|%c%I64u|\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|%c%llu|\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - invoked_ ? '!' : '~', id_); - } - - *get_state()->current_completion_ = next_; -} - -void handler_tracking::completion::invocation_begin() -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, id_); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_begin( - const asio::error_code& ec) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|ec=%.20s:%d\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|ec=%.20s:%d\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - id_, ec.category().name(), ec.value()); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_begin( - const asio::error_code& ec, std::size_t bytes_transferred) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|ec=%.20s:%d,bytes_transferred=%I64u\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|ec=%.20s:%d,bytes_transferred=%llu\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - id_, ec.category().name(), ec.value(), - static_cast(bytes_transferred)); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_begin( - const asio::error_code& ec, int signal_number) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|ec=%.20s:%d,signal_number=%d\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|ec=%.20s:%d,signal_number=%d\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - id_, ec.category().name(), ec.value(), signal_number); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_begin( - const asio::error_code& ec, const char* arg) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|>%I64u|ec=%.20s:%d,%.50s\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|>%llu|ec=%.20s:%d,%.50s\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - id_, ec.category().name(), ec.value(), arg); - - invoked_ = true; -} - -void handler_tracking::completion::invocation_end() -{ - if (id_) - { - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|<%I64u|\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|<%llu|\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, id_); - - id_ = 0; - } -} - -void handler_tracking::operation(execution_context&, - const char* object_type, void* object, - uintmax_t /*native_handle*/, const char* op_name) -{ - static tracking_state* state = get_state(); - - handler_tracking_timestamp timestamp; - - unsigned long long current_id = 0; - if (completion* current_completion = *state->current_completion_) - current_id = current_completion->id_; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|%I64u|%.20s@%p.%.50s\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|%llu|%.20s@%p.%.50s\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - current_id, object_type, object, op_name); -} - -void handler_tracking::reactor_registration(execution_context& /*context*/, - uintmax_t /*native_handle*/, uintmax_t /*registration*/) -{ -} - -void handler_tracking::reactor_deregistration(execution_context& /*context*/, - uintmax_t /*native_handle*/, uintmax_t /*registration*/) -{ -} - -void handler_tracking::reactor_events(execution_context& /*context*/, - uintmax_t /*native_handle*/, unsigned /*events*/) -{ -} - -void handler_tracking::reactor_operation( - const tracked_handler& h, const char* op_name, - const asio::error_code& ec) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|.%I64u|%s,ec=%.20s:%d\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|.%llu|%s,ec=%.20s:%d\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - h.id_, op_name, ec.category().name(), ec.value()); -} - -void handler_tracking::reactor_operation( - const tracked_handler& h, const char* op_name, - const asio::error_code& ec, std::size_t bytes_transferred) -{ - handler_tracking_timestamp timestamp; - - write_line( -#if defined(ASIO_WINDOWS) - "@asio|%I64u.%06I64u|.%I64u|%s,ec=%.20s:%d,bytes_transferred=%I64u\n", -#else // defined(ASIO_WINDOWS) - "@asio|%llu.%06llu|.%llu|%s,ec=%.20s:%d,bytes_transferred=%llu\n", -#endif // defined(ASIO_WINDOWS) - timestamp.seconds, timestamp.microseconds, - h.id_, op_name, ec.category().name(), ec.value(), - static_cast(bytes_transferred)); -} - -void handler_tracking::write_line(const char* format, ...) -{ - using namespace std; // For sprintf (or equivalent). - - va_list args; - va_start(args, format); - - char line[256] = ""; -#if defined(ASIO_HAS_SECURE_RTL) - int length = vsprintf_s(line, sizeof(line), format, args); -#else // defined(ASIO_HAS_SECURE_RTL) - int length = vsprintf(line, format, args); -#endif // defined(ASIO_HAS_SECURE_RTL) - - va_end(args); - -#if defined(ASIO_WINDOWS_RUNTIME) - wchar_t wline[256] = L""; - mbstowcs_s(0, wline, sizeof(wline) / sizeof(wchar_t), line, length); - ::OutputDebugStringW(wline); -#elif defined(ASIO_WINDOWS) - HANDLE stderr_handle = ::GetStdHandle(STD_ERROR_HANDLE); - DWORD bytes_written = 0; - ::WriteFile(stderr_handle, line, length, &bytes_written, 0); -#else // defined(ASIO_WINDOWS) - ::write(STDERR_FILENO, line, length); -#endif // defined(ASIO_WINDOWS) -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - -#endif // ASIO_DETAIL_IMPL_HANDLER_TRACKING_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.hpp deleted file mode 100644 index 136d167..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// detail/impl/kqueue_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2005 Stefan Arentz (stefan at soze 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_DETAIL_IMPL_KQUEUE_REACTOR_HPP -#define ASIO_DETAIL_IMPL_KQUEUE_REACTOR_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_KQUEUE) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void kqueue_reactor::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -// Remove a timer queue from the reactor. -template -void kqueue_reactor::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void kqueue_reactor::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - scheduler_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - scheduler_.work_started(); - if (earliest) - interrupt(); -} - -template -std::size_t kqueue_reactor::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - scheduler_.post_deferred_completions(ops); - return n; -} - -template -void kqueue_reactor::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source) -{ - mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(target, ops); - queue.move_timer(target, source); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_KQUEUE) - -#endif // ASIO_DETAIL_IMPL_KQUEUE_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.ipp b/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.ipp deleted file mode 100644 index 73986e0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/kqueue_reactor.ipp +++ /dev/null @@ -1,566 +0,0 @@ -// -// detail/impl/kqueue_reactor.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2005 Stefan Arentz (stefan at soze 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_DETAIL_IMPL_KQUEUE_REACTOR_IPP -#define ASIO_DETAIL_IMPL_KQUEUE_REACTOR_IPP - -#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_KQUEUE) - -#include "asio/detail/kqueue_reactor.hpp" -#include "asio/detail/scheduler.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -#if defined(__NetBSD__) -# define ASIO_KQUEUE_EV_SET(ev, ident, filt, flags, fflags, data, udata) \ - EV_SET(ev, ident, filt, flags, fflags, data, \ - reinterpret_cast(static_cast(udata))) -#else -# define ASIO_KQUEUE_EV_SET(ev, ident, filt, flags, fflags, data, udata) \ - EV_SET(ev, ident, filt, flags, fflags, data, udata) -#endif - -namespace asio { -namespace detail { - -kqueue_reactor::kqueue_reactor(asio::execution_context& ctx) - : execution_context_service_base(ctx), - scheduler_(use_service(ctx)), - mutex_(ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_REGISTRATION, scheduler_.concurrency_hint())), - kqueue_fd_(do_kqueue_create()), - interrupter_(), - shutdown_(false), - registered_descriptors_mutex_(mutex_.enabled()) -{ - struct kevent events[1]; - ASIO_KQUEUE_EV_SET(&events[0], interrupter_.read_descriptor(), - EVFILT_READ, EV_ADD, 0, 0, &interrupter_); - if (::kevent(kqueue_fd_, events, 1, 0, 0, 0) == -1) - { - asio::error_code error(errno, - asio::error::get_system_category()); - asio::detail::throw_error(error); - } -} - -kqueue_reactor::~kqueue_reactor() -{ - close(kqueue_fd_); -} - -void kqueue_reactor::shutdown() -{ - mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - op_queue ops; - - while (descriptor_state* state = registered_descriptors_.first()) - { - for (int i = 0; i < max_ops; ++i) - ops.push(state->op_queue_[i]); - state->shutdown_ = true; - registered_descriptors_.free(state); - } - - timer_queues_.get_all_timers(ops); - - scheduler_.abandon_operations(ops); -} - -void kqueue_reactor::notify_fork( - asio::execution_context::fork_event fork_ev) -{ - if (fork_ev == asio::execution_context::fork_child) - { - // The kqueue descriptor is automatically closed in the child. - kqueue_fd_ = -1; - kqueue_fd_ = do_kqueue_create(); - - interrupter_.recreate(); - - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], interrupter_.read_descriptor(), - EVFILT_READ, EV_ADD, 0, 0, &interrupter_); - if (::kevent(kqueue_fd_, events, 1, 0, 0, 0) == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "kqueue interrupter registration"); - } - - // Re-register all descriptors with kqueue. - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - for (descriptor_state* state = registered_descriptors_.first(); - state != 0; state = state->next_) - { - if (state->num_kevents_ > 0) - { - ASIO_KQUEUE_EV_SET(&events[0], state->descriptor_, - EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, state); - ASIO_KQUEUE_EV_SET(&events[1], state->descriptor_, - EVFILT_WRITE, EV_ADD | EV_CLEAR, 0, 0, state); - if (::kevent(kqueue_fd_, events, state->num_kevents_, 0, 0, 0) == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "kqueue re-registration"); - } - } - } - } -} - -void kqueue_reactor::init_task() -{ - scheduler_.init_task(); -} - -int kqueue_reactor::register_descriptor(socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data) -{ - descriptor_data = allocate_descriptor_state(); - - ASIO_HANDLER_REACTOR_REGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - mutex::scoped_lock lock(descriptor_data->mutex_); - - descriptor_data->descriptor_ = descriptor; - descriptor_data->num_kevents_ = 0; - descriptor_data->shutdown_ = false; - - return 0; -} - -int kqueue_reactor::register_internal_descriptor( - int op_type, socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data, reactor_op* op) -{ - descriptor_data = allocate_descriptor_state(); - - ASIO_HANDLER_REACTOR_REGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - mutex::scoped_lock lock(descriptor_data->mutex_); - - descriptor_data->descriptor_ = descriptor; - descriptor_data->num_kevents_ = 1; - descriptor_data->shutdown_ = false; - descriptor_data->op_queue_[op_type].push(op); - - struct kevent events[1]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, EVFILT_READ, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - if (::kevent(kqueue_fd_, events, 1, 0, 0, 0) == -1) - return errno; - - return 0; -} - -void kqueue_reactor::move_descriptor(socket_type, - kqueue_reactor::per_descriptor_data& target_descriptor_data, - kqueue_reactor::per_descriptor_data& source_descriptor_data) -{ - target_descriptor_data = source_descriptor_data; - source_descriptor_data = 0; -} - -void kqueue_reactor::start_op(int op_type, socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data, reactor_op* op, - bool is_continuation, bool allow_speculative) -{ - if (!descriptor_data) - { - op->ec_ = asio::error::bad_descriptor; - post_immediate_completion(op, is_continuation); - return; - } - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (descriptor_data->shutdown_) - { - post_immediate_completion(op, is_continuation); - return; - } - - if (descriptor_data->op_queue_[op_type].empty()) - { - static const int num_kevents[max_ops] = { 1, 2, 1 }; - - if (allow_speculative - && (op_type != read_op - || descriptor_data->op_queue_[except_op].empty())) - { - if (op->perform()) - { - descriptor_lock.unlock(); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - - if (descriptor_data->num_kevents_ < num_kevents[op_type]) - { - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, EVFILT_READ, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - ASIO_KQUEUE_EV_SET(&events[1], descriptor, EVFILT_WRITE, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - if (::kevent(kqueue_fd_, events, num_kevents[op_type], 0, 0, 0) != -1) - { - descriptor_data->num_kevents_ = num_kevents[op_type]; - } - else - { - op->ec_ = asio::error_code(errno, - asio::error::get_system_category()); - scheduler_.post_immediate_completion(op, is_continuation); - return; - } - } - } - else - { - if (descriptor_data->num_kevents_ < num_kevents[op_type]) - descriptor_data->num_kevents_ = num_kevents[op_type]; - - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, EVFILT_READ, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - ASIO_KQUEUE_EV_SET(&events[1], descriptor, EVFILT_WRITE, - EV_ADD | EV_CLEAR, 0, 0, descriptor_data); - ::kevent(kqueue_fd_, events, descriptor_data->num_kevents_, 0, 0, 0); - } - } - - descriptor_data->op_queue_[op_type].push(op); - scheduler_.work_started(); -} - -void kqueue_reactor::cancel_ops(socket_type, - kqueue_reactor::per_descriptor_data& descriptor_data) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - { - while (reactor_op* op = descriptor_data->op_queue_[i].front()) - { - op->ec_ = asio::error::operation_aborted; - descriptor_data->op_queue_[i].pop(); - ops.push(op); - } - } - - descriptor_lock.unlock(); - - scheduler_.post_deferred_completions(ops); -} - -void kqueue_reactor::deregister_descriptor(socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data, bool closing) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (!descriptor_data->shutdown_) - { - if (closing) - { - // The descriptor will be automatically removed from the kqueue when it - // is closed. - } - else - { - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, - EVFILT_READ, EV_DELETE, 0, 0, 0); - ASIO_KQUEUE_EV_SET(&events[1], descriptor, - EVFILT_WRITE, EV_DELETE, 0, 0, 0); - ::kevent(kqueue_fd_, events, descriptor_data->num_kevents_, 0, 0, 0); - } - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - { - while (reactor_op* op = descriptor_data->op_queue_[i].front()) - { - op->ec_ = asio::error::operation_aborted; - descriptor_data->op_queue_[i].pop(); - ops.push(op); - } - } - - descriptor_data->descriptor_ = -1; - descriptor_data->shutdown_ = true; - - descriptor_lock.unlock(); - - ASIO_HANDLER_REACTOR_DEREGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - scheduler_.post_deferred_completions(ops); - - // Leave descriptor_data set so that it will be freed by the subsequent - // call to cleanup_descriptor_data. - } - else - { - // We are shutting down, so prevent cleanup_descriptor_data from freeing - // the descriptor_data object and let the destructor free it instead. - descriptor_data = 0; - } -} - -void kqueue_reactor::deregister_internal_descriptor(socket_type descriptor, - kqueue_reactor::per_descriptor_data& descriptor_data) -{ - if (!descriptor_data) - return; - - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (!descriptor_data->shutdown_) - { - struct kevent events[2]; - ASIO_KQUEUE_EV_SET(&events[0], descriptor, - EVFILT_READ, EV_DELETE, 0, 0, 0); - ASIO_KQUEUE_EV_SET(&events[1], descriptor, - EVFILT_WRITE, EV_DELETE, 0, 0, 0); - ::kevent(kqueue_fd_, events, descriptor_data->num_kevents_, 0, 0, 0); - - op_queue ops; - for (int i = 0; i < max_ops; ++i) - ops.push(descriptor_data->op_queue_[i]); - - descriptor_data->descriptor_ = -1; - descriptor_data->shutdown_ = true; - - descriptor_lock.unlock(); - - ASIO_HANDLER_REACTOR_DEREGISTRATION(( - context(), static_cast(descriptor), - reinterpret_cast(descriptor_data))); - - // Leave descriptor_data set so that it will be freed by the subsequent - // call to cleanup_descriptor_data. - } - else - { - // We are shutting down, so prevent cleanup_descriptor_data from freeing - // the descriptor_data object and let the destructor free it instead. - descriptor_data = 0; - } -} - -void kqueue_reactor::cleanup_descriptor_data( - per_descriptor_data& descriptor_data) -{ - if (descriptor_data) - { - free_descriptor_state(descriptor_data); - descriptor_data = 0; - } -} - -void kqueue_reactor::run(long usec, op_queue& ops) -{ - mutex::scoped_lock lock(mutex_); - - // Determine how long to block while waiting for events. - timespec timeout_buf = { 0, 0 }; - timespec* timeout = usec ? get_timeout(usec, timeout_buf) : &timeout_buf; - - lock.unlock(); - - // Block on the kqueue descriptor. - struct kevent events[128]; - int num_events = kevent(kqueue_fd_, 0, 0, events, 128, timeout); - -#if defined(ASIO_ENABLE_HANDLER_TRACKING) - // Trace the waiting events. - for (int i = 0; i < num_events; ++i) - { - void* ptr = reinterpret_cast(events[i].udata); - if (ptr != &interrupter_) - { - unsigned event_mask = 0; - switch (events[i].filter) - { - case EVFILT_READ: - event_mask |= ASIO_HANDLER_REACTOR_READ_EVENT; - break; - case EVFILT_WRITE: - event_mask |= ASIO_HANDLER_REACTOR_WRITE_EVENT; - break; - } - if ((events[i].flags & (EV_ERROR | EV_OOBAND)) != 0) - event_mask |= ASIO_HANDLER_REACTOR_ERROR_EVENT; - ASIO_HANDLER_REACTOR_EVENTS((context(), - reinterpret_cast(ptr), event_mask)); - } - } -#endif // defined(ASIO_ENABLE_HANDLER_TRACKING) - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - void* ptr = reinterpret_cast(events[i].udata); - if (ptr == &interrupter_) - { - interrupter_.reset(); - } - else - { - descriptor_state* descriptor_data = static_cast(ptr); - mutex::scoped_lock descriptor_lock(descriptor_data->mutex_); - - if (events[i].filter == EVFILT_WRITE - && descriptor_data->num_kevents_ == 2 - && descriptor_data->op_queue_[write_op].empty()) - { - // Some descriptor types, like serial ports, don't seem to support - // EV_CLEAR with EVFILT_WRITE. Since we have no pending write - // operations we'll remove the EVFILT_WRITE registration here so that - // we don't end up in a tight spin. - struct kevent delete_events[1]; - ASIO_KQUEUE_EV_SET(&delete_events[0], - descriptor_data->descriptor_, EVFILT_WRITE, EV_DELETE, 0, 0, 0); - ::kevent(kqueue_fd_, delete_events, 1, 0, 0, 0); - descriptor_data->num_kevents_ = 1; - } - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. -#if defined(__NetBSD__) - static const unsigned int filter[max_ops] = -#else - static const int filter[max_ops] = -#endif - { EVFILT_READ, EVFILT_WRITE, EVFILT_READ }; - for (int j = max_ops - 1; j >= 0; --j) - { - if (events[i].filter == filter[j]) - { - if (j != except_op || events[i].flags & EV_OOBAND) - { - while (reactor_op* op = descriptor_data->op_queue_[j].front()) - { - if (events[i].flags & EV_ERROR) - { - op->ec_ = asio::error_code( - static_cast(events[i].data), - asio::error::get_system_category()); - descriptor_data->op_queue_[j].pop(); - ops.push(op); - } - if (op->perform()) - { - descriptor_data->op_queue_[j].pop(); - ops.push(op); - } - else - break; - } - } - } - } - } - } - - lock.lock(); - timer_queues_.get_ready_timers(ops); -} - -void kqueue_reactor::interrupt() -{ - interrupter_.interrupt(); -} - -int kqueue_reactor::do_kqueue_create() -{ - int fd = ::kqueue(); - if (fd == -1) - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "kqueue"); - } - return fd; -} - -kqueue_reactor::descriptor_state* kqueue_reactor::allocate_descriptor_state() -{ - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - return registered_descriptors_.alloc(ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_IO, scheduler_.concurrency_hint())); -} - -void kqueue_reactor::free_descriptor_state(kqueue_reactor::descriptor_state* s) -{ - mutex::scoped_lock descriptors_lock(registered_descriptors_mutex_); - registered_descriptors_.free(s); -} - -void kqueue_reactor::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void kqueue_reactor::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -timespec* kqueue_reactor::get_timeout(long usec, timespec& ts) -{ - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - const long max_usec = 5 * 60 * 1000 * 1000; - usec = timer_queues_.wait_duration_usec( - (usec < 0 || max_usec < usec) ? max_usec : usec); - ts.tv_sec = usec / 1000000; - ts.tv_nsec = (usec % 1000000) * 1000; - return &ts; -} - -} // namespace detail -} // namespace asio - -#undef ASIO_KQUEUE_EV_SET - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_KQUEUE) - -#endif // ASIO_DETAIL_IMPL_KQUEUE_REACTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/null_event.ipp b/Sources/Vendor/asio/include/asio/detail/impl/null_event.ipp deleted file mode 100644 index 22ade40..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/null_event.ipp +++ /dev/null @@ -1,74 +0,0 @@ -// -// detail/impl/null_event.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_NULL_EVENT_IPP -#define ASIO_DETAIL_IMPL_NULL_EVENT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# include "asio/detail/socket_types.hpp" -#else -# include -# if defined(__hpux) -# include -# endif -# if !defined(__hpux) || defined(__SELECT) -# include -# endif -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void null_event::do_wait() -{ -#if defined(ASIO_WINDOWS_RUNTIME) - std::this_thread::sleep_until((std::chrono::steady_clock::time_point::max)()); -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ::Sleep(INFINITE); -#else - ::pause(); -#endif -} - -void null_event::do_wait_for_usec(long usec) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - std::this_thread::sleep_for(std::chrono::microseconds(usec)); -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ::Sleep(usec / 1000); -#elif defined(__hpux) && defined(__SELECT) - timespec ts; - ts.tv_sec = usec / 1000000; - ts.tv_nsec = (usec % 1000000) * 1000; - ::pselect(0, 0, 0, 0, &ts, 0); -#else - timeval tv; - tv.tv_sec = usec / 1000000; - tv.tv_usec = usec % 1000000; - ::select(0, 0, 0, 0, &tv); -#endif -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_NULL_EVENT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/pipe_select_interrupter.ipp b/Sources/Vendor/asio/include/asio/detail/impl/pipe_select_interrupter.ipp deleted file mode 100644 index 13931ab..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/pipe_select_interrupter.ipp +++ /dev/null @@ -1,124 +0,0 @@ -// -// detail/impl/pipe_select_interrupter.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_PIPE_SELECT_INTERRUPTER_IPP -#define ASIO_DETAIL_IMPL_PIPE_SELECT_INTERRUPTER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS_RUNTIME) -#if !defined(ASIO_WINDOWS) -#if !defined(__CYGWIN__) -#if !defined(__SYMBIAN32__) -#if !defined(ASIO_HAS_EVENTFD) - -#include -#include -#include -#include -#include "asio/detail/pipe_select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -pipe_select_interrupter::pipe_select_interrupter() -{ - open_descriptors(); -} - -void pipe_select_interrupter::open_descriptors() -{ - int pipe_fds[2]; - if (pipe(pipe_fds) == 0) - { - read_descriptor_ = pipe_fds[0]; - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - write_descriptor_ = pipe_fds[1]; - ::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK); - -#if defined(FD_CLOEXEC) - ::fcntl(read_descriptor_, F_SETFD, FD_CLOEXEC); - ::fcntl(write_descriptor_, F_SETFD, FD_CLOEXEC); -#endif // defined(FD_CLOEXEC) - } - else - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "pipe_select_interrupter"); - } -} - -pipe_select_interrupter::~pipe_select_interrupter() -{ - close_descriptors(); -} - -void pipe_select_interrupter::close_descriptors() -{ - if (read_descriptor_ != -1) - ::close(read_descriptor_); - if (write_descriptor_ != -1) - ::close(write_descriptor_); -} - -void pipe_select_interrupter::recreate() -{ - close_descriptors(); - - write_descriptor_ = -1; - read_descriptor_ = -1; - - open_descriptors(); -} - -void pipe_select_interrupter::interrupt() -{ - char byte = 0; - signed_size_type result = ::write(write_descriptor_, &byte, 1); - (void)result; -} - -bool pipe_select_interrupter::reset() -{ - for (;;) - { - char data[1024]; - signed_size_type bytes_read = ::read(read_descriptor_, data, sizeof(data)); - if (bytes_read < 0 && errno == EINTR) - continue; - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = ::read(read_descriptor_, data, sizeof(data)); - return was_interrupted; - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_EVENTFD) -#endif // !defined(__SYMBIAN32__) -#endif // !defined(__CYGWIN__) -#endif // !defined(ASIO_WINDOWS) -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_PIPE_SELECT_INTERRUPTER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/posix_event.ipp b/Sources/Vendor/asio/include/asio/detail/impl/posix_event.ipp deleted file mode 100644 index 4b46ab0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/posix_event.ipp +++ /dev/null @@ -1,59 +0,0 @@ -// -// detail/impl/posix_event.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_POSIX_EVENT_IPP -#define ASIO_DETAIL_IMPL_POSIX_EVENT_IPP - -#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_PTHREADS) - -#include "asio/detail/posix_event.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -posix_event::posix_event() - : state_(0) -{ -#if (defined(__MACH__) && defined(__APPLE__)) \ - || (defined(__ANDROID__) && (__ANDROID_API__ < 21)) - int error = ::pthread_cond_init(&cond_, 0); -#else // (defined(__MACH__) && defined(__APPLE__)) - // || (defined(__ANDROID__) && (__ANDROID_API__ < 21)) - ::pthread_condattr_t attr; - ::pthread_condattr_init(&attr); - int error = ::pthread_condattr_setclock(&attr, CLOCK_MONOTONIC); - if (error == 0) - error = ::pthread_cond_init(&cond_, &attr); -#endif // (defined(__MACH__) && defined(__APPLE__)) - // || (defined(__ANDROID__) && (__ANDROID_API__ < 21)) - - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "event"); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_IMPL_POSIX_EVENT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/posix_mutex.ipp b/Sources/Vendor/asio/include/asio/detail/impl/posix_mutex.ipp deleted file mode 100644 index 27272b5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/posix_mutex.ipp +++ /dev/null @@ -1,46 +0,0 @@ -// -// detail/impl/posix_mutex.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_POSIX_MUTEX_IPP -#define ASIO_DETAIL_IMPL_POSIX_MUTEX_IPP - -#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_PTHREADS) - -#include "asio/detail/posix_mutex.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -posix_mutex::posix_mutex() -{ - int error = ::pthread_mutex_init(&mutex_, 0); - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "mutex"); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_IMPL_POSIX_MUTEX_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/posix_thread.ipp b/Sources/Vendor/asio/include/asio/detail/impl/posix_thread.ipp deleted file mode 100644 index 69bd16f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/posix_thread.ipp +++ /dev/null @@ -1,84 +0,0 @@ -// -// detail/impl/posix_thread.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_POSIX_THREAD_IPP -#define ASIO_DETAIL_IMPL_POSIX_THREAD_IPP - -#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_PTHREADS) - -#include "asio/detail/posix_thread.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -posix_thread::~posix_thread() -{ - if (!joined_) - ::pthread_detach(thread_); -} - -void posix_thread::join() -{ - if (!joined_) - { - ::pthread_join(thread_, 0); - joined_ = true; - } -} - -std::size_t posix_thread::hardware_concurrency() -{ -#if defined(_SC_NPROCESSORS_ONLN) - long result = sysconf(_SC_NPROCESSORS_ONLN); - if (result > 0) - return result; -#endif // defined(_SC_NPROCESSORS_ONLN) - return 0; -} - -void posix_thread::start_thread(func_base* arg) -{ - int error = ::pthread_create(&thread_, 0, - asio_detail_posix_thread_function, arg); - if (error != 0) - { - delete arg; - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread"); - } -} - -void* asio_detail_posix_thread_function(void* arg) -{ - posix_thread::auto_func_base_ptr func = { - static_cast(arg) }; - func.ptr->run(); - return 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_IMPL_POSIX_THREAD_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/posix_tss_ptr.ipp b/Sources/Vendor/asio/include/asio/detail/impl/posix_tss_ptr.ipp deleted file mode 100644 index 54b58bd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/posix_tss_ptr.ipp +++ /dev/null @@ -1,46 +0,0 @@ -// -// detail/impl/posix_tss_ptr.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_POSIX_TSS_PTR_IPP -#define ASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP - -#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_PTHREADS) - -#include "asio/detail/posix_tss_ptr.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void posix_tss_ptr_create(pthread_key_t& key) -{ - int error = ::pthread_key_create(&key, 0); - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "tss"); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_IMPL_POSIX_TSS_PTR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/reactive_descriptor_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/reactive_descriptor_service.ipp deleted file mode 100644 index f9505ca..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/reactive_descriptor_service.ipp +++ /dev/null @@ -1,222 +0,0 @@ -// -// detail/impl/reactive_descriptor_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_REACTIVE_DESCRIPTOR_SERVICE_IPP -#define ASIO_DETAIL_IMPL_REACTIVE_DESCRIPTOR_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - -#include "asio/error.hpp" -#include "asio/detail/reactive_descriptor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -reactive_descriptor_service::reactive_descriptor_service( - asio::io_context& io_context) - : service_base(io_context), - reactor_(asio::use_service(io_context)) -{ - reactor_.init_task(); -} - -void reactive_descriptor_service::shutdown() -{ -} - -void reactive_descriptor_service::construct( - reactive_descriptor_service::implementation_type& impl) -{ - impl.descriptor_ = -1; - impl.state_ = 0; -} - -void reactive_descriptor_service::move_construct( - reactive_descriptor_service::implementation_type& impl, - reactive_descriptor_service::implementation_type& other_impl) -{ - impl.descriptor_ = other_impl.descriptor_; - other_impl.descriptor_ = -1; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - reactor_.move_descriptor(impl.descriptor_, - impl.reactor_data_, other_impl.reactor_data_); -} - -void reactive_descriptor_service::move_assign( - reactive_descriptor_service::implementation_type& impl, - reactive_descriptor_service& other_service, - reactive_descriptor_service::implementation_type& other_impl) -{ - destroy(impl); - - impl.descriptor_ = other_impl.descriptor_; - other_impl.descriptor_ = -1; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - other_service.reactor_.move_descriptor(impl.descriptor_, - impl.reactor_data_, other_impl.reactor_data_); -} - -void reactive_descriptor_service::destroy( - reactive_descriptor_service::implementation_type& impl) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "descriptor", &impl, impl.descriptor_, "close")); - - reactor_.deregister_descriptor(impl.descriptor_, impl.reactor_data_, - (impl.state_ & descriptor_ops::possible_dup) == 0); - - asio::error_code ignored_ec; - descriptor_ops::close(impl.descriptor_, impl.state_, ignored_ec); - - reactor_.cleanup_descriptor_data(impl.reactor_data_); - } -} - -asio::error_code reactive_descriptor_service::assign( - reactive_descriptor_service::implementation_type& impl, - const native_handle_type& native_descriptor, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - if (int err = reactor_.register_descriptor( - native_descriptor, impl.reactor_data_)) - { - ec = asio::error_code(err, - asio::error::get_system_category()); - return ec; - } - - impl.descriptor_ = native_descriptor; - impl.state_ = descriptor_ops::possible_dup; - ec = asio::error_code(); - return ec; -} - -asio::error_code reactive_descriptor_service::close( - reactive_descriptor_service::implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "descriptor", &impl, impl.descriptor_, "close")); - - reactor_.deregister_descriptor(impl.descriptor_, impl.reactor_data_, - (impl.state_ & descriptor_ops::possible_dup) == 0); - - descriptor_ops::close(impl.descriptor_, impl.state_, ec); - - reactor_.cleanup_descriptor_data(impl.reactor_data_); - } - else - { - ec = asio::error_code(); - } - - // The descriptor is closed by the OS even if close() returns an error. - // - // (Actually, POSIX says the state of the descriptor is unspecified. On - // Linux the descriptor is apparently closed anyway; e.g. see - // http://lkml.org/lkml/2005/9/10/129 - // We'll just have to assume that other OSes follow the same behaviour.) - construct(impl); - - return ec; -} - -reactive_descriptor_service::native_handle_type -reactive_descriptor_service::release( - reactive_descriptor_service::implementation_type& impl) -{ - native_handle_type descriptor = impl.descriptor_; - - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "descriptor", &impl, impl.descriptor_, "release")); - - reactor_.deregister_descriptor(impl.descriptor_, impl.reactor_data_, false); - reactor_.cleanup_descriptor_data(impl.reactor_data_); - construct(impl); - } - - return descriptor; -} - -asio::error_code reactive_descriptor_service::cancel( - reactive_descriptor_service::implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - ASIO_HANDLER_OPERATION((reactor_.context(), - "descriptor", &impl, impl.descriptor_, "cancel")); - - reactor_.cancel_ops(impl.descriptor_, impl.reactor_data_); - ec = asio::error_code(); - return ec; -} - -void reactive_descriptor_service::start_op( - reactive_descriptor_service::implementation_type& impl, - int op_type, reactor_op* op, bool is_continuation, - bool is_non_blocking, bool noop) -{ - if (!noop) - { - if ((impl.state_ & descriptor_ops::non_blocking) || - descriptor_ops::set_internal_non_blocking( - impl.descriptor_, impl.state_, true, op->ec_)) - { - reactor_.start_op(op_type, impl.descriptor_, - impl.reactor_data_, op, is_continuation, is_non_blocking); - return; - } - } - - reactor_.post_immediate_completion(op, is_continuation); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_IMPL_REACTIVE_DESCRIPTOR_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/reactive_serial_port_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/reactive_serial_port_service.ipp deleted file mode 100644 index c907835..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/reactive_serial_port_service.ipp +++ /dev/null @@ -1,152 +0,0 @@ -// -// detail/impl/reactive_serial_port_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_DETAIL_IMPL_REACTIVE_SERIAL_PORT_SERVICE_IPP -#define ASIO_DETAIL_IMPL_REACTIVE_SERIAL_PORT_SERVICE_IPP - -#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_SERIAL_PORT) -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include -#include "asio/detail/reactive_serial_port_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -reactive_serial_port_service::reactive_serial_port_service( - asio::io_context& io_context) - : service_base(io_context), - descriptor_service_(io_context) -{ -} - -void reactive_serial_port_service::shutdown() -{ - descriptor_service_.shutdown(); -} - -asio::error_code reactive_serial_port_service::open( - reactive_serial_port_service::implementation_type& impl, - const std::string& device, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - descriptor_ops::state_type state = 0; - int fd = descriptor_ops::open(device.c_str(), - O_RDWR | O_NONBLOCK | O_NOCTTY, ec); - if (fd < 0) - return ec; - - int s = descriptor_ops::fcntl(fd, F_GETFL, ec); - if (s >= 0) - s = descriptor_ops::fcntl(fd, F_SETFL, s | O_NONBLOCK, ec); - if (s < 0) - { - asio::error_code ignored_ec; - descriptor_ops::close(fd, state, ignored_ec); - return ec; - } - - // Set up default serial port options. - termios ios; - errno = 0; - s = descriptor_ops::error_wrapper(::tcgetattr(fd, &ios), ec); - if (s >= 0) - { -#if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - ::cfmakeraw(&ios); -#else - ios.c_iflag &= ~(IGNBRK | BRKINT | PARMRK - | ISTRIP | INLCR | IGNCR | ICRNL | IXON); - ios.c_oflag &= ~OPOST; - ios.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); - ios.c_cflag &= ~(CSIZE | PARENB); - ios.c_cflag |= CS8; -#endif - ios.c_iflag |= IGNPAR; - ios.c_cflag |= CREAD | CLOCAL; - errno = 0; - s = descriptor_ops::error_wrapper(::tcsetattr(fd, TCSANOW, &ios), ec); - } - if (s < 0) - { - asio::error_code ignored_ec; - descriptor_ops::close(fd, state, ignored_ec); - return ec; - } - - // We're done. Take ownership of the serial port descriptor. - if (descriptor_service_.assign(impl, fd, ec)) - { - asio::error_code ignored_ec; - descriptor_ops::close(fd, state, ignored_ec); - } - - return ec; -} - -asio::error_code reactive_serial_port_service::do_set_option( - reactive_serial_port_service::implementation_type& impl, - reactive_serial_port_service::store_function_type store, - const void* option, asio::error_code& ec) -{ - termios ios; - errno = 0; - descriptor_ops::error_wrapper(::tcgetattr( - descriptor_service_.native_handle(impl), &ios), ec); - if (ec) - return ec; - - if (store(option, ios, ec)) - return ec; - - errno = 0; - descriptor_ops::error_wrapper(::tcsetattr( - descriptor_service_.native_handle(impl), TCSANOW, &ios), ec); - return ec; -} - -asio::error_code reactive_serial_port_service::do_get_option( - const reactive_serial_port_service::implementation_type& impl, - reactive_serial_port_service::load_function_type load, - void* option, asio::error_code& ec) const -{ - termios ios; - errno = 0; - descriptor_ops::error_wrapper(::tcgetattr( - descriptor_service_.native_handle(impl), &ios), ec); - if (ec) - return ec; - - return load(option, ios, ec); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) -#endif // defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_DETAIL_IMPL_REACTIVE_SERIAL_PORT_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/reactive_socket_service_base.ipp b/Sources/Vendor/asio/include/asio/detail/impl/reactive_socket_service_base.ipp deleted file mode 100644 index 129b851..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/reactive_socket_service_base.ipp +++ /dev/null @@ -1,300 +0,0 @@ -// -// detail/reactive_socket_service_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_REACTIVE_SOCKET_SERVICE_BASE_IPP -#define ASIO_DETAIL_IMPL_REACTIVE_SOCKET_SERVICE_BASE_IPP - -#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_IOCP) \ - && !defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/reactive_socket_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -reactive_socket_service_base::reactive_socket_service_base( - asio::io_context& io_context) - : io_context_(io_context), - reactor_(use_service(io_context)) -{ - reactor_.init_task(); -} - -void reactive_socket_service_base::base_shutdown() -{ -} - -void reactive_socket_service_base::construct( - reactive_socket_service_base::base_implementation_type& impl) -{ - impl.socket_ = invalid_socket; - impl.state_ = 0; -} - -void reactive_socket_service_base::base_move_construct( - reactive_socket_service_base::base_implementation_type& impl, - reactive_socket_service_base::base_implementation_type& other_impl) -{ - impl.socket_ = other_impl.socket_; - other_impl.socket_ = invalid_socket; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - reactor_.move_descriptor(impl.socket_, - impl.reactor_data_, other_impl.reactor_data_); -} - -void reactive_socket_service_base::base_move_assign( - reactive_socket_service_base::base_implementation_type& impl, - reactive_socket_service_base& other_service, - reactive_socket_service_base::base_implementation_type& other_impl) -{ - destroy(impl); - - impl.socket_ = other_impl.socket_; - other_impl.socket_ = invalid_socket; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - other_service.reactor_.move_descriptor(impl.socket_, - impl.reactor_data_, other_impl.reactor_data_); -} - -void reactive_socket_service_base::destroy( - reactive_socket_service_base::base_implementation_type& impl) -{ - if (impl.socket_ != invalid_socket) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "socket", &impl, impl.socket_, "close")); - - reactor_.deregister_descriptor(impl.socket_, impl.reactor_data_, - (impl.state_ & socket_ops::possible_dup) == 0); - - asio::error_code ignored_ec; - socket_ops::close(impl.socket_, impl.state_, true, ignored_ec); - - reactor_.cleanup_descriptor_data(impl.reactor_data_); - } -} - -asio::error_code reactive_socket_service_base::close( - reactive_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((reactor_.context(), - "socket", &impl, impl.socket_, "close")); - - reactor_.deregister_descriptor(impl.socket_, impl.reactor_data_, - (impl.state_ & socket_ops::possible_dup) == 0); - - socket_ops::close(impl.socket_, impl.state_, false, ec); - - reactor_.cleanup_descriptor_data(impl.reactor_data_); - } - else - { - ec = asio::error_code(); - } - - // The descriptor is closed by the OS even if close() returns an error. - // - // (Actually, POSIX says the state of the descriptor is unspecified. On - // Linux the descriptor is apparently closed anyway; e.g. see - // http://lkml.org/lkml/2005/9/10/129 - // We'll just have to assume that other OSes follow the same behaviour. The - // known exception is when Windows's closesocket() function fails with - // WSAEWOULDBLOCK, but this case is handled inside socket_ops::close(). - construct(impl); - - return ec; -} - -socket_type reactive_socket_service_base::release( - reactive_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return invalid_socket; - } - - ASIO_HANDLER_OPERATION((reactor_.context(), - "socket", &impl, impl.socket_, "release")); - - reactor_.deregister_descriptor(impl.socket_, impl.reactor_data_, false); - reactor_.cleanup_descriptor_data(impl.reactor_data_); - socket_type sock = impl.socket_; - construct(impl); - ec = asio::error_code(); - return sock; -} - -asio::error_code reactive_socket_service_base::cancel( - reactive_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - ASIO_HANDLER_OPERATION((reactor_.context(), - "socket", &impl, impl.socket_, "cancel")); - - reactor_.cancel_ops(impl.socket_, impl.reactor_data_); - ec = asio::error_code(); - return ec; -} - -asio::error_code reactive_socket_service_base::do_open( - reactive_socket_service_base::base_implementation_type& impl, - int af, int type, int protocol, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - socket_holder sock(socket_ops::socket(af, type, protocol, ec)); - if (sock.get() == invalid_socket) - return ec; - - if (int err = reactor_.register_descriptor(sock.get(), impl.reactor_data_)) - { - ec = asio::error_code(err, - asio::error::get_system_category()); - return ec; - } - - impl.socket_ = sock.release(); - switch (type) - { - case SOCK_STREAM: impl.state_ = socket_ops::stream_oriented; break; - case SOCK_DGRAM: impl.state_ = socket_ops::datagram_oriented; break; - default: impl.state_ = 0; break; - } - ec = asio::error_code(); - return ec; -} - -asio::error_code reactive_socket_service_base::do_assign( - reactive_socket_service_base::base_implementation_type& impl, int type, - const reactive_socket_service_base::native_handle_type& native_socket, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - if (int err = reactor_.register_descriptor( - native_socket, impl.reactor_data_)) - { - ec = asio::error_code(err, - asio::error::get_system_category()); - return ec; - } - - impl.socket_ = native_socket; - switch (type) - { - case SOCK_STREAM: impl.state_ = socket_ops::stream_oriented; break; - case SOCK_DGRAM: impl.state_ = socket_ops::datagram_oriented; break; - default: impl.state_ = 0; break; - } - impl.state_ |= socket_ops::possible_dup; - ec = asio::error_code(); - return ec; -} - -void reactive_socket_service_base::start_op( - reactive_socket_service_base::base_implementation_type& impl, - int op_type, reactor_op* op, bool is_continuation, - bool is_non_blocking, bool noop) -{ - if (!noop) - { - if ((impl.state_ & socket_ops::non_blocking) - || socket_ops::set_internal_non_blocking( - impl.socket_, impl.state_, true, op->ec_)) - { - reactor_.start_op(op_type, impl.socket_, - impl.reactor_data_, op, is_continuation, is_non_blocking); - return; - } - } - - reactor_.post_immediate_completion(op, is_continuation); -} - -void reactive_socket_service_base::start_accept_op( - reactive_socket_service_base::base_implementation_type& impl, - reactor_op* op, bool is_continuation, bool peer_is_open) -{ - if (!peer_is_open) - start_op(impl, reactor::read_op, op, is_continuation, true, false); - else - { - op->ec_ = asio::error::already_open; - reactor_.post_immediate_completion(op, is_continuation); - } -} - -void reactive_socket_service_base::start_connect_op( - reactive_socket_service_base::base_implementation_type& impl, - reactor_op* op, bool is_continuation, - const socket_addr_type* addr, size_t addrlen) -{ - if ((impl.state_ & socket_ops::non_blocking) - || socket_ops::set_internal_non_blocking( - impl.socket_, impl.state_, true, op->ec_)) - { - if (socket_ops::connect(impl.socket_, addr, addrlen, op->ec_) != 0) - { - if (op->ec_ == asio::error::in_progress - || op->ec_ == asio::error::would_block) - { - op->ec_ = asio::error_code(); - reactor_.start_op(reactor::connect_op, impl.socket_, - impl.reactor_data_, op, is_continuation, false); - return; - } - } - } - - reactor_.post_immediate_completion(op, is_continuation); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_IOCP) - // && !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_REACTIVE_SOCKET_SERVICE_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/resolver_service_base.ipp b/Sources/Vendor/asio/include/asio/detail/impl/resolver_service_base.ipp deleted file mode 100644 index 540bb66..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/resolver_service_base.ipp +++ /dev/null @@ -1,154 +0,0 @@ -// -// detail/impl/resolver_service_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_RESOLVER_SERVICE_BASE_IPP -#define ASIO_DETAIL_IMPL_RESOLVER_SERVICE_BASE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/resolver_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class resolver_service_base::work_io_context_runner -{ -public: - work_io_context_runner(asio::io_context& io_context) - : io_context_(io_context) {} - void operator()() { io_context_.run(); } -private: - asio::io_context& io_context_; -}; - -resolver_service_base::resolver_service_base( - asio::io_context& io_context) - : io_context_impl_(asio::use_service(io_context)), - work_io_context_(new asio::io_context(-1)), - work_io_context_impl_(asio::use_service< - io_context_impl>(*work_io_context_)), - work_(asio::make_work_guard(*work_io_context_)), - work_thread_(0) -{ -} - -resolver_service_base::~resolver_service_base() -{ - base_shutdown(); -} - -void resolver_service_base::base_shutdown() -{ - work_.reset(); - if (work_io_context_.get()) - { - work_io_context_->stop(); - if (work_thread_.get()) - { - work_thread_->join(); - work_thread_.reset(); - } - work_io_context_.reset(); - } -} - -void resolver_service_base::base_notify_fork( - asio::io_context::fork_event fork_ev) -{ - if (work_thread_.get()) - { - if (fork_ev == asio::io_context::fork_prepare) - { - work_io_context_->stop(); - work_thread_->join(); - } - else - { - work_io_context_->restart(); - work_thread_.reset(new asio::detail::thread( - work_io_context_runner(*work_io_context_))); - } - } -} - -void resolver_service_base::construct( - resolver_service_base::implementation_type& impl) -{ - impl.reset(static_cast(0), socket_ops::noop_deleter()); -} - -void resolver_service_base::destroy( - resolver_service_base::implementation_type& impl) -{ - ASIO_HANDLER_OPERATION((io_context_impl_.context(), - "resolver", &impl, 0, "cancel")); - - impl.reset(); -} - -void resolver_service_base::move_construct(implementation_type& impl, - implementation_type& other_impl) -{ - impl = ASIO_MOVE_CAST(implementation_type)(other_impl); -} - -void resolver_service_base::move_assign(implementation_type& impl, - resolver_service_base&, implementation_type& other_impl) -{ - destroy(impl); - impl = ASIO_MOVE_CAST(implementation_type)(other_impl); -} - -void resolver_service_base::cancel( - resolver_service_base::implementation_type& impl) -{ - ASIO_HANDLER_OPERATION((io_context_impl_.context(), - "resolver", &impl, 0, "cancel")); - - impl.reset(static_cast(0), socket_ops::noop_deleter()); -} - -void resolver_service_base::start_resolve_op(resolve_op* op) -{ - if (ASIO_CONCURRENCY_HINT_IS_LOCKING(SCHEDULER, - io_context_impl_.concurrency_hint())) - { - start_work_thread(); - io_context_impl_.work_started(); - work_io_context_impl_.post_immediate_completion(op, false); - } - else - { - op->ec_ = asio::error::operation_not_supported; - io_context_impl_.post_immediate_completion(op, false); - } -} - -void resolver_service_base::start_work_thread() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - if (!work_thread_.get()) - { - work_thread_.reset(new asio::detail::thread( - work_io_context_runner(*work_io_context_))); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_RESOLVER_SERVICE_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/scheduler.ipp b/Sources/Vendor/asio/include/asio/detail/impl/scheduler.ipp deleted file mode 100644 index 35bc678..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/scheduler.ipp +++ /dev/null @@ -1,571 +0,0 @@ -// -// detail/impl/scheduler.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_SCHEDULER_IPP -#define ASIO_DETAIL_IMPL_SCHEDULER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/concurrency_hint.hpp" -#include "asio/detail/event.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/reactor.hpp" -#include "asio/detail/scheduler.hpp" -#include "asio/detail/scheduler_thread_info.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct scheduler::task_cleanup -{ - ~task_cleanup() - { - if (this_thread_->private_outstanding_work > 0) - { - asio::detail::increment( - scheduler_->outstanding_work_, - this_thread_->private_outstanding_work); - } - this_thread_->private_outstanding_work = 0; - - // Enqueue the completed operations and reinsert the task at the end of - // the operation queue. - lock_->lock(); - scheduler_->task_interrupted_ = true; - scheduler_->op_queue_.push(this_thread_->private_op_queue); - scheduler_->op_queue_.push(&scheduler_->task_operation_); - } - - scheduler* scheduler_; - mutex::scoped_lock* lock_; - thread_info* this_thread_; -}; - -struct scheduler::work_cleanup -{ - ~work_cleanup() - { - if (this_thread_->private_outstanding_work > 1) - { - asio::detail::increment( - scheduler_->outstanding_work_, - this_thread_->private_outstanding_work - 1); - } - else if (this_thread_->private_outstanding_work < 1) - { - scheduler_->work_finished(); - } - this_thread_->private_outstanding_work = 0; - -#if defined(ASIO_HAS_THREADS) - if (!this_thread_->private_op_queue.empty()) - { - lock_->lock(); - scheduler_->op_queue_.push(this_thread_->private_op_queue); - } -#endif // defined(ASIO_HAS_THREADS) - } - - scheduler* scheduler_; - mutex::scoped_lock* lock_; - thread_info* this_thread_; -}; - -scheduler::scheduler( - asio::execution_context& ctx, int concurrency_hint) - : asio::detail::execution_context_service_base(ctx), - one_thread_(concurrency_hint == 1 - || !ASIO_CONCURRENCY_HINT_IS_LOCKING( - SCHEDULER, concurrency_hint) - || !ASIO_CONCURRENCY_HINT_IS_LOCKING( - REACTOR_IO, concurrency_hint)), - mutex_(ASIO_CONCURRENCY_HINT_IS_LOCKING( - SCHEDULER, concurrency_hint)), - task_(0), - task_interrupted_(true), - outstanding_work_(0), - stopped_(false), - shutdown_(false), - concurrency_hint_(concurrency_hint) -{ - ASIO_HANDLER_TRACKING_INIT; -} - -void scheduler::shutdown() -{ - mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - // Destroy handler objects. - while (!op_queue_.empty()) - { - operation* o = op_queue_.front(); - op_queue_.pop(); - if (o != &task_operation_) - o->destroy(); - } - - // Reset to initial state. - task_ = 0; -} - -void scheduler::init_task() -{ - mutex::scoped_lock lock(mutex_); - if (!shutdown_ && !task_) - { - task_ = &use_service(this->context()); - op_queue_.push(&task_operation_); - wake_one_thread_and_unlock(lock); - } -} - -std::size_t scheduler::run(asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - - std::size_t n = 0; - for (; do_run_one(lock, this_thread, ec); lock.lock()) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -std::size_t scheduler::run_one(asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - - return do_run_one(lock, this_thread, ec); -} - -std::size_t scheduler::wait_one(long usec, asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - - return do_wait_one(lock, this_thread, usec, ec); -} - -std::size_t scheduler::poll(asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - -#if defined(ASIO_HAS_THREADS) - // We want to support nested calls to poll() and poll_one(), so any handlers - // that are already on a thread-private queue need to be put on to the main - // queue now. - if (one_thread_) - if (thread_info* outer_info = static_cast(ctx.next_by_key())) - op_queue_.push(outer_info->private_op_queue); -#endif // defined(ASIO_HAS_THREADS) - - std::size_t n = 0; - for (; do_poll_one(lock, this_thread, ec); lock.lock()) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -std::size_t scheduler::poll_one(asio::error_code& ec) -{ - ec = asio::error_code(); - if (outstanding_work_ == 0) - { - stop(); - return 0; - } - - thread_info this_thread; - this_thread.private_outstanding_work = 0; - thread_call_stack::context ctx(this, this_thread); - - mutex::scoped_lock lock(mutex_); - -#if defined(ASIO_HAS_THREADS) - // We want to support nested calls to poll() and poll_one(), so any handlers - // that are already on a thread-private queue need to be put on to the main - // queue now. - if (one_thread_) - if (thread_info* outer_info = static_cast(ctx.next_by_key())) - op_queue_.push(outer_info->private_op_queue); -#endif // defined(ASIO_HAS_THREADS) - - return do_poll_one(lock, this_thread, ec); -} - -void scheduler::stop() -{ - mutex::scoped_lock lock(mutex_); - stop_all_threads(lock); -} - -bool scheduler::stopped() const -{ - mutex::scoped_lock lock(mutex_); - return stopped_; -} - -void scheduler::restart() -{ - mutex::scoped_lock lock(mutex_); - stopped_ = false; -} - -void scheduler::compensating_work_started() -{ - thread_info_base* this_thread = thread_call_stack::contains(this); - ++static_cast(this_thread)->private_outstanding_work; -} - -void scheduler::post_immediate_completion( - scheduler::operation* op, bool is_continuation) -{ -#if defined(ASIO_HAS_THREADS) - if (one_thread_ || is_continuation) - { - if (thread_info_base* this_thread = thread_call_stack::contains(this)) - { - ++static_cast(this_thread)->private_outstanding_work; - static_cast(this_thread)->private_op_queue.push(op); - return; - } - } -#else // defined(ASIO_HAS_THREADS) - (void)is_continuation; -#endif // defined(ASIO_HAS_THREADS) - - work_started(); - mutex::scoped_lock lock(mutex_); - op_queue_.push(op); - wake_one_thread_and_unlock(lock); -} - -void scheduler::post_deferred_completion(scheduler::operation* op) -{ -#if defined(ASIO_HAS_THREADS) - if (one_thread_) - { - if (thread_info_base* this_thread = thread_call_stack::contains(this)) - { - static_cast(this_thread)->private_op_queue.push(op); - return; - } - } -#endif // defined(ASIO_HAS_THREADS) - - mutex::scoped_lock lock(mutex_); - op_queue_.push(op); - wake_one_thread_and_unlock(lock); -} - -void scheduler::post_deferred_completions( - op_queue& ops) -{ - if (!ops.empty()) - { -#if defined(ASIO_HAS_THREADS) - if (one_thread_) - { - if (thread_info_base* this_thread = thread_call_stack::contains(this)) - { - static_cast(this_thread)->private_op_queue.push(ops); - return; - } - } -#endif // defined(ASIO_HAS_THREADS) - - mutex::scoped_lock lock(mutex_); - op_queue_.push(ops); - wake_one_thread_and_unlock(lock); - } -} - -void scheduler::do_dispatch( - scheduler::operation* op) -{ - work_started(); - mutex::scoped_lock lock(mutex_); - op_queue_.push(op); - wake_one_thread_and_unlock(lock); -} - -void scheduler::abandon_operations( - op_queue& ops) -{ - op_queue ops2; - ops2.push(ops); -} - -std::size_t scheduler::do_run_one(mutex::scoped_lock& lock, - scheduler::thread_info& this_thread, - const asio::error_code& ec) -{ - while (!stopped_) - { - if (!op_queue_.empty()) - { - // Prepare to execute first handler from queue. - operation* o = op_queue_.front(); - op_queue_.pop(); - bool more_handlers = (!op_queue_.empty()); - - if (o == &task_operation_) - { - task_interrupted_ = more_handlers; - - if (more_handlers && !one_thread_) - wakeup_event_.unlock_and_signal_one(lock); - else - lock.unlock(); - - task_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Run the task. May throw an exception. Only block if the operation - // queue is empty and we're not polling, otherwise we want to return - // as soon as possible. - task_->run(more_handlers ? 0 : -1, this_thread.private_op_queue); - } - else - { - std::size_t task_result = o->task_result_; - - if (more_handlers && !one_thread_) - wake_one_thread_and_unlock(lock); - else - lock.unlock(); - - // Ensure the count of outstanding work is decremented on block exit. - work_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Complete the operation. May throw an exception. Deletes the object. - o->complete(this, ec, task_result); - - return 1; - } - } - else - { - wakeup_event_.clear(lock); - wakeup_event_.wait(lock); - } - } - - return 0; -} - -std::size_t scheduler::do_wait_one(mutex::scoped_lock& lock, - scheduler::thread_info& this_thread, long usec, - const asio::error_code& ec) -{ - if (stopped_) - return 0; - - operation* o = op_queue_.front(); - if (o == 0) - { - wakeup_event_.clear(lock); - wakeup_event_.wait_for_usec(lock, usec); - usec = 0; // Wait at most once. - o = op_queue_.front(); - } - - if (o == &task_operation_) - { - op_queue_.pop(); - bool more_handlers = (!op_queue_.empty()); - - task_interrupted_ = more_handlers; - - if (more_handlers && !one_thread_) - wakeup_event_.unlock_and_signal_one(lock); - else - lock.unlock(); - - { - task_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Run the task. May throw an exception. Only block if the operation - // queue is empty and we're not polling, otherwise we want to return - // as soon as possible. - task_->run(more_handlers ? 0 : usec, this_thread.private_op_queue); - } - - o = op_queue_.front(); - if (o == &task_operation_) - { - if (!one_thread_) - wakeup_event_.maybe_unlock_and_signal_one(lock); - return 0; - } - } - - if (o == 0) - return 0; - - op_queue_.pop(); - bool more_handlers = (!op_queue_.empty()); - - std::size_t task_result = o->task_result_; - - if (more_handlers && !one_thread_) - wake_one_thread_and_unlock(lock); - else - lock.unlock(); - - // Ensure the count of outstanding work is decremented on block exit. - work_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Complete the operation. May throw an exception. Deletes the object. - o->complete(this, ec, task_result); - - return 1; -} - -std::size_t scheduler::do_poll_one(mutex::scoped_lock& lock, - scheduler::thread_info& this_thread, - const asio::error_code& ec) -{ - if (stopped_) - return 0; - - operation* o = op_queue_.front(); - if (o == &task_operation_) - { - op_queue_.pop(); - lock.unlock(); - - { - task_cleanup c = { this, &lock, &this_thread }; - (void)c; - - // Run the task. May throw an exception. Only block if the operation - // queue is empty and we're not polling, otherwise we want to return - // as soon as possible. - task_->run(0, this_thread.private_op_queue); - } - - o = op_queue_.front(); - if (o == &task_operation_) - { - wakeup_event_.maybe_unlock_and_signal_one(lock); - return 0; - } - } - - if (o == 0) - return 0; - - op_queue_.pop(); - bool more_handlers = (!op_queue_.empty()); - - std::size_t task_result = o->task_result_; - - if (more_handlers && !one_thread_) - wake_one_thread_and_unlock(lock); - else - lock.unlock(); - - // Ensure the count of outstanding work is decremented on block exit. - work_cleanup on_exit = { this, &lock, &this_thread }; - (void)on_exit; - - // Complete the operation. May throw an exception. Deletes the object. - o->complete(this, ec, task_result); - - return 1; -} - -void scheduler::stop_all_threads( - mutex::scoped_lock& lock) -{ - stopped_ = true; - wakeup_event_.signal_all(lock); - - if (!task_interrupted_ && task_) - { - task_interrupted_ = true; - task_->interrupt(); - } -} - -void scheduler::wake_one_thread_and_unlock( - mutex::scoped_lock& lock) -{ - if (!wakeup_event_.maybe_unlock_and_signal_one(lock)) - { - if (!task_interrupted_ && task_) - { - task_interrupted_ = true; - task_->interrupt(); - } - lock.unlock(); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_SCHEDULER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.hpp deleted file mode 100644 index 04a04d4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.hpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// detail/impl/select_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_SELECT_REACTOR_HPP -#define ASIO_DETAIL_IMPL_SELECT_REACTOR_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_IOCP) \ - || (!defined(ASIO_HAS_DEV_POLL) \ - && !defined(ASIO_HAS_EPOLL) \ - && !defined(ASIO_HAS_KQUEUE) \ - && !defined(ASIO_WINDOWS_RUNTIME)) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void select_reactor::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -// Remove a timer queue from the reactor. -template -void select_reactor::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void select_reactor::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - scheduler_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - scheduler_.work_started(); - if (earliest) - interrupter_.interrupt(); -} - -template -std::size_t select_reactor::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - scheduler_.post_deferred_completions(ops); - return n; -} - -template -void select_reactor::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(target, ops); - queue.move_timer(target, source); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - // || (!defined(ASIO_HAS_DEV_POLL) - // && !defined(ASIO_HAS_EPOLL) - // && !defined(ASIO_HAS_KQUEUE) - // && !defined(ASIO_WINDOWS_RUNTIME)) - -#endif // ASIO_DETAIL_IMPL_SELECT_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.ipp b/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.ipp deleted file mode 100644 index 262bc69..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/select_reactor.ipp +++ /dev/null @@ -1,333 +0,0 @@ -// -// detail/impl/select_reactor.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_SELECT_REACTOR_IPP -#define ASIO_DETAIL_IMPL_SELECT_REACTOR_IPP - -#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_IOCP) \ - || (!defined(ASIO_HAS_DEV_POLL) \ - && !defined(ASIO_HAS_EPOLL) \ - && !defined(ASIO_HAS_KQUEUE) \ - && !defined(ASIO_WINDOWS_RUNTIME)) - -#include "asio/detail/fd_set_adapter.hpp" -#include "asio/detail/select_reactor.hpp" -#include "asio/detail/signal_blocker.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_IOCP) -class select_reactor::thread_function -{ -public: - explicit thread_function(select_reactor* r) - : this_(r) - { - } - - void operator()() - { - this_->run_thread(); - } - -private: - select_reactor* this_; -}; -#endif // defined(ASIO_HAS_IOCP) - -select_reactor::select_reactor(asio::execution_context& ctx) - : execution_context_service_base(ctx), - scheduler_(use_service(ctx)), - mutex_(), - interrupter_(), -#if defined(ASIO_HAS_IOCP) - stop_thread_(false), - thread_(0), -#endif // defined(ASIO_HAS_IOCP) - shutdown_(false) -{ -#if defined(ASIO_HAS_IOCP) - asio::detail::signal_blocker sb; - thread_ = new asio::detail::thread(thread_function(this)); -#endif // defined(ASIO_HAS_IOCP) -} - -select_reactor::~select_reactor() -{ - shutdown(); -} - -void select_reactor::shutdown() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; -#if defined(ASIO_HAS_IOCP) - stop_thread_ = true; -#endif // defined(ASIO_HAS_IOCP) - lock.unlock(); - -#if defined(ASIO_HAS_IOCP) - if (thread_) - { - interrupter_.interrupt(); - thread_->join(); - delete thread_; - thread_ = 0; - } -#endif // defined(ASIO_HAS_IOCP) - - op_queue ops; - - for (int i = 0; i < max_ops; ++i) - op_queue_[i].get_all_operations(ops); - - timer_queues_.get_all_timers(ops); - - scheduler_.abandon_operations(ops); -} - -void select_reactor::notify_fork( - asio::execution_context::fork_event fork_ev) -{ - if (fork_ev == asio::execution_context::fork_child) - interrupter_.recreate(); -} - -void select_reactor::init_task() -{ - scheduler_.init_task(); -} - -int select_reactor::register_descriptor(socket_type, - select_reactor::per_descriptor_data&) -{ - return 0; -} - -int select_reactor::register_internal_descriptor( - int op_type, socket_type descriptor, - select_reactor::per_descriptor_data&, reactor_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - op_queue_[op_type].enqueue_operation(descriptor, op); - interrupter_.interrupt(); - - return 0; -} - -void select_reactor::move_descriptor(socket_type, - select_reactor::per_descriptor_data&, - select_reactor::per_descriptor_data&) -{ -} - -void select_reactor::start_op(int op_type, socket_type descriptor, - select_reactor::per_descriptor_data&, reactor_op* op, - bool is_continuation, bool) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - post_immediate_completion(op, is_continuation); - return; - } - - bool first = op_queue_[op_type].enqueue_operation(descriptor, op); - scheduler_.work_started(); - if (first) - interrupter_.interrupt(); -} - -void select_reactor::cancel_ops(socket_type descriptor, - select_reactor::per_descriptor_data&) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor, asio::error::operation_aborted); -} - -void select_reactor::deregister_descriptor(socket_type descriptor, - select_reactor::per_descriptor_data&, bool) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor, asio::error::operation_aborted); -} - -void select_reactor::deregister_internal_descriptor( - socket_type descriptor, select_reactor::per_descriptor_data&) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - for (int i = 0; i < max_ops; ++i) - op_queue_[i].cancel_operations(descriptor, ops); -} - -void select_reactor::cleanup_descriptor_data( - select_reactor::per_descriptor_data&) -{ -} - -void select_reactor::run(long usec, op_queue& ops) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - -#if defined(ASIO_HAS_IOCP) - // Check if the thread is supposed to stop. - if (stop_thread_) - return; -#endif // defined(ASIO_HAS_IOCP) - - // Set up the descriptor sets. - for (int i = 0; i < max_select_ops; ++i) - fd_sets_[i].reset(); - fd_sets_[read_op].set(interrupter_.read_descriptor()); - socket_type max_fd = 0; - bool have_work_to_do = !timer_queues_.all_empty(); - for (int i = 0; i < max_select_ops; ++i) - { - have_work_to_do = have_work_to_do || !op_queue_[i].empty(); - fd_sets_[i].set(op_queue_[i], ops); - if (fd_sets_[i].max_descriptor() > max_fd) - max_fd = fd_sets_[i].max_descriptor(); - } - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Connection operations on Windows use both except and write fd_sets. - have_work_to_do = have_work_to_do || !op_queue_[connect_op].empty(); - fd_sets_[write_op].set(op_queue_[connect_op], ops); - if (fd_sets_[write_op].max_descriptor() > max_fd) - max_fd = fd_sets_[write_op].max_descriptor(); - fd_sets_[except_op].set(op_queue_[connect_op], ops); - if (fd_sets_[except_op].max_descriptor() > max_fd) - max_fd = fd_sets_[except_op].max_descriptor(); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - - // We can return immediately if there's no work to do and the reactor is - // not supposed to block. - if (!usec && !have_work_to_do) - return; - - // Determine how long to block while waiting for events. - timeval tv_buf = { 0, 0 }; - timeval* tv = usec ? get_timeout(usec, tv_buf) : &tv_buf; - - lock.unlock(); - - // Block on the select call until descriptors become ready. - asio::error_code ec; - int retval = socket_ops::select(static_cast(max_fd + 1), - fd_sets_[read_op], fd_sets_[write_op], fd_sets_[except_op], tv, ec); - - // Reset the interrupter. - if (retval > 0 && fd_sets_[read_op].is_set(interrupter_.read_descriptor())) - { - interrupter_.reset(); - --retval; - } - - lock.lock(); - - // Dispatch all ready operations. - if (retval > 0) - { -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Connection operations on Windows use both except and write fd_sets. - fd_sets_[except_op].perform(op_queue_[connect_op], ops); - fd_sets_[write_op].perform(op_queue_[connect_op], ops); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - for (int i = max_select_ops - 1; i >= 0; --i) - fd_sets_[i].perform(op_queue_[i], ops); - } - timer_queues_.get_ready_timers(ops); -} - -void select_reactor::interrupt() -{ - interrupter_.interrupt(); -} - -#if defined(ASIO_HAS_IOCP) -void select_reactor::run_thread() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - while (!stop_thread_) - { - lock.unlock(); - op_queue ops; - run(true, ops); - scheduler_.post_deferred_completions(ops); - lock.lock(); - } -} -#endif // defined(ASIO_HAS_IOCP) - -void select_reactor::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void select_reactor::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -timeval* select_reactor::get_timeout(long usec, timeval& tv) -{ - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - const long max_usec = 5 * 60 * 1000 * 1000; - usec = timer_queues_.wait_duration_usec( - (usec < 0 || max_usec < usec) ? max_usec : usec); - tv.tv_sec = usec / 1000000; - tv.tv_usec = usec % 1000000; - return &tv; -} - -void select_reactor::cancel_ops_unlocked(socket_type descriptor, - const asio::error_code& ec) -{ - bool need_interrupt = false; - op_queue ops; - for (int i = 0; i < max_ops; ++i) - need_interrupt = op_queue_[i].cancel_operations( - descriptor, ops, ec) || need_interrupt; - scheduler_.post_deferred_completions(ops); - if (need_interrupt) - interrupter_.interrupt(); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - // || (!defined(ASIO_HAS_DEV_POLL) - // && !defined(ASIO_HAS_EPOLL) - // && !defined(ASIO_HAS_KQUEUE)) - // && !defined(ASIO_WINDOWS_RUNTIME)) - -#endif // ASIO_DETAIL_IMPL_SELECT_REACTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/service_registry.hpp b/Sources/Vendor/asio/include/asio/detail/impl/service_registry.hpp deleted file mode 100644 index d4db589..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/service_registry.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// detail/impl/service_registry.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_SERVICE_REGISTRY_HPP -#define ASIO_DETAIL_IMPL_SERVICE_REGISTRY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -Service& service_registry::use_service() -{ - execution_context::service::key key; - init_key(key, 0); - factory_type factory = &service_registry::create; - return *static_cast(do_use_service(key, factory, &owner_)); -} - -template -Service& service_registry::use_service(io_context& owner) -{ - execution_context::service::key key; - init_key(key, 0); - factory_type factory = &service_registry::create; - return *static_cast(do_use_service(key, factory, &owner)); -} - -template -void service_registry::add_service(Service* new_service) -{ - execution_context::service::key key; - init_key(key, 0); - return do_add_service(key, new_service); -} - -template -bool service_registry::has_service() const -{ - execution_context::service::key key; - init_key(key, 0); - return do_has_service(key); -} - -template -inline void service_registry::init_key( - execution_context::service::key& key, ...) -{ - init_key_from_id(key, Service::id); -} - -#if !defined(ASIO_NO_TYPEID) -template -void service_registry::init_key(execution_context::service::key& key, - typename enable_if< - is_base_of::value>::type*) -{ - key.type_info_ = &typeid(typeid_wrapper); - key.id_ = 0; -} - -template -void service_registry::init_key_from_id(execution_context::service::key& key, - const service_id& /*id*/) -{ - key.type_info_ = &typeid(typeid_wrapper); - key.id_ = 0; -} -#endif // !defined(ASIO_NO_TYPEID) - -template -execution_context::service* service_registry::create(void* owner) -{ - return new Service(*static_cast(owner)); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_SERVICE_REGISTRY_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/service_registry.ipp b/Sources/Vendor/asio/include/asio/detail/impl/service_registry.ipp deleted file mode 100644 index a465033..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/service_registry.ipp +++ /dev/null @@ -1,197 +0,0 @@ -// -// detail/impl/service_registry.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_SERVICE_REGISTRY_IPP -#define ASIO_DETAIL_IMPL_SERVICE_REGISTRY_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/service_registry.hpp" -#include "asio/detail/throw_exception.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -service_registry::service_registry(execution_context& owner) - : owner_(owner), - first_service_(0) -{ -} - -service_registry::~service_registry() -{ -} - -void service_registry::shutdown_services() -{ - execution_context::service* service = first_service_; - while (service) - { - service->shutdown(); - service = service->next_; - } -} - -void service_registry::destroy_services() -{ - while (first_service_) - { - execution_context::service* next_service = first_service_->next_; - destroy(first_service_); - first_service_ = next_service; - } -} - -void service_registry::notify_fork(execution_context::fork_event fork_ev) -{ - // Make a copy of all of the services while holding the lock. We don't want - // to hold the lock while calling into each service, as it may try to call - // back into this class. - std::vector services; - { - asio::detail::mutex::scoped_lock lock(mutex_); - execution_context::service* service = first_service_; - while (service) - { - services.push_back(service); - service = service->next_; - } - } - - // If processing the fork_prepare event, we want to go in reverse order of - // service registration, which happens to be the existing order of the - // services in the vector. For the other events we want to go in the other - // direction. - std::size_t num_services = services.size(); - if (fork_ev == execution_context::fork_prepare) - for (std::size_t i = 0; i < num_services; ++i) - services[i]->notify_fork(fork_ev); - else - for (std::size_t i = num_services; i > 0; --i) - services[i - 1]->notify_fork(fork_ev); -} - -void service_registry::init_key_from_id(execution_context::service::key& key, - const execution_context::id& id) -{ - key.type_info_ = 0; - key.id_ = &id; -} - -bool service_registry::keys_match( - const execution_context::service::key& key1, - const execution_context::service::key& key2) -{ - if (key1.id_ && key2.id_) - if (key1.id_ == key2.id_) - return true; - if (key1.type_info_ && key2.type_info_) - if (*key1.type_info_ == *key2.type_info_) - return true; - return false; -} - -void service_registry::destroy(execution_context::service* service) -{ - delete service; -} - -execution_context::service* service_registry::do_use_service( - const execution_context::service::key& key, - factory_type factory, void* owner) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - // First see if there is an existing service object with the given key. - execution_context::service* service = first_service_; - while (service) - { - if (keys_match(service->key_, key)) - return service; - service = service->next_; - } - - // Create a new service object. The service registry's mutex is not locked - // at this time to allow for nested calls into this function from the new - // service's constructor. - lock.unlock(); - auto_service_ptr new_service = { factory(owner) }; - new_service.ptr_->key_ = key; - lock.lock(); - - // Check that nobody else created another service object of the same type - // while the lock was released. - service = first_service_; - while (service) - { - if (keys_match(service->key_, key)) - return service; - service = service->next_; - } - - // Service was successfully initialised, pass ownership to registry. - new_service.ptr_->next_ = first_service_; - first_service_ = new_service.ptr_; - new_service.ptr_ = 0; - return first_service_; -} - -void service_registry::do_add_service( - const execution_context::service::key& key, - execution_context::service* new_service) -{ - if (&owner_ != &new_service->context()) - asio::detail::throw_exception(invalid_service_owner()); - - asio::detail::mutex::scoped_lock lock(mutex_); - - // Check if there is an existing service object with the given key. - execution_context::service* service = first_service_; - while (service) - { - if (keys_match(service->key_, key)) - asio::detail::throw_exception(service_already_exists()); - service = service->next_; - } - - // Take ownership of the service object. - new_service->key_ = key; - new_service->next_ = first_service_; - first_service_ = new_service; -} - -bool service_registry::do_has_service( - const execution_context::service::key& key) const -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - execution_context::service* service = first_service_; - while (service) - { - if (keys_match(service->key_, key)) - return true; - service = service->next_; - } - - return false; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_SERVICE_REGISTRY_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/signal_set_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/signal_set_service.ipp deleted file mode 100644 index dd68fc1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/signal_set_service.ipp +++ /dev/null @@ -1,669 +0,0 @@ -// -// detail/impl/signal_set_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_SIGNAL_SET_SERVICE_IPP -#define ASIO_DETAIL_IMPL_SIGNAL_SET_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/detail/reactor.hpp" -#include "asio/detail/signal_blocker.hpp" -#include "asio/detail/signal_set_service.hpp" -#include "asio/detail/static_mutex.hpp" -#include "asio/detail/throw_exception.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct signal_state -{ - // Mutex used for protecting global state. - static_mutex mutex_; - - // The read end of the pipe used for signal notifications. - int read_descriptor_; - - // The write end of the pipe used for signal notifications. - int write_descriptor_; - - // Whether the signal state has been prepared for a fork. - bool fork_prepared_; - - // The head of a linked list of all signal_set_service instances. - class signal_set_service* service_list_; - - // A count of the number of objects that are registered for each signal. - std::size_t registration_count_[max_signal_number]; -}; - -signal_state* get_signal_state() -{ - static signal_state state = { - ASIO_STATIC_MUTEX_INIT, -1, -1, false, 0, { 0 } }; - return &state; -} - -void asio_signal_handler(int signal_number) -{ -#if defined(ASIO_WINDOWS) \ - || defined(ASIO_WINDOWS_RUNTIME) \ - || defined(__CYGWIN__) - signal_set_service::deliver_signal(signal_number); -#else // defined(ASIO_WINDOWS) - // || defined(ASIO_WINDOWS_RUNTIME) - // || defined(__CYGWIN__) - int saved_errno = errno; - signal_state* state = get_signal_state(); - signed_size_type result = ::write(state->write_descriptor_, - &signal_number, sizeof(signal_number)); - (void)result; - errno = saved_errno; -#endif // defined(ASIO_WINDOWS) - // || defined(ASIO_WINDOWS_RUNTIME) - // || defined(__CYGWIN__) - -#if defined(ASIO_HAS_SIGNAL) && !defined(ASIO_HAS_SIGACTION) - ::signal(signal_number, asio_signal_handler); -#endif // defined(ASIO_HAS_SIGNAL) && !defined(ASIO_HAS_SIGACTION) -} - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) -class signal_set_service::pipe_read_op : public reactor_op -{ -public: - pipe_read_op() - : reactor_op(&pipe_read_op::do_perform, pipe_read_op::do_complete) - { - } - - static status do_perform(reactor_op*) - { - signal_state* state = get_signal_state(); - - int fd = state->read_descriptor_; - int signal_number = 0; - while (::read(fd, &signal_number, sizeof(int)) == sizeof(int)) - if (signal_number >= 0 && signal_number < max_signal_number) - signal_set_service::deliver_signal(signal_number); - - return not_done; - } - - static void do_complete(void* /*owner*/, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - pipe_read_op* o(static_cast(base)); - delete o; - } -}; -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -signal_set_service::signal_set_service( - asio::io_context& io_context) - : service_base(io_context), - io_context_(asio::use_service(io_context)), -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - reactor_(asio::use_service(io_context)), -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - next_(0), - prev_(0) -{ - get_signal_state()->mutex_.init(); - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - reactor_.init_task(); -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - - for (int i = 0; i < max_signal_number; ++i) - registrations_[i] = 0; - - add_service(this); -} - -signal_set_service::~signal_set_service() -{ - remove_service(this); -} - -void signal_set_service::shutdown() -{ - remove_service(this); - - op_queue ops; - - for (int i = 0; i < max_signal_number; ++i) - { - registration* reg = registrations_[i]; - while (reg) - { - ops.push(*reg->queue_); - reg = reg->next_in_table_; - } - } - - io_context_.abandon_operations(ops); -} - -void signal_set_service::notify_fork( - asio::io_context::fork_event fork_ev) -{ -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - switch (fork_ev) - { - case asio::io_context::fork_prepare: - { - int read_descriptor = state->read_descriptor_; - state->fork_prepared_ = true; - lock.unlock(); - reactor_.deregister_internal_descriptor(read_descriptor, reactor_data_); - reactor_.cleanup_descriptor_data(reactor_data_); - } - break; - case asio::io_context::fork_parent: - if (state->fork_prepared_) - { - int read_descriptor = state->read_descriptor_; - state->fork_prepared_ = false; - lock.unlock(); - reactor_.register_internal_descriptor(reactor::read_op, - read_descriptor, reactor_data_, new pipe_read_op); - } - break; - case asio::io_context::fork_child: - if (state->fork_prepared_) - { - asio::detail::signal_blocker blocker; - close_descriptors(); - open_descriptors(); - int read_descriptor = state->read_descriptor_; - state->fork_prepared_ = false; - lock.unlock(); - reactor_.register_internal_descriptor(reactor::read_op, - read_descriptor, reactor_data_, new pipe_read_op); - } - break; - default: - break; - } -#else // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - (void)fork_ev; -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -} - -void signal_set_service::construct( - signal_set_service::implementation_type& impl) -{ - impl.signals_ = 0; -} - -void signal_set_service::destroy( - signal_set_service::implementation_type& impl) -{ - asio::error_code ignored_ec; - clear(impl, ignored_ec); - cancel(impl, ignored_ec); -} - -asio::error_code signal_set_service::add( - signal_set_service::implementation_type& impl, - int signal_number, asio::error_code& ec) -{ - // Check that the signal number is valid. - if (signal_number < 0 || signal_number >= max_signal_number) - { - ec = asio::error::invalid_argument; - return ec; - } - - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - // Find the appropriate place to insert the registration. - registration** insertion_point = &impl.signals_; - registration* next = impl.signals_; - while (next && next->signal_number_ < signal_number) - { - insertion_point = &next->next_in_set_; - next = next->next_in_set_; - } - - // Only do something if the signal is not already registered. - if (next == 0 || next->signal_number_ != signal_number) - { - registration* new_registration = new registration; - -#if defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - // Register for the signal if we're the first. - if (state->registration_count_[signal_number] == 0) - { -# if defined(ASIO_HAS_SIGACTION) - using namespace std; // For memset. - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = asio_signal_handler; - sigfillset(&sa.sa_mask); - if (::sigaction(signal_number, &sa, 0) == -1) -# else // defined(ASIO_HAS_SIGACTION) - if (::signal(signal_number, asio_signal_handler) == SIG_ERR) -# endif // defined(ASIO_HAS_SIGACTION) - { -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error::invalid_argument; -# else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error_code(errno, - asio::error::get_system_category()); -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - delete new_registration; - return ec; - } - } -#endif // defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - - // Record the new registration in the set. - new_registration->signal_number_ = signal_number; - new_registration->queue_ = &impl.queue_; - new_registration->next_in_set_ = next; - *insertion_point = new_registration; - - // Insert registration into the registration table. - new_registration->next_in_table_ = registrations_[signal_number]; - if (registrations_[signal_number]) - registrations_[signal_number]->prev_in_table_ = new_registration; - registrations_[signal_number] = new_registration; - - ++state->registration_count_[signal_number]; - } - - ec = asio::error_code(); - return ec; -} - -asio::error_code signal_set_service::remove( - signal_set_service::implementation_type& impl, - int signal_number, asio::error_code& ec) -{ - // Check that the signal number is valid. - if (signal_number < 0 || signal_number >= max_signal_number) - { - ec = asio::error::invalid_argument; - return ec; - } - - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - // Find the signal number in the list of registrations. - registration** deletion_point = &impl.signals_; - registration* reg = impl.signals_; - while (reg && reg->signal_number_ < signal_number) - { - deletion_point = ®->next_in_set_; - reg = reg->next_in_set_; - } - - if (reg != 0 && reg->signal_number_ == signal_number) - { -#if defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - // Set signal handler back to the default if we're the last. - if (state->registration_count_[signal_number] == 1) - { -# if defined(ASIO_HAS_SIGACTION) - using namespace std; // For memset. - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = SIG_DFL; - if (::sigaction(signal_number, &sa, 0) == -1) -# else // defined(ASIO_HAS_SIGACTION) - if (::signal(signal_number, SIG_DFL) == SIG_ERR) -# endif // defined(ASIO_HAS_SIGACTION) - { -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error::invalid_argument; -# else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error_code(errno, - asio::error::get_system_category()); -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - return ec; - } - } -#endif // defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - - // Remove the registration from the set. - *deletion_point = reg->next_in_set_; - - // Remove the registration from the registration table. - if (registrations_[signal_number] == reg) - registrations_[signal_number] = reg->next_in_table_; - if (reg->prev_in_table_) - reg->prev_in_table_->next_in_table_ = reg->next_in_table_; - if (reg->next_in_table_) - reg->next_in_table_->prev_in_table_ = reg->prev_in_table_; - - --state->registration_count_[signal_number]; - - delete reg; - } - - ec = asio::error_code(); - return ec; -} - -asio::error_code signal_set_service::clear( - signal_set_service::implementation_type& impl, - asio::error_code& ec) -{ - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - while (registration* reg = impl.signals_) - { -#if defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - // Set signal handler back to the default if we're the last. - if (state->registration_count_[reg->signal_number_] == 1) - { -# if defined(ASIO_HAS_SIGACTION) - using namespace std; // For memset. - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sa.sa_handler = SIG_DFL; - if (::sigaction(reg->signal_number_, &sa, 0) == -1) -# else // defined(ASIO_HAS_SIGACTION) - if (::signal(reg->signal_number_, SIG_DFL) == SIG_ERR) -# endif // defined(ASIO_HAS_SIGACTION) - { -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error::invalid_argument; -# else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error_code(errno, - asio::error::get_system_category()); -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - return ec; - } - } -#endif // defined(ASIO_HAS_SIGNAL) || defined(ASIO_HAS_SIGACTION) - - // Remove the registration from the registration table. - if (registrations_[reg->signal_number_] == reg) - registrations_[reg->signal_number_] = reg->next_in_table_; - if (reg->prev_in_table_) - reg->prev_in_table_->next_in_table_ = reg->next_in_table_; - if (reg->next_in_table_) - reg->next_in_table_->prev_in_table_ = reg->prev_in_table_; - - --state->registration_count_[reg->signal_number_]; - - impl.signals_ = reg->next_in_set_; - delete reg; - } - - ec = asio::error_code(); - return ec; -} - -asio::error_code signal_set_service::cancel( - signal_set_service::implementation_type& impl, - asio::error_code& ec) -{ - ASIO_HANDLER_OPERATION((io_context_.context(), - "signal_set", &impl, 0, "cancel")); - - op_queue ops; - { - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - while (signal_op* op = impl.queue_.front()) - { - op->ec_ = asio::error::operation_aborted; - impl.queue_.pop(); - ops.push(op); - } - } - - io_context_.post_deferred_completions(ops); - - ec = asio::error_code(); - return ec; -} - -void signal_set_service::deliver_signal(int signal_number) -{ - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - signal_set_service* service = state->service_list_; - while (service) - { - op_queue ops; - - registration* reg = service->registrations_[signal_number]; - while (reg) - { - if (reg->queue_->empty()) - { - ++reg->undelivered_; - } - else - { - while (signal_op* op = reg->queue_->front()) - { - op->signal_number_ = signal_number; - reg->queue_->pop(); - ops.push(op); - } - } - - reg = reg->next_in_table_; - } - - service->io_context_.post_deferred_completions(ops); - - service = service->next_; - } -} - -void signal_set_service::add_service(signal_set_service* service) -{ - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - // If this is the first service to be created, open a new pipe. - if (state->service_list_ == 0) - open_descriptors(); -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - - // If an io_context object is thread-unsafe then it must be the only - // io_context used to create signal_set objects. - if (state->service_list_ != 0) - { - if (!ASIO_CONCURRENCY_HINT_IS_LOCKING(SCHEDULER, - service->io_context_.concurrency_hint()) - || !ASIO_CONCURRENCY_HINT_IS_LOCKING(SCHEDULER, - state->service_list_->io_context_.concurrency_hint())) - { - std::logic_error ex( - "Thread-unsafe io_context objects require " - "exclusive access to signal handling."); - asio::detail::throw_exception(ex); - } - } - - // Insert service into linked list of all services. - service->next_ = state->service_list_; - service->prev_ = 0; - if (state->service_list_) - state->service_list_->prev_ = service; - state->service_list_ = service; - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - // Register for pipe readiness notifications. - int read_descriptor = state->read_descriptor_; - lock.unlock(); - service->reactor_.register_internal_descriptor(reactor::read_op, - read_descriptor, service->reactor_data_, new pipe_read_op); -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -} - -void signal_set_service::remove_service(signal_set_service* service) -{ - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - if (service->next_ || service->prev_ || state->service_list_ == service) - { -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - // Disable the pipe readiness notifications. - int read_descriptor = state->read_descriptor_; - lock.unlock(); - service->reactor_.deregister_internal_descriptor( - read_descriptor, service->reactor_data_); - service->reactor_.cleanup_descriptor_data(service->reactor_data_); - lock.lock(); -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - - // Remove service from linked list of all services. - if (state->service_list_ == service) - state->service_list_ = service->next_; - if (service->prev_) - service->prev_->next_ = service->next_; - if (service->next_) - service->next_->prev_= service->prev_; - service->next_ = 0; - service->prev_ = 0; - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - // If this is the last service to be removed, close the pipe. - if (state->service_list_ == 0) - close_descriptors(); -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - } -} - -void signal_set_service::open_descriptors() -{ -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - signal_state* state = get_signal_state(); - - int pipe_fds[2]; - if (::pipe(pipe_fds) == 0) - { - state->read_descriptor_ = pipe_fds[0]; - ::fcntl(state->read_descriptor_, F_SETFL, O_NONBLOCK); - - state->write_descriptor_ = pipe_fds[1]; - ::fcntl(state->write_descriptor_, F_SETFL, O_NONBLOCK); - -#if defined(FD_CLOEXEC) - ::fcntl(state->read_descriptor_, F_SETFD, FD_CLOEXEC); - ::fcntl(state->write_descriptor_, F_SETFD, FD_CLOEXEC); -#endif // defined(FD_CLOEXEC) - } - else - { - asio::error_code ec(errno, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "signal_set_service pipe"); - } -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -} - -void signal_set_service::close_descriptors() -{ -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - signal_state* state = get_signal_state(); - - if (state->read_descriptor_ != -1) - ::close(state->read_descriptor_); - state->read_descriptor_ = -1; - - if (state->write_descriptor_ != -1) - ::close(state->write_descriptor_); - state->write_descriptor_ = -1; -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) -} - -void signal_set_service::start_wait_op( - signal_set_service::implementation_type& impl, signal_op* op) -{ - io_context_.work_started(); - - signal_state* state = get_signal_state(); - static_mutex::scoped_lock lock(state->mutex_); - - registration* reg = impl.signals_; - while (reg) - { - if (reg->undelivered_ > 0) - { - --reg->undelivered_; - op->signal_number_ = reg->signal_number_; - io_context_.post_deferred_completion(op); - return; - } - - reg = reg->next_in_set_; - } - - impl.queue_.push(op); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_SIGNAL_SET_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/socket_ops.ipp b/Sources/Vendor/asio/include/asio/detail/impl/socket_ops.ipp deleted file mode 100644 index 7df3400..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/socket_ops.ipp +++ /dev/null @@ -1,3571 +0,0 @@ -// -// detail/impl/socket_ops.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SOCKET_OPS_IPP -#define ASIO_DETAIL_SOCKET_OPS_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include -#include -#include -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include -# include -# include -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) \ - || defined(__MACH__) && defined(__APPLE__) -# if defined(ASIO_HAS_PTHREADS) -# include -# endif // defined(ASIO_HAS_PTHREADS) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // || defined(__MACH__) && defined(__APPLE__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace socket_ops { - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -struct msghdr { int msg_namelen; }; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#if defined(__hpux) -// HP-UX doesn't declare these functions extern "C", so they are declared again -// here to avoid linker errors about undefined symbols. -extern "C" char* if_indextoname(unsigned int, char*); -extern "C" unsigned int if_nametoindex(const char*); -#endif // defined(__hpux) - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -inline void clear_last_error() -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - WSASetLastError(0); -#else - errno = 0; -#endif -} - -#if !defined(ASIO_WINDOWS_RUNTIME) - -template -inline ReturnType error_wrapper(ReturnType return_value, - asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ec = asio::error_code(WSAGetLastError(), - asio::error::get_system_category()); -#else - ec = asio::error_code(errno, - asio::error::get_system_category()); -#endif - return return_value; -} - -template -inline socket_type call_accept(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = addrlen ? (SockLenType)*addrlen : 0; - socket_type result = ::accept(s, addr, addrlen ? &tmp_addrlen : 0); - if (addrlen) - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -socket_type accept(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return invalid_socket; - } - - clear_last_error(); - - socket_type new_s = error_wrapper(call_accept( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (new_s == invalid_socket) - return new_s; - -#if defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__) - int optval = 1; - int result = error_wrapper(::setsockopt(new_s, - SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval)), ec); - if (result != 0) - { - ::close(new_s); - return invalid_socket; - } -#endif - - ec = asio::error_code(); - return new_s; -} - -socket_type sync_accept(socket_type s, state_type state, - socket_addr_type* addr, std::size_t* addrlen, asio::error_code& ec) -{ - // Accept a socket. - for (;;) - { - // Try to complete the operation without blocking. - socket_type new_socket = socket_ops::accept(s, addr, addrlen, ec); - - // Check if operation succeeded. - if (new_socket != invalid_socket) - return new_socket; - - // Operation failed. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - { - if (state & user_set_non_blocking) - return invalid_socket; - // Fall through to retry operation. - } - else if (ec == asio::error::connection_aborted) - { - if (state & enable_connection_aborted) - return invalid_socket; - // Fall through to retry operation. - } -#if defined(EPROTO) - else if (ec.value() == EPROTO) - { - if (state & enable_connection_aborted) - return invalid_socket; - // Fall through to retry operation. - } -#endif // defined(EPROTO) - else - return invalid_socket; - - // Wait for socket to become ready. - if (socket_ops::poll_read(s, 0, -1, ec) < 0) - return invalid_socket; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_accept(socket_type s, - void* output_buffer, DWORD address_length, - socket_addr_type* addr, std::size_t* addrlen, - socket_type new_socket, asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_aborted; - - if (!ec) - { - // Get the address of the peer. - if (addr && addrlen) - { - LPSOCKADDR local_addr = 0; - int local_addr_length = 0; - LPSOCKADDR remote_addr = 0; - int remote_addr_length = 0; - GetAcceptExSockaddrs(output_buffer, 0, address_length, - address_length, &local_addr, &local_addr_length, - &remote_addr, &remote_addr_length); - if (static_cast(remote_addr_length) > *addrlen) - { - ec = asio::error::invalid_argument; - } - else - { - using namespace std; // For memcpy. - memcpy(addr, remote_addr, remote_addr_length); - *addrlen = static_cast(remote_addr_length); - } - } - - // Need to set the SO_UPDATE_ACCEPT_CONTEXT option so that getsockname - // and getpeername will work on the accepted socket. - SOCKET update_ctx_param = s; - socket_ops::state_type state = 0; - socket_ops::setsockopt(new_socket, state, - SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, - &update_ctx_param, sizeof(SOCKET), ec); - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_accept(socket_type s, - state_type state, socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec, socket_type& new_socket) -{ - for (;;) - { - // Accept the waiting connection. - new_socket = socket_ops::accept(s, addr, addrlen, ec); - - // Check if operation succeeded. - if (new_socket != invalid_socket) - return true; - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Operation failed. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - { - // Fall through to retry operation. - } - else if (ec == asio::error::connection_aborted) - { - if (state & enable_connection_aborted) - return true; - // Fall through to retry operation. - } -#if defined(EPROTO) - else if (ec.value() == EPROTO) - { - if (state & enable_connection_aborted) - return true; - // Fall through to retry operation. - } -#endif // defined(EPROTO) - else - return true; - - return false; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -template -inline int call_bind(SockLenType msghdr::*, - socket_type s, const socket_addr_type* addr, std::size_t addrlen) -{ - return ::bind(s, addr, (SockLenType)addrlen); -} - -int bind(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(call_bind( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -int close(socket_type s, state_type& state, - bool destruction, asio::error_code& ec) -{ - int result = 0; - if (s != invalid_socket) - { - // We don't want the destructor to block, so set the socket to linger in - // the background. If the user doesn't like this behaviour then they need - // to explicitly close the socket. - if (destruction && (state & user_set_linger)) - { - ::linger opt; - opt.l_onoff = 0; - opt.l_linger = 0; - asio::error_code ignored_ec; - socket_ops::setsockopt(s, state, SOL_SOCKET, - SO_LINGER, &opt, sizeof(opt), ignored_ec); - } - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - result = error_wrapper(::closesocket(s), ec); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - result = error_wrapper(::close(s), ec); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - - if (result != 0 - && (ec == asio::error::would_block - || ec == asio::error::try_again)) - { - // According to UNIX Network Programming Vol. 1, it is possible for - // close() to fail with EWOULDBLOCK under certain circumstances. What - // isn't clear is the state of the descriptor after this error. The one - // current OS where this behaviour is seen, Windows, says that the socket - // remains open. Therefore we'll put the descriptor back into blocking - // mode and have another attempt at closing it. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ioctl_arg_type arg = 0; - ::ioctlsocket(s, FIONBIO, &arg); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(__SYMBIAN32__) - int flags = ::fcntl(s, F_GETFL, 0); - if (flags >= 0) - ::fcntl(s, F_SETFL, flags & ~O_NONBLOCK); -# else // defined(__SYMBIAN32__) - ioctl_arg_type arg = 0; - ::ioctl(s, FIONBIO, &arg); -# endif // defined(__SYMBIAN32__) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - state &= ~non_blocking; - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - result = error_wrapper(::closesocket(s), ec); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - result = error_wrapper(::close(s), ec); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - } - } - - if (result == 0) - ec = asio::error_code(); - return result; -} - -bool set_user_non_blocking(socket_type s, - state_type& state, bool value, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return false; - } - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctlsocket(s, FIONBIO, &arg), ec); -#elif defined(__SYMBIAN32__) - int result = error_wrapper(::fcntl(s, F_GETFL, 0), ec); - if (result >= 0) - { - clear_last_error(); - int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK)); - result = error_wrapper(::fcntl(s, F_SETFL, flag), ec); - } -#else - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctl(s, FIONBIO, &arg), ec); -#endif - - if (result >= 0) - { - ec = asio::error_code(); - if (value) - state |= user_set_non_blocking; - else - { - // Clearing the user-set non-blocking mode always overrides any - // internally-set non-blocking flag. Any subsequent asynchronous - // operations will need to re-enable non-blocking I/O. - state &= ~(user_set_non_blocking | internal_non_blocking); - } - return true; - } - - return false; -} - -bool set_internal_non_blocking(socket_type s, - state_type& state, bool value, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return false; - } - - if (!value && (state & user_set_non_blocking)) - { - // It does not make sense to clear the internal non-blocking flag if the - // user still wants non-blocking behaviour. Return an error and let the - // caller figure out whether to update the user-set non-blocking flag. - ec = asio::error::invalid_argument; - return false; - } - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctlsocket(s, FIONBIO, &arg), ec); -#elif defined(__SYMBIAN32__) - int result = error_wrapper(::fcntl(s, F_GETFL, 0), ec); - if (result >= 0) - { - clear_last_error(); - int flag = (value ? (result | O_NONBLOCK) : (result & ~O_NONBLOCK)); - result = error_wrapper(::fcntl(s, F_SETFL, flag), ec); - } -#else - ioctl_arg_type arg = (value ? 1 : 0); - int result = error_wrapper(::ioctl(s, FIONBIO, &arg), ec); -#endif - - if (result >= 0) - { - ec = asio::error_code(); - if (value) - state |= internal_non_blocking; - else - state &= ~internal_non_blocking; - return true; - } - - return false; -} - -int shutdown(socket_type s, int what, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(::shutdown(s, what), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -template -inline int call_connect(SockLenType msghdr::*, - socket_type s, const socket_addr_type* addr, std::size_t addrlen) -{ - return ::connect(s, addr, (SockLenType)addrlen); -} - -int connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(call_connect( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - ec = asio::error_code(); -#if defined(__linux__) - else if (ec == asio::error::try_again) - ec = asio::error::no_buffer_space; -#endif // defined(__linux__) - return result; -} - -void sync_connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec) -{ - // Perform the connect operation. - socket_ops::connect(s, addr, addrlen, ec); - if (ec != asio::error::in_progress - && ec != asio::error::would_block) - { - // The connect operation finished immediately. - return; - } - - // Wait for socket to become ready. - if (socket_ops::poll_connect(s, -1, ec) < 0) - return; - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_ERROR, - &connect_error, &connect_error_len, ec) == socket_error_retval) - return; - - // Return the result of the connect operation. - ec = asio::error_code(connect_error, - asio::error::get_system_category()); -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_connect(socket_type s, asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - switch (ec.value()) - { - case ERROR_CONNECTION_REFUSED: - ec = asio::error::connection_refused; - break; - case ERROR_NETWORK_UNREACHABLE: - ec = asio::error::network_unreachable; - break; - case ERROR_HOST_UNREACHABLE: - ec = asio::error::host_unreachable; - break; - case ERROR_SEM_TIMEOUT: - ec = asio::error::timed_out; - break; - default: - break; - } - - if (!ec) - { - // Need to set the SO_UPDATE_CONNECT_CONTEXT option so that getsockname - // and getpeername will work on the connected socket. - socket_ops::state_type state = 0; - const int so_update_connect_context = 0x7010; - socket_ops::setsockopt(s, state, SOL_SOCKET, - so_update_connect_context, 0, 0, ec); - } -} - -#endif // defined(ASIO_HAS_IOCP) - -bool non_blocking_connect(socket_type s, asio::error_code& ec) -{ - // Check if the connect operation has finished. This is required since we may - // get spurious readiness notifications from the reactor. -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set write_fds; - FD_ZERO(&write_fds); - FD_SET(s, &write_fds); - fd_set except_fds; - FD_ZERO(&except_fds); - FD_SET(s, &except_fds); - timeval zero_timeout; - zero_timeout.tv_sec = 0; - zero_timeout.tv_usec = 0; - int ready = ::select(s + 1, 0, &write_fds, &except_fds, &zero_timeout); -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLOUT; - fds.revents = 0; - int ready = ::poll(&fds, 1, 0); -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - if (ready == 0) - { - // The asynchronous connect operation is still in progress. - return false; - } - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_ERROR, - &connect_error, &connect_error_len, ec) == 0) - { - if (connect_error) - { - ec = asio::error_code(connect_error, - asio::error::get_system_category()); - } - else - ec = asio::error_code(); - } - - return true; -} - -int socketpair(int af, int type, int protocol, - socket_type sv[2], asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - (void)(af); - (void)(type); - (void)(protocol); - (void)(sv); - ec = asio::error::operation_not_supported; - return socket_error_retval; -#else - clear_last_error(); - int result = error_wrapper(::socketpair(af, type, protocol, sv), ec); - if (result == 0) - ec = asio::error_code(); - return result; -#endif -} - -bool sockatmark(socket_type s, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return false; - } - -#if defined(SIOCATMARK) - ioctl_arg_type value = 0; -# if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctlsocket(s, SIOCATMARK, &value), ec); -# else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctl(s, SIOCATMARK, &value), ec); -# endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (result == 0) - ec = asio::error_code(); -# if defined(ENOTTY) - if (ec.value() == ENOTTY) - ec = asio::error::not_socket; -# endif // defined(ENOTTY) -#else // defined(SIOCATMARK) - int value = error_wrapper(::sockatmark(s), ec); - if (value != -1) - ec = asio::error_code(); -#endif // defined(SIOCATMARK) - - return ec ? false : value != 0; -} - -size_t available(socket_type s, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - ioctl_arg_type value = 0; -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctlsocket(s, FIONREAD, &value), ec); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctl(s, FIONREAD, &value), ec); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (result == 0) - ec = asio::error_code(); -#if defined(ENOTTY) - if (ec.value() == ENOTTY) - ec = asio::error::not_socket; -#endif // defined(ENOTTY) - - return ec ? static_cast(0) : static_cast(value); -} - -int listen(socket_type s, int backlog, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(::listen(s, backlog), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -inline void init_buf_iov_base(void*& base, void* addr) -{ - base = addr; -} - -template -inline void init_buf_iov_base(T& base, void* addr) -{ - base = static_cast(addr); -} - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef WSABUF buf; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef iovec buf; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -void init_buf(buf& b, void* data, size_t size) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - b.buf = static_cast(data); - b.len = static_cast(size); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - init_buf_iov_base(b.iov_base, data); - b.iov_len = size; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -void init_buf(buf& b, const void* data, size_t size) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - b.buf = static_cast(const_cast(data)); - b.len = static_cast(size); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - init_buf_iov_base(b.iov_base, const_cast(data)); - b.iov_len = size; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -inline void init_msghdr_msg_name(void*& name, socket_addr_type* addr) -{ - name = addr; -} - -inline void init_msghdr_msg_name(void*& name, const socket_addr_type* addr) -{ - name = const_cast(addr); -} - -template -inline void init_msghdr_msg_name(T& name, socket_addr_type* addr) -{ - name = reinterpret_cast(addr); -} - -template -inline void init_msghdr_msg_name(T& name, const socket_addr_type* addr) -{ - name = reinterpret_cast(const_cast(addr)); -} - -signed_size_type recv(socket_type s, buf* bufs, size_t count, - int flags, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Receive some data. - DWORD recv_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = error_wrapper(::WSARecv(s, bufs, - recv_buf_count, &bytes_transferred, &recv_flags, 0, 0), ec); - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_reset; - else if (ec.value() == ERROR_PORT_UNREACHABLE) - ec = asio::error::connection_refused; - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - ec.assign(0, ec.category()); - if (result != 0) - return socket_error_retval; - ec = asio::error_code(); - return bytes_transferred; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - msg.msg_iov = bufs; - msg.msg_iovlen = static_cast(count); - signed_size_type result = error_wrapper(::recvmsg(s, &msg, flags), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_recv(socket_type s, state_type state, buf* bufs, - size_t count, int flags, bool all_empty, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to read 0 bytes on a stream is a no-op. - if (all_empty && (state & stream_oriented)) - { - ec = asio::error_code(); - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::recv(s, bufs, count, flags, ec); - - // Check if operation succeeded. - if (bytes > 0) - return bytes; - - // Check for EOF. - if ((state & stream_oriented) && bytes == 0) - { - ec = asio::error::eof; - return 0; - } - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_read(s, 0, -1, ec) < 0) - return 0; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_recv(state_type state, - const weak_cancel_token_type& cancel_token, bool all_empty, - asio::error_code& ec, size_t bytes_transferred) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - { - ec.assign(0, ec.category()); - } - - // Check for connection closed. - else if (!ec && bytes_transferred == 0 - && (state & stream_oriented) != 0 - && !all_empty) - { - ec = asio::error::eof; - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_recv(socket_type s, - buf* bufs, size_t count, int flags, bool is_stream, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Read some data. - signed_size_type bytes = socket_ops::recv(s, bufs, count, flags, ec); - - // Check for end of stream. - if (is_stream && bytes == 0) - { - ec = asio::error::eof; - return true; - } - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -signed_size_type recvfrom(socket_type s, buf* bufs, size_t count, - int flags, socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Receive some data. - DWORD recv_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int tmp_addrlen = (int)*addrlen; - int result = error_wrapper(::WSARecvFrom(s, bufs, recv_buf_count, - &bytes_transferred, &recv_flags, addr, &tmp_addrlen, 0, 0), ec); - *addrlen = (std::size_t)tmp_addrlen; - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_reset; - else if (ec.value() == ERROR_PORT_UNREACHABLE) - ec = asio::error::connection_refused; - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - ec.assign(0, ec.category()); - if (result != 0) - return socket_error_retval; - ec = asio::error_code(); - return bytes_transferred; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - init_msghdr_msg_name(msg.msg_name, addr); - msg.msg_namelen = static_cast(*addrlen); - msg.msg_iov = bufs; - msg.msg_iovlen = static_cast(count); - signed_size_type result = error_wrapper(::recvmsg(s, &msg, flags), ec); - *addrlen = msg.msg_namelen; - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_recvfrom(socket_type s, state_type state, buf* bufs, - size_t count, int flags, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::recvfrom( - s, bufs, count, flags, addr, addrlen, ec); - - // Check if operation succeeded. - if (bytes >= 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_read(s, 0, -1, ec) < 0) - return 0; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_recvfrom( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - { - ec.assign(0, ec.category()); - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_recvfrom(socket_type s, - buf* bufs, size_t count, int flags, - socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Read some data. - signed_size_type bytes = socket_ops::recvfrom( - s, bufs, count, flags, addr, addrlen, ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -signed_size_type recvmsg(socket_type s, buf* bufs, size_t count, - int in_flags, int& out_flags, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - out_flags = 0; - return socket_ops::recv(s, bufs, count, in_flags, ec); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - msg.msg_iov = bufs; - msg.msg_iovlen = static_cast(count); - signed_size_type result = error_wrapper(::recvmsg(s, &msg, in_flags), ec); - if (result >= 0) - { - ec = asio::error_code(); - out_flags = msg.msg_flags; - } - else - out_flags = 0; - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_recvmsg(socket_type s, state_type state, - buf* bufs, size_t count, int in_flags, int& out_flags, - asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::recvmsg( - s, bufs, count, in_flags, out_flags, ec); - - // Check if operation succeeded. - if (bytes >= 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_read(s, 0, -1, ec) < 0) - return 0; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_recvmsg( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - else if (ec.value() == WSAEMSGSIZE || ec.value() == ERROR_MORE_DATA) - { - ec.assign(0, ec.category()); - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_recvmsg(socket_type s, - buf* bufs, size_t count, int in_flags, int& out_flags, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Read some data. - signed_size_type bytes = socket_ops::recvmsg( - s, bufs, count, in_flags, out_flags, ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -signed_size_type send(socket_type s, const buf* bufs, size_t count, - int flags, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Send the data. - DWORD send_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD send_flags = flags; - int result = error_wrapper(::WSASend(s, const_cast(bufs), - send_buf_count, &bytes_transferred, send_flags, 0, 0), ec); - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_reset; - else if (ec.value() == ERROR_PORT_UNREACHABLE) - ec = asio::error::connection_refused; - if (result != 0) - return socket_error_retval; - ec = asio::error_code(); - return bytes_transferred; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - msg.msg_iov = const_cast(bufs); - msg.msg_iovlen = static_cast(count); -#if defined(__linux__) - flags |= MSG_NOSIGNAL; -#endif // defined(__linux__) - signed_size_type result = error_wrapper(::sendmsg(s, &msg, flags), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_send(socket_type s, state_type state, const buf* bufs, - size_t count, int flags, bool all_empty, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to write 0 bytes to a stream is a no-op. - if (all_empty && (state & stream_oriented)) - { - ec = asio::error_code(); - return 0; - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::send(s, bufs, count, flags, ec); - - // Check if operation succeeded. - if (bytes >= 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_write(s, 0, -1, ec) < 0) - return 0; - } -} - -#if defined(ASIO_HAS_IOCP) - -void complete_iocp_send( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec) -{ - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } -} - -#else // defined(ASIO_HAS_IOCP) - -bool non_blocking_send(socket_type s, - const buf* bufs, size_t count, int flags, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Write some data. - signed_size_type bytes = socket_ops::send(s, bufs, count, flags, ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // defined(ASIO_HAS_IOCP) - -signed_size_type sendto(socket_type s, const buf* bufs, size_t count, - int flags, const socket_addr_type* addr, std::size_t addrlen, - asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - // Send the data. - DWORD send_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - int result = error_wrapper(::WSASendTo(s, const_cast(bufs), - send_buf_count, &bytes_transferred, flags, addr, - static_cast(addrlen), 0, 0), ec); - if (ec.value() == ERROR_NETNAME_DELETED) - ec = asio::error::connection_reset; - else if (ec.value() == ERROR_PORT_UNREACHABLE) - ec = asio::error::connection_refused; - if (result != 0) - return socket_error_retval; - ec = asio::error_code(); - return bytes_transferred; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - init_msghdr_msg_name(msg.msg_name, addr); - msg.msg_namelen = static_cast(addrlen); - msg.msg_iov = const_cast(bufs); - msg.msg_iovlen = static_cast(count); -#if defined(__linux__) - flags |= MSG_NOSIGNAL; -#endif // defined(__linux__) - signed_size_type result = error_wrapper(::sendmsg(s, &msg, flags), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -size_t sync_sendto(socket_type s, state_type state, const buf* bufs, - size_t count, int flags, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // Write some data. - for (;;) - { - // Try to complete the operation without blocking. - signed_size_type bytes = socket_ops::sendto( - s, bufs, count, flags, addr, addrlen, ec); - - // Check if operation succeeded. - if (bytes >= 0) - return bytes; - - // Operation failed. - if ((state & user_set_non_blocking) - || (ec != asio::error::would_block - && ec != asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_write(s, 0, -1, ec) < 0) - return 0; - } -} - -#if !defined(ASIO_HAS_IOCP) - -bool non_blocking_sendto(socket_type s, - const buf* bufs, size_t count, int flags, - const socket_addr_type* addr, std::size_t addrlen, - asio::error_code& ec, size_t& bytes_transferred) -{ - for (;;) - { - // Write some data. - signed_size_type bytes = socket_ops::sendto( - s, bufs, count, flags, addr, addrlen, ec); - - // Retry operation if interrupted by signal. - if (ec == asio::error::interrupted) - continue; - - // Check if we need to run the operation again. - if (ec == asio::error::would_block - || ec == asio::error::try_again) - return false; - - // Operation is complete. - if (bytes >= 0) - { - ec = asio::error_code(); - bytes_transferred = bytes; - } - else - bytes_transferred = 0; - - return true; - } -} - -#endif // !defined(ASIO_HAS_IOCP) - -socket_type socket(int af, int type, int protocol, - asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - socket_type s = error_wrapper(::WSASocketW(af, type, protocol, 0, 0, - WSA_FLAG_OVERLAPPED), ec); - if (s == invalid_socket) - return s; - - if (af == ASIO_OS_DEF(AF_INET6)) - { - // Try to enable the POSIX default behaviour of having IPV6_V6ONLY set to - // false. This will only succeed on Windows Vista and later versions of - // Windows, where a dual-stack IPv4/v6 implementation is available. - DWORD optval = 0; - ::setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, - reinterpret_cast(&optval), sizeof(optval)); - } - - ec = asio::error_code(); - - return s; -#elif defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__) - socket_type s = error_wrapper(::socket(af, type, protocol), ec); - if (s == invalid_socket) - return s; - - int optval = 1; - int result = error_wrapper(::setsockopt(s, - SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval)), ec); - if (result != 0) - { - ::close(s); - return invalid_socket; - } - - return s; -#else - int s = error_wrapper(::socket(af, type, protocol), ec); - if (s >= 0) - ec = asio::error_code(); - return s; -#endif -} - -template -inline int call_setsockopt(SockLenType msghdr::*, - socket_type s, int level, int optname, - const void* optval, std::size_t optlen) -{ - return ::setsockopt(s, level, optname, - (const char*)optval, (SockLenType)optlen); -} - -int setsockopt(socket_type s, state_type& state, int level, int optname, - const void* optval, std::size_t optlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - if (level == custom_socket_option_level && optname == always_fail_option) - { - ec = asio::error::invalid_argument; - return socket_error_retval; - } - - if (level == custom_socket_option_level - && optname == enable_connection_aborted_option) - { - if (optlen != sizeof(int)) - { - ec = asio::error::invalid_argument; - return socket_error_retval; - } - - if (*static_cast(optval)) - state |= enable_connection_aborted; - else - state &= ~enable_connection_aborted; - ec = asio::error_code(); - return 0; - } - - if (level == SOL_SOCKET && optname == SO_LINGER) - state |= user_set_linger; - -#if defined(__BORLANDC__) - // Mysteriously, using the getsockopt and setsockopt functions directly with - // Borland C++ results in incorrect values being set and read. The bug can be - // worked around by using function addresses resolved with GetProcAddress. - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - typedef int (WSAAPI *sso_t)(SOCKET, int, int, const char*, int); - if (sso_t sso = (sso_t)::GetProcAddress(winsock_module, "setsockopt")) - { - clear_last_error(); - return error_wrapper(sso(s, level, optname, - reinterpret_cast(optval), - static_cast(optlen)), ec); - } - } - ec = asio::error::fault; - return socket_error_retval; -#else // defined(__BORLANDC__) - clear_last_error(); - int result = error_wrapper(call_setsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); - if (result == 0) - { - ec = asio::error_code(); - -#if defined(__MACH__) && defined(__APPLE__) \ - || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) - // To implement portable behaviour for SO_REUSEADDR with UDP sockets we - // need to also set SO_REUSEPORT on BSD-based platforms. - if ((state & datagram_oriented) - && level == SOL_SOCKET && optname == SO_REUSEADDR) - { - call_setsockopt(&msghdr::msg_namelen, s, - SOL_SOCKET, SO_REUSEPORT, optval, optlen); - } -#endif - } - - return result; -#endif // defined(__BORLANDC__) -} - -template -inline int call_getsockopt(SockLenType msghdr::*, - socket_type s, int level, int optname, - void* optval, std::size_t* optlen) -{ - SockLenType tmp_optlen = (SockLenType)*optlen; - int result = ::getsockopt(s, level, optname, (char*)optval, &tmp_optlen); - *optlen = (std::size_t)tmp_optlen; - return result; -} - -int getsockopt(socket_type s, state_type state, int level, int optname, - void* optval, size_t* optlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - if (level == custom_socket_option_level && optname == always_fail_option) - { - ec = asio::error::invalid_argument; - return socket_error_retval; - } - - if (level == custom_socket_option_level - && optname == enable_connection_aborted_option) - { - if (*optlen != sizeof(int)) - { - ec = asio::error::invalid_argument; - return socket_error_retval; - } - - *static_cast(optval) = (state & enable_connection_aborted) ? 1 : 0; - ec = asio::error_code(); - return 0; - } - -#if defined(__BORLANDC__) - // Mysteriously, using the getsockopt and setsockopt functions directly with - // Borland C++ results in incorrect values being set and read. The bug can be - // worked around by using function addresses resolved with GetProcAddress. - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - typedef int (WSAAPI *gso_t)(SOCKET, int, int, char*, int*); - if (gso_t gso = (gso_t)::GetProcAddress(winsock_module, "getsockopt")) - { - clear_last_error(); - int tmp_optlen = static_cast(*optlen); - int result = error_wrapper(gso(s, level, optname, - reinterpret_cast(optval), &tmp_optlen), ec); - *optlen = static_cast(tmp_optlen); - if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY - && ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD)) - { - // Dual-stack IPv4/v6 sockets, and the IPV6_V6ONLY socket option, are - // only supported on Windows Vista and later. To simplify program logic - // we will fake success of getting this option and specify that the - // value is non-zero (i.e. true). This corresponds to the behavior of - // IPv6 sockets on Windows platforms pre-Vista. - *static_cast(optval) = 1; - ec = asio::error_code(); - } - return result; - } - } - ec = asio::error::fault; - return socket_error_retval; -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - clear_last_error(); - int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); - if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY - && ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD)) - { - // Dual-stack IPv4/v6 sockets, and the IPV6_V6ONLY socket option, are only - // supported on Windows Vista and later. To simplify program logic we will - // fake success of getting this option and specify that the value is - // non-zero (i.e. true). This corresponds to the behavior of IPv6 sockets - // on Windows platforms pre-Vista. - *static_cast(optval) = 1; - ec = asio::error_code(); - } - if (result == 0) - ec = asio::error_code(); - return result; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - clear_last_error(); - int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); -#if defined(__linux__) - if (result == 0 && level == SOL_SOCKET && *optlen == sizeof(int) - && (optname == SO_SNDBUF || optname == SO_RCVBUF)) - { - // On Linux, setting SO_SNDBUF or SO_RCVBUF to N actually causes the kernel - // to set the buffer size to N*2. Linux puts additional stuff into the - // buffers so that only about half is actually available to the application. - // The retrieved value is divided by 2 here to make it appear as though the - // correct value has been set. - *static_cast(optval) /= 2; - } -#endif // defined(__linux__) - if (result == 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -template -inline int call_getpeername(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = (SockLenType)*addrlen; - int result = ::getpeername(s, addr, &tmp_addrlen); - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -int getpeername(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, bool cached, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP) \ - || defined(__CYGWIN__) - if (cached) - { - // Check if socket is still connected. - DWORD connect_time = 0; - size_t connect_time_len = sizeof(connect_time); - if (socket_ops::getsockopt(s, 0, SOL_SOCKET, SO_CONNECT_TIME, - &connect_time, &connect_time_len, ec) == socket_error_retval) - { - return socket_error_retval; - } - if (connect_time == 0xFFFFFFFF) - { - ec = asio::error::not_connected; - return socket_error_retval; - } - - // The cached value is still valid. - ec = asio::error_code(); - return 0; - } -#else // defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP) - // || defined(__CYGWIN__) - (void)cached; -#endif // defined(ASIO_WINDOWS) && !defined(ASIO_WINDOWS_APP) - // || defined(__CYGWIN__) - - clear_last_error(); - int result = error_wrapper(call_getpeername( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -template -inline int call_getsockname(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = (SockLenType)*addrlen; - int result = ::getsockname(s, addr, &tmp_addrlen); - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -int getsockname(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); - int result = error_wrapper(call_getsockname( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - ec = asio::error_code(); - return result; -} - -int ioctl(socket_type s, state_type& state, int cmd, - ioctl_arg_type* arg, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctlsocket(s, cmd, arg), ec); -#elif defined(__MACH__) && defined(__APPLE__) \ - || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) - int result = error_wrapper(::ioctl(s, - static_cast(cmd), arg), ec); -#else - int result = error_wrapper(::ioctl(s, cmd, arg), ec); -#endif - if (result >= 0) - { - ec = asio::error_code(); - - // When updating the non-blocking mode we always perform the ioctl syscall, - // even if the flags would otherwise indicate that the socket is already in - // the correct state. This ensures that the underlying socket is put into - // the state that has been requested by the user. If the ioctl syscall was - // successful then we need to update the flags to match. - if (cmd == static_cast(FIONBIO)) - { - if (*arg) - { - state |= user_set_non_blocking; - } - else - { - // Clearing the non-blocking mode always overrides any internally-set - // non-blocking flag. Any subsequent asynchronous operations will need - // to re-enable non-blocking I/O. - state &= ~(user_set_non_blocking | internal_non_blocking); - } - } - } - - return result; -} - -int select(int nfds, fd_set* readfds, fd_set* writefds, - fd_set* exceptfds, timeval* timeout, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (!readfds && !writefds && !exceptfds && timeout) - { - DWORD milliseconds = timeout->tv_sec * 1000 + timeout->tv_usec / 1000; - if (milliseconds == 0) - milliseconds = 1; // Force context switch. - ::Sleep(milliseconds); - ec = asio::error_code(); - return 0; - } - - // The select() call allows timeout values measured in microseconds, but the - // system clock (as wrapped by boost::posix_time::microsec_clock) typically - // has a resolution of 10 milliseconds. This can lead to a spinning select - // reactor, meaning increased CPU usage, when waiting for the earliest - // scheduled timeout if it's less than 10 milliseconds away. To avoid a tight - // spin we'll use a minimum timeout of 1 millisecond. - if (timeout && timeout->tv_sec == 0 - && timeout->tv_usec > 0 && timeout->tv_usec < 1000) - timeout->tv_usec = 1000; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#if defined(__hpux) && defined(__SELECT) - timespec ts; - ts.tv_sec = timeout ? timeout->tv_sec : 0; - ts.tv_nsec = timeout ? timeout->tv_usec * 1000 : 0; - return error_wrapper(::pselect(nfds, readfds, - writefds, exceptfds, timeout ? &ts : 0, 0), ec); -#else - int result = error_wrapper(::select(nfds, readfds, - writefds, exceptfds, timeout), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif -} - -int poll_read(socket_type s, state_type state, - int msec, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set fds; - FD_ZERO(&fds); - FD_SET(s, &fds); - timeval timeout_obj; - timeval* timeout; - if (state & user_set_non_blocking) - { - timeout_obj.tv_sec = 0; - timeout_obj.tv_usec = 0; - timeout = &timeout_obj; - } - else if (msec >= 0) - { - timeout_obj.tv_sec = msec / 1000; - timeout_obj.tv_usec = (msec % 1000) * 1000; - timeout = &timeout_obj; - } - else - timeout = 0; - clear_last_error(); - int result = error_wrapper(::select(s + 1, &fds, 0, 0, timeout), ec); -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLIN; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : msec; - clear_last_error(); - int result = error_wrapper(::poll(&fds, 1, timeout), ec); -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_write(socket_type s, state_type state, - int msec, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set fds; - FD_ZERO(&fds); - FD_SET(s, &fds); - timeval timeout_obj; - timeval* timeout; - if (state & user_set_non_blocking) - { - timeout_obj.tv_sec = 0; - timeout_obj.tv_usec = 0; - timeout = &timeout_obj; - } - else if (msec >= 0) - { - timeout_obj.tv_sec = msec / 1000; - timeout_obj.tv_usec = (msec % 1000) * 1000; - timeout = &timeout_obj; - } - else - timeout = 0; - clear_last_error(); - int result = error_wrapper(::select(s + 1, 0, &fds, 0, timeout), ec); -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLOUT; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : msec; - clear_last_error(); - int result = error_wrapper(::poll(&fds, 1, timeout), ec); -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_error(socket_type s, state_type state, - int msec, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set fds; - FD_ZERO(&fds); - FD_SET(s, &fds); - timeval timeout_obj; - timeval* timeout; - if (state & user_set_non_blocking) - { - timeout_obj.tv_sec = 0; - timeout_obj.tv_usec = 0; - timeout = &timeout_obj; - } - else if (msec >= 0) - { - timeout_obj.tv_sec = msec / 1000; - timeout_obj.tv_usec = (msec % 1000) * 1000; - timeout = &timeout_obj; - } - else - timeout = 0; - clear_last_error(); - int result = error_wrapper(::select(s + 1, 0, 0, &fds, timeout), ec); -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLPRI | POLLERR | POLLHUP; - fds.revents = 0; - int timeout = (state & user_set_non_blocking) ? 0 : msec; - clear_last_error(); - int result = error_wrapper(::poll(&fds, 1, timeout), ec); -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - if (result == 0) - ec = (state & user_set_non_blocking) - ? asio::error::would_block : asio::error_code(); - else if (result > 0) - ec = asio::error_code(); - return result; -} - -int poll_connect(socket_type s, int msec, asio::error_code& ec) -{ - if (s == invalid_socket) - { - ec = asio::error::bad_descriptor; - return socket_error_retval; - } - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - fd_set write_fds; - FD_ZERO(&write_fds); - FD_SET(s, &write_fds); - fd_set except_fds; - FD_ZERO(&except_fds); - FD_SET(s, &except_fds); - timeval timeout_obj; - timeval* timeout; - if (msec >= 0) - { - timeout_obj.tv_sec = msec / 1000; - timeout_obj.tv_usec = (msec % 1000) * 1000; - timeout = &timeout_obj; - } - else - timeout = 0; - clear_last_error(); - int result = error_wrapper(::select( - s + 1, 0, &write_fds, &except_fds, timeout), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#else // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - pollfd fds; - fds.fd = s; - fds.events = POLLOUT; - fds.revents = 0; - clear_last_error(); - int result = error_wrapper(::poll(&fds, 1, msec), ec); - if (result >= 0) - ec = asio::error_code(); - return result; -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) -} - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -const char* inet_ntop(int af, const void* src, char* dest, size_t length, - unsigned long scope_id, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS_RUNTIME) - using namespace std; // For sprintf. - const unsigned char* bytes = static_cast(src); - if (af == ASIO_OS_DEF(AF_INET)) - { - sprintf_s(dest, length, "%u.%u.%u.%u", - bytes[0], bytes[1], bytes[2], bytes[3]); - return dest; - } - else if (af == ASIO_OS_DEF(AF_INET6)) - { - size_t n = 0, b = 0, z = 0; - while (n < length && b < 16) - { - if (bytes[b] == 0 && bytes[b + 1] == 0 && z == 0) - { - do b += 2; while (b < 16 && bytes[b] == 0 && bytes[b + 1] == 0); - n += sprintf_s(dest + n, length - n, ":%s", b < 16 ? "" : ":"), ++z; - } - else - { - n += sprintf_s(dest + n, length - n, "%s%x", b ? ":" : "", - (static_cast(bytes[b]) << 8) | bytes[b + 1]); - b += 2; - } - } - if (scope_id) - n += sprintf_s(dest + n, length - n, "%%%lu", scope_id); - return dest; - } - else - { - ec = asio::error::address_family_not_supported; - return 0; - } -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - using namespace std; // For memcpy. - - if (af != ASIO_OS_DEF(AF_INET) && af != ASIO_OS_DEF(AF_INET6)) - { - ec = asio::error::address_family_not_supported; - return 0; - } - - union - { - socket_addr_type base; - sockaddr_storage_type storage; - sockaddr_in4_type v4; - sockaddr_in6_type v6; - } address; - DWORD address_length; - if (af == ASIO_OS_DEF(AF_INET)) - { - address_length = sizeof(sockaddr_in4_type); - address.v4.sin_family = ASIO_OS_DEF(AF_INET); - address.v4.sin_port = 0; - memcpy(&address.v4.sin_addr, src, sizeof(in4_addr_type)); - } - else // AF_INET6 - { - address_length = sizeof(sockaddr_in6_type); - address.v6.sin6_family = ASIO_OS_DEF(AF_INET6); - address.v6.sin6_port = 0; - address.v6.sin6_flowinfo = 0; - address.v6.sin6_scope_id = scope_id; - memcpy(&address.v6.sin6_addr, src, sizeof(in6_addr_type)); - } - - DWORD string_length = static_cast(length); -#if defined(BOOST_NO_ANSI_APIS) || (defined(_MSC_VER) && (_MSC_VER >= 1800)) - LPWSTR string_buffer = (LPWSTR)_alloca(length * sizeof(WCHAR)); - int result = error_wrapper(::WSAAddressToStringW(&address.base, - address_length, 0, string_buffer, &string_length), ec); - ::WideCharToMultiByte(CP_ACP, 0, string_buffer, -1, - dest, static_cast(length), 0, 0); -#else - int result = error_wrapper(::WSAAddressToStringA( - &address.base, address_length, 0, dest, &string_length), ec); -#endif - - // Windows may set error code on success. - if (result != socket_error_retval) - ec = asio::error_code(); - - // Windows may not set an error code on failure. - else if (result == socket_error_retval && !ec) - ec = asio::error::invalid_argument; - - return result == socket_error_retval ? 0 : dest; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - const char* result = error_wrapper(::inet_ntop( - af, src, dest, static_cast(length)), ec); - if (result == 0 && !ec) - ec = asio::error::invalid_argument; - if (result != 0 && af == ASIO_OS_DEF(AF_INET6) && scope_id != 0) - { - using namespace std; // For strcat and sprintf. - char if_name[(IF_NAMESIZE > 21 ? IF_NAMESIZE : 21) + 1] = "%"; - const in6_addr_type* ipv6_address = static_cast(src); - bool is_link_local = ((ipv6_address->s6_addr[0] == 0xfe) - && ((ipv6_address->s6_addr[1] & 0xc0) == 0x80)); - bool is_multicast_link_local = ((ipv6_address->s6_addr[0] == 0xff) - && ((ipv6_address->s6_addr[1] & 0x0f) == 0x02)); - if ((!is_link_local && !is_multicast_link_local) - || if_indextoname(static_cast(scope_id), if_name + 1) == 0) - sprintf(if_name + 1, "%lu", scope_id); - strcat(dest, if_name); - } - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -int inet_pton(int af, const char* src, void* dest, - unsigned long* scope_id, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS_RUNTIME) - using namespace std; // For sscanf. - unsigned char* bytes = static_cast(dest); - if (af == ASIO_OS_DEF(AF_INET)) - { - unsigned int b0, b1, b2, b3; - if (sscanf_s(src, "%u.%u.%u.%u", &b0, &b1, &b2, &b3) != 4) - { - ec = asio::error::invalid_argument; - return -1; - } - if (b0 > 255 || b1 > 255 || b2 > 255 || b3 > 255) - { - ec = asio::error::invalid_argument; - return -1; - } - bytes[0] = static_cast(b0); - bytes[1] = static_cast(b1); - bytes[2] = static_cast(b2); - bytes[3] = static_cast(b3); - ec = asio::error_code(); - return 1; - } - else if (af == ASIO_OS_DEF(AF_INET6)) - { - unsigned char* bytes = static_cast(dest); - std::memset(bytes, 0, 16); - unsigned char back_bytes[16] = { 0 }; - int num_front_bytes = 0, num_back_bytes = 0; - const char* p = src; - - enum { fword, fcolon, bword, scope, done } state = fword; - unsigned long current_word = 0; - while (state != done) - { - if (current_word > 0xFFFF) - { - ec = asio::error::invalid_argument; - return -1; - } - - switch (state) - { - case fword: - if (*p >= '0' && *p <= '9') - current_word = current_word * 16 + *p++ - '0'; - else if (*p >= 'a' && *p <= 'f') - current_word = current_word * 16 + *p++ - 'a' + 10; - else if (*p >= 'A' && *p <= 'F') - current_word = current_word * 16 + *p++ - 'A' + 10; - else - { - if (num_front_bytes == 16) - { - ec = asio::error::invalid_argument; - return -1; - } - - bytes[num_front_bytes++] = (current_word >> 8) & 0xFF; - bytes[num_front_bytes++] = current_word & 0xFF; - current_word = 0; - - if (*p == ':') - state = fcolon, ++p; - else if (*p == '%') - state = scope, ++p; - else if (*p == 0) - state = done; - else - { - ec = asio::error::invalid_argument; - return -1; - } - } - break; - - case fcolon: - if (*p == ':') - state = bword, ++p; - else - state = fword; - break; - - case bword: - if (*p >= '0' && *p <= '9') - current_word = current_word * 16 + *p++ - '0'; - else if (*p >= 'a' && *p <= 'f') - current_word = current_word * 16 + *p++ - 'a' + 10; - else if (*p >= 'A' && *p <= 'F') - current_word = current_word * 16 + *p++ - 'A' + 10; - else - { - if (num_front_bytes + num_back_bytes == 16) - { - ec = asio::error::invalid_argument; - return -1; - } - - back_bytes[num_back_bytes++] = (current_word >> 8) & 0xFF; - back_bytes[num_back_bytes++] = current_word & 0xFF; - current_word = 0; - - if (*p == ':') - state = bword, ++p; - else if (*p == '%') - state = scope, ++p; - else if (*p == 0) - state = done; - else - { - ec = asio::error::invalid_argument; - return -1; - } - } - break; - - case scope: - if (*p >= '0' && *p <= '9') - current_word = current_word * 10 + *p++ - '0'; - else if (*p == 0) - *scope_id = current_word, state = done; - else - { - ec = asio::error::invalid_argument; - return -1; - } - break; - - default: - break; - } - } - - for (int i = 0; i < num_back_bytes; ++i) - bytes[16 - num_back_bytes + i] = back_bytes[i]; - - ec = asio::error_code(); - return 1; - } - else - { - ec = asio::error::address_family_not_supported; - return -1; - } -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - using namespace std; // For memcpy and strcmp. - - if (af != ASIO_OS_DEF(AF_INET) && af != ASIO_OS_DEF(AF_INET6)) - { - ec = asio::error::address_family_not_supported; - return -1; - } - - union - { - socket_addr_type base; - sockaddr_storage_type storage; - sockaddr_in4_type v4; - sockaddr_in6_type v6; - } address; - int address_length = sizeof(sockaddr_storage_type); -#if defined(BOOST_NO_ANSI_APIS) || (defined(_MSC_VER) && (_MSC_VER >= 1800)) - int num_wide_chars = static_cast(strlen(src)) + 1; - LPWSTR wide_buffer = (LPWSTR)_alloca(num_wide_chars * sizeof(WCHAR)); - ::MultiByteToWideChar(CP_ACP, 0, src, -1, wide_buffer, num_wide_chars); - int result = error_wrapper(::WSAStringToAddressW( - wide_buffer, af, 0, &address.base, &address_length), ec); -#else - int result = error_wrapper(::WSAStringToAddressA( - const_cast(src), af, 0, &address.base, &address_length), ec); -#endif - - if (af == ASIO_OS_DEF(AF_INET)) - { - if (result != socket_error_retval) - { - memcpy(dest, &address.v4.sin_addr, sizeof(in4_addr_type)); - ec = asio::error_code(); - } - else if (strcmp(src, "255.255.255.255") == 0) - { - static_cast(dest)->s_addr = INADDR_NONE; - ec = asio::error_code(); - } - } - else // AF_INET6 - { - if (result != socket_error_retval) - { - memcpy(dest, &address.v6.sin6_addr, sizeof(in6_addr_type)); - if (scope_id) - *scope_id = address.v6.sin6_scope_id; - ec = asio::error_code(); - } - } - - // Windows may not set an error code on failure. - if (result == socket_error_retval && !ec) - ec = asio::error::invalid_argument; - - if (result != socket_error_retval) - ec = asio::error_code(); - - return result == socket_error_retval ? -1 : 1; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - using namespace std; // For strchr, memcpy and atoi. - - // On some platforms, inet_pton fails if an address string contains a scope - // id. Detect and remove the scope id before passing the string to inet_pton. - const bool is_v6 = (af == ASIO_OS_DEF(AF_INET6)); - const char* if_name = is_v6 ? strchr(src, '%') : 0; - char src_buf[max_addr_v6_str_len + 1]; - const char* src_ptr = src; - if (if_name != 0) - { - if (if_name - src > max_addr_v6_str_len) - { - ec = asio::error::invalid_argument; - return 0; - } - memcpy(src_buf, src, if_name - src); - src_buf[if_name - src] = 0; - src_ptr = src_buf; - } - - int result = error_wrapper(::inet_pton(af, src_ptr, dest), ec); - if (result <= 0 && !ec) - ec = asio::error::invalid_argument; - if (result > 0 && is_v6 && scope_id) - { - using namespace std; // For strchr and atoi. - *scope_id = 0; - if (if_name != 0) - { - in6_addr_type* ipv6_address = static_cast(dest); - bool is_link_local = ((ipv6_address->s6_addr[0] == 0xfe) - && ((ipv6_address->s6_addr[1] & 0xc0) == 0x80)); - bool is_multicast_link_local = ((ipv6_address->s6_addr[0] == 0xff) - && ((ipv6_address->s6_addr[1] & 0x0f) == 0x02)); - if (is_link_local || is_multicast_link_local) - *scope_id = if_nametoindex(if_name + 1); - if (*scope_id == 0) - *scope_id = atoi(if_name + 1); - } - } - return result; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -} - -int gethostname(char* name, int namelen, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS_RUNTIME) - try - { - using namespace Windows::Foundation::Collections; - using namespace Windows::Networking; - using namespace Windows::Networking::Connectivity; - IVectorView^ hostnames = NetworkInformation::GetHostNames(); - for (unsigned i = 0; i < hostnames->Size; ++i) - { - HostName^ hostname = hostnames->GetAt(i); - if (hostname->Type == HostNameType::DomainName) - { - std::wstring_convert> converter; - std::string raw_name = converter.to_bytes(hostname->RawName->Data()); - if (namelen > 0 && raw_name.size() < static_cast(namelen)) - { - strcpy_s(name, namelen, raw_name.c_str()); - return 0; - } - } - } - return -1; - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return -1; - } -#else // defined(ASIO_WINDOWS_RUNTIME) - int result = error_wrapper(::gethostname(name, namelen), ec); -# if defined(ASIO_WINDOWS) - if (result == 0) - ec = asio::error_code(); -# endif // defined(ASIO_WINDOWS) - return result; -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#if !defined(ASIO_HAS_GETADDRINFO) - -// The following functions are only needed for emulation of getaddrinfo and -// getnameinfo. - -inline asio::error_code translate_netdb_error(int error) -{ - switch (error) - { - case 0: - return asio::error_code(); - case HOST_NOT_FOUND: - return asio::error::host_not_found; - case TRY_AGAIN: - return asio::error::host_not_found_try_again; - case NO_RECOVERY: - return asio::error::no_recovery; - case NO_DATA: - return asio::error::no_data; - default: - ASIO_ASSERT(false); - return asio::error::invalid_argument; - } -} - -inline hostent* gethostbyaddr(const char* addr, int length, int af, - hostent* result, char* buffer, int buflength, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - (void)(buffer); - (void)(buflength); - hostent* retval = error_wrapper(::gethostbyaddr(addr, length, af), ec); - if (!retval) - return 0; - ec = asio::error_code(); - *result = *retval; - return retval; -#elif defined(__sun) || defined(__QNX__) - int error = 0; - hostent* retval = error_wrapper(::gethostbyaddr_r(addr, length, af, result, - buffer, buflength, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#elif defined(__MACH__) && defined(__APPLE__) - (void)(buffer); - (void)(buflength); - int error = 0; - hostent* retval = error_wrapper(::getipnodebyaddr( - addr, length, af, &error), ec); - if (error) - ec = translate_netdb_error(error); - if (!retval) - return 0; - *result = *retval; - return retval; -#else - hostent* retval = 0; - int error = 0; - error_wrapper(::gethostbyaddr_r(addr, length, af, result, buffer, - buflength, &retval, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#endif -} - -inline hostent* gethostbyname(const char* name, int af, struct hostent* result, - char* buffer, int buflength, int ai_flags, asio::error_code& ec) -{ - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - (void)(buffer); - (void)(buflength); - (void)(ai_flags); - if (af != ASIO_OS_DEF(AF_INET)) - { - ec = asio::error::address_family_not_supported; - return 0; - } - hostent* retval = error_wrapper(::gethostbyname(name), ec); - if (!retval) - return 0; - ec = asio::error_code(); - *result = *retval; - return result; -#elif defined(__sun) || defined(__QNX__) - (void)(ai_flags); - if (af != ASIO_OS_DEF(AF_INET)) - { - ec = asio::error::address_family_not_supported; - return 0; - } - int error = 0; - hostent* retval = error_wrapper(::gethostbyname_r(name, result, buffer, - buflength, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#elif defined(__MACH__) && defined(__APPLE__) - (void)(buffer); - (void)(buflength); - int error = 0; - hostent* retval = error_wrapper(::getipnodebyname( - name, af, ai_flags, &error), ec); - if (error) - ec = translate_netdb_error(error); - if (!retval) - return 0; - *result = *retval; - return retval; -#else - (void)(ai_flags); - if (af != ASIO_OS_DEF(AF_INET)) - { - ec = asio::error::address_family_not_supported; - return 0; - } - hostent* retval = 0; - int error = 0; - error_wrapper(::gethostbyname_r(name, result, - buffer, buflength, &retval, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#endif -} - -inline void freehostent(hostent* h) -{ -#if defined(__MACH__) && defined(__APPLE__) - if (h) - ::freehostent(h); -#else - (void)(h); -#endif -} - -// Emulation of getaddrinfo based on implementation in: -// Stevens, W. R., UNIX Network Programming Vol. 1, 2nd Ed., Prentice-Hall 1998. - -struct gai_search -{ - const char* host; - int family; -}; - -inline int gai_nsearch(const char* host, - const addrinfo_type* hints, gai_search (&search)[2]) -{ - int search_count = 0; - if (host == 0 || host[0] == '\0') - { - if (hints->ai_flags & AI_PASSIVE) - { - // No host and AI_PASSIVE implies wildcard bind. - switch (hints->ai_family) - { - case ASIO_OS_DEF(AF_INET): - search[search_count].host = "0.0.0.0"; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - case ASIO_OS_DEF(AF_INET6): - search[search_count].host = "0::0"; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - break; - case ASIO_OS_DEF(AF_UNSPEC): - search[search_count].host = "0::0"; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - search[search_count].host = "0.0.0.0"; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - default: - break; - } - } - else - { - // No host and not AI_PASSIVE means connect to local host. - switch (hints->ai_family) - { - case ASIO_OS_DEF(AF_INET): - search[search_count].host = "localhost"; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - case ASIO_OS_DEF(AF_INET6): - search[search_count].host = "localhost"; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - break; - case ASIO_OS_DEF(AF_UNSPEC): - search[search_count].host = "localhost"; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - search[search_count].host = "localhost"; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - default: - break; - } - } - } - else - { - // Host is specified. - switch (hints->ai_family) - { - case ASIO_OS_DEF(AF_INET): - search[search_count].host = host; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - case ASIO_OS_DEF(AF_INET6): - search[search_count].host = host; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - break; - case ASIO_OS_DEF(AF_UNSPEC): - search[search_count].host = host; - search[search_count].family = ASIO_OS_DEF(AF_INET6); - ++search_count; - search[search_count].host = host; - search[search_count].family = ASIO_OS_DEF(AF_INET); - ++search_count; - break; - default: - break; - } - } - return search_count; -} - -template -inline T* gai_alloc(std::size_t size = sizeof(T)) -{ - using namespace std; - T* p = static_cast(::operator new(size, std::nothrow)); - if (p) - memset(p, 0, size); - return p; -} - -inline void gai_free(void* p) -{ - ::operator delete(p); -} - -inline void gai_strcpy(char* target, const char* source, std::size_t max_size) -{ - using namespace std; -#if defined(ASIO_HAS_SECURE_RTL) - strcpy_s(target, max_size, source); -#else // defined(ASIO_HAS_SECURE_RTL) - *target = 0; - if (max_size > 0) - strncat(target, source, max_size - 1); -#endif // defined(ASIO_HAS_SECURE_RTL) -} - -enum { gai_clone_flag = 1 << 30 }; - -inline int gai_aistruct(addrinfo_type*** next, const addrinfo_type* hints, - const void* addr, int family) -{ - using namespace std; - - addrinfo_type* ai = gai_alloc(); - if (ai == 0) - return EAI_MEMORY; - - ai->ai_next = 0; - **next = ai; - *next = &ai->ai_next; - - ai->ai_canonname = 0; - ai->ai_socktype = hints->ai_socktype; - if (ai->ai_socktype == 0) - ai->ai_flags |= gai_clone_flag; - ai->ai_protocol = hints->ai_protocol; - ai->ai_family = family; - - switch (ai->ai_family) - { - case ASIO_OS_DEF(AF_INET): - { - sockaddr_in4_type* sinptr = gai_alloc(); - if (sinptr == 0) - return EAI_MEMORY; - sinptr->sin_family = ASIO_OS_DEF(AF_INET); - memcpy(&sinptr->sin_addr, addr, sizeof(in4_addr_type)); - ai->ai_addr = reinterpret_cast(sinptr); - ai->ai_addrlen = sizeof(sockaddr_in4_type); - break; - } - case ASIO_OS_DEF(AF_INET6): - { - sockaddr_in6_type* sin6ptr = gai_alloc(); - if (sin6ptr == 0) - return EAI_MEMORY; - sin6ptr->sin6_family = ASIO_OS_DEF(AF_INET6); - memcpy(&sin6ptr->sin6_addr, addr, sizeof(in6_addr_type)); - ai->ai_addr = reinterpret_cast(sin6ptr); - ai->ai_addrlen = sizeof(sockaddr_in6_type); - break; - } - default: - break; - } - - return 0; -} - -inline addrinfo_type* gai_clone(addrinfo_type* ai) -{ - using namespace std; - - addrinfo_type* new_ai = gai_alloc(); - if (new_ai == 0) - return new_ai; - - new_ai->ai_next = ai->ai_next; - ai->ai_next = new_ai; - - new_ai->ai_flags = 0; - new_ai->ai_family = ai->ai_family; - new_ai->ai_socktype = ai->ai_socktype; - new_ai->ai_protocol = ai->ai_protocol; - new_ai->ai_canonname = 0; - new_ai->ai_addrlen = ai->ai_addrlen; - new_ai->ai_addr = gai_alloc(ai->ai_addrlen); - memcpy(new_ai->ai_addr, ai->ai_addr, ai->ai_addrlen); - - return new_ai; -} - -inline int gai_port(addrinfo_type* aihead, int port, int socktype) -{ - int num_found = 0; - - for (addrinfo_type* ai = aihead; ai; ai = ai->ai_next) - { - if (ai->ai_flags & gai_clone_flag) - { - if (ai->ai_socktype != 0) - { - ai = gai_clone(ai); - if (ai == 0) - return -1; - // ai now points to newly cloned entry. - } - } - else if (ai->ai_socktype != socktype) - { - // Ignore if mismatch on socket type. - continue; - } - - ai->ai_socktype = socktype; - - switch (ai->ai_family) - { - case ASIO_OS_DEF(AF_INET): - { - sockaddr_in4_type* sinptr = - reinterpret_cast(ai->ai_addr); - sinptr->sin_port = port; - ++num_found; - break; - } - case ASIO_OS_DEF(AF_INET6): - { - sockaddr_in6_type* sin6ptr = - reinterpret_cast(ai->ai_addr); - sin6ptr->sin6_port = port; - ++num_found; - break; - } - default: - break; - } - } - - return num_found; -} - -inline int gai_serv(addrinfo_type* aihead, - const addrinfo_type* hints, const char* serv) -{ - using namespace std; - - int num_found = 0; - - if ( -#if defined(AI_NUMERICSERV) - (hints->ai_flags & AI_NUMERICSERV) || -#endif - isdigit(static_cast(serv[0]))) - { - int port = htons(atoi(serv)); - if (hints->ai_socktype) - { - // Caller specifies socket type. - int rc = gai_port(aihead, port, hints->ai_socktype); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - else - { - // Caller does not specify socket type. - int rc = gai_port(aihead, port, SOCK_STREAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - rc = gai_port(aihead, port, SOCK_DGRAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - else - { - // Try service name with TCP first, then UDP. - if (hints->ai_socktype == 0 || hints->ai_socktype == SOCK_STREAM) - { - servent* sptr = getservbyname(serv, "tcp"); - if (sptr != 0) - { - int rc = gai_port(aihead, sptr->s_port, SOCK_STREAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - if (hints->ai_socktype == 0 || hints->ai_socktype == SOCK_DGRAM) - { - servent* sptr = getservbyname(serv, "udp"); - if (sptr != 0) - { - int rc = gai_port(aihead, sptr->s_port, SOCK_DGRAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - } - - if (num_found == 0) - { - if (hints->ai_socktype == 0) - { - // All calls to getservbyname() failed. - return EAI_NONAME; - } - else - { - // Service not supported for socket type. - return EAI_SERVICE; - } - } - - return 0; -} - -inline int gai_echeck(const char* host, const char* service, - int flags, int family, int socktype, int protocol) -{ - (void)(flags); - (void)(protocol); - - // Host or service must be specified. - if (host == 0 || host[0] == '\0') - if (service == 0 || service[0] == '\0') - return EAI_NONAME; - - // Check combination of family and socket type. - switch (family) - { - case ASIO_OS_DEF(AF_UNSPEC): - break; - case ASIO_OS_DEF(AF_INET): - case ASIO_OS_DEF(AF_INET6): - if (service != 0 && service[0] != '\0') - if (socktype != 0 && socktype != SOCK_STREAM && socktype != SOCK_DGRAM) - return EAI_SOCKTYPE; - break; - default: - return EAI_FAMILY; - } - - return 0; -} - -inline void freeaddrinfo_emulation(addrinfo_type* aihead) -{ - addrinfo_type* ai = aihead; - while (ai) - { - gai_free(ai->ai_addr); - gai_free(ai->ai_canonname); - addrinfo_type* ainext = ai->ai_next; - gai_free(ai); - ai = ainext; - } -} - -inline int getaddrinfo_emulation(const char* host, const char* service, - const addrinfo_type* hintsp, addrinfo_type** result) -{ - // Set up linked list of addrinfo structures. - addrinfo_type* aihead = 0; - addrinfo_type** ainext = &aihead; - char* canon = 0; - - // Supply default hints if not specified by caller. - addrinfo_type hints = addrinfo_type(); - hints.ai_family = ASIO_OS_DEF(AF_UNSPEC); - if (hintsp) - hints = *hintsp; - - // If the resolution is not specifically for AF_INET6, remove the AI_V4MAPPED - // and AI_ALL flags. -#if defined(AI_V4MAPPED) - if (hints.ai_family != ASIO_OS_DEF(AF_INET6)) - hints.ai_flags &= ~AI_V4MAPPED; -#endif -#if defined(AI_ALL) - if (hints.ai_family != ASIO_OS_DEF(AF_INET6)) - hints.ai_flags &= ~AI_ALL; -#endif - - // Basic error checking. - int rc = gai_echeck(host, service, hints.ai_flags, hints.ai_family, - hints.ai_socktype, hints.ai_protocol); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - return rc; - } - - gai_search search[2]; - int search_count = gai_nsearch(host, &hints, search); - for (gai_search* sptr = search; sptr < search + search_count; ++sptr) - { - // Check for IPv4 dotted decimal string. - in4_addr_type inaddr; - asio::error_code ec; - if (socket_ops::inet_pton(ASIO_OS_DEF(AF_INET), - sptr->host, &inaddr, 0, ec) == 1) - { - if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC) - && hints.ai_family != ASIO_OS_DEF(AF_INET)) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return EAI_FAMILY; - } - if (sptr->family == ASIO_OS_DEF(AF_INET)) - { - rc = gai_aistruct(&ainext, &hints, &inaddr, ASIO_OS_DEF(AF_INET)); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return rc; - } - } - continue; - } - - // Check for IPv6 hex string. - in6_addr_type in6addr; - if (socket_ops::inet_pton(ASIO_OS_DEF(AF_INET6), - sptr->host, &in6addr, 0, ec) == 1) - { - if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC) - && hints.ai_family != ASIO_OS_DEF(AF_INET6)) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return EAI_FAMILY; - } - if (sptr->family == ASIO_OS_DEF(AF_INET6)) - { - rc = gai_aistruct(&ainext, &hints, &in6addr, - ASIO_OS_DEF(AF_INET6)); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return rc; - } - } - continue; - } - - // Look up hostname. - hostent hent; - char hbuf[8192] = ""; - hostent* hptr = socket_ops::gethostbyname(sptr->host, - sptr->family, &hent, hbuf, sizeof(hbuf), hints.ai_flags, ec); - if (hptr == 0) - { - if (search_count == 2) - { - // Failure is OK if there are multiple searches. - continue; - } - freeaddrinfo_emulation(aihead); - gai_free(canon); - if (ec == asio::error::host_not_found) - return EAI_NONAME; - if (ec == asio::error::host_not_found_try_again) - return EAI_AGAIN; - if (ec == asio::error::no_recovery) - return EAI_FAIL; - if (ec == asio::error::no_data) - return EAI_NONAME; - return EAI_NONAME; - } - - // Check for address family mismatch if one was specified. - if (hints.ai_family != ASIO_OS_DEF(AF_UNSPEC) - && hints.ai_family != hptr->h_addrtype) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - socket_ops::freehostent(hptr); - return EAI_FAMILY; - } - - // Save canonical name first time. - if (host != 0 && host[0] != '\0' && hptr->h_name && hptr->h_name[0] - && (hints.ai_flags & AI_CANONNAME) && canon == 0) - { - std::size_t canon_len = strlen(hptr->h_name) + 1; - canon = gai_alloc(canon_len); - if (canon == 0) - { - freeaddrinfo_emulation(aihead); - socket_ops::freehostent(hptr); - return EAI_MEMORY; - } - gai_strcpy(canon, hptr->h_name, canon_len); - } - - // Create an addrinfo structure for each returned address. - for (char** ap = hptr->h_addr_list; *ap; ++ap) - { - rc = gai_aistruct(&ainext, &hints, *ap, hptr->h_addrtype); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - socket_ops::freehostent(hptr); - return EAI_FAMILY; - } - } - - socket_ops::freehostent(hptr); - } - - // Check if we found anything. - if (aihead == 0) - { - gai_free(canon); - return EAI_NONAME; - } - - // Return canonical name in first entry. - if (host != 0 && host[0] != '\0' && (hints.ai_flags & AI_CANONNAME)) - { - if (canon) - { - aihead->ai_canonname = canon; - canon = 0; - } - else - { - std::size_t canonname_len = strlen(search[0].host) + 1; - aihead->ai_canonname = gai_alloc(canonname_len); - if (aihead->ai_canonname == 0) - { - freeaddrinfo_emulation(aihead); - return EAI_MEMORY; - } - gai_strcpy(aihead->ai_canonname, search[0].host, canonname_len); - } - } - gai_free(canon); - - // Process the service name. - if (service != 0 && service[0] != '\0') - { - rc = gai_serv(aihead, &hints, service); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - return rc; - } - } - - // Return result to caller. - *result = aihead; - return 0; -} - -inline asio::error_code getnameinfo_emulation( - const socket_addr_type* sa, std::size_t salen, char* host, - std::size_t hostlen, char* serv, std::size_t servlen, int flags, - asio::error_code& ec) -{ - using namespace std; - - const char* addr; - size_t addr_len; - unsigned short port; - switch (sa->sa_family) - { - case ASIO_OS_DEF(AF_INET): - if (salen != sizeof(sockaddr_in4_type)) - { - return ec = asio::error::invalid_argument; - } - addr = reinterpret_cast( - &reinterpret_cast(sa)->sin_addr); - addr_len = sizeof(in4_addr_type); - port = reinterpret_cast(sa)->sin_port; - break; - case ASIO_OS_DEF(AF_INET6): - if (salen != sizeof(sockaddr_in6_type)) - { - return ec = asio::error::invalid_argument; - } - addr = reinterpret_cast( - &reinterpret_cast(sa)->sin6_addr); - addr_len = sizeof(in6_addr_type); - port = reinterpret_cast(sa)->sin6_port; - break; - default: - return ec = asio::error::address_family_not_supported; - } - - if (host && hostlen > 0) - { - if (flags & NI_NUMERICHOST) - { - if (socket_ops::inet_ntop(sa->sa_family, addr, host, hostlen, 0, ec) == 0) - { - return ec; - } - } - else - { - hostent hent; - char hbuf[8192] = ""; - hostent* hptr = socket_ops::gethostbyaddr(addr, - static_cast(addr_len), sa->sa_family, - &hent, hbuf, sizeof(hbuf), ec); - if (hptr && hptr->h_name && hptr->h_name[0] != '\0') - { - if (flags & NI_NOFQDN) - { - char* dot = strchr(hptr->h_name, '.'); - if (dot) - { - *dot = 0; - } - } - gai_strcpy(host, hptr->h_name, hostlen); - socket_ops::freehostent(hptr); - } - else - { - socket_ops::freehostent(hptr); - if (flags & NI_NAMEREQD) - { - return ec = asio::error::host_not_found; - } - if (socket_ops::inet_ntop(sa->sa_family, - addr, host, hostlen, 0, ec) == 0) - { - return ec; - } - } - } - } - - if (serv && servlen > 0) - { - if (flags & NI_NUMERICSERV) - { - if (servlen < 6) - { - return ec = asio::error::no_buffer_space; - } -#if defined(ASIO_HAS_SECURE_RTL) - sprintf_s(serv, servlen, "%u", ntohs(port)); -#else // defined(ASIO_HAS_SECURE_RTL) - sprintf(serv, "%u", ntohs(port)); -#endif // defined(ASIO_HAS_SECURE_RTL) - } - else - { -#if defined(ASIO_HAS_PTHREADS) - static ::pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - ::pthread_mutex_lock(&mutex); -#endif // defined(ASIO_HAS_PTHREADS) - servent* sptr = ::getservbyport(port, (flags & NI_DGRAM) ? "udp" : 0); - if (sptr && sptr->s_name && sptr->s_name[0] != '\0') - { - gai_strcpy(serv, sptr->s_name, servlen); - } - else - { - if (servlen < 6) - { - return ec = asio::error::no_buffer_space; - } -#if defined(ASIO_HAS_SECURE_RTL) - sprintf_s(serv, servlen, "%u", ntohs(port)); -#else // defined(ASIO_HAS_SECURE_RTL) - sprintf(serv, "%u", ntohs(port)); -#endif // defined(ASIO_HAS_SECURE_RTL) - } -#if defined(ASIO_HAS_PTHREADS) - ::pthread_mutex_unlock(&mutex); -#endif // defined(ASIO_HAS_PTHREADS) - } - } - - ec = asio::error_code(); - return ec; -} - -#endif // !defined(ASIO_HAS_GETADDRINFO) - -inline asio::error_code translate_addrinfo_error(int error) -{ - switch (error) - { - case 0: - return asio::error_code(); - case EAI_AGAIN: - return asio::error::host_not_found_try_again; - case EAI_BADFLAGS: - return asio::error::invalid_argument; - case EAI_FAIL: - return asio::error::no_recovery; - case EAI_FAMILY: - return asio::error::address_family_not_supported; - case EAI_MEMORY: - return asio::error::no_memory; - case EAI_NONAME: -#if defined(EAI_ADDRFAMILY) - case EAI_ADDRFAMILY: -#endif -#if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME) - case EAI_NODATA: -#endif - return asio::error::host_not_found; - case EAI_SERVICE: - return asio::error::service_not_found; - case EAI_SOCKTYPE: - return asio::error::socket_type_not_supported; - default: // Possibly the non-portable EAI_SYSTEM. -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - return asio::error_code( - WSAGetLastError(), asio::error::get_system_category()); -#else - return asio::error_code( - errno, asio::error::get_system_category()); -#endif - } -} - -asio::error_code getaddrinfo(const char* host, - const char* service, const addrinfo_type& hints, - addrinfo_type** result, asio::error_code& ec) -{ - host = (host && *host) ? host : 0; - service = (service && *service) ? service : 0; - clear_last_error(); -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(ASIO_HAS_GETADDRINFO) - // Building for Windows XP, Windows Server 2003, or later. - int error = ::getaddrinfo(host, service, &hints, result); - return ec = translate_addrinfo_error(error); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *gai_t)(const char*, - const char*, const addrinfo_type*, addrinfo_type**); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (gai_t gai = (gai_t)::GetProcAddress(winsock_module, "getaddrinfo")) - { - int error = gai(host, service, &hints, result); - return ec = translate_addrinfo_error(error); - } - } - int error = getaddrinfo_emulation(host, service, &hints, result); - return ec = translate_addrinfo_error(error); -# endif -#elif !defined(ASIO_HAS_GETADDRINFO) - int error = getaddrinfo_emulation(host, service, &hints, result); - return ec = translate_addrinfo_error(error); -#else - int error = ::getaddrinfo(host, service, &hints, result); -#if defined(__MACH__) && defined(__APPLE__) - using namespace std; // For isdigit and atoi. - if (error == 0 && service && isdigit(static_cast(service[0]))) - { - u_short_type port = host_to_network_short(atoi(service)); - for (addrinfo_type* ai = *result; ai; ai = ai->ai_next) - { - switch (ai->ai_family) - { - case ASIO_OS_DEF(AF_INET): - { - sockaddr_in4_type* sinptr = - reinterpret_cast(ai->ai_addr); - if (sinptr->sin_port == 0) - sinptr->sin_port = port; - break; - } - case ASIO_OS_DEF(AF_INET6): - { - sockaddr_in6_type* sin6ptr = - reinterpret_cast(ai->ai_addr); - if (sin6ptr->sin6_port == 0) - sin6ptr->sin6_port = port; - break; - } - default: - break; - } - } - } -#endif - return ec = translate_addrinfo_error(error); -#endif -} - -asio::error_code background_getaddrinfo( - const weak_cancel_token_type& cancel_token, const char* host, - const char* service, const addrinfo_type& hints, - addrinfo_type** result, asio::error_code& ec) -{ - if (cancel_token.expired()) - ec = asio::error::operation_aborted; - else - socket_ops::getaddrinfo(host, service, hints, result, ec); - return ec; -} - -void freeaddrinfo(addrinfo_type* ai) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(ASIO_HAS_GETADDRINFO) - // Building for Windows XP, Windows Server 2003, or later. - ::freeaddrinfo(ai); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *fai_t)(addrinfo_type*); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (fai_t fai = (fai_t)::GetProcAddress(winsock_module, "freeaddrinfo")) - { - fai(ai); - return; - } - } - freeaddrinfo_emulation(ai); -# endif -#elif !defined(ASIO_HAS_GETADDRINFO) - freeaddrinfo_emulation(ai); -#else - ::freeaddrinfo(ai); -#endif -} - -asio::error_code getnameinfo(const socket_addr_type* addr, - std::size_t addrlen, char* host, std::size_t hostlen, - char* serv, std::size_t servlen, int flags, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(ASIO_HAS_GETADDRINFO) - // Building for Windows XP, Windows Server 2003, or later. - clear_last_error(); - int error = ::getnameinfo(addr, static_cast(addrlen), - host, static_cast(hostlen), - serv, static_cast(servlen), flags); - return ec = translate_addrinfo_error(error); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *gni_t)(const socket_addr_type*, - int, char*, DWORD, char*, DWORD, int); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (gni_t gni = (gni_t)::GetProcAddress(winsock_module, "getnameinfo")) - { - clear_last_error(); - int error = gni(addr, static_cast(addrlen), - host, static_cast(hostlen), - serv, static_cast(servlen), flags); - return ec = translate_addrinfo_error(error); - } - } - clear_last_error(); - return getnameinfo_emulation(addr, addrlen, - host, hostlen, serv, servlen, flags, ec); -# endif -#elif !defined(ASIO_HAS_GETADDRINFO) - using namespace std; // For memcpy. - sockaddr_storage_type tmp_addr; - memcpy(&tmp_addr, addr, addrlen); - addr = reinterpret_cast(&tmp_addr); - clear_last_error(); - return getnameinfo_emulation(addr, addrlen, - host, hostlen, serv, servlen, flags, ec); -#else - clear_last_error(); - int error = ::getnameinfo(addr, addrlen, host, hostlen, serv, servlen, flags); - return ec = translate_addrinfo_error(error); -#endif -} - -asio::error_code sync_getnameinfo( - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int sock_type, asio::error_code& ec) -{ - // First try resolving with the service name. If that fails try resolving - // but allow the service to be returned as a number. - int flags = (sock_type == SOCK_DGRAM) ? NI_DGRAM : 0; - socket_ops::getnameinfo(addr, addrlen, host, - hostlen, serv, servlen, flags, ec); - if (ec) - { - socket_ops::getnameinfo(addr, addrlen, host, hostlen, - serv, servlen, flags | NI_NUMERICSERV, ec); - } - - return ec; -} - -asio::error_code background_getnameinfo( - const weak_cancel_token_type& cancel_token, - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int sock_type, asio::error_code& ec) -{ - if (cancel_token.expired()) - { - ec = asio::error::operation_aborted; - } - else - { - // First try resolving with the service name. If that fails try resolving - // but allow the service to be returned as a number. - int flags = (sock_type == SOCK_DGRAM) ? NI_DGRAM : 0; - socket_ops::getnameinfo(addr, addrlen, host, - hostlen, serv, servlen, flags, ec); - if (ec) - { - socket_ops::getnameinfo(addr, addrlen, host, hostlen, - serv, servlen, flags | NI_NUMERICSERV, ec); - } - } - - return ec; -} - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -u_long_type network_to_host_long(u_long_type value) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - unsigned char* value_p = reinterpret_cast(&value); - u_long_type result = (static_cast(value_p[0]) << 24) - | (static_cast(value_p[1]) << 16) - | (static_cast(value_p[2]) << 8) - | static_cast(value_p[3]); - return result; -#else // defined(ASIO_WINDOWS_RUNTIME) - return ntohl(value); -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -u_long_type host_to_network_long(u_long_type value) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - u_long_type result; - unsigned char* result_p = reinterpret_cast(&result); - result_p[0] = static_cast((value >> 24) & 0xFF); - result_p[1] = static_cast((value >> 16) & 0xFF); - result_p[2] = static_cast((value >> 8) & 0xFF); - result_p[3] = static_cast(value & 0xFF); - return result; -#else // defined(ASIO_WINDOWS_RUNTIME) - return htonl(value); -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -u_short_type network_to_host_short(u_short_type value) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - unsigned char* value_p = reinterpret_cast(&value); - u_short_type result = (static_cast(value_p[0]) << 8) - | static_cast(value_p[1]); - return result; -#else // defined(ASIO_WINDOWS_RUNTIME) - return ntohs(value); -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -u_short_type host_to_network_short(u_short_type value) -{ -#if defined(ASIO_WINDOWS_RUNTIME) - u_short_type result; - unsigned char* result_p = reinterpret_cast(&result); - result_p[0] = static_cast((value >> 8) & 0xFF); - result_p[1] = static_cast(value & 0xFF); - return result; -#else // defined(ASIO_WINDOWS_RUNTIME) - return htons(value); -#endif // defined(ASIO_WINDOWS_RUNTIME) -} - -} // namespace socket_ops -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SOCKET_OPS_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/socket_select_interrupter.ipp b/Sources/Vendor/asio/include/asio/detail/impl/socket_select_interrupter.ipp deleted file mode 100644 index 052f2a7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/socket_select_interrupter.ipp +++ /dev/null @@ -1,176 +0,0 @@ -// -// detail/impl/socket_select_interrupter.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_SOCKET_SELECT_INTERRUPTER_IPP -#define ASIO_DETAIL_IMPL_SOCKET_SELECT_INTERRUPTER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if !defined(ASIO_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - -#include -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_select_interrupter.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -socket_select_interrupter::socket_select_interrupter() -{ - open_descriptors(); -} - -void socket_select_interrupter::open_descriptors() -{ - asio::error_code ec; - socket_holder acceptor(socket_ops::socket( - AF_INET, SOCK_STREAM, IPPROTO_TCP, ec)); - if (acceptor.get() == invalid_socket) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - int opt = 1; - socket_ops::state_type acceptor_state = 0; - socket_ops::setsockopt(acceptor.get(), acceptor_state, - SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt), ec); - - using namespace std; // For memset. - sockaddr_in4_type addr; - std::size_t addr_len = sizeof(addr); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_addr.s_addr = socket_ops::host_to_network_long(INADDR_LOOPBACK); - addr.sin_port = 0; - if (socket_ops::bind(acceptor.get(), (const socket_addr_type*)&addr, - addr_len, ec) == socket_error_retval) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - if (socket_ops::getsockname(acceptor.get(), (socket_addr_type*)&addr, - &addr_len, ec) == socket_error_retval) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - // Some broken firewalls on Windows will intermittently cause getsockname to - // return 0.0.0.0 when the socket is actually bound to 127.0.0.1. We - // explicitly specify the target address here to work around this problem. - if (addr.sin_addr.s_addr == socket_ops::host_to_network_long(INADDR_ANY)) - addr.sin_addr.s_addr = socket_ops::host_to_network_long(INADDR_LOOPBACK); - - if (socket_ops::listen(acceptor.get(), - SOMAXCONN, ec) == socket_error_retval) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - socket_holder client(socket_ops::socket( - AF_INET, SOCK_STREAM, IPPROTO_TCP, ec)); - if (client.get() == invalid_socket) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - if (socket_ops::connect(client.get(), (const socket_addr_type*)&addr, - addr_len, ec) == socket_error_retval) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - socket_holder server(socket_ops::accept(acceptor.get(), 0, 0, ec)); - if (server.get() == invalid_socket) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - ioctl_arg_type non_blocking = 1; - socket_ops::state_type client_state = 0; - if (socket_ops::ioctl(client.get(), client_state, - FIONBIO, &non_blocking, ec)) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - opt = 1; - socket_ops::setsockopt(client.get(), client_state, - IPPROTO_TCP, TCP_NODELAY, &opt, sizeof(opt), ec); - - non_blocking = 1; - socket_ops::state_type server_state = 0; - if (socket_ops::ioctl(server.get(), server_state, - FIONBIO, &non_blocking, ec)) - asio::detail::throw_error(ec, "socket_select_interrupter"); - - opt = 1; - socket_ops::setsockopt(server.get(), server_state, - IPPROTO_TCP, TCP_NODELAY, &opt, sizeof(opt), ec); - - read_descriptor_ = server.release(); - write_descriptor_ = client.release(); -} - -socket_select_interrupter::~socket_select_interrupter() -{ - close_descriptors(); -} - -void socket_select_interrupter::close_descriptors() -{ - asio::error_code ec; - socket_ops::state_type state = socket_ops::internal_non_blocking; - if (read_descriptor_ != invalid_socket) - socket_ops::close(read_descriptor_, state, true, ec); - if (write_descriptor_ != invalid_socket) - socket_ops::close(write_descriptor_, state, true, ec); -} - -void socket_select_interrupter::recreate() -{ - close_descriptors(); - - write_descriptor_ = invalid_socket; - read_descriptor_ = invalid_socket; - - open_descriptors(); -} - -void socket_select_interrupter::interrupt() -{ - char byte = 0; - socket_ops::buf b; - socket_ops::init_buf(b, &byte, 1); - asio::error_code ec; - socket_ops::send(write_descriptor_, &b, 1, 0, ec); -} - -bool socket_select_interrupter::reset() -{ - char data[1024]; - socket_ops::buf b; - socket_ops::init_buf(b, data, sizeof(data)); - asio::error_code ec; - int bytes_read = socket_ops::recv(read_descriptor_, &b, 1, 0, ec); - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = socket_ops::recv(read_descriptor_, &b, 1, 0, ec); - return was_interrupted; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_SOCKET_SELECT_INTERRUPTER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.hpp b/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.hpp deleted file mode 100644 index 0e18ca0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.hpp +++ /dev/null @@ -1,179 +0,0 @@ -// -// detail/impl/strand_executor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_HPP -#define ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/call_stack.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/executor_work_guard.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class strand_executor_service::invoker -{ -public: - invoker(const implementation_type& impl, Executor& ex) - : impl_(impl), - work_(ex) - { - } - - invoker(const invoker& other) - : impl_(other.impl_), - work_(other.work_) - { - } - -#if defined(ASIO_HAS_MOVE) - invoker(invoker&& other) - : impl_(ASIO_MOVE_CAST(implementation_type)(other.impl_)), - work_(ASIO_MOVE_CAST(executor_work_guard)(other.work_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - struct on_invoker_exit - { - invoker* this_; - - ~on_invoker_exit() - { - this_->impl_->mutex_->lock(); - this_->impl_->ready_queue_.push(this_->impl_->waiting_queue_); - bool more_handlers = this_->impl_->locked_ = - !this_->impl_->ready_queue_.empty(); - this_->impl_->mutex_->unlock(); - - if (more_handlers) - { - Executor ex(this_->work_.get_executor()); - recycling_allocator allocator; - ex.post(ASIO_MOVE_CAST(invoker)(*this_), allocator); - } - } - }; - - void operator()() - { - // Indicate that this strand is executing on the current thread. - call_stack::context ctx(impl_.get()); - - // Ensure the next handler, if any, is scheduled on block exit. - on_invoker_exit on_exit = { this }; - (void)on_exit; - - // Run all ready handlers. No lock is required since the ready queue is - // accessed only within the strand. - asio::error_code ec; - while (scheduler_operation* o = impl_->ready_queue_.front()) - { - impl_->ready_queue_.pop(); - o->complete(impl_.get(), ec, 0); - } - } - -private: - implementation_type impl_; - executor_work_guard work_; -}; - -template -void strand_executor_service::dispatch(const implementation_type& impl, - Executor& ex, ASIO_MOVE_ARG(Function) function, const Allocator& a) -{ - typedef typename decay::type function_type; - - // If we are already in the strand then the function can run immediately. - if (call_stack::contains(impl.get())) - { - // Make a local, non-const copy of the function. - function_type tmp(ASIO_MOVE_CAST(Function)(function)); - - fenced_block b(fenced_block::full); - asio_handler_invoke_helpers::invoke(tmp, tmp); - return; - } - - // Allocate and construct an operation to wrap the function. - typedef executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(function), a); - - ASIO_HANDLER_CREATION((impl->service_->context(), *p.p, - "strand_executor", impl.get(), 0, "dispatch")); - - // Add the function to the strand and schedule the strand if required. - bool first = enqueue(impl, p.p); - p.v = p.p = 0; - if (first) - ex.dispatch(invoker(impl, ex), a); -} - -// Request invocation of the given function and return immediately. -template -void strand_executor_service::post(const implementation_type& impl, - Executor& ex, ASIO_MOVE_ARG(Function) function, const Allocator& a) -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(function), a); - - ASIO_HANDLER_CREATION((impl->service_->context(), *p.p, - "strand_executor", impl.get(), 0, "post")); - - // Add the function to the strand and schedule the strand if required. - bool first = enqueue(impl, p.p); - p.v = p.p = 0; - if (first) - ex.post(invoker(impl, ex), a); -} - -// Request invocation of the given function and return immediately. -template -void strand_executor_service::defer(const implementation_type& impl, - Executor& ex, ASIO_MOVE_ARG(Function) function, const Allocator& a) -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(function), a); - - ASIO_HANDLER_CREATION((impl->service_->context(), *p.p, - "strand_executor", impl.get(), 0, "defer")); - - // Add the function to the strand and schedule the strand if required. - bool first = enqueue(impl, p.p); - p.v = p.p = 0; - if (first) - ex.defer(invoker(impl, ex), a); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.ipp deleted file mode 100644 index 365652e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/strand_executor_service.ipp +++ /dev/null @@ -1,134 +0,0 @@ -// -// detail/impl/strand_executor_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_IPP -#define ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/strand_executor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -strand_executor_service::strand_executor_service(execution_context& ctx) - : execution_context_service_base(ctx), - mutex_(), - salt_(0), - impl_list_(0) -{ -} - -void strand_executor_service::shutdown() -{ - op_queue ops; - - asio::detail::mutex::scoped_lock lock(mutex_); - - strand_impl* impl = impl_list_; - while (impl) - { - impl->mutex_->lock(); - impl->shutdown_ = true; - ops.push(impl->waiting_queue_); - ops.push(impl->ready_queue_); - impl->mutex_->unlock(); - impl = impl->next_; - } -} - -strand_executor_service::implementation_type -strand_executor_service::create_implementation() -{ - implementation_type new_impl(new strand_impl); - new_impl->locked_ = false; - new_impl->shutdown_ = false; - - asio::detail::mutex::scoped_lock lock(mutex_); - - // Select a mutex from the pool of shared mutexes. - std::size_t salt = salt_++; - std::size_t mutex_index = reinterpret_cast(new_impl.get()); - mutex_index += (reinterpret_cast(new_impl.get()) >> 3); - mutex_index ^= salt + 0x9e3779b9 + (mutex_index << 6) + (mutex_index >> 2); - mutex_index = mutex_index % num_mutexes; - if (!mutexes_[mutex_index].get()) - mutexes_[mutex_index].reset(new mutex); - new_impl->mutex_ = mutexes_[mutex_index].get(); - - // Insert implementation into linked list of all implementations. - new_impl->next_ = impl_list_; - new_impl->prev_ = 0; - if (impl_list_) - impl_list_->prev_ = new_impl.get(); - impl_list_ = new_impl.get(); - new_impl->service_ = this; - - return new_impl; -} - -strand_executor_service::strand_impl::~strand_impl() -{ - asio::detail::mutex::scoped_lock lock(service_->mutex_); - - // Remove implementation from linked list of all implementations. - if (service_->impl_list_ == this) - service_->impl_list_ = next_; - if (prev_) - prev_->next_ = next_; - if (next_) - next_->prev_= prev_; -} - -bool strand_executor_service::enqueue(const implementation_type& impl, - scheduler_operation* op) -{ - impl->mutex_->lock(); - if (impl->shutdown_) - { - impl->mutex_->unlock(); - op->destroy(); - return false; - } - else if (impl->locked_) - { - // Some other function already holds the strand lock. Enqueue for later. - impl->waiting_queue_.push(op); - impl->mutex_->unlock(); - return false; - } - else - { - // The function is acquiring the strand lock and so is responsible for - // scheduling the strand. - impl->locked_ = true; - impl->mutex_->unlock(); - impl->ready_queue_.push(op); - return true; - } -} - -bool strand_executor_service::running_in_this_thread( - const implementation_type& impl) -{ - return !!call_stack::contains(impl.get()); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_STRAND_EXECUTOR_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/strand_service.hpp b/Sources/Vendor/asio/include/asio/detail/impl/strand_service.hpp deleted file mode 100644 index da5b716..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/strand_service.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/impl/strand_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_STRAND_SERVICE_HPP -#define ASIO_DETAIL_IMPL_STRAND_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/call_stack.hpp" -#include "asio/detail/completion_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -inline strand_service::strand_impl::strand_impl() - : operation(&strand_service::do_complete), - locked_(false) -{ -} - -struct strand_service::on_dispatch_exit -{ - io_context_impl* io_context_; - strand_impl* impl_; - - ~on_dispatch_exit() - { - impl_->mutex_.lock(); - impl_->ready_queue_.push(impl_->waiting_queue_); - bool more_handlers = impl_->locked_ = !impl_->ready_queue_.empty(); - impl_->mutex_.unlock(); - - if (more_handlers) - io_context_->post_immediate_completion(impl_, false); - } -}; - -template -void strand_service::dispatch(strand_service::implementation_type& impl, - Handler& handler) -{ - // If we are already in the strand then the handler can run immediately. - if (call_stack::contains(impl)) - { - fenced_block b(fenced_block::full); - asio_handler_invoke_helpers::invoke(handler, handler); - return; - } - - // Allocate and construct an operation to wrap the handler. - typedef completion_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((this->context(), - *p.p, "strand", impl, 0, "dispatch")); - - bool dispatch_immediately = do_dispatch(impl, p.p); - operation* o = p.p; - p.v = p.p = 0; - - if (dispatch_immediately) - { - // Indicate that this strand is executing on the current thread. - call_stack::context ctx(impl); - - // Ensure the next handler, if any, is scheduled on block exit. - on_dispatch_exit on_exit = { &io_context_, impl }; - (void)on_exit; - - completion_handler::do_complete( - &io_context_, o, asio::error_code(), 0); - } -} - -// Request the io_context to invoke the given handler and return immediately. -template -void strand_service::post(strand_service::implementation_type& impl, - Handler& handler) -{ - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef completion_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((this->context(), - *p.p, "strand", impl, 0, "post")); - - do_post(impl, p.p, is_continuation); - p.v = p.p = 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_STRAND_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/strand_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/strand_service.ipp deleted file mode 100644 index cbaf25b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/strand_service.ipp +++ /dev/null @@ -1,177 +0,0 @@ -// -// detail/impl/strand_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_STRAND_SERVICE_IPP -#define ASIO_DETAIL_IMPL_STRAND_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/call_stack.hpp" -#include "asio/detail/strand_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct strand_service::on_do_complete_exit -{ - io_context_impl* owner_; - strand_impl* impl_; - - ~on_do_complete_exit() - { - impl_->mutex_.lock(); - impl_->ready_queue_.push(impl_->waiting_queue_); - bool more_handlers = impl_->locked_ = !impl_->ready_queue_.empty(); - impl_->mutex_.unlock(); - - if (more_handlers) - owner_->post_immediate_completion(impl_, true); - } -}; - -strand_service::strand_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - io_context_(asio::use_service(io_context)), - mutex_(), - salt_(0) -{ -} - -void strand_service::shutdown() -{ - op_queue ops; - - asio::detail::mutex::scoped_lock lock(mutex_); - - for (std::size_t i = 0; i < num_implementations; ++i) - { - if (strand_impl* impl = implementations_[i].get()) - { - ops.push(impl->waiting_queue_); - ops.push(impl->ready_queue_); - } - } -} - -void strand_service::construct(strand_service::implementation_type& impl) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - std::size_t salt = salt_++; -#if defined(ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION) - std::size_t index = salt; -#else // defined(ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION) - std::size_t index = reinterpret_cast(&impl); - index += (reinterpret_cast(&impl) >> 3); - index ^= salt + 0x9e3779b9 + (index << 6) + (index >> 2); -#endif // defined(ASIO_ENABLE_SEQUENTIAL_STRAND_ALLOCATION) - index = index % num_implementations; - - if (!implementations_[index].get()) - implementations_[index].reset(new strand_impl); - impl = implementations_[index].get(); -} - -bool strand_service::running_in_this_thread( - const implementation_type& impl) const -{ - return call_stack::contains(impl) != 0; -} - -bool strand_service::do_dispatch(implementation_type& impl, operation* op) -{ - // If we are running inside the io_context, and no other handler already - // holds the strand lock, then the handler can run immediately. - bool can_dispatch = io_context_.can_dispatch(); - impl->mutex_.lock(); - if (can_dispatch && !impl->locked_) - { - // Immediate invocation is allowed. - impl->locked_ = true; - impl->mutex_.unlock(); - return true; - } - - if (impl->locked_) - { - // Some other handler already holds the strand lock. Enqueue for later. - impl->waiting_queue_.push(op); - impl->mutex_.unlock(); - } - else - { - // The handler is acquiring the strand lock and so is responsible for - // scheduling the strand. - impl->locked_ = true; - impl->mutex_.unlock(); - impl->ready_queue_.push(op); - io_context_.post_immediate_completion(impl, false); - } - - return false; -} - -void strand_service::do_post(implementation_type& impl, - operation* op, bool is_continuation) -{ - impl->mutex_.lock(); - if (impl->locked_) - { - // Some other handler already holds the strand lock. Enqueue for later. - impl->waiting_queue_.push(op); - impl->mutex_.unlock(); - } - else - { - // The handler is acquiring the strand lock and so is responsible for - // scheduling the strand. - impl->locked_ = true; - impl->mutex_.unlock(); - impl->ready_queue_.push(op); - io_context_.post_immediate_completion(impl, is_continuation); - } -} - -void strand_service::do_complete(void* owner, operation* base, - const asio::error_code& ec, std::size_t /*bytes_transferred*/) -{ - if (owner) - { - strand_impl* impl = static_cast(base); - - // Indicate that this strand is executing on the current thread. - call_stack::context ctx(impl); - - // Ensure the next handler, if any, is scheduled on block exit. - on_do_complete_exit on_exit; - on_exit.owner_ = static_cast(owner); - on_exit.impl_ = impl; - - // Run all ready handlers. No lock is required since the ready queue is - // accessed only within the strand. - while (operation* o = impl->ready_queue_.front()) - { - impl->ready_queue_.pop(); - o->complete(owner, ec, 0); - } - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_STRAND_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/throw_error.ipp b/Sources/Vendor/asio/include/asio/detail/impl/throw_error.ipp deleted file mode 100644 index a540cd2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/throw_error.ipp +++ /dev/null @@ -1,60 +0,0 @@ -// -// detail/impl/throw_error.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_THROW_ERROR_IPP -#define ASIO_DETAIL_IMPL_THROW_ERROR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void do_throw_error(const asio::error_code& err) -{ - asio::system_error e(err); - asio::detail::throw_exception(e); -} - -void do_throw_error(const asio::error_code& err, const char* location) -{ - // boostify: non-boost code starts here -#if defined(ASIO_MSVC) && defined(ASIO_HAS_STD_SYSTEM_ERROR) - // Microsoft's implementation of std::system_error is non-conformant in that - // it ignores the error code's message when a "what" string is supplied. We'll - // work around this by explicitly formatting the "what" string. - std::string what_msg = location; - what_msg += ": "; - what_msg += err.message(); - asio::system_error e(err, what_msg); - asio::detail::throw_exception(e); -#else // defined(ASIO_MSVC) && defined(ASIO_HAS_STD_SYSTEM_ERROR) - // boostify: non-boost code ends here - asio::system_error e(err, location); - asio::detail::throw_exception(e); - // boostify: non-boost code starts here -#endif // defined(ASIO_MSVC) && defined(ASIO_HAS_STD_SYSTEM_ERROR) - // boostify: non-boost code ends here -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_THROW_ERROR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_ptime.ipp b/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_ptime.ipp deleted file mode 100644 index 742837f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_ptime.ipp +++ /dev/null @@ -1,91 +0,0 @@ -// -// detail/impl/timer_queue_ptime.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_TIMER_QUEUE_PTIME_IPP -#define ASIO_DETAIL_IMPL_TIMER_QUEUE_PTIME_IPP - -#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_BOOST_DATE_TIME) - -#include "asio/detail/timer_queue_ptime.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -timer_queue >::timer_queue() -{ -} - -timer_queue >::~timer_queue() -{ -} - -bool timer_queue >::enqueue_timer( - const time_type& time, per_timer_data& timer, wait_op* op) -{ - return impl_.enqueue_timer(time, timer, op); -} - -bool timer_queue >::empty() const -{ - return impl_.empty(); -} - -long timer_queue >::wait_duration_msec( - long max_duration) const -{ - return impl_.wait_duration_msec(max_duration); -} - -long timer_queue >::wait_duration_usec( - long max_duration) const -{ - return impl_.wait_duration_usec(max_duration); -} - -void timer_queue >::get_ready_timers( - op_queue& ops) -{ - impl_.get_ready_timers(ops); -} - -void timer_queue >::get_all_timers( - op_queue& ops) -{ - impl_.get_all_timers(ops); -} - -std::size_t timer_queue >::cancel_timer( - per_timer_data& timer, op_queue& ops, std::size_t max_cancelled) -{ - return impl_.cancel_timer(timer, ops, max_cancelled); -} - -void timer_queue >::move_timer( - per_timer_data& target, per_timer_data& source) -{ - impl_.move_timer(target, source); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#endif // ASIO_DETAIL_IMPL_TIMER_QUEUE_PTIME_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_set.ipp b/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_set.ipp deleted file mode 100644 index b516548..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/timer_queue_set.ipp +++ /dev/null @@ -1,101 +0,0 @@ -// -// detail/impl/timer_queue_set.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_TIMER_QUEUE_SET_IPP -#define ASIO_DETAIL_IMPL_TIMER_QUEUE_SET_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/timer_queue_set.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -timer_queue_set::timer_queue_set() - : first_(0) -{ -} - -void timer_queue_set::insert(timer_queue_base* q) -{ - q->next_ = first_; - first_ = q; -} - -void timer_queue_set::erase(timer_queue_base* q) -{ - if (first_) - { - if (q == first_) - { - first_ = q->next_; - q->next_ = 0; - return; - } - - for (timer_queue_base* p = first_; p->next_; p = p->next_) - { - if (p->next_ == q) - { - p->next_ = q->next_; - q->next_ = 0; - return; - } - } - } -} - -bool timer_queue_set::all_empty() const -{ - for (timer_queue_base* p = first_; p; p = p->next_) - if (!p->empty()) - return false; - return true; -} - -long timer_queue_set::wait_duration_msec(long max_duration) const -{ - long min_duration = max_duration; - for (timer_queue_base* p = first_; p; p = p->next_) - min_duration = p->wait_duration_msec(min_duration); - return min_duration; -} - -long timer_queue_set::wait_duration_usec(long max_duration) const -{ - long min_duration = max_duration; - for (timer_queue_base* p = first_; p; p = p->next_) - min_duration = p->wait_duration_usec(min_duration); - return min_duration; -} - -void timer_queue_set::get_ready_timers(op_queue& ops) -{ - for (timer_queue_base* p = first_; p; p = p->next_) - p->get_ready_timers(ops); -} - -void timer_queue_set::get_all_timers(op_queue& ops) -{ - for (timer_queue_base* p = first_; p; p = p->next_) - p->get_all_timers(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IMPL_TIMER_QUEUE_SET_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_event.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_event.ipp deleted file mode 100644 index 6f74649..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_event.ipp +++ /dev/null @@ -1,76 +0,0 @@ -// -// detail/win_event.ipp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WIN_EVENT_IPP -#define ASIO_DETAIL_IMPL_WIN_EVENT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_event.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_event::win_event() - : state_(0) -{ -#if defined(ASIO_WINDOWS_APP) - events_[0] = ::CreateEventExW(0, 0, - CREATE_EVENT_MANUAL_RESET, EVENT_ALL_ACCESS); -#else // defined(ASIO_WINDOWS_APP) - events_[0] = ::CreateEventW(0, true, false, 0); -#endif // defined(ASIO_WINDOWS_APP) - if (!events_[0]) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "event"); - } - -#if defined(ASIO_WINDOWS_APP) - events_[1] = ::CreateEventExW(0, 0, 0, EVENT_ALL_ACCESS); -#else // defined(ASIO_WINDOWS_APP) - events_[1] = ::CreateEventW(0, false, false, 0); -#endif // defined(ASIO_WINDOWS_APP) - if (!events_[1]) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(events_[0]); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "event"); - } -} - -win_event::~win_event() -{ - ::CloseHandle(events_[0]); - ::CloseHandle(events_[1]); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_IMPL_WIN_EVENT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_handle_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_handle_service.ipp deleted file mode 100644 index 9cba2b0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_handle_service.ipp +++ /dev/null @@ -1,525 +0,0 @@ -// -// detail/impl/win_iocp_handle_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_DETAIL_IMPL_WIN_IOCP_HANDLE_SERVICE_IPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_HANDLE_SERVICE_IPP - -#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_IOCP) - -#include "asio/detail/win_iocp_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_handle_service::overlapped_wrapper - : public OVERLAPPED -{ -public: - explicit overlapped_wrapper(asio::error_code& ec) - { - Internal = 0; - InternalHigh = 0; - Offset = 0; - OffsetHigh = 0; - - // Create a non-signalled manual-reset event, for GetOverlappedResult. - hEvent = ::CreateEventW(0, TRUE, FALSE, 0); - if (hEvent) - { - // As documented in GetQueuedCompletionStatus, setting the low order - // bit of this event prevents our synchronous writes from being treated - // as completion port events. - DWORD_PTR tmp = reinterpret_cast(hEvent); - hEvent = reinterpret_cast(tmp | 1); - } - else - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - } - - ~overlapped_wrapper() - { - if (hEvent) - { - ::CloseHandle(hEvent); - } - } -}; - -win_iocp_handle_service::win_iocp_handle_service( - asio::io_context& io_context) - : service_base(io_context), - iocp_service_(asio::use_service(io_context)), - mutex_(), - impl_list_(0) -{ -} - -void win_iocp_handle_service::shutdown() -{ - // Close all implementations, causing all operations to complete. - asio::detail::mutex::scoped_lock lock(mutex_); - implementation_type* impl = impl_list_; - while (impl) - { - close_for_destruction(*impl); - impl = impl->next_; - } -} - -void win_iocp_handle_service::construct( - win_iocp_handle_service::implementation_type& impl) -{ - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void win_iocp_handle_service::move_construct( - win_iocp_handle_service::implementation_type& impl, - win_iocp_handle_service::implementation_type& other_impl) -{ - impl.handle_ = other_impl.handle_; - other_impl.handle_ = INVALID_HANDLE_VALUE; - - impl.safe_cancellation_thread_id_ = other_impl.safe_cancellation_thread_id_; - other_impl.safe_cancellation_thread_id_ = 0; - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void win_iocp_handle_service::move_assign( - win_iocp_handle_service::implementation_type& impl, - win_iocp_handle_service& other_service, - win_iocp_handle_service::implementation_type& other_impl) -{ - close_for_destruction(impl); - - if (this != &other_service) - { - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - impl.handle_ = other_impl.handle_; - other_impl.handle_ = INVALID_HANDLE_VALUE; - - impl.safe_cancellation_thread_id_ = other_impl.safe_cancellation_thread_id_; - other_impl.safe_cancellation_thread_id_ = 0; - - if (this != &other_service) - { - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(other_service.mutex_); - impl.next_ = other_service.impl_list_; - impl.prev_ = 0; - if (other_service.impl_list_) - other_service.impl_list_->prev_ = &impl; - other_service.impl_list_ = &impl; - } -} - -void win_iocp_handle_service::destroy( - win_iocp_handle_service::implementation_type& impl) -{ - close_for_destruction(impl); - - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; -} - -asio::error_code win_iocp_handle_service::assign( - win_iocp_handle_service::implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - if (iocp_service_.register_handle(handle, ec)) - return ec; - - impl.handle_ = handle; - ec = asio::error_code(); - return ec; -} - -asio::error_code win_iocp_handle_service::close( - win_iocp_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((iocp_service_.context(), "handle", - &impl, reinterpret_cast(impl.handle_), "close")); - - if (!::CloseHandle(impl.handle_)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - else - { - ec = asio::error_code(); - } - - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - } - else - { - ec = asio::error_code(); - } - - return ec; -} - -asio::error_code win_iocp_handle_service::cancel( - win_iocp_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - ASIO_HANDLER_OPERATION((iocp_service_.context(), "handle", - &impl, reinterpret_cast(impl.handle_), "cancel")); - - if (FARPROC cancel_io_ex_ptr = ::GetProcAddress( - ::GetModuleHandleA("KERNEL32"), "CancelIoEx")) - { - // The version of Windows supports cancellation from any thread. - typedef BOOL (WINAPI* cancel_io_ex_t)(HANDLE, LPOVERLAPPED); - cancel_io_ex_t cancel_io_ex = (cancel_io_ex_t)cancel_io_ex_ptr; - if (!cancel_io_ex(impl.handle_, 0)) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_NOT_FOUND) - { - // ERROR_NOT_FOUND means that there were no operations to be - // cancelled. We swallow this error to match the behaviour on other - // platforms. - ec = asio::error_code(); - } - else - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - } - else - { - ec = asio::error_code(); - } - } - else if (impl.safe_cancellation_thread_id_ == 0) - { - // No operations have been started, so there's nothing to cancel. - ec = asio::error_code(); - } - else if (impl.safe_cancellation_thread_id_ == ::GetCurrentThreadId()) - { - // Asynchronous operations have been started from the current thread only, - // so it is safe to try to cancel them using CancelIo. - if (!::CancelIo(impl.handle_)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - else - { - ec = asio::error_code(); - } - } - else - { - // Asynchronous operations have been started from more than one thread, - // so cancellation is not safe. - ec = asio::error::operation_not_supported; - } - - return ec; -} - -size_t win_iocp_handle_service::do_write( - win_iocp_handle_service::implementation_type& impl, uint64_t offset, - const asio::const_buffer& buffer, asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to write 0 bytes on a handle is a no-op. - if (buffer.size() == 0) - { - ec = asio::error_code(); - return 0; - } - - overlapped_wrapper overlapped(ec); - if (ec) - { - return 0; - } - - // Write the data. - overlapped.Offset = offset & 0xFFFFFFFF; - overlapped.OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::WriteFile(impl.handle_, buffer.data(), - static_cast(buffer.size()), 0, &overlapped); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error != ERROR_IO_PENDING) - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return 0; - } - } - - // Wait for the operation to complete. - DWORD bytes_transferred = 0; - ok = ::GetOverlappedResult(impl.handle_, - &overlapped, &bytes_transferred, TRUE); - if (!ok) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return 0; - } - - ec = asio::error_code(); - return bytes_transferred; -} - -void win_iocp_handle_service::start_write_op( - win_iocp_handle_service::implementation_type& impl, uint64_t offset, - const asio::const_buffer& buffer, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - { - iocp_service_.on_completion(op, asio::error::bad_descriptor); - } - else if (buffer.size() == 0) - { - // A request to write 0 bytes on a handle is a no-op. - iocp_service_.on_completion(op); - } - else - { - DWORD bytes_transferred = 0; - op->Offset = offset & 0xFFFFFFFF; - op->OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::WriteFile(impl.handle_, buffer.data(), - static_cast(buffer.size()), - &bytes_transferred, op); - DWORD last_error = ::GetLastError(); - if (!ok && last_error != ERROR_IO_PENDING - && last_error != ERROR_MORE_DATA) - { - iocp_service_.on_completion(op, last_error, bytes_transferred); - } - else - { - iocp_service_.on_pending(op); - } - } -} - -size_t win_iocp_handle_service::do_read( - win_iocp_handle_service::implementation_type& impl, uint64_t offset, - const asio::mutable_buffer& buffer, asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return 0; - } - - // A request to read 0 bytes on a stream handle is a no-op. - if (buffer.size() == 0) - { - ec = asio::error_code(); - return 0; - } - - overlapped_wrapper overlapped(ec); - if (ec) - { - return 0; - } - - // Read some data. - overlapped.Offset = offset & 0xFFFFFFFF; - overlapped.OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::ReadFile(impl.handle_, buffer.data(), - static_cast(buffer.size()), 0, &overlapped); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error != ERROR_IO_PENDING && last_error != ERROR_MORE_DATA) - { - if (last_error == ERROR_HANDLE_EOF) - { - ec = asio::error::eof; - } - else - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - return 0; - } - } - - // Wait for the operation to complete. - DWORD bytes_transferred = 0; - ok = ::GetOverlappedResult(impl.handle_, - &overlapped, &bytes_transferred, TRUE); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_HANDLE_EOF) - { - ec = asio::error::eof; - } - else - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - return (last_error == ERROR_MORE_DATA) ? bytes_transferred : 0; - } - - ec = asio::error_code(); - return bytes_transferred; -} - -void win_iocp_handle_service::start_read_op( - win_iocp_handle_service::implementation_type& impl, uint64_t offset, - const asio::mutable_buffer& buffer, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - { - iocp_service_.on_completion(op, asio::error::bad_descriptor); - } - else if (buffer.size() == 0) - { - // A request to read 0 bytes on a handle is a no-op. - iocp_service_.on_completion(op); - } - else - { - DWORD bytes_transferred = 0; - op->Offset = offset & 0xFFFFFFFF; - op->OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::ReadFile(impl.handle_, buffer.data(), - static_cast(buffer.size()), - &bytes_transferred, op); - DWORD last_error = ::GetLastError(); - if (!ok && last_error != ERROR_IO_PENDING - && last_error != ERROR_MORE_DATA) - { - iocp_service_.on_completion(op, last_error, bytes_transferred); - } - else - { - iocp_service_.on_pending(op); - } - } -} - -void win_iocp_handle_service::update_cancellation_thread_id( - win_iocp_handle_service::implementation_type& impl) -{ - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -} - -void win_iocp_handle_service::close_for_destruction(implementation_type& impl) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((iocp_service_.context(), "handle", - &impl, reinterpret_cast(impl.handle_), "close")); - - ::CloseHandle(impl.handle_); - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_HANDLE_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.hpp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.hpp deleted file mode 100644 index 44887d7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// detail/impl/win_iocp_io_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_HPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_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_IOCP) - -#include "asio/detail/completion_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void win_iocp_io_context::add_timer_queue( - timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -template -void win_iocp_io_context::remove_timer_queue( - timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void win_iocp_io_context::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - // If the service has been shut down we silently discard the timer. - if (::InterlockedExchangeAdd(&shutdown_, 0) != 0) - { - post_immediate_completion(op, false); - return; - } - - mutex::scoped_lock lock(dispatch_mutex_); - - bool earliest = queue.enqueue_timer(time, timer, op); - work_started(); - if (earliest) - update_timeout(); -} - -template -std::size_t win_iocp_io_context::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - // If the service has been shut down we silently ignore the cancellation. - if (::InterlockedExchangeAdd(&shutdown_, 0) != 0) - return 0; - - mutex::scoped_lock lock(dispatch_mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - post_deferred_completions(ops); - return n; -} - -template -void win_iocp_io_context::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& to, - typename timer_queue::per_timer_data& from) -{ - asio::detail::mutex::scoped_lock lock(dispatch_mutex_); - op_queue ops; - queue.cancel_timer(to, ops); - queue.move_timer(to, from); - lock.unlock(); - post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.ipp deleted file mode 100644 index c371b86..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_io_context.ipp +++ /dev/null @@ -1,554 +0,0 @@ -// -// detail/impl/win_iocp_io_context.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_IPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_IPP - -#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_IOCP) - -#include "asio/error.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_iocp_io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct win_iocp_io_context::work_finished_on_block_exit -{ - ~work_finished_on_block_exit() - { - io_context_->work_finished(); - } - - win_iocp_io_context* io_context_; -}; - -struct win_iocp_io_context::timer_thread_function -{ - void operator()() - { - while (::InterlockedExchangeAdd(&io_context_->shutdown_, 0) == 0) - { - if (::WaitForSingleObject(io_context_->waitable_timer_.handle, - INFINITE) == WAIT_OBJECT_0) - { - ::InterlockedExchange(&io_context_->dispatch_required_, 1); - ::PostQueuedCompletionStatus(io_context_->iocp_.handle, - 0, wake_for_dispatch, 0); - } - } - } - - win_iocp_io_context* io_context_; -}; - -win_iocp_io_context::win_iocp_io_context( - asio::execution_context& ctx, int concurrency_hint) - : execution_context_service_base(ctx), - iocp_(), - outstanding_work_(0), - stopped_(0), - stop_event_posted_(0), - shutdown_(0), - gqcs_timeout_(get_gqcs_timeout()), - dispatch_required_(0), - concurrency_hint_(concurrency_hint) -{ - ASIO_HANDLER_TRACKING_INIT; - - iocp_.handle = ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0, - static_cast(concurrency_hint >= 0 ? concurrency_hint : DWORD(~0))); - if (!iocp_.handle) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "iocp"); - } -} - -void win_iocp_io_context::shutdown() -{ - ::InterlockedExchange(&shutdown_, 1); - - if (timer_thread_.get()) - { - LARGE_INTEGER timeout; - timeout.QuadPart = 1; - ::SetWaitableTimer(waitable_timer_.handle, &timeout, 1, 0, 0, FALSE); - } - - while (::InterlockedExchangeAdd(&outstanding_work_, 0) > 0) - { - op_queue ops; - timer_queues_.get_all_timers(ops); - ops.push(completed_ops_); - if (!ops.empty()) - { - while (win_iocp_operation* op = ops.front()) - { - ops.pop(); - ::InterlockedDecrement(&outstanding_work_); - op->destroy(); - } - } - else - { - DWORD bytes_transferred = 0; - dword_ptr_t completion_key = 0; - LPOVERLAPPED overlapped = 0; - ::GetQueuedCompletionStatus(iocp_.handle, &bytes_transferred, - &completion_key, &overlapped, gqcs_timeout_); - if (overlapped) - { - ::InterlockedDecrement(&outstanding_work_); - static_cast(overlapped)->destroy(); - } - } - } - - if (timer_thread_.get()) - timer_thread_->join(); -} - -asio::error_code win_iocp_io_context::register_handle( - HANDLE handle, asio::error_code& ec) -{ - if (::CreateIoCompletionPort(handle, iocp_.handle, 0, 0) == 0) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - else - { - ec = asio::error_code(); - } - return ec; -} - -size_t win_iocp_io_context::run(asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - size_t n = 0; - while (do_one(INFINITE, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -size_t win_iocp_io_context::run_one(asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - return do_one(INFINITE, ec); -} - -size_t win_iocp_io_context::wait_one(long usec, asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - return do_one(usec < 0 ? INFINITE : ((usec - 1) / 1000 + 1), ec); -} - -size_t win_iocp_io_context::poll(asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - size_t n = 0; - while (do_one(0, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -size_t win_iocp_io_context::poll_one(asio::error_code& ec) -{ - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - stop(); - ec = asio::error_code(); - return 0; - } - - win_iocp_thread_info this_thread; - thread_call_stack::context ctx(this, this_thread); - - return do_one(0, ec); -} - -void win_iocp_io_context::stop() -{ - if (::InterlockedExchange(&stopped_, 1) == 0) - { - if (::InterlockedExchange(&stop_event_posted_, 1) == 0) - { - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, 0)) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "pqcs"); - } - } - } -} - -void win_iocp_io_context::post_deferred_completion(win_iocp_operation* op) -{ - // Flag the operation as ready. - op->ready_ = 1; - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - ::InterlockedExchange(&dispatch_required_, 1); - } -} - -void win_iocp_io_context::post_deferred_completions( - op_queue& ops) -{ - while (win_iocp_operation* op = ops.front()) - { - ops.pop(); - - // Flag the operation as ready. - op->ready_ = 1; - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - completed_ops_.push(ops); - ::InterlockedExchange(&dispatch_required_, 1); - } - } -} - -void win_iocp_io_context::abandon_operations( - op_queue& ops) -{ - while (win_iocp_operation* op = ops.front()) - { - ops.pop(); - ::InterlockedDecrement(&outstanding_work_); - op->destroy(); - } -} - -void win_iocp_io_context::on_pending(win_iocp_operation* op) -{ - if (::InterlockedCompareExchange(&op->ready_, 1, 0) == 1) - { - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, - 0, overlapped_contains_result, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - ::InterlockedExchange(&dispatch_required_, 1); - } - } -} - -void win_iocp_io_context::on_completion(win_iocp_operation* op, - DWORD last_error, DWORD bytes_transferred) -{ - // Flag that the operation is ready for invocation. - op->ready_ = 1; - - // Store results in the OVERLAPPED structure. - op->Internal = reinterpret_cast( - &asio::error::get_system_category()); - op->Offset = last_error; - op->OffsetHigh = bytes_transferred; - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, - 0, overlapped_contains_result, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - ::InterlockedExchange(&dispatch_required_, 1); - } -} - -void win_iocp_io_context::on_completion(win_iocp_operation* op, - const asio::error_code& ec, DWORD bytes_transferred) -{ - // Flag that the operation is ready for invocation. - op->ready_ = 1; - - // Store results in the OVERLAPPED structure. - op->Internal = reinterpret_cast(&ec.category()); - op->Offset = ec.value(); - op->OffsetHigh = bytes_transferred; - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, - 0, overlapped_contains_result, op)) - { - // Out of resources. Put on completed queue instead. - mutex::scoped_lock lock(dispatch_mutex_); - completed_ops_.push(op); - ::InterlockedExchange(&dispatch_required_, 1); - } -} - -size_t win_iocp_io_context::do_one(DWORD msec, asio::error_code& ec) -{ - for (;;) - { - // Try to acquire responsibility for dispatching timers and completed ops. - if (::InterlockedCompareExchange(&dispatch_required_, 0, 1) == 1) - { - mutex::scoped_lock lock(dispatch_mutex_); - - // Dispatch pending timers and operations. - op_queue ops; - ops.push(completed_ops_); - timer_queues_.get_ready_timers(ops); - post_deferred_completions(ops); - update_timeout(); - } - - // Get the next operation from the queue. - DWORD bytes_transferred = 0; - dword_ptr_t completion_key = 0; - LPOVERLAPPED overlapped = 0; - ::SetLastError(0); - BOOL ok = ::GetQueuedCompletionStatus(iocp_.handle, - &bytes_transferred, &completion_key, &overlapped, - msec < gqcs_timeout_ ? msec : gqcs_timeout_); - DWORD last_error = ::GetLastError(); - - if (overlapped) - { - win_iocp_operation* op = static_cast(overlapped); - asio::error_code result_ec(last_error, - asio::error::get_system_category()); - - // We may have been passed the last_error and bytes_transferred in the - // OVERLAPPED structure itself. - if (completion_key == overlapped_contains_result) - { - result_ec = asio::error_code(static_cast(op->Offset), - *reinterpret_cast(op->Internal)); - bytes_transferred = op->OffsetHigh; - } - - // Otherwise ensure any result has been saved into the OVERLAPPED - // structure. - else - { - op->Internal = reinterpret_cast(&result_ec.category()); - op->Offset = result_ec.value(); - op->OffsetHigh = bytes_transferred; - } - - // Dispatch the operation only if ready. The operation may not be ready - // if the initiating function (e.g. a call to WSARecv) has not yet - // returned. This is because the initiating function still wants access - // to the operation's OVERLAPPED structure. - if (::InterlockedCompareExchange(&op->ready_, 1, 0) == 1) - { - // Ensure the count of outstanding work is decremented on block exit. - work_finished_on_block_exit on_exit = { this }; - (void)on_exit; - - op->complete(this, result_ec, bytes_transferred); - ec = asio::error_code(); - return 1; - } - } - else if (!ok) - { - if (last_error != WAIT_TIMEOUT) - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return 0; - } - - // If we're waiting indefinitely we need to keep going until we get a - // real handler. - if (msec == INFINITE) - continue; - - ec = asio::error_code(); - return 0; - } - else if (completion_key == wake_for_dispatch) - { - // We have been woken up to try to acquire responsibility for dispatching - // timers and completed operations. - } - else - { - // Indicate that there is no longer an in-flight stop event. - ::InterlockedExchange(&stop_event_posted_, 0); - - // The stopped_ flag is always checked to ensure that any leftover - // stop events from a previous run invocation are ignored. - if (::InterlockedExchangeAdd(&stopped_, 0) != 0) - { - // Wake up next thread that is blocked on GetQueuedCompletionStatus. - if (::InterlockedExchange(&stop_event_posted_, 1) == 0) - { - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, 0)) - { - last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return 0; - } - } - - ec = asio::error_code(); - return 0; - } - } - } -} - -DWORD win_iocp_io_context::get_gqcs_timeout() -{ - OSVERSIONINFOEX osvi; - ZeroMemory(&osvi, sizeof(osvi)); - osvi.dwOSVersionInfoSize = sizeof(osvi); - osvi.dwMajorVersion = 6ul; - - const uint64_t condition_mask = ::VerSetConditionMask( - 0, VER_MAJORVERSION, VER_GREATER_EQUAL); - - if (!!::VerifyVersionInfo(&osvi, VER_MAJORVERSION, condition_mask)) - return INFINITE; - - return default_gqcs_timeout; -} - -void win_iocp_io_context::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(dispatch_mutex_); - - timer_queues_.insert(&queue); - - if (!waitable_timer_.handle) - { - waitable_timer_.handle = ::CreateWaitableTimer(0, FALSE, 0); - if (waitable_timer_.handle == 0) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "timer"); - } - - LARGE_INTEGER timeout; - timeout.QuadPart = -max_timeout_usec; - timeout.QuadPart *= 10; - ::SetWaitableTimer(waitable_timer_.handle, - &timeout, max_timeout_msec, 0, 0, FALSE); - } - - if (!timer_thread_.get()) - { - timer_thread_function thread_function = { this }; - timer_thread_.reset(new thread(thread_function, 65536)); - } -} - -void win_iocp_io_context::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(dispatch_mutex_); - - timer_queues_.erase(&queue); -} - -void win_iocp_io_context::update_timeout() -{ - if (timer_thread_.get()) - { - // There's no point updating the waitable timer if the new timeout period - // exceeds the maximum timeout. In that case, we might as well wait for the - // existing period of the timer to expire. - long timeout_usec = timer_queues_.wait_duration_usec(max_timeout_usec); - if (timeout_usec < max_timeout_usec) - { - LARGE_INTEGER timeout; - timeout.QuadPart = -timeout_usec; - timeout.QuadPart *= 10; - ::SetWaitableTimer(waitable_timer_.handle, - &timeout, max_timeout_msec, 0, 0, FALSE); - } - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_IO_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp deleted file mode 100644 index 4a9b8cd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_serial_port_service.ipp +++ /dev/null @@ -1,181 +0,0 @@ -// -// detail/impl/win_iocp_serial_port_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_DETAIL_IMPL_WIN_IOCP_SERIAL_PORT_SERVICE_IPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_SERIAL_PORT_SERVICE_IPP - -#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_IOCP) && defined(ASIO_HAS_SERIAL_PORT) - -#include -#include "asio/detail/win_iocp_serial_port_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_iocp_serial_port_service::win_iocp_serial_port_service( - asio::io_context& io_context) - : service_base(io_context), - handle_service_(io_context) -{ -} - -void win_iocp_serial_port_service::shutdown() -{ -} - -asio::error_code win_iocp_serial_port_service::open( - win_iocp_serial_port_service::implementation_type& impl, - const std::string& device, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - // For convenience, add a leading \\.\ sequence if not already present. - std::string name = (device[0] == '\\') ? device : "\\\\.\\" + device; - - // Open a handle to the serial port. - ::HANDLE handle = ::CreateFileA(name.c_str(), - GENERIC_READ | GENERIC_WRITE, 0, 0, - OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); - if (handle == INVALID_HANDLE_VALUE) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - // Determine the initial serial port parameters. - using namespace std; // For memset. - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle, &dcb)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - // Set some default serial port parameters. This implementation does not - // support changing these, so they might as well be in a known state. - dcb.fBinary = TRUE; // Win32 only supports binary mode. - dcb.fDsrSensitivity = FALSE; - dcb.fNull = FALSE; // Do not ignore NULL characters. - dcb.fAbortOnError = FALSE; // Ignore serial framing errors. - if (!::SetCommState(handle, &dcb)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - // Set up timeouts so that the serial port will behave similarly to a - // network socket. Reads wait for at least one byte, then return with - // whatever they have. Writes return once everything is out the door. - ::COMMTIMEOUTS timeouts; - timeouts.ReadIntervalTimeout = 1; - timeouts.ReadTotalTimeoutMultiplier = 0; - timeouts.ReadTotalTimeoutConstant = 0; - timeouts.WriteTotalTimeoutMultiplier = 0; - timeouts.WriteTotalTimeoutConstant = 0; - if (!::SetCommTimeouts(handle, &timeouts)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - // We're done. Take ownership of the serial port handle. - if (handle_service_.assign(impl, handle, ec)) - ::CloseHandle(handle); - return ec; -} - -asio::error_code win_iocp_serial_port_service::do_set_option( - win_iocp_serial_port_service::implementation_type& impl, - win_iocp_serial_port_service::store_function_type store, - const void* option, asio::error_code& ec) -{ - using namespace std; // For memcpy. - - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle_service_.native_handle(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - if (store(option, dcb, ec)) - return ec; - - if (!::SetCommState(handle_service_.native_handle(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - ec = asio::error_code(); - return ec; -} - -asio::error_code win_iocp_serial_port_service::do_get_option( - const win_iocp_serial_port_service::implementation_type& impl, - win_iocp_serial_port_service::load_function_type load, - void* option, asio::error_code& ec) const -{ - using namespace std; // For memset. - - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle_service_.native_handle(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - return ec; - } - - return load(option, dcb, ec); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) && defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_SERIAL_PORT_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp deleted file mode 100644 index 6c478cd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_iocp_socket_service_base.ipp +++ /dev/null @@ -1,799 +0,0 @@ -// -// detail/impl/win_iocp_socket_service_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WIN_IOCP_SOCKET_SERVICE_BASE_IPP -#define ASIO_DETAIL_IMPL_WIN_IOCP_SOCKET_SERVICE_BASE_IPP - -#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_IOCP) - -#include "asio/detail/win_iocp_socket_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_iocp_socket_service_base::win_iocp_socket_service_base( - asio::io_context& io_context) - : io_context_(io_context), - iocp_service_(use_service(io_context)), - reactor_(0), - connect_ex_(0), - nt_set_info_(0), - mutex_(), - impl_list_(0) -{ -} - -void win_iocp_socket_service_base::base_shutdown() -{ - // Close all implementations, causing all operations to complete. - asio::detail::mutex::scoped_lock lock(mutex_); - base_implementation_type* impl = impl_list_; - while (impl) - { - close_for_destruction(*impl); - impl = impl->next_; - } -} - -void win_iocp_socket_service_base::construct( - win_iocp_socket_service_base::base_implementation_type& impl) -{ - impl.socket_ = invalid_socket; - impl.state_ = 0; - impl.cancel_token_.reset(); -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void win_iocp_socket_service_base::base_move_construct( - win_iocp_socket_service_base::base_implementation_type& impl, - win_iocp_socket_service_base::base_implementation_type& other_impl) -{ - impl.socket_ = other_impl.socket_; - other_impl.socket_ = invalid_socket; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - impl.cancel_token_ = other_impl.cancel_token_; - other_impl.cancel_token_.reset(); - -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = other_impl.safe_cancellation_thread_id_; - other_impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void win_iocp_socket_service_base::base_move_assign( - win_iocp_socket_service_base::base_implementation_type& impl, - win_iocp_socket_service_base& other_service, - win_iocp_socket_service_base::base_implementation_type& other_impl) -{ - close_for_destruction(impl); - - if (this != &other_service) - { - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - impl.socket_ = other_impl.socket_; - other_impl.socket_ = invalid_socket; - - impl.state_ = other_impl.state_; - other_impl.state_ = 0; - - impl.cancel_token_ = other_impl.cancel_token_; - other_impl.cancel_token_.reset(); - -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = other_impl.safe_cancellation_thread_id_; - other_impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) - - if (this != &other_service) - { - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(other_service.mutex_); - impl.next_ = other_service.impl_list_; - impl.prev_ = 0; - if (other_service.impl_list_) - other_service.impl_list_->prev_ = &impl; - other_service.impl_list_ = &impl; - } -} - -void win_iocp_socket_service_base::destroy( - win_iocp_socket_service_base::base_implementation_type& impl) -{ - close_for_destruction(impl); - - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; -} - -asio::error_code win_iocp_socket_service_base::close( - win_iocp_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((iocp_service_.context(), - "socket", &impl, impl.socket_, "close")); - - // Check if the reactor was created, in which case we need to close the - // socket on the reactor as well to cancel any operations that might be - // running there. - select_reactor* r = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (r) - r->deregister_descriptor(impl.socket_, impl.reactor_data_, true); - - socket_ops::close(impl.socket_, impl.state_, false, ec); - - if (r) - r->cleanup_descriptor_data(impl.reactor_data_); - } - else - { - ec = asio::error_code(); - } - - impl.socket_ = invalid_socket; - impl.state_ = 0; - impl.cancel_token_.reset(); -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) - - return ec; -} - -socket_type win_iocp_socket_service_base::release( - win_iocp_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - return invalid_socket; - - cancel(impl, ec); - if (ec) - return invalid_socket; - - nt_set_info_fn fn = get_nt_set_info(); - if (fn == 0) - { - ec = asio::error::operation_not_supported; - return invalid_socket; - } - - HANDLE sock_as_handle = reinterpret_cast(impl.socket_); - ULONG_PTR iosb[2] = { 0, 0 }; - void* info[2] = { 0, 0 }; - if (fn(sock_as_handle, iosb, &info, sizeof(info), - 61 /* FileReplaceCompletionInformation */)) - { - ec = asio::error::operation_not_supported; - return invalid_socket; - } - - socket_type tmp = impl.socket_; - impl.socket_ = invalid_socket; - return tmp; -} - -asio::error_code win_iocp_socket_service_base::cancel( - win_iocp_socket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - ASIO_HANDLER_OPERATION((iocp_service_.context(), - "socket", &impl, impl.socket_, "cancel")); - - if (FARPROC cancel_io_ex_ptr = ::GetProcAddress( - ::GetModuleHandleA("KERNEL32"), "CancelIoEx")) - { - // The version of Windows supports cancellation from any thread. - typedef BOOL (WINAPI* cancel_io_ex_t)(HANDLE, LPOVERLAPPED); - cancel_io_ex_t cancel_io_ex = (cancel_io_ex_t)cancel_io_ex_ptr; - socket_type sock = impl.socket_; - HANDLE sock_as_handle = reinterpret_cast(sock); - if (!cancel_io_ex(sock_as_handle, 0)) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_NOT_FOUND) - { - // ERROR_NOT_FOUND means that there were no operations to be - // cancelled. We swallow this error to match the behaviour on other - // platforms. - ec = asio::error_code(); - } - else - { - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - } - else - { - ec = asio::error_code(); - } - } -#if defined(ASIO_ENABLE_CANCELIO) - else if (impl.safe_cancellation_thread_id_ == 0) - { - // No operations have been started, so there's nothing to cancel. - ec = asio::error_code(); - } - else if (impl.safe_cancellation_thread_id_ == ::GetCurrentThreadId()) - { - // Asynchronous operations have been started from the current thread only, - // so it is safe to try to cancel them using CancelIo. - socket_type sock = impl.socket_; - HANDLE sock_as_handle = reinterpret_cast(sock); - if (!::CancelIo(sock_as_handle)) - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - else - { - ec = asio::error_code(); - } - } - else - { - // Asynchronous operations have been started from more than one thread, - // so cancellation is not safe. - ec = asio::error::operation_not_supported; - } -#else // defined(ASIO_ENABLE_CANCELIO) - else - { - // Cancellation is not supported as CancelIo may not be used. - ec = asio::error::operation_not_supported; - } -#endif // defined(ASIO_ENABLE_CANCELIO) - - // Cancel any operations started via the reactor. - if (!ec) - { - select_reactor* r = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (r) - r->cancel_ops(impl.socket_, impl.reactor_data_); - } - - return ec; -} - -asio::error_code win_iocp_socket_service_base::do_open( - win_iocp_socket_service_base::base_implementation_type& impl, - int family, int type, int protocol, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - socket_holder sock(socket_ops::socket(family, type, protocol, ec)); - if (sock.get() == invalid_socket) - return ec; - - HANDLE sock_as_handle = reinterpret_cast(sock.get()); - if (iocp_service_.register_handle(sock_as_handle, ec)) - return ec; - - impl.socket_ = sock.release(); - switch (type) - { - case SOCK_STREAM: impl.state_ = socket_ops::stream_oriented; break; - case SOCK_DGRAM: impl.state_ = socket_ops::datagram_oriented; break; - default: impl.state_ = 0; break; - } - impl.cancel_token_.reset(static_cast(0), socket_ops::noop_deleter()); - ec = asio::error_code(); - return ec; -} - -asio::error_code win_iocp_socket_service_base::do_assign( - win_iocp_socket_service_base::base_implementation_type& impl, - int type, socket_type native_socket, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - HANDLE sock_as_handle = reinterpret_cast(native_socket); - if (iocp_service_.register_handle(sock_as_handle, ec)) - return ec; - - impl.socket_ = native_socket; - switch (type) - { - case SOCK_STREAM: impl.state_ = socket_ops::stream_oriented; break; - case SOCK_DGRAM: impl.state_ = socket_ops::datagram_oriented; break; - default: impl.state_ = 0; break; - } - impl.cancel_token_.reset(static_cast(0), socket_ops::noop_deleter()); - ec = asio::error_code(); - return ec; -} - -void win_iocp_socket_service_base::start_send_op( - win_iocp_socket_service_base::base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - socket_base::message_flags flags, bool noop, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (noop) - iocp_service_.on_completion(op); - else if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else - { - DWORD bytes_transferred = 0; - int result = ::WSASend(impl.socket_, buffers, - static_cast(buffer_count), &bytes_transferred, flags, op, 0); - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_send_to_op( - win_iocp_socket_service_base::base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - const socket_addr_type* addr, int addrlen, - socket_base::message_flags flags, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else - { - DWORD bytes_transferred = 0; - int result = ::WSASendTo(impl.socket_, buffers, - static_cast(buffer_count), - &bytes_transferred, flags, addr, addrlen, op, 0); - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_receive_op( - win_iocp_socket_service_base::base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - socket_base::message_flags flags, bool noop, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (noop) - iocp_service_.on_completion(op); - else if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else - { - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = ::WSARecv(impl.socket_, buffers, - static_cast(buffer_count), - &bytes_transferred, &recv_flags, op, 0); - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_NETNAME_DELETED) - last_error = WSAECONNRESET; - else if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_null_buffers_receive_op( - win_iocp_socket_service_base::base_implementation_type& impl, - socket_base::message_flags flags, reactor_op* op) -{ - if ((impl.state_ & socket_ops::stream_oriented) != 0) - { - // For stream sockets on Windows, we may issue a 0-byte overlapped - // WSARecv to wait until there is data available on the socket. - ::WSABUF buf = { 0, 0 }; - start_receive_op(impl, &buf, 1, flags, false, op); - } - else - { - start_reactor_op(impl, - (flags & socket_base::message_out_of_band) - ? select_reactor::except_op : select_reactor::read_op, - op); - } -} - -void win_iocp_socket_service_base::start_receive_from_op( - win_iocp_socket_service_base::base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, socket_addr_type* addr, - socket_base::message_flags flags, int* addrlen, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else - { - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = ::WSARecvFrom(impl.socket_, buffers, - static_cast(buffer_count), - &bytes_transferred, &recv_flags, addr, addrlen, op, 0); - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - if (result != 0 && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error, bytes_transferred); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_accept_op( - win_iocp_socket_service_base::base_implementation_type& impl, - bool peer_is_open, socket_holder& new_socket, int family, int type, - int protocol, void* output_buffer, DWORD address_length, operation* op) -{ - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - if (!is_open(impl)) - iocp_service_.on_completion(op, asio::error::bad_descriptor); - else if (peer_is_open) - iocp_service_.on_completion(op, asio::error::already_open); - else - { - asio::error_code ec; - new_socket.reset(socket_ops::socket(family, type, protocol, ec)); - if (new_socket.get() == invalid_socket) - iocp_service_.on_completion(op, ec); - else - { - DWORD bytes_read = 0; - BOOL result = ::AcceptEx(impl.socket_, new_socket.get(), output_buffer, - 0, address_length, address_length, &bytes_read, op); - DWORD last_error = ::WSAGetLastError(); - if (!result && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error); - else - iocp_service_.on_pending(op); - } - } -} - -void win_iocp_socket_service_base::restart_accept_op( - socket_type s, socket_holder& new_socket, int family, int type, - int protocol, void* output_buffer, DWORD address_length, operation* op) -{ - new_socket.reset(); - iocp_service_.work_started(); - - asio::error_code ec; - new_socket.reset(socket_ops::socket(family, type, protocol, ec)); - if (new_socket.get() == invalid_socket) - iocp_service_.on_completion(op, ec); - else - { - DWORD bytes_read = 0; - BOOL result = ::AcceptEx(s, new_socket.get(), output_buffer, - 0, address_length, address_length, &bytes_read, op); - DWORD last_error = ::WSAGetLastError(); - if (!result && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error); - else - iocp_service_.on_pending(op); - } -} - -void win_iocp_socket_service_base::start_reactor_op( - win_iocp_socket_service_base::base_implementation_type& impl, - int op_type, reactor_op* op) -{ - select_reactor& r = get_reactor(); - update_cancellation_thread_id(impl); - - if (is_open(impl)) - { - r.start_op(op_type, impl.socket_, impl.reactor_data_, op, false, false); - return; - } - else - op->ec_ = asio::error::bad_descriptor; - - iocp_service_.post_immediate_completion(op, false); -} - -void win_iocp_socket_service_base::start_connect_op( - win_iocp_socket_service_base::base_implementation_type& impl, - int family, int type, const socket_addr_type* addr, - std::size_t addrlen, win_iocp_socket_connect_op_base* op) -{ - // If ConnectEx is available, use that. - if (family == ASIO_OS_DEF(AF_INET) - || family == ASIO_OS_DEF(AF_INET6)) - { - if (connect_ex_fn connect_ex = get_connect_ex(impl, type)) - { - union address_union - { - socket_addr_type base; - sockaddr_in4_type v4; - sockaddr_in6_type v6; - } a; - - using namespace std; // For memset. - memset(&a, 0, sizeof(a)); - a.base.sa_family = family; - - socket_ops::bind(impl.socket_, &a.base, - family == ASIO_OS_DEF(AF_INET) - ? sizeof(a.v4) : sizeof(a.v6), op->ec_); - if (op->ec_ && op->ec_ != asio::error::invalid_argument) - { - iocp_service_.post_immediate_completion(op, false); - return; - } - - op->connect_ex_ = true; - update_cancellation_thread_id(impl); - iocp_service_.work_started(); - - BOOL result = connect_ex(impl.socket_, - addr, static_cast(addrlen), 0, 0, 0, op); - DWORD last_error = ::WSAGetLastError(); - if (!result && last_error != WSA_IO_PENDING) - iocp_service_.on_completion(op, last_error); - else - iocp_service_.on_pending(op); - return; - } - } - - // Otherwise, fall back to a reactor-based implementation. - select_reactor& r = get_reactor(); - update_cancellation_thread_id(impl); - - if ((impl.state_ & socket_ops::non_blocking) != 0 - || socket_ops::set_internal_non_blocking( - impl.socket_, impl.state_, true, op->ec_)) - { - if (socket_ops::connect(impl.socket_, addr, addrlen, op->ec_) != 0) - { - if (op->ec_ == asio::error::in_progress - || op->ec_ == asio::error::would_block) - { - op->ec_ = asio::error_code(); - r.start_op(select_reactor::connect_op, impl.socket_, - impl.reactor_data_, op, false, false); - return; - } - } - } - - r.post_immediate_completion(op, false); -} - -void win_iocp_socket_service_base::close_for_destruction( - win_iocp_socket_service_base::base_implementation_type& impl) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((iocp_service_.context(), - "socket", &impl, impl.socket_, "close")); - - // Check if the reactor was created, in which case we need to close the - // socket on the reactor as well to cancel any operations that might be - // running there. - select_reactor* r = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (r) - r->deregister_descriptor(impl.socket_, impl.reactor_data_, true); - - asio::error_code ignored_ec; - socket_ops::close(impl.socket_, impl.state_, true, ignored_ec); - - if (r) - r->cleanup_descriptor_data(impl.reactor_data_); - } - - impl.socket_ = invalid_socket; - impl.state_ = 0; - impl.cancel_token_.reset(); -#if defined(ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(ASIO_ENABLE_CANCELIO) -} - -void win_iocp_socket_service_base::update_cancellation_thread_id( - win_iocp_socket_service_base::base_implementation_type& impl) -{ -#if defined(ASIO_ENABLE_CANCELIO) - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#else // defined(ASIO_ENABLE_CANCELIO) - (void)impl; -#endif // defined(ASIO_ENABLE_CANCELIO) -} - -select_reactor& win_iocp_socket_service_base::get_reactor() -{ - select_reactor* r = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (!r) - { - r = &(use_service(io_context_)); - interlocked_exchange_pointer(reinterpret_cast(&reactor_), r); - } - return *r; -} - -win_iocp_socket_service_base::connect_ex_fn -win_iocp_socket_service_base::get_connect_ex( - win_iocp_socket_service_base::base_implementation_type& impl, int type) -{ -#if defined(ASIO_DISABLE_CONNECTEX) - (void)impl; - (void)type; - return 0; -#else // defined(ASIO_DISABLE_CONNECTEX) - if (type != ASIO_OS_DEF(SOCK_STREAM) - && type != ASIO_OS_DEF(SOCK_SEQPACKET)) - return 0; - - void* ptr = interlocked_compare_exchange_pointer(&connect_ex_, 0, 0); - if (!ptr) - { - GUID guid = { 0x25a207b9, 0xddf3, 0x4660, - { 0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e } }; - - DWORD bytes = 0; - if (::WSAIoctl(impl.socket_, SIO_GET_EXTENSION_FUNCTION_POINTER, - &guid, sizeof(guid), &ptr, sizeof(ptr), &bytes, 0, 0) != 0) - { - // Set connect_ex_ to a special value to indicate that ConnectEx is - // unavailable. That way we won't bother trying to look it up again. - ptr = this; - } - - interlocked_exchange_pointer(&connect_ex_, ptr); - } - - return reinterpret_cast(ptr == this ? 0 : ptr); -#endif // defined(ASIO_DISABLE_CONNECTEX) -} - -win_iocp_socket_service_base::nt_set_info_fn -win_iocp_socket_service_base::get_nt_set_info() -{ - void* ptr = interlocked_compare_exchange_pointer(&nt_set_info_, 0, 0); - if (!ptr) - { - if (HMODULE h = ::GetModuleHandleA("NTDLL.DLL")) - ptr = reinterpret_cast(GetProcAddress(h, "NtSetInformationFile")); - - // On failure, set nt_set_info_ to a special value to indicate that the - // NtSetInformationFile function is unavailable. That way we won't bother - // trying to look it up again. - interlocked_exchange_pointer(&nt_set_info_, ptr ? ptr : this); - } - - return reinterpret_cast(ptr == this ? 0 : ptr); -} - -void* win_iocp_socket_service_base::interlocked_compare_exchange_pointer( - void** dest, void* exch, void* cmp) -{ -#if defined(_M_IX86) - return reinterpret_cast(InterlockedCompareExchange( - reinterpret_cast(dest), reinterpret_cast(exch), - reinterpret_cast(cmp))); -#else - return InterlockedCompareExchangePointer(dest, exch, cmp); -#endif -} - -void* win_iocp_socket_service_base::interlocked_exchange_pointer( - void** dest, void* val) -{ -#if defined(_M_IX86) - return reinterpret_cast(InterlockedExchange( - reinterpret_cast(dest), reinterpret_cast(val))); -#else - return InterlockedExchangePointer(dest, val); -#endif -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_IMPL_WIN_IOCP_SOCKET_SERVICE_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_mutex.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_mutex.ipp deleted file mode 100644 index dc58a12..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_mutex.ipp +++ /dev/null @@ -1,84 +0,0 @@ -// -// detail/impl/win_mutex.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WIN_MUTEX_IPP -#define ASIO_DETAIL_IMPL_WIN_MUTEX_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_mutex.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_mutex::win_mutex() -{ - int error = do_init(); - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "mutex"); -} - -int win_mutex::do_init() -{ -#if defined(__MINGW32__) - // Not sure if MinGW supports structured exception handling, so for now - // we'll just call the Windows API and hope. -# if defined(UNDER_CE) - ::InitializeCriticalSection(&crit_section_); -# elif defined(ASIO_WINDOWS_APP) - if (!::InitializeCriticalSectionEx(&crit_section_, 0, 0)) - return ::GetLastError(); -# else - if (!::InitializeCriticalSectionAndSpinCount(&crit_section_, 0x80000000)) - return ::GetLastError(); -# endif - return 0; -#else - __try - { -# if defined(UNDER_CE) - ::InitializeCriticalSection(&crit_section_); -# elif defined(ASIO_WINDOWS_APP) - if (!::InitializeCriticalSectionEx(&crit_section_, 0, 0)) - return ::GetLastError(); -# else - if (!::InitializeCriticalSectionAndSpinCount(&crit_section_, 0x80000000)) - return ::GetLastError(); -# endif - } - __except(GetExceptionCode() == STATUS_NO_MEMORY - ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) - { - return ERROR_OUTOFMEMORY; - } - - return 0; -#endif -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_IMPL_WIN_MUTEX_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_object_handle_service.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_object_handle_service.ipp deleted file mode 100644 index c5e59d1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_object_handle_service.ipp +++ /dev/null @@ -1,449 +0,0 @@ -// -// detail/impl/win_object_handle_service.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// 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_DETAIL_IMPL_WIN_OBJECT_HANDLE_SERVICE_IPP -#define ASIO_DETAIL_IMPL_WIN_OBJECT_HANDLE_SERVICE_IPP - -#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_WINDOWS_OBJECT_HANDLE) - -#include "asio/detail/win_object_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_object_handle_service::win_object_handle_service( - asio::io_context& io_context) - : service_base(io_context), - io_context_(asio::use_service(io_context)), - mutex_(), - impl_list_(0), - shutdown_(false) -{ -} - -void win_object_handle_service::shutdown() -{ - mutex::scoped_lock lock(mutex_); - - // Setting this flag to true prevents new objects from being registered, and - // new asynchronous wait operations from being started. We only need to worry - // about cleaning up the operations that are currently in progress. - shutdown_ = true; - - op_queue ops; - for (implementation_type* impl = impl_list_; impl; impl = impl->next_) - ops.push(impl->op_queue_); - - lock.unlock(); - - io_context_.abandon_operations(ops); -} - -void win_object_handle_service::construct( - win_object_handle_service::implementation_type& impl) -{ - impl.handle_ = INVALID_HANDLE_VALUE; - impl.wait_handle_ = INVALID_HANDLE_VALUE; - impl.owner_ = this; - - // Insert implementation into linked list of all implementations. - mutex::scoped_lock lock(mutex_); - if (!shutdown_) - { - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; - } -} - -void win_object_handle_service::move_construct( - win_object_handle_service::implementation_type& impl, - win_object_handle_service::implementation_type& other_impl) -{ - mutex::scoped_lock lock(mutex_); - - // Insert implementation into linked list of all implementations. - if (!shutdown_) - { - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; - } - - impl.handle_ = other_impl.handle_; - other_impl.handle_ = INVALID_HANDLE_VALUE; - impl.wait_handle_ = other_impl.wait_handle_; - other_impl.wait_handle_ = INVALID_HANDLE_VALUE; - impl.op_queue_.push(other_impl.op_queue_); - impl.owner_ = this; - - // We must not hold the lock while calling UnregisterWaitEx. This is because - // the registered callback function might be invoked while we are waiting for - // UnregisterWaitEx to complete. - lock.unlock(); - - if (impl.wait_handle_ != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(impl.wait_handle_, INVALID_HANDLE_VALUE); - - if (!impl.op_queue_.empty()) - register_wait_callback(impl, lock); -} - -void win_object_handle_service::move_assign( - win_object_handle_service::implementation_type& impl, - win_object_handle_service& other_service, - win_object_handle_service::implementation_type& other_impl) -{ - asio::error_code ignored_ec; - close(impl, ignored_ec); - - mutex::scoped_lock lock(mutex_); - - if (this != &other_service) - { - // Remove implementation from linked list of all implementations. - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - impl.handle_ = other_impl.handle_; - other_impl.handle_ = INVALID_HANDLE_VALUE; - impl.wait_handle_ = other_impl.wait_handle_; - other_impl.wait_handle_ = INVALID_HANDLE_VALUE; - impl.op_queue_.push(other_impl.op_queue_); - impl.owner_ = this; - - if (this != &other_service) - { - // Insert implementation into linked list of all implementations. - impl.next_ = other_service.impl_list_; - impl.prev_ = 0; - if (other_service.impl_list_) - other_service.impl_list_->prev_ = &impl; - other_service.impl_list_ = &impl; - } - - // We must not hold the lock while calling UnregisterWaitEx. This is because - // the registered callback function might be invoked while we are waiting for - // UnregisterWaitEx to complete. - lock.unlock(); - - if (impl.wait_handle_ != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(impl.wait_handle_, INVALID_HANDLE_VALUE); - - if (!impl.op_queue_.empty()) - register_wait_callback(impl, lock); -} - -void win_object_handle_service::destroy( - win_object_handle_service::implementation_type& impl) -{ - mutex::scoped_lock lock(mutex_); - - // Remove implementation from linked list of all implementations. - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((io_context_.context(), "object_handle", - &impl, reinterpret_cast(impl.wait_handle_), "close")); - - HANDLE wait_handle = impl.wait_handle_; - impl.wait_handle_ = INVALID_HANDLE_VALUE; - - op_queue ops; - while (wait_op* op = impl.op_queue_.front()) - { - op->ec_ = asio::error::operation_aborted; - impl.op_queue_.pop(); - ops.push(op); - } - - // We must not hold the lock while calling UnregisterWaitEx. This is - // because the registered callback function might be invoked while we are - // waiting for UnregisterWaitEx to complete. - lock.unlock(); - - if (wait_handle != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); - - ::CloseHandle(impl.handle_); - impl.handle_ = INVALID_HANDLE_VALUE; - - io_context_.post_deferred_completions(ops); - } -} - -asio::error_code win_object_handle_service::assign( - win_object_handle_service::implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) -{ - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - impl.handle_ = handle; - ec = asio::error_code(); - return ec; -} - -asio::error_code win_object_handle_service::close( - win_object_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((io_context_.context(), "object_handle", - &impl, reinterpret_cast(impl.wait_handle_), "close")); - - mutex::scoped_lock lock(mutex_); - - HANDLE wait_handle = impl.wait_handle_; - impl.wait_handle_ = INVALID_HANDLE_VALUE; - - op_queue completed_ops; - while (wait_op* op = impl.op_queue_.front()) - { - impl.op_queue_.pop(); - op->ec_ = asio::error::operation_aborted; - completed_ops.push(op); - } - - // We must not hold the lock while calling UnregisterWaitEx. This is - // because the registered callback function might be invoked while we are - // waiting for UnregisterWaitEx to complete. - lock.unlock(); - - if (wait_handle != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); - - if (::CloseHandle(impl.handle_)) - { - impl.handle_ = INVALID_HANDLE_VALUE; - ec = asio::error_code(); - } - else - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - } - - io_context_.post_deferred_completions(completed_ops); - } - else - { - ec = asio::error_code(); - } - - return ec; -} - -asio::error_code win_object_handle_service::cancel( - win_object_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - if (is_open(impl)) - { - ASIO_HANDLER_OPERATION((io_context_.context(), "object_handle", - &impl, reinterpret_cast(impl.wait_handle_), "cancel")); - - mutex::scoped_lock lock(mutex_); - - HANDLE wait_handle = impl.wait_handle_; - impl.wait_handle_ = INVALID_HANDLE_VALUE; - - op_queue completed_ops; - while (wait_op* op = impl.op_queue_.front()) - { - op->ec_ = asio::error::operation_aborted; - impl.op_queue_.pop(); - completed_ops.push(op); - } - - // We must not hold the lock while calling UnregisterWaitEx. This is - // because the registered callback function might be invoked while we are - // waiting for UnregisterWaitEx to complete. - lock.unlock(); - - if (wait_handle != INVALID_HANDLE_VALUE) - ::UnregisterWaitEx(wait_handle, INVALID_HANDLE_VALUE); - - ec = asio::error_code(); - - io_context_.post_deferred_completions(completed_ops); - } - else - { - ec = asio::error::bad_descriptor; - } - - return ec; -} - -void win_object_handle_service::wait( - win_object_handle_service::implementation_type& impl, - asio::error_code& ec) -{ - switch (::WaitForSingleObject(impl.handle_, INFINITE)) - { - case WAIT_FAILED: - { - DWORD last_error = ::GetLastError(); - ec = asio::error_code(last_error, - asio::error::get_system_category()); - break; - } - case WAIT_OBJECT_0: - case WAIT_ABANDONED: - default: - ec = asio::error_code(); - break; - } -} - -void win_object_handle_service::start_wait_op( - win_object_handle_service::implementation_type& impl, wait_op* op) -{ - io_context_.work_started(); - - if (is_open(impl)) - { - mutex::scoped_lock lock(mutex_); - - if (!shutdown_) - { - impl.op_queue_.push(op); - - // Only the first operation to be queued gets to register a wait callback. - // Subsequent operations have to wait for the first to finish. - if (impl.op_queue_.front() == op) - register_wait_callback(impl, lock); - } - else - { - lock.unlock(); - io_context_.post_deferred_completion(op); - } - } - else - { - op->ec_ = asio::error::bad_descriptor; - io_context_.post_deferred_completion(op); - } -} - -void win_object_handle_service::register_wait_callback( - win_object_handle_service::implementation_type& impl, - mutex::scoped_lock& lock) -{ - lock.lock(); - - if (!RegisterWaitForSingleObject(&impl.wait_handle_, - impl.handle_, &win_object_handle_service::wait_callback, - &impl, INFINITE, WT_EXECUTEONLYONCE)) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - - op_queue completed_ops; - while (wait_op* op = impl.op_queue_.front()) - { - op->ec_ = ec; - impl.op_queue_.pop(); - completed_ops.push(op); - } - - lock.unlock(); - io_context_.post_deferred_completions(completed_ops); - } -} - -void win_object_handle_service::wait_callback(PVOID param, BOOLEAN) -{ - implementation_type* impl = static_cast(param); - mutex::scoped_lock lock(impl->owner_->mutex_); - - if (impl->wait_handle_ != INVALID_HANDLE_VALUE) - { - ::UnregisterWaitEx(impl->wait_handle_, NULL); - impl->wait_handle_ = INVALID_HANDLE_VALUE; - } - - if (wait_op* op = impl->op_queue_.front()) - { - op_queue completed_ops; - - op->ec_ = asio::error_code(); - impl->op_queue_.pop(); - completed_ops.push(op); - - if (!impl->op_queue_.empty()) - { - if (!RegisterWaitForSingleObject(&impl->wait_handle_, - impl->handle_, &win_object_handle_service::wait_callback, - param, INFINITE, WT_EXECUTEONLYONCE)) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - - while ((op = impl->op_queue_.front()) != 0) - { - op->ec_ = ec; - impl->op_queue_.pop(); - completed_ops.push(op); - } - } - } - - io_context_impl& ioc = impl->owner_->io_context_; - lock.unlock(); - ioc.post_deferred_completions(completed_ops); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - -#endif // ASIO_DETAIL_IMPL_WIN_OBJECT_HANDLE_SERVICE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_static_mutex.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_static_mutex.ipp deleted file mode 100644 index 42089bd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_static_mutex.ipp +++ /dev/null @@ -1,136 +0,0 @@ -// -// detail/impl/win_static_mutex.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WIN_STATIC_MUTEX_IPP -#define ASIO_DETAIL_IMPL_WIN_STATIC_MUTEX_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_static_mutex.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void win_static_mutex::init() -{ - int error = do_init(); - asio::error_code ec(error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "static_mutex"); -} - -int win_static_mutex::do_init() -{ - using namespace std; // For sprintf. - wchar_t mutex_name[128]; -#if defined(ASIO_HAS_SECURE_RTL) - swprintf_s( -#else // defined(ASIO_HAS_SECURE_RTL) - _snwprintf( -#endif // defined(ASIO_HAS_SECURE_RTL) - mutex_name, 128, L"asio-58CCDC44-6264-4842-90C2-F3C545CB8AA7-%u-%p", - static_cast(::GetCurrentProcessId()), this); - -#if defined(ASIO_WINDOWS_APP) - HANDLE mutex = ::CreateMutexExW(0, mutex_name, CREATE_MUTEX_INITIAL_OWNER, 0); -#else // defined(ASIO_WINDOWS_APP) - HANDLE mutex = ::CreateMutexW(0, TRUE, mutex_name); -#endif // defined(ASIO_WINDOWS_APP) - DWORD last_error = ::GetLastError(); - if (mutex == 0) - return ::GetLastError(); - - if (last_error == ERROR_ALREADY_EXISTS) - { -#if defined(ASIO_WINDOWS_APP) - ::WaitForSingleObjectEx(mutex, INFINITE, false); -#else // defined(ASIO_WINDOWS_APP) - ::WaitForSingleObject(mutex, INFINITE); -#endif // defined(ASIO_WINDOWS_APP) - } - - if (initialised_) - { - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return 0; - } - -#if defined(__MINGW32__) - // Not sure if MinGW supports structured exception handling, so for now - // we'll just call the Windows API and hope. -# if defined(UNDER_CE) - ::InitializeCriticalSection(&crit_section_); -# else - if (!::InitializeCriticalSectionAndSpinCount(&crit_section_, 0x80000000)) - { - last_error = ::GetLastError(); - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return last_error; - } -# endif -#else - __try - { -# if defined(UNDER_CE) - ::InitializeCriticalSection(&crit_section_); -# elif defined(ASIO_WINDOWS_APP) - if (!::InitializeCriticalSectionEx(&crit_section_, 0, 0)) - { - last_error = ::GetLastError(); - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return last_error; - } -# else - if (!::InitializeCriticalSectionAndSpinCount(&crit_section_, 0x80000000)) - { - last_error = ::GetLastError(); - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return last_error; - } -# endif - } - __except(GetExceptionCode() == STATUS_NO_MEMORY - ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) - { - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return ERROR_OUTOFMEMORY; - } -#endif - - initialised_ = true; - ::ReleaseMutex(mutex); - ::CloseHandle(mutex); - return 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_IMPL_WIN_STATIC_MUTEX_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_thread.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_thread.ipp deleted file mode 100644 index ed6dbaf..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_thread.ipp +++ /dev/null @@ -1,150 +0,0 @@ -// -// detail/impl/win_thread.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WIN_THREAD_IPP -#define ASIO_DETAIL_IMPL_WIN_THREAD_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_APP) \ - && !defined(UNDER_CE) - -#include -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_thread.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -win_thread::~win_thread() -{ - ::CloseHandle(thread_); - - // The exit_event_ handle is deliberately allowed to leak here since it - // is an error for the owner of an internal thread not to join() it. -} - -void win_thread::join() -{ - HANDLE handles[2] = { exit_event_, thread_ }; - ::WaitForMultipleObjects(2, handles, FALSE, INFINITE); - ::CloseHandle(exit_event_); - if (terminate_threads()) - { - ::TerminateThread(thread_, 0); - } - else - { - ::QueueUserAPC(apc_function, thread_, 0); - ::WaitForSingleObject(thread_, INFINITE); - } -} - -std::size_t win_thread::hardware_concurrency() -{ - SYSTEM_INFO system_info; - ::GetSystemInfo(&system_info); - return system_info.dwNumberOfProcessors; -} - -void win_thread::start_thread(func_base* arg, unsigned int stack_size) -{ - ::HANDLE entry_event = 0; - arg->entry_event_ = entry_event = ::CreateEventW(0, true, false, 0); - if (!entry_event) - { - DWORD last_error = ::GetLastError(); - delete arg; - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread.entry_event"); - } - - arg->exit_event_ = exit_event_ = ::CreateEventW(0, true, false, 0); - if (!exit_event_) - { - DWORD last_error = ::GetLastError(); - delete arg; - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread.exit_event"); - } - - unsigned int thread_id = 0; - thread_ = reinterpret_cast(::_beginthreadex(0, - stack_size, win_thread_function, arg, 0, &thread_id)); - if (!thread_) - { - DWORD last_error = ::GetLastError(); - delete arg; - if (entry_event) - ::CloseHandle(entry_event); - if (exit_event_) - ::CloseHandle(exit_event_); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread"); - } - - if (entry_event) - { - ::WaitForSingleObject(entry_event, INFINITE); - ::CloseHandle(entry_event); - } -} - -unsigned int __stdcall win_thread_function(void* arg) -{ - win_thread::auto_func_base_ptr func = { - static_cast(arg) }; - - ::SetEvent(func.ptr->entry_event_); - - func.ptr->run(); - - // Signal that the thread has finished its work, but rather than returning go - // to sleep to put the thread into a well known state. If the thread is being - // joined during global object destruction then it may be killed using - // TerminateThread (to avoid a deadlock in DllMain). Otherwise, the SleepEx - // call will be interrupted using QueueUserAPC and the thread will shut down - // cleanly. - HANDLE exit_event = func.ptr->exit_event_; - delete func.ptr; - func.ptr = 0; - ::SetEvent(exit_event); - ::SleepEx(INFINITE, TRUE); - - return 0; -} - -#if defined(WINVER) && (WINVER < 0x0500) -void __stdcall apc_function(ULONG) {} -#else -void __stdcall apc_function(ULONG_PTR) {} -#endif - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_APP) - // && !defined(UNDER_CE) - -#endif // ASIO_DETAIL_IMPL_WIN_THREAD_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/win_tss_ptr.ipp b/Sources/Vendor/asio/include/asio/detail/impl/win_tss_ptr.ipp deleted file mode 100644 index 61df0ce..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/win_tss_ptr.ipp +++ /dev/null @@ -1,57 +0,0 @@ -// -// detail/impl/win_tss_ptr.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WIN_TSS_PTR_IPP -#define ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) - -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_tss_ptr.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -DWORD win_tss_ptr_create() -{ -#if defined(UNDER_CE) - const DWORD out_of_indexes = 0xFFFFFFFF; -#else - const DWORD out_of_indexes = TLS_OUT_OF_INDEXES; -#endif - - DWORD tss_key = ::TlsAlloc(); - if (tss_key == out_of_indexes) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "tss"); - } - return tss_key; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_IMPL_WIN_TSS_PTR_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp b/Sources/Vendor/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp deleted file mode 100644 index 288ca8b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/winrt_ssocket_service_base.ipp +++ /dev/null @@ -1,629 +0,0 @@ -// -// detail/impl/winrt_ssocket_service_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WINRT_SSOCKET_SERVICE_BASE_IPP -#define ASIO_DETAIL_IMPL_WINRT_SSOCKET_SERVICE_BASE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include -#include "asio/detail/winrt_ssocket_service_base.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/detail/winrt_utils.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -winrt_ssocket_service_base::winrt_ssocket_service_base( - asio::io_context& io_context) - : io_context_(use_service(io_context)), - async_manager_(use_service(io_context)), - mutex_(), - impl_list_(0) -{ -} - -void winrt_ssocket_service_base::base_shutdown() -{ - // Close all implementations, causing all operations to complete. - asio::detail::mutex::scoped_lock lock(mutex_); - base_implementation_type* impl = impl_list_; - while (impl) - { - asio::error_code ignored_ec; - close(*impl, ignored_ec); - impl = impl->next_; - } -} - -void winrt_ssocket_service_base::construct( - winrt_ssocket_service_base::base_implementation_type& impl) -{ - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void winrt_ssocket_service_base::base_move_construct( - winrt_ssocket_service_base::base_implementation_type& impl, - winrt_ssocket_service_base::base_implementation_type& other_impl) -{ - impl.socket_ = other_impl.socket_; - other_impl.socket_ = nullptr; - - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; -} - -void winrt_ssocket_service_base::base_move_assign( - winrt_ssocket_service_base::base_implementation_type& impl, - winrt_ssocket_service_base& other_service, - winrt_ssocket_service_base::base_implementation_type& other_impl) -{ - asio::error_code ignored_ec; - close(impl, ignored_ec); - - if (this != &other_service) - { - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - impl.socket_ = other_impl.socket_; - other_impl.socket_ = nullptr; - - if (this != &other_service) - { - // Insert implementation into linked list of all implementations. - asio::detail::mutex::scoped_lock lock(other_service.mutex_); - impl.next_ = other_service.impl_list_; - impl.prev_ = 0; - if (other_service.impl_list_) - other_service.impl_list_->prev_ = &impl; - other_service.impl_list_ = &impl; - } -} - -void winrt_ssocket_service_base::destroy( - winrt_ssocket_service_base::base_implementation_type& impl) -{ - asio::error_code ignored_ec; - close(impl, ignored_ec); - - // Remove implementation from linked list of all implementations. - asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; -} - -asio::error_code winrt_ssocket_service_base::close( - winrt_ssocket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (impl.socket_) - { - delete impl.socket_; - impl.socket_ = nullptr; - } - - ec = asio::error_code(); - return ec; -} - -winrt_ssocket_service_base::native_handle_type -winrt_ssocket_service_base::release( - winrt_ssocket_service_base::base_implementation_type& impl, - asio::error_code& ec) -{ - if (!is_open(impl)) - return nullptr; - - cancel(impl, ec); - if (ec) - return nullptr; - - native_handle_type tmp = impl.socket_; - impl.socket_ = nullptr; - return tmp; -} - -std::size_t winrt_ssocket_service_base::do_get_endpoint( - const base_implementation_type& impl, bool local, - void* addr, std::size_t addr_len, asio::error_code& ec) const -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return addr_len; - } - - try - { - std::string addr_string = winrt_utils::string(local - ? impl.socket_->Information->LocalAddress->CanonicalName - : impl.socket_->Information->RemoteAddress->CanonicalName); - unsigned short port = winrt_utils::integer(local - ? impl.socket_->Information->LocalPort - : impl.socket_->Information->RemotePort); - unsigned long scope = 0; - - switch (reinterpret_cast(addr)->sa_family) - { - case ASIO_OS_DEF(AF_INET): - if (addr_len < sizeof(sockaddr_in4_type)) - { - ec = asio::error::invalid_argument; - return addr_len; - } - else - { - socket_ops::inet_pton(ASIO_OS_DEF(AF_INET), addr_string.c_str(), - &reinterpret_cast(addr)->sin_addr, &scope, ec); - reinterpret_cast(addr)->sin_port - = socket_ops::host_to_network_short(port); - ec = asio::error_code(); - return sizeof(sockaddr_in4_type); - } - case ASIO_OS_DEF(AF_INET6): - if (addr_len < sizeof(sockaddr_in6_type)) - { - ec = asio::error::invalid_argument; - return addr_len; - } - else - { - socket_ops::inet_pton(ASIO_OS_DEF(AF_INET6), addr_string.c_str(), - &reinterpret_cast(addr)->sin6_addr, &scope, ec); - reinterpret_cast(addr)->sin6_port - = socket_ops::host_to_network_short(port); - ec = asio::error_code(); - return sizeof(sockaddr_in6_type); - } - default: - ec = asio::error::address_family_not_supported; - return addr_len; - } - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return addr_len; - } -} - -asio::error_code winrt_ssocket_service_base::do_set_option( - winrt_ssocket_service_base::base_implementation_type& impl, - int level, int optname, const void* optval, - std::size_t optlen, asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - try - { - if (level == ASIO_OS_DEF(SOL_SOCKET) - && optname == ASIO_OS_DEF(SO_KEEPALIVE)) - { - if (optlen == sizeof(int)) - { - int value = 0; - std::memcpy(&value, optval, optlen); - impl.socket_->Control->KeepAlive = !!value; - ec = asio::error_code(); - } - else - { - ec = asio::error::invalid_argument; - } - } - else if (level == ASIO_OS_DEF(IPPROTO_TCP) - && optname == ASIO_OS_DEF(TCP_NODELAY)) - { - if (optlen == sizeof(int)) - { - int value = 0; - std::memcpy(&value, optval, optlen); - impl.socket_->Control->NoDelay = !!value; - ec = asio::error_code(); - } - else - { - ec = asio::error::invalid_argument; - } - } - else - { - ec = asio::error::invalid_argument; - } - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - } - - return ec; -} - -void winrt_ssocket_service_base::do_get_option( - const winrt_ssocket_service_base::base_implementation_type& impl, - int level, int optname, void* optval, - std::size_t* optlen, asio::error_code& ec) const -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return; - } - - try - { - if (level == ASIO_OS_DEF(SOL_SOCKET) - && optname == ASIO_OS_DEF(SO_KEEPALIVE)) - { - if (*optlen >= sizeof(int)) - { - int value = impl.socket_->Control->KeepAlive ? 1 : 0; - std::memcpy(optval, &value, sizeof(int)); - *optlen = sizeof(int); - ec = asio::error_code(); - } - else - { - ec = asio::error::invalid_argument; - } - } - else if (level == ASIO_OS_DEF(IPPROTO_TCP) - && optname == ASIO_OS_DEF(TCP_NODELAY)) - { - if (*optlen >= sizeof(int)) - { - int value = impl.socket_->Control->NoDelay ? 1 : 0; - std::memcpy(optval, &value, sizeof(int)); - *optlen = sizeof(int); - ec = asio::error_code(); - } - else - { - ec = asio::error::invalid_argument; - } - } - else - { - ec = asio::error::invalid_argument; - } - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - } -} - -asio::error_code winrt_ssocket_service_base::do_connect( - winrt_ssocket_service_base::base_implementation_type& impl, - const void* addr, asio::error_code& ec) -{ - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return ec; - } - - char addr_string[max_addr_v6_str_len]; - unsigned short port; - switch (reinterpret_cast(addr)->sa_family) - { - case ASIO_OS_DEF(AF_INET): - socket_ops::inet_ntop(ASIO_OS_DEF(AF_INET), - &reinterpret_cast(addr)->sin_addr, - addr_string, sizeof(addr_string), 0, ec); - port = socket_ops::network_to_host_short( - reinterpret_cast(addr)->sin_port); - break; - case ASIO_OS_DEF(AF_INET6): - socket_ops::inet_ntop(ASIO_OS_DEF(AF_INET6), - &reinterpret_cast(addr)->sin6_addr, - addr_string, sizeof(addr_string), 0, ec); - port = socket_ops::network_to_host_short( - reinterpret_cast(addr)->sin6_port); - break; - default: - ec = asio::error::address_family_not_supported; - return ec; - } - - if (!ec) try - { - async_manager_.sync(impl.socket_->ConnectAsync( - ref new Windows::Networking::HostName( - winrt_utils::string(addr_string)), - winrt_utils::string(port)), ec); - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - } - - return ec; -} - -void winrt_ssocket_service_base::start_connect_op( - winrt_ssocket_service_base::base_implementation_type& impl, - const void* addr, winrt_async_op* op, bool is_continuation) -{ - if (!is_open(impl)) - { - op->ec_ = asio::error::bad_descriptor; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - char addr_string[max_addr_v6_str_len]; - unsigned short port = 0; - switch (reinterpret_cast(addr)->sa_family) - { - case ASIO_OS_DEF(AF_INET): - socket_ops::inet_ntop(ASIO_OS_DEF(AF_INET), - &reinterpret_cast(addr)->sin_addr, - addr_string, sizeof(addr_string), 0, op->ec_); - port = socket_ops::network_to_host_short( - reinterpret_cast(addr)->sin_port); - break; - case ASIO_OS_DEF(AF_INET6): - socket_ops::inet_ntop(ASIO_OS_DEF(AF_INET6), - &reinterpret_cast(addr)->sin6_addr, - addr_string, sizeof(addr_string), 0, op->ec_); - port = socket_ops::network_to_host_short( - reinterpret_cast(addr)->sin6_port); - break; - default: - op->ec_ = asio::error::address_family_not_supported; - break; - } - - if (op->ec_) - { - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - try - { - async_manager_.async(impl.socket_->ConnectAsync( - ref new Windows::Networking::HostName( - winrt_utils::string(addr_string)), - winrt_utils::string(port)), op); - } - catch (Platform::Exception^ e) - { - op->ec_ = asio::error_code( - e->HResult, asio::system_category()); - io_context_.post_immediate_completion(op, is_continuation); - } -} - -std::size_t winrt_ssocket_service_base::do_send( - winrt_ssocket_service_base::base_implementation_type& impl, - const asio::const_buffer& data, - socket_base::message_flags flags, asio::error_code& ec) -{ - if (flags) - { - ec = asio::error::operation_not_supported; - return 0; - } - - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return 0; - } - - try - { - buffer_sequence_adapter bufs(asio::buffer(data)); - - if (bufs.all_empty()) - { - ec = asio::error_code(); - return 0; - } - - return async_manager_.sync( - impl.socket_->OutputStream->WriteAsync(bufs.buffers()[0]), ec); - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return 0; - } -} - -void winrt_ssocket_service_base::start_send_op( - winrt_ssocket_service_base::base_implementation_type& impl, - const asio::const_buffer& data, socket_base::message_flags flags, - winrt_async_op* op, bool is_continuation) -{ - if (flags) - { - op->ec_ = asio::error::operation_not_supported; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - if (!is_open(impl)) - { - op->ec_ = asio::error::bad_descriptor; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - try - { - buffer_sequence_adapter bufs(asio::buffer(data)); - - if (bufs.all_empty()) - { - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - async_manager_.async( - impl.socket_->OutputStream->WriteAsync(bufs.buffers()[0]), op); - } - catch (Platform::Exception^ e) - { - op->ec_ = asio::error_code(e->HResult, - asio::system_category()); - io_context_.post_immediate_completion(op, is_continuation); - } -} - -std::size_t winrt_ssocket_service_base::do_receive( - winrt_ssocket_service_base::base_implementation_type& impl, - const asio::mutable_buffer& data, - socket_base::message_flags flags, asio::error_code& ec) -{ - if (flags) - { - ec = asio::error::operation_not_supported; - return 0; - } - - if (!is_open(impl)) - { - ec = asio::error::bad_descriptor; - return 0; - } - - try - { - buffer_sequence_adapter bufs(asio::buffer(data)); - - if (bufs.all_empty()) - { - ec = asio::error_code(); - return 0; - } - - async_manager_.sync( - impl.socket_->InputStream->ReadAsync( - bufs.buffers()[0], bufs.buffers()[0]->Capacity, - Windows::Storage::Streams::InputStreamOptions::Partial), ec); - - std::size_t bytes_transferred = bufs.buffers()[0]->Length; - if (bytes_transferred == 0 && !ec) - { - ec = asio::error::eof; - } - - return bytes_transferred; - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return 0; - } -} - -void winrt_ssocket_service_base::start_receive_op( - winrt_ssocket_service_base::base_implementation_type& impl, - const asio::mutable_buffer& data, socket_base::message_flags flags, - winrt_async_op* op, - bool is_continuation) -{ - if (flags) - { - op->ec_ = asio::error::operation_not_supported; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - if (!is_open(impl)) - { - op->ec_ = asio::error::bad_descriptor; - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - try - { - buffer_sequence_adapter bufs(asio::buffer(data)); - - if (bufs.all_empty()) - { - io_context_.post_immediate_completion(op, is_continuation); - return; - } - - async_manager_.async( - impl.socket_->InputStream->ReadAsync( - bufs.buffers()[0], bufs.buffers()[0]->Capacity, - Windows::Storage::Streams::InputStreamOptions::Partial), op); - } - catch (Platform::Exception^ e) - { - op->ec_ = asio::error_code(e->HResult, - asio::system_category()); - io_context_.post_immediate_completion(op, is_continuation); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_WINRT_SSOCKET_SERVICE_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp b/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp deleted file mode 100644 index 856378f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// detail/impl/winrt_timer_scheduler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_HPP -#define ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_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_WINDOWS_RUNTIME) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -void winrt_timer_scheduler::add_timer_queue(timer_queue& queue) -{ - do_add_timer_queue(queue); -} - -// Remove a timer queue from the reactor. -template -void winrt_timer_scheduler::remove_timer_queue(timer_queue& queue) -{ - do_remove_timer_queue(queue); -} - -template -void winrt_timer_scheduler::schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - { - io_context_.post_immediate_completion(op, false); - return; - } - - bool earliest = queue.enqueue_timer(time, timer, op); - io_context_.work_started(); - if (earliest) - event_.signal(lock); -} - -template -std::size_t winrt_timer_scheduler::cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - std::size_t n = queue.cancel_timer(timer, ops, max_cancelled); - lock.unlock(); - io_context_.post_deferred_completions(ops); - return n; -} - -template -void winrt_timer_scheduler::move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& to, - typename timer_queue::per_timer_data& from) -{ - asio::detail::mutex::scoped_lock lock(mutex_); - op_queue ops; - queue.cancel_timer(to, ops); - queue.move_timer(to, from); - lock.unlock(); - scheduler_.post_deferred_completions(ops); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp b/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp deleted file mode 100644 index ef21399..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/winrt_timer_scheduler.ipp +++ /dev/null @@ -1,122 +0,0 @@ -// -// detail/impl/winrt_timer_scheduler.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_IPP -#define ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/winrt_timer_scheduler.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -winrt_timer_scheduler::winrt_timer_scheduler( - asio::io_context& io_context) - : asio::detail::service_base(io_context), - io_context_(use_service(io_context)), - mutex_(), - event_(), - timer_queues_(), - thread_(0), - stop_thread_(false), - shutdown_(false) -{ - thread_ = new asio::detail::thread( - bind_handler(&winrt_timer_scheduler::call_run_thread, this)); -} - -winrt_timer_scheduler::~winrt_timer_scheduler() -{ - shutdown(); -} - -void winrt_timer_scheduler::shutdown() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - stop_thread_ = true; - event_.signal(lock); - lock.unlock(); - - if (thread_) - { - thread_->join(); - delete thread_; - thread_ = 0; - } - - op_queue ops; - timer_queues_.get_all_timers(ops); - io_context_.abandon_operations(ops); -} - -void winrt_timer_scheduler::notify_fork(asio::io_context::fork_event) -{ -} - -void winrt_timer_scheduler::init_task() -{ -} - -void winrt_timer_scheduler::run_thread() -{ - asio::detail::mutex::scoped_lock lock(mutex_); - while (!stop_thread_) - { - const long max_wait_duration = 5 * 60 * 1000000; - long wait_duration = timer_queues_.wait_duration_usec(max_wait_duration); - event_.wait_for_usec(lock, wait_duration); - event_.clear(lock); - op_queue ops; - timer_queues_.get_ready_timers(ops); - if (!ops.empty()) - { - lock.unlock(); - io_context_.post_deferred_completions(ops); - lock.lock(); - } - } -} - -void winrt_timer_scheduler::call_run_thread(winrt_timer_scheduler* scheduler) -{ - scheduler->run_thread(); -} - -void winrt_timer_scheduler::do_add_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.insert(&queue); -} - -void winrt_timer_scheduler::do_remove_timer_queue(timer_queue_base& queue) -{ - mutex::scoped_lock lock(mutex_); - timer_queues_.erase(&queue); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_IMPL_WINRT_TIMER_SCHEDULER_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/impl/winsock_init.ipp b/Sources/Vendor/asio/include/asio/detail/impl/winsock_init.ipp deleted file mode 100644 index da4b0c0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/impl/winsock_init.ipp +++ /dev/null @@ -1,82 +0,0 @@ -// -// detail/impl/winsock_init.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IMPL_WINSOCK_INIT_IPP -#define ASIO_DETAIL_IMPL_WINSOCK_INIT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#include "asio/detail/socket_types.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -void winsock_init_base::startup(data& d, - unsigned char major, unsigned char minor) -{ - if (::InterlockedIncrement(&d.init_count_) == 1) - { - WSADATA wsa_data; - long result = ::WSAStartup(MAKEWORD(major, minor), &wsa_data); - ::InterlockedExchange(&d.result_, result); - } -} - -void winsock_init_base::manual_startup(data& d) -{ - if (::InterlockedIncrement(&d.init_count_) == 1) - { - ::InterlockedExchange(&d.result_, 0); - } -} - -void winsock_init_base::cleanup(data& d) -{ - if (::InterlockedDecrement(&d.init_count_) == 0) - { - ::WSACleanup(); - } -} - -void winsock_init_base::manual_cleanup(data& d) -{ - ::InterlockedDecrement(&d.init_count_); -} - -void winsock_init_base::throw_on_error(data& d) -{ - long result = ::InterlockedExchangeAdd(&d.result_, 0); - if (result != 0) - { - asio::error_code ec(result, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "winsock"); - } -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_IMPL_WINSOCK_INIT_IPP diff --git a/Sources/Vendor/asio/include/asio/detail/io_control.hpp b/Sources/Vendor/asio/include/asio/detail/io_control.hpp deleted file mode 100644 index 12f35e0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/io_control.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// detail/io_control.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IO_CONTROL_HPP -#define ASIO_DETAIL_IO_CONTROL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace io_control { - -// I/O control command for getting number of bytes available. -class bytes_readable -{ -public: - // Default constructor. - bytes_readable() - : value_(0) - { - } - - // Construct with a specific command value. - bytes_readable(std::size_t value) - : value_(static_cast(value)) - { - } - - // Get the name of the IO control command. - int name() const - { - return static_cast(ASIO_OS_DEF(FIONREAD)); - } - - // Set the value of the I/O control command. - void set(std::size_t value) - { - value_ = static_cast(value); - } - - // Get the current value of the I/O control command. - std::size_t get() const - { - return static_cast(value_); - } - - // Get the address of the command data. - detail::ioctl_arg_type* data() - { - return &value_; - } - - // Get the address of the command data. - const detail::ioctl_arg_type* data() const - { - return &value_; - } - -private: - detail::ioctl_arg_type value_; -}; - -} // namespace io_control -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IO_CONTROL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/is_buffer_sequence.hpp b/Sources/Vendor/asio/include/asio/detail/is_buffer_sequence.hpp deleted file mode 100644 index 69f9bbd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/is_buffer_sequence.hpp +++ /dev/null @@ -1,263 +0,0 @@ -// -// detail/is_buffer_sequence.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IS_BUFFER_SEQUENCE_HPP -#define ASIO_DETAIL_IS_BUFFER_SEQUENCE_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/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class mutable_buffer; -class const_buffer; - -namespace detail { - -struct buffer_sequence_memfns_base -{ - void begin(); - void end(); - void size(); - void max_size(); - void capacity(); - void data(); - void prepare(); - void commit(); - void consume(); -}; - -template -struct buffer_sequence_memfns_derived - : T, buffer_sequence_memfns_base -{ -}; - -template -struct buffer_sequence_memfns_check -{ -}; - -template -char (&buffer_sequence_begin_helper(...))[2]; - -#if defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_begin_helper(T* t, - typename enable_if::value>::type*); - -#else // defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_begin_helper(T* t, - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::begin>*); - -#endif // defined(ASIO_HAS_DECLTYPE) - -template -char (&buffer_sequence_end_helper(...))[2]; - -#if defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_end_helper(T* t, - typename enable_if::value>::type*); - -#else // defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_end_helper(T* t, - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::end>*); - -#endif // defined(ASIO_HAS_DECLTYPE) - -template -char (&size_memfn_helper(...))[2]; - -template -char size_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::size>*); - -template -char (&max_size_memfn_helper(...))[2]; - -template -char max_size_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::max_size>*); - -template -char (&capacity_memfn_helper(...))[2]; - -template -char capacity_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::capacity>*); - -template -char (&data_memfn_helper(...))[2]; - -template -char data_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::data>*); - -template -char (&prepare_memfn_helper(...))[2]; - -template -char prepare_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::prepare>*); - -template -char (&commit_memfn_helper(...))[2]; - -template -char commit_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::commit>*); - -template -char (&consume_memfn_helper(...))[2]; - -template -char consume_memfn_helper( - buffer_sequence_memfns_check< - void (buffer_sequence_memfns_base::*)(), - &buffer_sequence_memfns_derived::consume>*); - -template -char (&buffer_sequence_element_type_helper(...))[2]; - -#if defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_element_type_helper(T* t, - typename enable_if::value>::type*); - -#else // defined(ASIO_HAS_DECLTYPE) - -template -char buffer_sequence_element_type_helper( - typename T::const_iterator*, - typename enable_if::value>::type*); - -#endif // defined(ASIO_HAS_DECLTYPE) - -template -char (&const_buffers_type_typedef_helper(...))[2]; - -template -char const_buffers_type_typedef_helper( - typename T::const_buffers_type*); - -template -char (&mutable_buffers_type_typedef_helper(...))[2]; - -template -char mutable_buffers_type_typedef_helper( - typename T::mutable_buffers_type*); - -template -struct is_buffer_sequence_class - : integral_constant(0)) != 1 && - sizeof(buffer_sequence_end_helper(0)) != 1 && - sizeof(buffer_sequence_element_type_helper(0, 0)) == 1> -{ -}; - -template -struct is_buffer_sequence - : conditional::value, - is_buffer_sequence_class, - false_type>::type -{ -}; - -template <> -struct is_buffer_sequence - : true_type -{ -}; - -template <> -struct is_buffer_sequence - : true_type -{ -}; - -template <> -struct is_buffer_sequence - : true_type -{ -}; - -template <> -struct is_buffer_sequence - : false_type -{ -}; - -template -struct is_dynamic_buffer_class - : integral_constant(0)) != 1 && - sizeof(max_size_memfn_helper(0)) != 1 && - sizeof(capacity_memfn_helper(0)) != 1 && - sizeof(data_memfn_helper(0)) != 1 && - sizeof(consume_memfn_helper(0)) != 1 && - sizeof(prepare_memfn_helper(0)) != 1 && - sizeof(commit_memfn_helper(0)) != 1 && - sizeof(const_buffers_type_typedef_helper(0)) == 1 && - sizeof(mutable_buffers_type_typedef_helper(0)) == 1> -{ -}; - -template -struct is_dynamic_buffer - : conditional::value, - is_dynamic_buffer_class, - false_type>::type -{ -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IS_BUFFER_SEQUENCE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/is_executor.hpp b/Sources/Vendor/asio/include/asio/detail/is_executor.hpp deleted file mode 100644 index 4584dd0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/is_executor.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// -// detail/is_executor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_IS_EXECUTOR_HPP -#define ASIO_DETAIL_IS_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/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct executor_memfns_base -{ - void context(); - void on_work_started(); - void on_work_finished(); - void dispatch(); - void post(); - void defer(); -}; - -template -struct executor_memfns_derived - : T, executor_memfns_base -{ -}; - -template -struct executor_memfns_check -{ -}; - -template -char (&context_memfn_helper(...))[2]; - -template -char context_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::context>*); - -template -char (&on_work_started_memfn_helper(...))[2]; - -template -char on_work_started_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::on_work_started>*); - -template -char (&on_work_finished_memfn_helper(...))[2]; - -template -char on_work_finished_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::on_work_finished>*); - -template -char (&dispatch_memfn_helper(...))[2]; - -template -char dispatch_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::dispatch>*); - -template -char (&post_memfn_helper(...))[2]; - -template -char post_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::post>*); - -template -char (&defer_memfn_helper(...))[2]; - -template -char defer_memfn_helper( - executor_memfns_check< - void (executor_memfns_base::*)(), - &executor_memfns_derived::defer>*); - -template -struct is_executor_class - : integral_constant(0)) != 1 && - sizeof(on_work_started_memfn_helper(0)) != 1 && - sizeof(on_work_finished_memfn_helper(0)) != 1 && - sizeof(dispatch_memfn_helper(0)) != 1 && - sizeof(post_memfn_helper(0)) != 1 && - sizeof(defer_memfn_helper(0)) != 1> -{ -}; - -template -struct is_executor - : conditional::value, - is_executor_class, - false_type>::type -{ -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_IS_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/keyword_tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/keyword_tss_ptr.hpp deleted file mode 100644 index 2ae651a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/keyword_tss_ptr.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// detail/keyword_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_KEYWORD_TSS_PTR_HPP -#define ASIO_DETAIL_KEYWORD_TSS_PTR_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_THREAD_KEYWORD_EXTENSION) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class keyword_tss_ptr - : private noncopyable -{ -public: - // Constructor. - keyword_tss_ptr() - { - } - - // Destructor. - ~keyword_tss_ptr() - { - } - - // Get the value. - operator T*() const - { - return value_; - } - - // Set the value. - void operator=(T* value) - { - value_ = value; - } - -private: - static ASIO_THREAD_KEYWORD T* value_; -}; - -template -ASIO_THREAD_KEYWORD T* keyword_tss_ptr::value_; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) - -#endif // ASIO_DETAIL_KEYWORD_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/kqueue_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/kqueue_reactor.hpp deleted file mode 100644 index 43cb9f9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/kqueue_reactor.hpp +++ /dev/null @@ -1,242 +0,0 @@ -// -// detail/kqueue_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2005 Stefan Arentz (stefan at soze 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_DETAIL_KQUEUE_REACTOR_HPP -#define ASIO_DETAIL_KQUEUE_REACTOR_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_KQUEUE) - -#include -#include -#include -#include -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/object_pool.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/error.hpp" -#include "asio/execution_context.hpp" - -// Older versions of Mac OS X may not define EV_OOBAND. -#if !defined(EV_OOBAND) -# define EV_OOBAND EV_FLAG1 -#endif // !defined(EV_OOBAND) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class scheduler; - -class kqueue_reactor - : public execution_context_service_base -{ -private: - // The mutex type used by this reactor. - typedef conditionally_enabled_mutex mutex; - -public: - enum op_types { read_op = 0, write_op = 1, - connect_op = 1, except_op = 2, max_ops = 3 }; - - // Per-descriptor queues. - struct descriptor_state - { - descriptor_state(bool locking) : mutex_(locking) {} - - friend class kqueue_reactor; - friend class object_pool_access; - - descriptor_state* next_; - descriptor_state* prev_; - - mutex mutex_; - int descriptor_; - int num_kevents_; // 1 == read only, 2 == read and write - op_queue op_queue_[max_ops]; - bool shutdown_; - }; - - // Per-descriptor data. - typedef descriptor_state* per_descriptor_data; - - // Constructor. - ASIO_DECL kqueue_reactor(asio::execution_context& ctx); - - // Destructor. - ASIO_DECL ~kqueue_reactor(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::execution_context::fork_event fork_ev); - - // Initialise the task. - ASIO_DECL void init_task(); - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - ASIO_DECL int register_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data); - - // Register a descriptor with an associated single operation. Returns 0 on - // success, system error code on failure. - ASIO_DECL int register_internal_descriptor( - int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op); - - // Move descriptor registration from one descriptor_data object to another. - ASIO_DECL void move_descriptor(socket_type descriptor, - per_descriptor_data& target_descriptor_data, - per_descriptor_data& source_descriptor_data); - - // Post a reactor operation for immediate completion. - void post_immediate_completion(reactor_op* op, bool is_continuation) - { - scheduler_.post_immediate_completion(op, is_continuation); - } - - // Start a new operation. The reactor operation will be performed when the - // given descriptor is flagged as ready, or an error has occurred. - ASIO_DECL void start_op(int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op, - bool is_continuation, bool allow_speculative); - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - ASIO_DECL void cancel_ops(socket_type descriptor, - per_descriptor_data& descriptor_data); - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. The reactor resources associated with - // the descriptor must be released by calling cleanup_descriptor_data. - ASIO_DECL void deregister_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data, bool closing); - - // Remove the descriptor's registration from the reactor. The reactor - // resources associated with the descriptor must be released by calling - // cleanup_descriptor_data. - ASIO_DECL void deregister_internal_descriptor( - socket_type descriptor, per_descriptor_data& descriptor_data); - - // Perform any post-deregistration cleanup tasks associated with the - // descriptor data. - ASIO_DECL void cleanup_descriptor_data( - per_descriptor_data& descriptor_data); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source); - - // Run the kqueue loop. - ASIO_DECL void run(long usec, op_queue& ops); - - // Interrupt the kqueue loop. - ASIO_DECL void interrupt(); - -private: - // Create the kqueue file descriptor. Throws an exception if the descriptor - // cannot be created. - ASIO_DECL static int do_kqueue_create(); - - // Allocate a new descriptor state object. - ASIO_DECL descriptor_state* allocate_descriptor_state(); - - // Free an existing descriptor state object. - ASIO_DECL void free_descriptor_state(descriptor_state* s); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Get the timeout value for the kevent call. - ASIO_DECL timespec* get_timeout(long usec, timespec& ts); - - // The scheduler used to post completions. - scheduler& scheduler_; - - // Mutex to protect access to internal data. - mutex mutex_; - - // The kqueue file descriptor. - int kqueue_fd_; - - // The interrupter is used to break a blocking kevent call. - select_interrupter interrupter_; - - // The timer queues. - timer_queue_set timer_queues_; - - // Whether the service has been shut down. - bool shutdown_; - - // Mutex to protect access to the registered descriptors. - mutex registered_descriptors_mutex_; - - // Keep track of all registered descriptors. - object_pool registered_descriptors_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/kqueue_reactor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/kqueue_reactor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_KQUEUE) - -#endif // ASIO_DETAIL_KQUEUE_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/limits.hpp b/Sources/Vendor/asio/include/asio/detail/limits.hpp deleted file mode 100644 index d32470d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/limits.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// -// detail/limits.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2011 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_DETAIL_LIMITS_HPP -#define ASIO_DETAIL_LIMITS_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_BOOST_LIMITS) -# include -#else // defined(ASIO_HAS_BOOST_LIMITS) -# include -#endif // defined(ASIO_HAS_BOOST_LIMITS) - -#endif // ASIO_DETAIL_LIMITS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/local_free_on_block_exit.hpp b/Sources/Vendor/asio/include/asio/detail/local_free_on_block_exit.hpp deleted file mode 100644 index eba6b77..0000000 --- a/Sources/Vendor/asio/include/asio/detail/local_free_on_block_exit.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// detail/local_free_on_block_exit.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP -#define ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_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_WINDOWS) || defined(__CYGWIN__) -#if !defined(ASIO_WINDOWS_APP) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class local_free_on_block_exit - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - explicit local_free_on_block_exit(void* p) - : p_(p) - { - } - - // Destructor restores the previous signal mask. - ~local_free_on_block_exit() - { - ::LocalFree(p_); - } - -private: - void* p_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS_APP) -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_LOCAL_FREE_ON_BLOCK_EXIT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/macos_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/macos_fenced_block.hpp deleted file mode 100644 index bbac270..0000000 --- a/Sources/Vendor/asio/include/asio/detail/macos_fenced_block.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// detail/macos_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_MACOS_FENCED_BLOCK_HPP -#define ASIO_DETAIL_MACOS_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__MACH__) && defined(__APPLE__) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class macos_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit macos_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit macos_fenced_block(full_t) - { - OSMemoryBarrier(); - } - - // Destructor. - ~macos_fenced_block() - { - OSMemoryBarrier(); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__MACH__) && defined(__APPLE__) - -#endif // ASIO_DETAIL_MACOS_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/memory.hpp b/Sources/Vendor/asio/include/asio/detail/memory.hpp deleted file mode 100644 index b1ec497..0000000 --- a/Sources/Vendor/asio/include/asio/detail/memory.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// detail/memory.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_MEMORY_HPP -#define ASIO_DETAIL_MEMORY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#if !defined(ASIO_HAS_STD_SHARED_PTR) -# include -# include -#endif // !defined(ASIO_HAS_STD_SHARED_PTR) - -#if !defined(ASIO_HAS_STD_ADDRESSOF) -# include -#endif // !defined(ASIO_HAS_STD_ADDRESSOF) - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_STD_SHARED_PTR) -using std::shared_ptr; -using std::weak_ptr; -#else // defined(ASIO_HAS_STD_SHARED_PTR) -using boost::shared_ptr; -using boost::weak_ptr; -#endif // defined(ASIO_HAS_STD_SHARED_PTR) - -#if defined(ASIO_HAS_STD_ADDRESSOF) -using std::addressof; -#else // defined(ASIO_HAS_STD_ADDRESSOF) -using boost::addressof; -#endif // defined(ASIO_HAS_STD_ADDRESSOF) - -} // namespace detail - -#if defined(ASIO_HAS_CXX11_ALLOCATORS) -using std::allocator_arg_t; -# define ASIO_USES_ALLOCATOR(t) \ - namespace std { \ - template \ - struct uses_allocator : true_type {}; \ - } \ - /**/ -# define ASIO_REBIND_ALLOC(alloc, t) \ - typename std::allocator_traits::template rebind_alloc - /**/ -#else // defined(ASIO_HAS_CXX11_ALLOCATORS) -struct allocator_arg_t {}; -# define ASIO_USES_ALLOCATOR(t) -# define ASIO_REBIND_ALLOC(alloc, t) \ - typename alloc::template rebind::other - /**/ -#endif // defined(ASIO_HAS_CXX11_ALLOCATORS) - -} // namespace asio - -#endif // ASIO_DETAIL_MEMORY_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/mutex.hpp b/Sources/Vendor/asio/include/asio/detail/mutex.hpp deleted file mode 100644 index 2f8f0b1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/mutex.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// detail/mutex.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_MUTEX_HPP -#define ASIO_DETAIL_MUTEX_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_THREADS) -# include "asio/detail/null_mutex.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_mutex.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_mutex.hpp" -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -# include "asio/detail/std_mutex.hpp" -#else -# error Only Windows, POSIX and std::mutex are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef null_mutex mutex; -#elif defined(ASIO_WINDOWS) -typedef win_mutex mutex; -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_mutex mutex; -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -typedef std_mutex mutex; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/noncopyable.hpp b/Sources/Vendor/asio/include/asio/detail/noncopyable.hpp deleted file mode 100644 index 0c038e1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/noncopyable.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// detail/noncopyable.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NONCOPYABLE_HPP -#define ASIO_DETAIL_NONCOPYABLE_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 { -namespace detail { - -class noncopyable -{ -protected: - noncopyable() {} - ~noncopyable() {} -private: - noncopyable(const noncopyable&); - const noncopyable& operator=(const noncopyable&); -}; - -} // namespace detail - -using asio::detail::noncopyable; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_NONCOPYABLE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_event.hpp b/Sources/Vendor/asio/include/asio/detail/null_event.hpp deleted file mode 100644 index 5686a41..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_event.hpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// detail/null_event.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_EVENT_HPP -#define ASIO_DETAIL_NULL_EVENT_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/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_event - : private noncopyable -{ -public: - // Constructor. - null_event() - { - } - - // Destructor. - ~null_event() - { - } - - // Signal the event. (Retained for backward compatibility.) - template - void signal(Lock&) - { - } - - // Signal all waiters. - template - void signal_all(Lock&) - { - } - - // Unlock the mutex and signal one waiter. - template - void unlock_and_signal_one(Lock&) - { - } - - // If there's a waiter, unlock the mutex and signal it. - template - bool maybe_unlock_and_signal_one(Lock&) - { - return false; - } - - // Reset the event. - template - void clear(Lock&) - { - } - - // Wait for the event to become signalled. - template - void wait(Lock&) - { - do_wait(); - } - - // Timed wait for the event to become signalled. - template - bool wait_for_usec(Lock&, long usec) - { - do_wait_for_usec(usec); - return true; - } - -private: - ASIO_DECL static void do_wait(); - ASIO_DECL static void do_wait_for_usec(long usec); -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/null_event.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_NULL_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/null_fenced_block.hpp deleted file mode 100644 index 0275326..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_fenced_block.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// detail/null_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_FENCED_BLOCK_HPP -#define ASIO_DETAIL_NULL_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_fenced_block - : private noncopyable -{ -public: - enum half_or_full_t { half, full }; - - // Constructor. - explicit null_fenced_block(half_or_full_t) - { - } - - // Destructor. - ~null_fenced_block() - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_NULL_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_global.hpp b/Sources/Vendor/asio/include/asio/detail/null_global.hpp deleted file mode 100644 index 727dd3f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_global.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// detail/null_global.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_GLOBAL_HPP -#define ASIO_DETAIL_NULL_GLOBAL_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 { -namespace detail { - -template -struct null_global_impl -{ - null_global_impl() - : ptr_(0) - { - } - - // Destructor automatically cleans up the global. - ~null_global_impl() - { - delete ptr_; - } - - static null_global_impl instance_; - T* ptr_; -}; - -template -null_global_impl null_global_impl::instance_; - -template -T& null_global() -{ - if (null_global_impl::instance_.ptr_ == 0) - null_global_impl::instance_.ptr_ = new T; - return *null_global_impl::instance_.ptr_; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_NULL_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/null_mutex.hpp deleted file mode 100644 index afe3fc0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_mutex.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// detail/null_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_MUTEX_HPP -#define ASIO_DETAIL_NULL_MUTEX_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_THREADS) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - null_mutex() - { - } - - // Destructor. - ~null_mutex() - { - } - - // Lock the mutex. - void lock() - { - } - - // Unlock the mutex. - void unlock() - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - -#endif // ASIO_DETAIL_NULL_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/null_reactor.hpp deleted file mode 100644 index ca3c5fd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_reactor.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/null_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_REACTOR_HPP -#define ASIO_DETAIL_NULL_REACTOR_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_IOCP) || defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/scheduler_operation.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_reactor - : public execution_context_service_base -{ -public: - // Constructor. - null_reactor(asio::execution_context& ctx) - : execution_context_service_base(ctx) - { - } - - // Destructor. - ~null_reactor() - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - } - - // No-op because should never be called. - void run(long /*usec*/, op_queue& /*ops*/) - { - } - - // No-op. - void interrupt() - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_NULL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_signal_blocker.hpp b/Sources/Vendor/asio/include/asio/detail/null_signal_blocker.hpp deleted file mode 100644 index edfe820..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_signal_blocker.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// detail/null_signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_SIGNAL_BLOCKER_HPP -#define ASIO_DETAIL_NULL_SIGNAL_BLOCKER_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_THREADS) \ - || defined(ASIO_WINDOWS) \ - || defined(ASIO_WINDOWS_RUNTIME) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_signal_blocker - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - null_signal_blocker() - { - } - - // Destructor restores the previous signal mask. - ~null_signal_blocker() - { - } - - // Block all signals for the calling thread. - void block() - { - } - - // Restore the previous signal mask. - void unblock() - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - // || defined(ASIO_WINDOWS) - // || defined(ASIO_WINDOWS_RUNTIME) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - -#endif // ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_socket_service.hpp b/Sources/Vendor/asio/include/asio/detail/null_socket_service.hpp deleted file mode 100644 index 109c6c7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_socket_service.hpp +++ /dev/null @@ -1,508 +0,0 @@ -// -// detail/null_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_SOCKET_SERVICE_HPP -#define ASIO_DETAIL_NULL_SOCKET_SERVICE_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_WINDOWS_RUNTIME) - -#include "asio/buffer.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/bind_handler.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class null_socket_service : - public service_base > -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - typedef int native_handle_type; - - // The implementation type of the socket. - struct implementation_type - { - }; - - // Constructor. - null_socket_service(asio::io_context& io_context) - : service_base >(io_context), - io_context_(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - } - - // Construct a new socket implementation. - void construct(implementation_type&) - { - } - - // Move-construct a new socket implementation. - void move_construct(implementation_type&, implementation_type&) - { - } - - // Move-assign from another socket implementation. - void move_assign(implementation_type&, - null_socket_service&, implementation_type&) - { - } - - // Move-construct a new socket implementation from another protocol type. - template - void converting_move_construct(implementation_type&, - null_socket_service&, - typename null_socket_service::implementation_type&) - { - } - - // Destroy a socket implementation. - void destroy(implementation_type&) - { - } - - // Open a new socket implementation. - asio::error_code open(implementation_type&, - const protocol_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Assign a native socket to a socket implementation. - asio::error_code assign(implementation_type&, const protocol_type&, - const native_handle_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Determine whether the socket is open. - bool is_open(const implementation_type&) const - { - return false; - } - - // Destroy a socket implementation. - asio::error_code close(implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Release ownership of the socket. - native_handle_type release(implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Get the native socket representation. - native_handle_type native_handle(implementation_type&) - { - return 0; - } - - // Cancel all operations associated with the socket. - asio::error_code cancel(implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return false; - } - - // Determine the number of bytes available for reading. - std::size_t available(const implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Place the socket into the state where it will listen for new connections. - asio::error_code listen(implementation_type&, - int, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Perform an IO control command on the socket. - template - asio::error_code io_control(implementation_type&, - IO_Control_Command&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type&) const - { - return false; - } - - // Sets the non-blocking mode of the socket. - asio::error_code non_blocking(implementation_type&, - bool, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type&) const - { - return false; - } - - // Sets the non-blocking mode of the native socket implementation. - asio::error_code native_non_blocking(implementation_type&, - bool, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Disable sends or receives on the socket. - asio::error_code shutdown(implementation_type&, - socket_base::shutdown_type, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Bind the socket to the specified local endpoint. - asio::error_code bind(implementation_type&, - const endpoint_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Set a socket option. - template - asio::error_code set_option(implementation_type&, - const Option&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Set a socket option. - template - asio::error_code get_option(const implementation_type&, - Option&, asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return endpoint_type(); - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return endpoint_type(); - } - - // Send the given data to the peer. - template - std::size_t send(implementation_type&, const ConstBufferSequence&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be sent without blocking. - std::size_t send(implementation_type&, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(implementation_type&, const ConstBufferSequence&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(implementation_type&, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Receive some data from the peer. Returns the number of bytes received. - template - std::size_t receive(implementation_type&, const MutableBufferSequence&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be received without blocking. - std::size_t receive(implementation_type&, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(implementation_type&, const MutableBufferSequence&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Wait until data can be received without blocking. - template - void async_receive(implementation_type&, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Receive some data with associated flags. Returns the number of bytes - // received. - template - std::size_t receive_with_flags(implementation_type&, - const MutableBufferSequence&, socket_base::message_flags, - socket_base::message_flags&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be received without blocking. - std::size_t receive_with_flags(implementation_type&, - const null_buffers&, socket_base::message_flags, - socket_base::message_flags&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive_with_flags(implementation_type&, - const MutableBufferSequence&, socket_base::message_flags, - socket_base::message_flags&, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Wait until data can be received without blocking. - template - void async_receive_with_flags(implementation_type&, - const null_buffers&, socket_base::message_flags, - socket_base::message_flags&, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Send a datagram to the specified endpoint. Returns the number of bytes - // sent. - template - std::size_t send_to(implementation_type&, const ConstBufferSequence&, - const endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be sent without blocking. - std::size_t send_to(implementation_type&, const null_buffers&, - const endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send_to(implementation_type&, const ConstBufferSequence&, - const endpoint_type&, socket_base::message_flags, - Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send_to(implementation_type&, const null_buffers&, - const endpoint_type&, socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Receive a datagram with the endpoint of the sender. Returns the number of - // bytes received. - template - std::size_t receive_from(implementation_type&, const MutableBufferSequence&, - endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Wait until data can be received without blocking. - std::size_t receive_from(implementation_type&, const null_buffers&, - endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received and - // the sender_endpoint object must both be valid for the lifetime of the - // asynchronous operation. - template - void async_receive_from(implementation_type&, - const MutableBufferSequence&, endpoint_type&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Wait until data can be received without blocking. - template - void async_receive_from(implementation_type&, - const null_buffers&, endpoint_type&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.post(detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Accept a new connection. - template - asio::error_code accept(implementation_type&, - Socket&, endpoint_type*, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Start an asynchronous accept. The peer and peer_endpoint objects - // must be valid until the accept's handler is invoked. - template - void async_accept(implementation_type&, Socket&, - endpoint_type*, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - io_context_.post(detail::bind_handler(handler, ec)); - } - - // Connect the socket to the specified endpoint. - asio::error_code connect(implementation_type&, - const endpoint_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Start an asynchronous connect. - template - void async_connect(implementation_type&, - const endpoint_type&, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - io_context_.post(detail::bind_handler(handler, ec)); - } - -private: - asio::io_context& io_context_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_NULL_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/null_static_mutex.hpp deleted file mode 100644 index 36ec04f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_static_mutex.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// detail/null_static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_STATIC_MUTEX_HPP -#define ASIO_DETAIL_NULL_STATIC_MUTEX_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_THREADS) - -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct null_static_mutex -{ - typedef asio::detail::scoped_lock scoped_lock; - - // Initialise the mutex. - void init() - { - } - - // Lock the mutex. - void lock() - { - } - - // Unlock the mutex. - void unlock() - { - } - - int unused_; -}; - -#define ASIO_NULL_STATIC_MUTEX_INIT { 0 } - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - -#endif // ASIO_DETAIL_NULL_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_thread.hpp b/Sources/Vendor/asio/include/asio/detail/null_thread.hpp deleted file mode 100644 index 7291ba3..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_thread.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// detail/null_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_THREAD_HPP -#define ASIO_DETAIL_NULL_THREAD_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_THREADS) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class null_thread - : private noncopyable -{ -public: - // Constructor. - template - null_thread(Function, unsigned int = 0) - { - asio::detail::throw_error( - asio::error::operation_not_supported, "thread"); - } - - // Destructor. - ~null_thread() - { - } - - // Wait for the thread to exit. - void join() - { - } - - // Get number of CPUs. - static std::size_t hardware_concurrency() - { - return 1; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - -#endif // ASIO_DETAIL_NULL_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/null_tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/null_tss_ptr.hpp deleted file mode 100644 index 323967d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/null_tss_ptr.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/null_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_NULL_TSS_PTR_HPP -#define ASIO_DETAIL_NULL_TSS_PTR_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_THREADS) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class null_tss_ptr - : private noncopyable -{ -public: - // Constructor. - null_tss_ptr() - : value_(0) - { - } - - // Destructor. - ~null_tss_ptr() - { - } - - // Get the value. - operator T*() const - { - return value_; - } - - // Set the value. - void operator=(T* value) - { - value_ = value; - } - -private: - T* value_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_THREADS) - -#endif // ASIO_DETAIL_NULL_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/object_pool.hpp b/Sources/Vendor/asio/include/asio/detail/object_pool.hpp deleted file mode 100644 index e1a3c54..0000000 --- a/Sources/Vendor/asio/include/asio/detail/object_pool.hpp +++ /dev/null @@ -1,171 +0,0 @@ -// -// detail/object_pool.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_OBJECT_POOL_HPP -#define ASIO_DETAIL_OBJECT_POOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class object_pool; - -class object_pool_access -{ -public: - template - static Object* create() - { - return new Object; - } - - template - static Object* create(Arg arg) - { - return new Object(arg); - } - - template - static void destroy(Object* o) - { - delete o; - } - - template - static Object*& next(Object* o) - { - return o->next_; - } - - template - static Object*& prev(Object* o) - { - return o->prev_; - } -}; - -template -class object_pool - : private noncopyable -{ -public: - // Constructor. - object_pool() - : live_list_(0), - free_list_(0) - { - } - - // Destructor destroys all objects. - ~object_pool() - { - destroy_list(live_list_); - destroy_list(free_list_); - } - - // Get the object at the start of the live list. - Object* first() - { - return live_list_; - } - - // Allocate a new object. - Object* alloc() - { - Object* o = free_list_; - if (o) - free_list_ = object_pool_access::next(free_list_); - else - o = object_pool_access::create(); - - object_pool_access::next(o) = live_list_; - object_pool_access::prev(o) = 0; - if (live_list_) - object_pool_access::prev(live_list_) = o; - live_list_ = o; - - return o; - } - - // Allocate a new object with an argument. - template - Object* alloc(Arg arg) - { - Object* o = free_list_; - if (o) - free_list_ = object_pool_access::next(free_list_); - else - o = object_pool_access::create(arg); - - object_pool_access::next(o) = live_list_; - object_pool_access::prev(o) = 0; - if (live_list_) - object_pool_access::prev(live_list_) = o; - live_list_ = o; - - return o; - } - - // Free an object. Moves it to the free list. No destructors are run. - void free(Object* o) - { - if (live_list_ == o) - live_list_ = object_pool_access::next(o); - - if (object_pool_access::prev(o)) - { - object_pool_access::next(object_pool_access::prev(o)) - = object_pool_access::next(o); - } - - if (object_pool_access::next(o)) - { - object_pool_access::prev(object_pool_access::next(o)) - = object_pool_access::prev(o); - } - - object_pool_access::next(o) = free_list_; - object_pool_access::prev(o) = 0; - free_list_ = o; - } - -private: - // Helper function to destroy all elements in a list. - void destroy_list(Object* list) - { - while (list) - { - Object* o = list; - list = object_pool_access::next(o); - object_pool_access::destroy(o); - } - } - - // The list of live objects. - Object* live_list_; - - // The free list. - Object* free_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_OBJECT_POOL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/old_win_sdk_compat.hpp b/Sources/Vendor/asio/include/asio/detail/old_win_sdk_compat.hpp deleted file mode 100644 index bfb109e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/old_win_sdk_compat.hpp +++ /dev/null @@ -1,214 +0,0 @@ -// -// detail/old_win_sdk_compat.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_OLD_WIN_SDK_COMPAT_HPP -#define ASIO_DETAIL_OLD_WIN_SDK_COMPAT_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_WINDOWS) || defined(__CYGWIN__) - -// Guess whether we are building against on old Platform SDK. -#if !defined(IN6ADDR_ANY_INIT) -#define ASIO_HAS_OLD_WIN_SDK 1 -#endif // !defined(IN6ADDR_ANY_INIT) - -#if defined(ASIO_HAS_OLD_WIN_SDK) - -// Emulation of types that are missing from old Platform SDKs. -// -// N.B. this emulation is also used if building for a Windows 2000 target with -// a recent (i.e. Vista or later) SDK, as the SDK does not provide IPv6 support -// in that case. - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -enum -{ - sockaddr_storage_maxsize = 128, // Maximum size. - sockaddr_storage_alignsize = (sizeof(__int64)), // Desired alignment. - sockaddr_storage_pad1size = (sockaddr_storage_alignsize - sizeof(short)), - sockaddr_storage_pad2size = (sockaddr_storage_maxsize - - (sizeof(short) + sockaddr_storage_pad1size + sockaddr_storage_alignsize)) -}; - -struct sockaddr_storage_emulation -{ - short ss_family; - char __ss_pad1[sockaddr_storage_pad1size]; - __int64 __ss_align; - char __ss_pad2[sockaddr_storage_pad2size]; -}; - -struct in6_addr_emulation -{ - union - { - u_char Byte[16]; - u_short Word[8]; - } u; -}; - -#if !defined(s6_addr) -# define _S6_un u -# define _S6_u8 Byte -# define s6_addr _S6_un._S6_u8 -#endif // !defined(s6_addr) - -struct sockaddr_in6_emulation -{ - short sin6_family; - u_short sin6_port; - u_long sin6_flowinfo; - in6_addr_emulation sin6_addr; - u_long sin6_scope_id; -}; - -struct ipv6_mreq_emulation -{ - in6_addr_emulation ipv6mr_multiaddr; - unsigned int ipv6mr_interface; -}; - -struct addrinfo_emulation -{ - int ai_flags; - int ai_family; - int ai_socktype; - int ai_protocol; - size_t ai_addrlen; - char* ai_canonname; - sockaddr* ai_addr; - addrinfo_emulation* ai_next; -}; - -#if !defined(AI_PASSIVE) -# define AI_PASSIVE 0x1 -#endif - -#if !defined(AI_CANONNAME) -# define AI_CANONNAME 0x2 -#endif - -#if !defined(AI_NUMERICHOST) -# define AI_NUMERICHOST 0x4 -#endif - -#if !defined(EAI_AGAIN) -# define EAI_AGAIN WSATRY_AGAIN -#endif - -#if !defined(EAI_BADFLAGS) -# define EAI_BADFLAGS WSAEINVAL -#endif - -#if !defined(EAI_FAIL) -# define EAI_FAIL WSANO_RECOVERY -#endif - -#if !defined(EAI_FAMILY) -# define EAI_FAMILY WSAEAFNOSUPPORT -#endif - -#if !defined(EAI_MEMORY) -# define EAI_MEMORY WSA_NOT_ENOUGH_MEMORY -#endif - -#if !defined(EAI_NODATA) -# define EAI_NODATA WSANO_DATA -#endif - -#if !defined(EAI_NONAME) -# define EAI_NONAME WSAHOST_NOT_FOUND -#endif - -#if !defined(EAI_SERVICE) -# define EAI_SERVICE WSATYPE_NOT_FOUND -#endif - -#if !defined(EAI_SOCKTYPE) -# define EAI_SOCKTYPE WSAESOCKTNOSUPPORT -#endif - -#if !defined(NI_NOFQDN) -# define NI_NOFQDN 0x01 -#endif - -#if !defined(NI_NUMERICHOST) -# define NI_NUMERICHOST 0x02 -#endif - -#if !defined(NI_NAMEREQD) -# define NI_NAMEREQD 0x04 -#endif - -#if !defined(NI_NUMERICSERV) -# define NI_NUMERICSERV 0x08 -#endif - -#if !defined(NI_DGRAM) -# define NI_DGRAM 0x10 -#endif - -#if !defined(IPPROTO_IPV6) -# define IPPROTO_IPV6 41 -#endif - -#if !defined(IPV6_UNICAST_HOPS) -# define IPV6_UNICAST_HOPS 4 -#endif - -#if !defined(IPV6_MULTICAST_IF) -# define IPV6_MULTICAST_IF 9 -#endif - -#if !defined(IPV6_MULTICAST_HOPS) -# define IPV6_MULTICAST_HOPS 10 -#endif - -#if !defined(IPV6_MULTICAST_LOOP) -# define IPV6_MULTICAST_LOOP 11 -#endif - -#if !defined(IPV6_JOIN_GROUP) -# define IPV6_JOIN_GROUP 12 -#endif - -#if !defined(IPV6_LEAVE_GROUP) -# define IPV6_LEAVE_GROUP 13 -#endif - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_OLD_WIN_SDK) - -// Even newer Platform SDKs that support IPv6 may not define IPV6_V6ONLY. -#if !defined(IPV6_V6ONLY) -# define IPV6_V6ONLY 27 -#endif - -// Some SDKs (e.g. Windows CE) don't define IPPROTO_ICMPV6. -#if !defined(IPPROTO_ICMPV6) -# define IPPROTO_ICMPV6 58 -#endif - -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_OLD_WIN_SDK_COMPAT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/op_queue.hpp b/Sources/Vendor/asio/include/asio/detail/op_queue.hpp deleted file mode 100644 index 6219f79..0000000 --- a/Sources/Vendor/asio/include/asio/detail/op_queue.hpp +++ /dev/null @@ -1,162 +0,0 @@ -// -// detail/op_queue.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_OP_QUEUE_HPP -#define ASIO_DETAIL_OP_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class op_queue; - -class op_queue_access -{ -public: - template - static Operation* next(Operation* o) - { - return static_cast(o->next_); - } - - template - static void next(Operation1*& o1, Operation2* o2) - { - o1->next_ = o2; - } - - template - static void destroy(Operation* o) - { - o->destroy(); - } - - template - static Operation*& front(op_queue& q) - { - return q.front_; - } - - template - static Operation*& back(op_queue& q) - { - return q.back_; - } -}; - -template -class op_queue - : private noncopyable -{ -public: - // Constructor. - op_queue() - : front_(0), - back_(0) - { - } - - // Destructor destroys all operations. - ~op_queue() - { - while (Operation* op = front_) - { - pop(); - op_queue_access::destroy(op); - } - } - - // Get the operation at the front of the queue. - Operation* front() - { - return front_; - } - - // Pop an operation from the front of the queue. - void pop() - { - if (front_) - { - Operation* tmp = front_; - front_ = op_queue_access::next(front_); - if (front_ == 0) - back_ = 0; - op_queue_access::next(tmp, static_cast(0)); - } - } - - // Push an operation on to the back of the queue. - void push(Operation* h) - { - op_queue_access::next(h, static_cast(0)); - if (back_) - { - op_queue_access::next(back_, h); - back_ = h; - } - else - { - front_ = back_ = h; - } - } - - // Push all operations from another queue on to the back of the queue. The - // source queue may contain operations of a derived type. - template - void push(op_queue& q) - { - if (Operation* other_front = op_queue_access::front(q)) - { - if (back_) - op_queue_access::next(back_, other_front); - else - front_ = other_front; - back_ = op_queue_access::back(q); - op_queue_access::front(q) = 0; - op_queue_access::back(q) = 0; - } - } - - // Whether the queue is empty. - bool empty() const - { - return front_ == 0; - } - - // Test whether an operation is already enqueued. - bool is_enqueued(Operation* o) const - { - return op_queue_access::next(o) != 0 || back_ == o; - } - -private: - friend class op_queue_access; - - // The front of the queue. - Operation* front_; - - // The back of the queue. - Operation* back_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_OP_QUEUE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/operation.hpp b/Sources/Vendor/asio/include/asio/detail/operation.hpp deleted file mode 100644 index 811e54d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/operation.hpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// detail/operation.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_OPERATION_HPP -#define ASIO_DETAIL_OPERATION_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_IOCP) -# include "asio/detail/win_iocp_operation.hpp" -#else -# include "asio/detail/scheduler_operation.hpp" -#endif - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_IOCP) -typedef win_iocp_operation operation; -#else -typedef scheduler_operation operation; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_OPERATION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/pipe_select_interrupter.hpp b/Sources/Vendor/asio/include/asio/detail/pipe_select_interrupter.hpp deleted file mode 100644 index 55d7db4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/pipe_select_interrupter.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// detail/pipe_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_PIPE_SELECT_INTERRUPTER_HPP -#define ASIO_DETAIL_PIPE_SELECT_INTERRUPTER_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_WINDOWS) -#if !defined(ASIO_WINDOWS_RUNTIME) -#if !defined(__CYGWIN__) -#if !defined(__SYMBIAN32__) -#if !defined(ASIO_HAS_EVENTFD) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class pipe_select_interrupter -{ -public: - // Constructor. - ASIO_DECL pipe_select_interrupter(); - - // Destructor. - ASIO_DECL ~pipe_select_interrupter(); - - // Recreate the interrupter's descriptors. Used after a fork. - ASIO_DECL void recreate(); - - // Interrupt the select call. - ASIO_DECL void interrupt(); - - // Reset the select interrupt. Returns true if the call was interrupted. - ASIO_DECL bool reset(); - - // Get the read descriptor to be passed to select. - int read_descriptor() const - { - return read_descriptor_; - } - -private: - // Open the descriptors. Throws on error. - ASIO_DECL void open_descriptors(); - - // Close the descriptors. - ASIO_DECL void close_descriptors(); - - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // byte will be written on the other end of the connection and this - // descriptor will become readable. - int read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // byte may be written to this to wake up the select which is waiting for the - // other end to become readable. - int write_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/pipe_select_interrupter.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_HAS_EVENTFD) -#endif // !defined(__SYMBIAN32__) -#endif // !defined(__CYGWIN__) -#endif // !defined(ASIO_WINDOWS_RUNTIME) -#endif // !defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_PIPE_SELECT_INTERRUPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/pop_options.hpp b/Sources/Vendor/asio/include/asio/detail/pop_options.hpp deleted file mode 100644 index 1045612..0000000 --- a/Sources/Vendor/asio/include/asio/detail/pop_options.hpp +++ /dev/null @@ -1,135 +0,0 @@ -// -// detail/pop_options.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -// No header guard - -#if defined(__COMO__) - -// Comeau C++ - -#elif defined(__DMC__) - -// Digital Mars C++ - -#elif defined(__INTEL_COMPILER) || defined(__ICL) \ - || defined(__ICC) || defined(__ECC) - -// Intel C++ - -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) - -#elif defined(__clang__) - -// Clang - -# if defined(__OBJC__) -# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) -# if defined(ASIO_OBJC_WORKAROUND) -# undef Protocol -# undef id -# undef ASIO_OBJC_WORKAROUND -# endif -# endif -# endif - -# if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) -# pragma GCC visibility pop -# endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) - -#elif defined(__GNUC__) - -// GNU C++ - -# if defined(__MINGW32__) || defined(__CYGWIN__) -# pragma pack (pop) -# endif - -# if defined(__OBJC__) -# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) -# if defined(ASIO_OBJC_WORKAROUND) -# undef Protocol -# undef id -# undef ASIO_OBJC_WORKAROUND -# endif -# endif -# endif - -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) - -# if (__GNUC__ >= 7) -# pragma GCC diagnostic pop -# endif // (__GNUC__ >= 7) - -#elif defined(__KCC) - -// Kai C++ - -#elif defined(__sgi) - -// SGI MIPSpro C++ - -#elif defined(__DECCXX) - -// Compaq Tru64 Unix cxx - -#elif defined(__ghs) - -// Greenhills C++ - -#elif defined(__BORLANDC__) - -// Borland C++ - -# pragma option pop -# pragma nopushoptwarn -# pragma nopackwarning - -#elif defined(__MWERKS__) - -// Metrowerks CodeWarrior - -#elif defined(__SUNPRO_CC) - -// Sun Workshop Compiler C++ - -#elif defined(__HP_aCC) - -// HP aCC - -#elif defined(__MRC__) || defined(__SC__) - -// MPW MrCpp or SCpp - -#elif defined(__IBMCPP__) - -// IBM Visual Age - -#elif defined(_MSC_VER) - -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for example) -// also #define _MSC_VER - -# pragma warning (pop) -# pragma pack (pop) - -# if defined(__cplusplus_cli) || defined(__cplusplus_winrt) -# if defined(ASIO_CLR_WORKAROUND) -# undef generic -# undef ASIO_CLR_WORKAROUND -# endif -# endif - -#endif diff --git a/Sources/Vendor/asio/include/asio/detail/posix_event.hpp b/Sources/Vendor/asio/include/asio/detail/posix_event.hpp deleted file mode 100644 index 121065e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_event.hpp +++ /dev/null @@ -1,162 +0,0 @@ -// -// detail/posix_event.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_POSIX_EVENT_HPP -#define ASIO_DETAIL_POSIX_EVENT_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_PTHREADS) - -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class posix_event - : private noncopyable -{ -public: - // Constructor. - ASIO_DECL posix_event(); - - // Destructor. - ~posix_event() - { - ::pthread_cond_destroy(&cond_); - } - - // Signal the event. (Retained for backward compatibility.) - template - void signal(Lock& lock) - { - this->signal_all(lock); - } - - // Signal all waiters. - template - void signal_all(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ |= 1; - ::pthread_cond_broadcast(&cond_); // Ignore EINVAL. - } - - // Unlock the mutex and signal one waiter. - template - void unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - bool have_waiters = (state_ > 1); - lock.unlock(); - if (have_waiters) - ::pthread_cond_signal(&cond_); // Ignore EINVAL. - } - - // If there's a waiter, unlock the mutex and signal it. - template - bool maybe_unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - if (state_ > 1) - { - lock.unlock(); - ::pthread_cond_signal(&cond_); // Ignore EINVAL. - return true; - } - return false; - } - - // Reset the event. - template - void clear(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ &= ~std::size_t(1); - } - - // Wait for the event to become signalled. - template - void wait(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - while ((state_ & 1) == 0) - { - state_ += 2; - ::pthread_cond_wait(&cond_, &lock.mutex().mutex_); // Ignore EINVAL. - state_ -= 2; - } - } - - // Timed wait for the event to become signalled. - template - bool wait_for_usec(Lock& lock, long usec) - { - ASIO_ASSERT(lock.locked()); - if ((state_ & 1) == 0) - { - state_ += 2; - timespec ts; -#if (defined(__MACH__) && defined(__APPLE__)) \ - || (defined(__ANDROID__) && (__ANDROID_API__ < 21) \ - && defined(HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE)) - ts.tv_sec = usec / 1000000; - ts.tv_nsec = (usec % 1000000) * 1000; - ::pthread_cond_timedwait_relative_np( - &cond_, &lock.mutex().mutex_, &ts); // Ignore EINVAL. -#else // (defined(__MACH__) && defined(__APPLE__)) - // || (defined(__ANDROID__) && (__ANDROID_API__ < 21) - // && defined(HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE)) - if (::clock_gettime(CLOCK_MONOTONIC, &ts) == 0) - { - ts.tv_sec += usec / 1000000; - ts.tv_nsec = (usec % 1000000) * 1000; - ts.tv_sec += ts.tv_nsec / 1000000000; - ts.tv_nsec = ts.tv_nsec % 1000000000; - ::pthread_cond_timedwait(&cond_, - &lock.mutex().mutex_, &ts); // Ignore EINVAL. - } -#endif // (defined(__MACH__) && defined(__APPLE__)) - // || (defined(__ANDROID__) && (__ANDROID_API__ < 21) - // && defined(HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE)) - state_ -= 2; - } - return (state_ & 1) != 0; - } - -private: - ::pthread_cond_t cond_; - std::size_t state_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/posix_event.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_fd_set_adapter.hpp b/Sources/Vendor/asio/include/asio/detail/posix_fd_set_adapter.hpp deleted file mode 100644 index 95042d6..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_fd_set_adapter.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/posix_fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_POSIX_FD_SET_ADAPTER_HPP -#define ASIO_DETAIL_POSIX_FD_SET_ADAPTER_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_WINDOWS) \ - && !defined(__CYGWIN__) \ - && !defined(ASIO_WINDOWS_RUNTIME) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/reactor_op_queue.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Adapts the FD_SET type to meet the Descriptor_Set concept's requirements. -class posix_fd_set_adapter : noncopyable -{ -public: - posix_fd_set_adapter() - : max_descriptor_(invalid_socket) - { - using namespace std; // Needed for memset on Solaris. - FD_ZERO(&fd_set_); - } - - void reset() - { - using namespace std; // Needed for memset on Solaris. - FD_ZERO(&fd_set_); - } - - bool set(socket_type descriptor) - { - if (descriptor < (socket_type)FD_SETSIZE) - { - if (max_descriptor_ == invalid_socket || descriptor > max_descriptor_) - max_descriptor_ = descriptor; - FD_SET(descriptor, &fd_set_); - return true; - } - return false; - } - - void set(reactor_op_queue& operations, op_queue& ops) - { - reactor_op_queue::iterator i = operations.begin(); - while (i != operations.end()) - { - reactor_op_queue::iterator op_iter = i++; - if (!set(op_iter->first)) - { - asio::error_code ec(error::fd_set_failure); - operations.cancel_operations(op_iter, ops, ec); - } - } - } - - bool is_set(socket_type descriptor) const - { - return FD_ISSET(descriptor, &fd_set_) != 0; - } - - operator fd_set*() - { - return &fd_set_; - } - - socket_type max_descriptor() const - { - return max_descriptor_; - } - - void perform(reactor_op_queue& operations, - op_queue& ops) const - { - reactor_op_queue::iterator i = operations.begin(); - while (i != operations.end()) - { - reactor_op_queue::iterator op_iter = i++; - if (is_set(op_iter->first)) - operations.perform_operations(op_iter, ops); - } - } - -private: - mutable fd_set fd_set_; - socket_type max_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) - // && !defined(__CYGWIN__) - // && !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_POSIX_FD_SET_ADAPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_global.hpp b/Sources/Vendor/asio/include/asio/detail/posix_global.hpp deleted file mode 100644 index 7ee0a71..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_global.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// detail/posix_global.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_POSIX_GLOBAL_HPP -#define ASIO_DETAIL_POSIX_GLOBAL_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_PTHREADS) - -#include -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct posix_global_impl -{ - // Helper function to perform initialisation. - static void do_init() - { - instance_.static_ptr_ = instance_.ptr_ = new T; - } - - // Destructor automatically cleans up the global. - ~posix_global_impl() - { - delete static_ptr_; - } - - static ::pthread_once_t init_once_; - static T* static_ptr_; - static posix_global_impl instance_; - T* ptr_; -}; - -template -::pthread_once_t posix_global_impl::init_once_ = PTHREAD_ONCE_INIT; - -template -T* posix_global_impl::static_ptr_ = 0; - -template -posix_global_impl posix_global_impl::instance_; - -template -T& posix_global() -{ - int result = ::pthread_once( - &posix_global_impl::init_once_, - &posix_global_impl::do_init); - - if (result != 0) - std::terminate(); - - return *posix_global_impl::instance_.ptr_; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/posix_mutex.hpp deleted file mode 100644 index c0d9fc9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_mutex.hpp +++ /dev/null @@ -1,76 +0,0 @@ -// -// detail/posix_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_POSIX_MUTEX_HPP -#define ASIO_DETAIL_POSIX_MUTEX_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_PTHREADS) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class posix_event; - -class posix_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - ASIO_DECL posix_mutex(); - - // Destructor. - ~posix_mutex() - { - ::pthread_mutex_destroy(&mutex_); // Ignore EBUSY. - } - - // Lock the mutex. - void lock() - { - (void)::pthread_mutex_lock(&mutex_); // Ignore EINVAL. - } - - // Unlock the mutex. - void unlock() - { - (void)::pthread_mutex_unlock(&mutex_); // Ignore EINVAL. - } - -private: - friend class posix_event; - ::pthread_mutex_t mutex_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/posix_mutex.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_signal_blocker.hpp b/Sources/Vendor/asio/include/asio/detail/posix_signal_blocker.hpp deleted file mode 100644 index fab5eb1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_signal_blocker.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// detail/posix_signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_POSIX_SIGNAL_BLOCKER_HPP -#define ASIO_DETAIL_POSIX_SIGNAL_BLOCKER_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_PTHREADS) - -#include -#include -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class posix_signal_blocker - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - posix_signal_blocker() - : blocked_(false) - { - sigset_t new_mask; - sigfillset(&new_mask); - blocked_ = (pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask_) == 0); - } - - // Destructor restores the previous signal mask. - ~posix_signal_blocker() - { - if (blocked_) - pthread_sigmask(SIG_SETMASK, &old_mask_, 0); - } - - // Block all signals for the calling thread. - void block() - { - if (!blocked_) - { - sigset_t new_mask; - sigfillset(&new_mask); - blocked_ = (pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask_) == 0); - } - } - - // Restore the previous signal mask. - void unblock() - { - if (blocked_) - blocked_ = (pthread_sigmask(SIG_SETMASK, &old_mask_, 0) != 0); - } - -private: - // Have signals been blocked. - bool blocked_; - - // The previous signal mask. - sigset_t old_mask_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_SIGNAL_BLOCKER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/posix_static_mutex.hpp deleted file mode 100644 index 59b86c1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_static_mutex.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// detail/posix_static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_POSIX_STATIC_MUTEX_HPP -#define ASIO_DETAIL_POSIX_STATIC_MUTEX_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_PTHREADS) - -#include -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct posix_static_mutex -{ - typedef asio::detail::scoped_lock scoped_lock; - - // Initialise the mutex. - void init() - { - // Nothing to do. - } - - // Lock the mutex. - void lock() - { - (void)::pthread_mutex_lock(&mutex_); // Ignore EINVAL. - } - - // Unlock the mutex. - void unlock() - { - (void)::pthread_mutex_unlock(&mutex_); // Ignore EINVAL. - } - - ::pthread_mutex_t mutex_; -}; - -#define ASIO_POSIX_STATIC_MUTEX_INIT { PTHREAD_MUTEX_INITIALIZER } - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_thread.hpp b/Sources/Vendor/asio/include/asio/detail/posix_thread.hpp deleted file mode 100644 index 1817af2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_thread.hpp +++ /dev/null @@ -1,109 +0,0 @@ -// -// detail/posix_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_POSIX_THREAD_HPP -#define ASIO_DETAIL_POSIX_THREAD_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_PTHREADS) - -#include -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -extern "C" -{ - ASIO_DECL void* asio_detail_posix_thread_function(void* arg); -} - -class posix_thread - : private noncopyable -{ -public: - // Constructor. - template - posix_thread(Function f, unsigned int = 0) - : joined_(false) - { - start_thread(new func(f)); - } - - // Destructor. - ASIO_DECL ~posix_thread(); - - // Wait for the thread to exit. - ASIO_DECL void join(); - - // Get number of CPUs. - ASIO_DECL static std::size_t hardware_concurrency(); - -private: - friend void* asio_detail_posix_thread_function(void* arg); - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - }; - - struct auto_func_base_ptr - { - func_base* ptr; - ~auto_func_base_ptr() { delete ptr; } - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ASIO_DECL void start_thread(func_base* arg); - - ::pthread_t thread_; - bool joined_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/posix_thread.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/posix_tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/posix_tss_ptr.hpp deleted file mode 100644 index a3096b4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/posix_tss_ptr.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// detail/posix_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_POSIX_TSS_PTR_HPP -#define ASIO_DETAIL_POSIX_TSS_PTR_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_PTHREADS) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper function to create thread-specific storage. -ASIO_DECL void posix_tss_ptr_create(pthread_key_t& key); - -template -class posix_tss_ptr - : private noncopyable -{ -public: - // Constructor. - posix_tss_ptr() - { - posix_tss_ptr_create(tss_key_); - } - - // Destructor. - ~posix_tss_ptr() - { - ::pthread_key_delete(tss_key_); - } - - // Get the value. - operator T*() const - { - return static_cast(::pthread_getspecific(tss_key_)); - } - - // Set the value. - void operator=(T* value) - { - ::pthread_setspecific(tss_key_, value); - } - -private: - // Thread-specific storage to allow unlocked access to determine whether a - // thread is a member of the pool. - pthread_key_t tss_key_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/posix_tss_ptr.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_PTHREADS) - -#endif // ASIO_DETAIL_POSIX_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/push_options.hpp b/Sources/Vendor/asio/include/asio/detail/push_options.hpp deleted file mode 100644 index 0a3e979..0000000 --- a/Sources/Vendor/asio/include/asio/detail/push_options.hpp +++ /dev/null @@ -1,175 +0,0 @@ -// -// detail/push_options.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -// No header guard - -#if defined(__COMO__) - -// Comeau C++ - -#elif defined(__DMC__) - -// Digital Mars C++ - -#elif defined(__INTEL_COMPILER) || defined(__ICL) \ - || defined(__ICC) || defined(__ECC) - -// Intel C++ - -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) - -#elif defined(__clang__) - -// Clang - -# if defined(__OBJC__) -# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) -# if !defined(ASIO_DISABLE_OBJC_WORKAROUND) -# if !defined(Protocol) && !defined(id) -# define Protocol cpp_Protocol -# define id cpp_id -# define ASIO_OBJC_WORKAROUND -# endif -# endif -# endif -# endif - -# if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) -# pragma GCC visibility push (default) -# endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) - -#elif defined(__GNUC__) - -// GNU C++ - -# if defined(__MINGW32__) || defined(__CYGWIN__) -# pragma pack (push, 8) -# endif - -# if defined(__OBJC__) -# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) -# if !defined(ASIO_DISABLE_OBJC_WORKAROUND) -# if !defined(Protocol) && !defined(id) -# define Protocol cpp_Protocol -# define id cpp_id -# define ASIO_OBJC_WORKAROUND -# endif -# endif -# endif -# endif - -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) - -# if (__GNUC__ >= 7) -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wimplicit-fallthrough" -# endif // (__GNUC__ >= 7) - -#elif defined(__KCC) - -// Kai C++ - -#elif defined(__sgi) - -// SGI MIPSpro C++ - -#elif defined(__DECCXX) - -// Compaq Tru64 Unix cxx - -#elif defined(__ghs) - -// Greenhills C++ - -#elif defined(__BORLANDC__) - -// Borland C++ - -# pragma option push -a8 -b -Ve- -Vx- -w-inl -vi- -# pragma nopushoptwarn -# pragma nopackwarning -# if !defined(__MT__) -# error Multithreaded RTL must be selected. -# endif // !defined(__MT__) - -#elif defined(__MWERKS__) - -// Metrowerks CodeWarrior - -#elif defined(__SUNPRO_CC) - -// Sun Workshop Compiler C++ - -#elif defined(__HP_aCC) - -// HP aCC - -#elif defined(__MRC__) || defined(__SC__) - -// MPW MrCpp or SCpp - -#elif defined(__IBMCPP__) - -// IBM Visual Age - -#elif defined(_MSC_VER) - -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for example) -// also #define _MSC_VER - -# pragma warning (disable:4103) -# pragma warning (push) -# pragma warning (disable:4127) -# pragma warning (disable:4180) -# pragma warning (disable:4244) -# pragma warning (disable:4355) -# pragma warning (disable:4510) -# pragma warning (disable:4512) -# pragma warning (disable:4610) -# pragma warning (disable:4675) -# if (_MSC_VER < 1600) -// Visual Studio 2008 generates spurious warnings about unused parameters. -# pragma warning (disable:4100) -# endif // (_MSC_VER < 1600) -# if defined(_M_IX86) && defined(_Wp64) -// The /Wp64 option is broken. If you want to check 64 bit portability, use a -// 64 bit compiler! -# pragma warning (disable:4311) -# pragma warning (disable:4312) -# endif // defined(_M_IX86) && defined(_Wp64) -# pragma pack (push, 8) -// Note that if the /Og optimisation flag is enabled with MSVC6, the compiler -// has a tendency to incorrectly optimise away some calls to member template -// functions, even though those functions contain code that should not be -// optimised away! Therefore we will always disable this optimisation option -// for the MSVC6 compiler. -# if (_MSC_VER < 1300) -# pragma optimize ("g", off) -# endif -# if !defined(_MT) -# error Multithreaded RTL must be selected. -# endif // !defined(_MT) - -# if defined(__cplusplus_cli) || defined(__cplusplus_winrt) -# if !defined(ASIO_DISABLE_CLR_WORKAROUND) -# if !defined(generic) -# define generic cpp_generic -# define ASIO_CLR_WORKAROUND -# endif -# endif -# endif - -#endif diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_descriptor_service.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_descriptor_service.hpp deleted file mode 100644 index e866863..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_descriptor_service.hpp +++ /dev/null @@ -1,388 +0,0 @@ -// -// detail/reactive_descriptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP -#define ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_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_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/descriptor_ops.hpp" -#include "asio/detail/descriptor_read_op.hpp" -#include "asio/detail/descriptor_write_op.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/reactive_null_buffers_op.hpp" -#include "asio/detail/reactive_wait_op.hpp" -#include "asio/detail/reactor.hpp" -#include "asio/posix/descriptor_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class reactive_descriptor_service : - public service_base -{ -public: - // The native type of a descriptor. - typedef int native_handle_type; - - // The implementation type of the descriptor. - class implementation_type - : private asio::detail::noncopyable - { - public: - // Default constructor. - implementation_type() - : descriptor_(-1), - state_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class reactive_descriptor_service; - - // The native descriptor representation. - int descriptor_; - - // The current state of the descriptor. - descriptor_ops::state_type state_; - - // Per-descriptor data used by the reactor. - reactor::per_descriptor_data reactor_data_; - }; - - // Constructor. - ASIO_DECL reactive_descriptor_service( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new descriptor implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Move-construct a new descriptor implementation. - ASIO_DECL void move_construct(implementation_type& impl, - implementation_type& other_impl); - - // Move-assign from another descriptor implementation. - ASIO_DECL void move_assign(implementation_type& impl, - reactive_descriptor_service& other_service, - implementation_type& other_impl); - - // Destroy a descriptor implementation. - ASIO_DECL void destroy(implementation_type& impl); - - // Assign a native descriptor to a descriptor implementation. - ASIO_DECL asio::error_code assign(implementation_type& impl, - const native_handle_type& native_descriptor, - asio::error_code& ec); - - // Determine whether the descriptor is open. - bool is_open(const implementation_type& impl) const - { - return impl.descriptor_ != -1; - } - - // Destroy a descriptor implementation. - ASIO_DECL asio::error_code close(implementation_type& impl, - asio::error_code& ec); - - // Get the native descriptor representation. - native_handle_type native_handle(const implementation_type& impl) const - { - return impl.descriptor_; - } - - // Release ownership of the native descriptor representation. - ASIO_DECL native_handle_type release(implementation_type& impl); - - // Cancel all operations associated with the descriptor. - ASIO_DECL asio::error_code cancel(implementation_type& impl, - asio::error_code& ec); - - // Perform an IO control command on the descriptor. - template - asio::error_code io_control(implementation_type& impl, - IO_Control_Command& command, asio::error_code& ec) - { - descriptor_ops::ioctl(impl.descriptor_, impl.state_, - command.name(), static_cast(command.data()), ec); - return ec; - } - - // Gets the non-blocking mode of the descriptor. - bool non_blocking(const implementation_type& impl) const - { - return (impl.state_ & descriptor_ops::user_set_non_blocking) != 0; - } - - // Sets the non-blocking mode of the descriptor. - asio::error_code non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - descriptor_ops::set_user_non_blocking( - impl.descriptor_, impl.state_, mode, ec); - return ec; - } - - // Gets the non-blocking mode of the native descriptor implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return (impl.state_ & descriptor_ops::internal_non_blocking) != 0; - } - - // Sets the non-blocking mode of the native descriptor implementation. - asio::error_code native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - descriptor_ops::set_internal_non_blocking( - impl.descriptor_, impl.state_, mode, ec); - return ec; - } - - // Wait for the descriptor to become ready to read, ready to write, or to have - // pending error conditions. - asio::error_code wait(implementation_type& impl, - posix::descriptor_base::wait_type w, asio::error_code& ec) - { - switch (w) - { - case posix::descriptor_base::wait_read: - descriptor_ops::poll_read(impl.descriptor_, impl.state_, ec); - break; - case posix::descriptor_base::wait_write: - descriptor_ops::poll_write(impl.descriptor_, impl.state_, ec); - break; - case posix::descriptor_base::wait_error: - descriptor_ops::poll_error(impl.descriptor_, impl.state_, ec); - break; - default: - ec = asio::error::invalid_argument; - break; - } - - return ec; - } - - // Asynchronously wait for the descriptor to become ready to read, ready to - // write, or to have pending error conditions. - template - void async_wait(implementation_type& impl, - posix::descriptor_base::wait_type w, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_wait_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_wait")); - - int op_type; - switch (w) - { - case posix::descriptor_base::wait_read: - op_type = reactor::read_op; - break; - case posix::descriptor_base::wait_write: - op_type = reactor::write_op; - break; - case posix::descriptor_base::wait_error: - op_type = reactor::except_op; - break; - default: - p.p->ec_ = asio::error::invalid_argument; - reactor_.post_immediate_completion(p.p, is_continuation); - p.v = p.p = 0; - return; - } - - start_op(impl, op_type, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Write some data to the descriptor. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return descriptor_ops::sync_write(impl.descriptor_, impl.state_, - bufs.buffers(), bufs.count(), bufs.all_empty(), ec); - } - - // Wait until data can be written without blocking. - size_t write_some(implementation_type& impl, - const null_buffers&, asio::error_code& ec) - { - // Wait for descriptor to become ready. - descriptor_ops::poll_write(impl.descriptor_, impl.state_, ec); - - return 0; - } - - // Start an asynchronous write. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef descriptor_write_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.descriptor_, buffers, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_write_some")); - - start_op(impl, reactor::write_op, p.p, is_continuation, true, - buffer_sequence_adapter::all_empty(buffers)); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be written without blocking. - template - void async_write_some(implementation_type& impl, - const null_buffers&, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_write_some(null_buffers)")); - - start_op(impl, reactor::write_op, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Read some data from the stream. Returns the number of bytes read. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return descriptor_ops::sync_read(impl.descriptor_, impl.state_, - bufs.buffers(), bufs.count(), bufs.all_empty(), ec); - } - - // Wait until data can be read without blocking. - size_t read_some(implementation_type& impl, - const null_buffers&, asio::error_code& ec) - { - // Wait for descriptor to become ready. - descriptor_ops::poll_read(impl.descriptor_, impl.state_, ec); - - return 0; - } - - // Start an asynchronous read. The buffer for the data being read must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef descriptor_read_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.descriptor_, buffers, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_read_some")); - - start_op(impl, reactor::read_op, p.p, is_continuation, true, - buffer_sequence_adapter::all_empty(buffers)); - p.v = p.p = 0; - } - - // Wait until data can be read without blocking. - template - void async_read_some(implementation_type& impl, - const null_buffers&, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "descriptor", - &impl, impl.descriptor_, "async_read_some(null_buffers)")); - - start_op(impl, reactor::read_op, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - -private: - // Start the asynchronous operation. - ASIO_DECL void start_op(implementation_type& impl, int op_type, - reactor_op* op, bool is_continuation, bool is_non_blocking, bool noop); - - // The selector that performs event demultiplexing for the service. - reactor& reactor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/reactive_descriptor_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_null_buffers_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_null_buffers_op.hpp deleted file mode 100644 index 7408269..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_null_buffers_op.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// detail/reactive_null_buffers_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_NULL_BUFFERS_OP_HPP -#define ASIO_DETAIL_REACTIVE_NULL_BUFFERS_OP_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/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_null_buffers_op : public reactor_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_null_buffers_op); - - reactive_null_buffers_op(Handler& handler) - : reactor_op(&reactive_null_buffers_op::do_perform, - &reactive_null_buffers_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static status do_perform(reactor_op*) - { - return done; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_null_buffers_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_NULL_BUFFERS_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_serial_port_service.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_serial_port_service.hpp deleted file mode 100644 index 6fddd9f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_serial_port_service.hpp +++ /dev/null @@ -1,236 +0,0 @@ -// -// detail/reactive_serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP -#define ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_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_SERIAL_PORT) -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/detail/descriptor_ops.hpp" -#include "asio/detail/reactive_descriptor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Extend reactive_descriptor_service to provide serial port support. -class reactive_serial_port_service : - public service_base -{ -public: - // The native type of a serial port. - typedef reactive_descriptor_service::native_handle_type native_handle_type; - - // The implementation type of the serial port. - typedef reactive_descriptor_service::implementation_type implementation_type; - - ASIO_DECL reactive_serial_port_service( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new serial port implementation. - void construct(implementation_type& impl) - { - descriptor_service_.construct(impl); - } - - // Move-construct a new serial port implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - descriptor_service_.move_construct(impl, other_impl); - } - - // Move-assign from another serial port implementation. - void move_assign(implementation_type& impl, - reactive_serial_port_service& other_service, - implementation_type& other_impl) - { - descriptor_service_.move_assign(impl, - other_service.descriptor_service_, other_impl); - } - - // Destroy a serial port implementation. - void destroy(implementation_type& impl) - { - descriptor_service_.destroy(impl); - } - - // Open the serial port using the specified device name. - ASIO_DECL asio::error_code open(implementation_type& impl, - const std::string& device, asio::error_code& ec); - - // Assign a native descriptor to a serial port implementation. - asio::error_code assign(implementation_type& impl, - const native_handle_type& native_descriptor, - asio::error_code& ec) - { - return descriptor_service_.assign(impl, native_descriptor, ec); - } - - // Determine whether the serial port is open. - bool is_open(const implementation_type& impl) const - { - return descriptor_service_.is_open(impl); - } - - // Destroy a serial port implementation. - asio::error_code close(implementation_type& impl, - asio::error_code& ec) - { - return descriptor_service_.close(impl, ec); - } - - // Get the native serial port representation. - native_handle_type native_handle(implementation_type& impl) - { - return descriptor_service_.native_handle(impl); - } - - // Cancel all operations associated with the serial port. - asio::error_code cancel(implementation_type& impl, - asio::error_code& ec) - { - return descriptor_service_.cancel(impl, ec); - } - - // Set an option on the serial port. - template - asio::error_code set_option(implementation_type& impl, - const SettableSerialPortOption& option, asio::error_code& ec) - { - return do_set_option(impl, - &reactive_serial_port_service::store_option, - &option, ec); - } - - // Get an option from the serial port. - template - asio::error_code get_option(const implementation_type& impl, - GettableSerialPortOption& option, asio::error_code& ec) const - { - return do_get_option(impl, - &reactive_serial_port_service::load_option, - &option, ec); - } - - // Send a break sequence to the serial port. - asio::error_code send_break(implementation_type& impl, - asio::error_code& ec) - { - errno = 0; - descriptor_ops::error_wrapper(::tcsendbreak( - descriptor_service_.native_handle(impl), 0), ec); - return ec; - } - - // Write the given data. Returns the number of bytes sent. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return descriptor_service_.write_some(impl, buffers, ec); - } - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler& handler) - { - descriptor_service_.async_write_some(impl, buffers, handler); - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return descriptor_service_.read_some(impl, buffers, ec); - } - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler& handler) - { - descriptor_service_.async_read_some(impl, buffers, handler); - } - -private: - // Function pointer type for storing a serial port option. - typedef asio::error_code (*store_function_type)( - const void*, termios&, asio::error_code&); - - // Helper function template to store a serial port option. - template - static asio::error_code store_option(const void* option, - termios& storage, asio::error_code& ec) - { - static_cast(option)->store(storage, ec); - return ec; - } - - // Helper function to set a serial port option. - ASIO_DECL asio::error_code do_set_option( - implementation_type& impl, store_function_type store, - const void* option, asio::error_code& ec); - - // Function pointer type for loading a serial port option. - typedef asio::error_code (*load_function_type)( - void*, const termios&, asio::error_code&); - - // Helper function template to load a serial port option. - template - static asio::error_code load_option(void* option, - const termios& storage, asio::error_code& ec) - { - static_cast(option)->load(storage, ec); - return ec; - } - - // Helper function to get a serial port option. - ASIO_DECL asio::error_code do_get_option( - const implementation_type& impl, load_function_type load, - void* option, asio::error_code& ec) const; - - // The implementation used for initiating asynchronous operations. - reactive_descriptor_service descriptor_service_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/reactive_serial_port_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) -#endif // defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_accept_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_accept_op.hpp deleted file mode 100644 index 4a98f04..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_accept_op.hpp +++ /dev/null @@ -1,217 +0,0 @@ -// -// detail/reactive_socket_accept_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_ACCEPT_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_ACCEPT_OP_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/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_accept_op_base : public reactor_op -{ -public: - reactive_socket_accept_op_base(socket_type socket, - socket_ops::state_type state, Socket& peer, const Protocol& protocol, - typename Protocol::endpoint* peer_endpoint, func_type complete_func) - : reactor_op(&reactive_socket_accept_op_base::do_perform, complete_func), - socket_(socket), - state_(state), - peer_(peer), - protocol_(protocol), - peer_endpoint_(peer_endpoint), - addrlen_(peer_endpoint ? peer_endpoint->capacity() : 0) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_accept_op_base* o( - static_cast(base)); - - socket_type new_socket = invalid_socket; - status result = socket_ops::non_blocking_accept(o->socket_, - o->state_, o->peer_endpoint_ ? o->peer_endpoint_->data() : 0, - o->peer_endpoint_ ? &o->addrlen_ : 0, o->ec_, new_socket) - ? done : not_done; - o->new_socket_.reset(new_socket); - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_accept", o->ec_)); - - return result; - } - - void do_assign() - { - if (new_socket_.get() != invalid_socket) - { - if (peer_endpoint_) - peer_endpoint_->resize(addrlen_); - peer_.assign(protocol_, new_socket_.get(), ec_); - if (!ec_) - new_socket_.release(); - } - } - -private: - socket_type socket_; - socket_ops::state_type state_; - socket_holder new_socket_; - Socket& peer_; - Protocol protocol_; - typename Protocol::endpoint* peer_endpoint_; - std::size_t addrlen_; -}; - -template -class reactive_socket_accept_op : - public reactive_socket_accept_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_accept_op); - - reactive_socket_accept_op(socket_type socket, - socket_ops::state_type state, Socket& peer, const Protocol& protocol, - typename Protocol::endpoint* peer_endpoint, Handler& handler) - : reactive_socket_accept_op_base(socket, state, peer, - protocol, peer_endpoint, &reactive_socket_accept_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_accept_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - // On success, assign new connection to peer socket object. - if (owner) - o->do_assign(); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, o->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -#if defined(ASIO_HAS_MOVE) - -template -class reactive_socket_move_accept_op : - private Protocol::socket, - public reactive_socket_accept_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_move_accept_op); - - reactive_socket_move_accept_op(io_context& ioc, socket_type socket, - socket_ops::state_type state, const Protocol& protocol, - typename Protocol::endpoint* peer_endpoint, Handler& handler) - : Protocol::socket(ioc), - reactive_socket_accept_op_base( - socket, state, *this, protocol, peer_endpoint, - &reactive_socket_move_accept_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_move_accept_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - // On success, assign new connection to peer socket object. - if (owner) - o->do_assign(); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::move_binder2 - handler(0, ASIO_MOVE_CAST(Handler)(o->handler_), o->ec_, - ASIO_MOVE_CAST(typename Protocol::socket)(*o)); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -#endif // defined(ASIO_HAS_MOVE) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_ACCEPT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_connect_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_connect_op.hpp deleted file mode 100644 index 76164b2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_connect_op.hpp +++ /dev/null @@ -1,113 +0,0 @@ -// -// detail/reactive_socket_connect_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_CONNECT_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_CONNECT_OP_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/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class reactive_socket_connect_op_base : public reactor_op -{ -public: - reactive_socket_connect_op_base(socket_type socket, func_type complete_func) - : reactor_op(&reactive_socket_connect_op_base::do_perform, complete_func), - socket_(socket) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_connect_op_base* o( - static_cast(base)); - - status result = socket_ops::non_blocking_connect( - o->socket_, o->ec_) ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_connect", o->ec_)); - - return result; - } - -private: - socket_type socket_; -}; - -template -class reactive_socket_connect_op : public reactive_socket_connect_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_connect_op); - - reactive_socket_connect_op(socket_type socket, Handler& handler) - : reactive_socket_connect_op_base(socket, - &reactive_socket_connect_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_connect_op* o - (static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, o->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_CONNECT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recv_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_recv_op.hpp deleted file mode 100644 index 04bd266..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recv_op.hpp +++ /dev/null @@ -1,135 +0,0 @@ -// -// detail/reactive_socket_recv_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_RECV_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_RECV_OP_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/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_recv_op_base : public reactor_op -{ -public: - reactive_socket_recv_op_base(socket_type socket, - socket_ops::state_type state, const MutableBufferSequence& buffers, - socket_base::message_flags flags, func_type complete_func) - : reactor_op(&reactive_socket_recv_op_base::do_perform, complete_func), - socket_(socket), - state_(state), - buffers_(buffers), - flags_(flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_recv_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = socket_ops::non_blocking_recv(o->socket_, - bufs.buffers(), bufs.count(), o->flags_, - (o->state_ & socket_ops::stream_oriented) != 0, - o->ec_, o->bytes_transferred_) ? done : not_done; - - if (result == done) - if ((o->state_ & socket_ops::stream_oriented) != 0) - if (o->bytes_transferred_ == 0) - result = done_and_exhausted; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_recv", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - socket_ops::state_type state_; - MutableBufferSequence buffers_; - socket_base::message_flags flags_; -}; - -template -class reactive_socket_recv_op : - public reactive_socket_recv_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_recv_op); - - reactive_socket_recv_op(socket_type socket, - socket_ops::state_type state, const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - : reactive_socket_recv_op_base(socket, state, - buffers, flags, &reactive_socket_recv_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_recv_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_RECV_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp deleted file mode 100644 index 3d4fa4c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvfrom_op.hpp +++ /dev/null @@ -1,138 +0,0 @@ -// -// detail/reactive_socket_recvfrom_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_RECVFROM_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_RECVFROM_OP_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/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_recvfrom_op_base : public reactor_op -{ -public: - reactive_socket_recvfrom_op_base(socket_type socket, int protocol_type, - const MutableBufferSequence& buffers, Endpoint& endpoint, - socket_base::message_flags flags, func_type complete_func) - : reactor_op(&reactive_socket_recvfrom_op_base::do_perform, complete_func), - socket_(socket), - protocol_type_(protocol_type), - buffers_(buffers), - sender_endpoint_(endpoint), - flags_(flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_recvfrom_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - std::size_t addr_len = o->sender_endpoint_.capacity(); - status result = socket_ops::non_blocking_recvfrom(o->socket_, - bufs.buffers(), bufs.count(), o->flags_, - o->sender_endpoint_.data(), &addr_len, - o->ec_, o->bytes_transferred_) ? done : not_done; - - if (result && !o->ec_) - o->sender_endpoint_.resize(addr_len); - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_recvfrom", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - int protocol_type_; - MutableBufferSequence buffers_; - Endpoint& sender_endpoint_; - socket_base::message_flags flags_; -}; - -template -class reactive_socket_recvfrom_op : - public reactive_socket_recvfrom_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_recvfrom_op); - - reactive_socket_recvfrom_op(socket_type socket, int protocol_type, - const MutableBufferSequence& buffers, Endpoint& endpoint, - socket_base::message_flags flags, Handler& handler) - : reactive_socket_recvfrom_op_base( - socket, protocol_type, buffers, endpoint, flags, - &reactive_socket_recvfrom_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_recvfrom_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_RECVFROM_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp deleted file mode 100644 index f473274..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_recvmsg_op.hpp +++ /dev/null @@ -1,132 +0,0 @@ -// -// detail/reactive_socket_recvmsg_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_RECVMSG_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_RECVMSG_OP_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/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/socket_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_recvmsg_op_base : public reactor_op -{ -public: - reactive_socket_recvmsg_op_base(socket_type socket, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, func_type complete_func) - : reactor_op(&reactive_socket_recvmsg_op_base::do_perform, complete_func), - socket_(socket), - buffers_(buffers), - in_flags_(in_flags), - out_flags_(out_flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_recvmsg_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = socket_ops::non_blocking_recvmsg(o->socket_, - bufs.buffers(), bufs.count(), - o->in_flags_, o->out_flags_, - o->ec_, o->bytes_transferred_) ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_recvmsg", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - MutableBufferSequence buffers_; - socket_base::message_flags in_flags_; - socket_base::message_flags& out_flags_; -}; - -template -class reactive_socket_recvmsg_op : - public reactive_socket_recvmsg_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_recvmsg_op); - - reactive_socket_recvmsg_op(socket_type socket, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - : reactive_socket_recvmsg_op_base(socket, buffers, - in_flags, out_flags, &reactive_socket_recvmsg_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_recvmsg_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_RECVMSG_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_send_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_send_op.hpp deleted file mode 100644 index bd550d9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_send_op.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// detail/reactive_socket_send_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_SEND_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_SEND_OP_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/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_send_op_base : public reactor_op -{ -public: - reactive_socket_send_op_base(socket_type socket, - socket_ops::state_type state, const ConstBufferSequence& buffers, - socket_base::message_flags flags, func_type complete_func) - : reactor_op(&reactive_socket_send_op_base::do_perform, complete_func), - socket_(socket), - state_(state), - buffers_(buffers), - flags_(flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_send_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = socket_ops::non_blocking_send(o->socket_, - bufs.buffers(), bufs.count(), o->flags_, - o->ec_, o->bytes_transferred_) ? done : not_done; - - if (result == done) - if ((o->state_ & socket_ops::stream_oriented) != 0) - if (o->bytes_transferred_ < bufs.total_size()) - result = done_and_exhausted; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_send", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - socket_ops::state_type state_; - ConstBufferSequence buffers_; - socket_base::message_flags flags_; -}; - -template -class reactive_socket_send_op : - public reactive_socket_send_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_send_op); - - reactive_socket_send_op(socket_type socket, - socket_ops::state_type state, const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - : reactive_socket_send_op_base(socket, - state, buffers, flags, &reactive_socket_send_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_send_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_SEND_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_sendto_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_sendto_op.hpp deleted file mode 100644 index c97554d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_sendto_op.hpp +++ /dev/null @@ -1,130 +0,0 @@ -// -// detail/reactive_socket_sendto_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_SENDTO_OP_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_SENDTO_OP_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/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_sendto_op_base : public reactor_op -{ -public: - reactive_socket_sendto_op_base(socket_type socket, - const ConstBufferSequence& buffers, const Endpoint& endpoint, - socket_base::message_flags flags, func_type complete_func) - : reactor_op(&reactive_socket_sendto_op_base::do_perform, complete_func), - socket_(socket), - buffers_(buffers), - destination_(endpoint), - flags_(flags) - { - } - - static status do_perform(reactor_op* base) - { - reactive_socket_sendto_op_base* o( - static_cast(base)); - - buffer_sequence_adapter bufs(o->buffers_); - - status result = socket_ops::non_blocking_sendto(o->socket_, - bufs.buffers(), bufs.count(), o->flags_, - o->destination_.data(), o->destination_.size(), - o->ec_, o->bytes_transferred_) ? done : not_done; - - ASIO_HANDLER_REACTOR_OPERATION((*o, "non_blocking_sendto", - o->ec_, o->bytes_transferred_)); - - return result; - } - -private: - socket_type socket_; - ConstBufferSequence buffers_; - Endpoint destination_; - socket_base::message_flags flags_; -}; - -template -class reactive_socket_sendto_op : - public reactive_socket_sendto_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_socket_sendto_op); - - reactive_socket_sendto_op(socket_type socket, - const ConstBufferSequence& buffers, const Endpoint& endpoint, - socket_base::message_flags flags, Handler& handler) - : reactive_socket_sendto_op_base(socket, - buffers, endpoint, flags, &reactive_socket_sendto_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_socket_sendto_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->bytes_transferred_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_SENDTO_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_service.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_service.hpp deleted file mode 100644 index 15a4fdb..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_service.hpp +++ /dev/null @@ -1,526 +0,0 @@ -// -// detail/reactive_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_SERVICE_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_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_IOCP) - -#include "asio/buffer.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/reactive_null_buffers_op.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" -#include "asio/detail/reactive_socket_sendto_op.hpp" -#include "asio/detail/reactive_socket_service_base.hpp" -#include "asio/detail/reactor.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_socket_service : - public service_base >, - public reactive_socket_service_base -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - typedef socket_type native_handle_type; - - // The implementation type of the socket. - struct implementation_type : - reactive_socket_service_base::base_implementation_type - { - // Default constructor. - implementation_type() - : protocol_(endpoint_type().protocol()) - { - } - - // The protocol associated with the socket. - protocol_type protocol_; - }; - - // Constructor. - reactive_socket_service(asio::io_context& io_context) - : service_base >(io_context), - reactive_socket_service_base(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - this->base_shutdown(); - } - - // Move-construct a new socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - } - - // Move-assign from another socket implementation. - void move_assign(implementation_type& impl, - reactive_socket_service_base& other_service, - implementation_type& other_impl) - { - this->base_move_assign(impl, other_service, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - } - - // Move-construct a new socket implementation from another protocol type. - template - void converting_move_construct(implementation_type& impl, - reactive_socket_service&, - typename reactive_socket_service< - Protocol1>::implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = protocol_type(other_impl.protocol_); - other_impl.protocol_ = typename Protocol1::endpoint().protocol(); - } - - // Open a new socket implementation. - asio::error_code open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (!do_open(impl, protocol.family(), - protocol.type(), protocol.protocol(), ec)) - impl.protocol_ = protocol; - return ec; - } - - // Assign a native socket to a socket implementation. - asio::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - if (!do_assign(impl, protocol.type(), native_socket, ec)) - impl.protocol_ = protocol; - return ec; - } - - // Get the native socket representation. - native_handle_type native_handle(implementation_type& impl) - { - return impl.socket_; - } - - // Bind the socket to the specified local endpoint. - asio::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - socket_ops::bind(impl.socket_, endpoint.data(), endpoint.size(), ec); - return ec; - } - - // Set a socket option. - template - asio::error_code set_option(implementation_type& impl, - const Option& option, asio::error_code& ec) - { - socket_ops::setsockopt(impl.socket_, impl.state_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), option.size(impl.protocol_), ec); - return ec; - } - - // Set a socket option. - template - asio::error_code get_option(const implementation_type& impl, - Option& option, asio::error_code& ec) const - { - std::size_t size = option.size(impl.protocol_); - socket_ops::getsockopt(impl.socket_, impl.state_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), &size, ec); - if (!ec) - option.resize(impl.protocol_, size); - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getsockname(impl.socket_, endpoint.data(), &addr_len, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getpeername(impl.socket_, - endpoint.data(), &addr_len, false, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Disable sends or receives on the socket. - asio::error_code shutdown(base_implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - socket_ops::shutdown(impl.socket_, what, ec); - return ec; - } - - // Send a datagram to the specified endpoint. Returns the number of bytes - // sent. - template - size_t send_to(implementation_type& impl, const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_sendto(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, - destination.data(), destination.size(), ec); - } - - // Wait until data can be sent without blocking. - size_t send_to(implementation_type& impl, const null_buffers&, - const endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_sendto_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, buffers, destination, flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_send_to")); - - start_op(impl, reactor::write_op, p.p, is_continuation, true, false); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send_to(implementation_type& impl, const null_buffers&, - const endpoint_type&, socket_base::message_flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_send_to(null_buffers)")); - - start_op(impl, reactor::write_op, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Receive a datagram with the endpoint of the sender. Returns the number of - // bytes received. - template - size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - std::size_t addr_len = sender_endpoint.capacity(); - std::size_t bytes_recvd = socket_ops::sync_recvfrom( - impl.socket_, impl.state_, bufs.buffers(), bufs.count(), - flags, sender_endpoint.data(), &addr_len, ec); - - if (!ec) - sender_endpoint.resize(addr_len); - - return bytes_recvd; - } - - // Wait until data can be received without blocking. - size_t receive_from(implementation_type& impl, const null_buffers&, - endpoint_type& sender_endpoint, socket_base::message_flags, - asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received and - // the sender_endpoint object must both be valid for the lifetime of the - // asynchronous operation. - template - void async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_recvfrom_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - int protocol = impl.protocol_.type(); - p.p = new (p.v) op(impl.socket_, protocol, - buffers, sender_endpoint, flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive_from")); - - start_op(impl, - (flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, true, false); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive_from(null_buffers)")); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - start_op(impl, - (flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Accept a new connection. - template - asio::error_code accept(implementation_type& impl, - Socket& peer, endpoint_type* peer_endpoint, asio::error_code& ec) - { - // We cannot accept a socket that is already open. - if (peer.is_open()) - { - ec = asio::error::already_open; - return ec; - } - - std::size_t addr_len = peer_endpoint ? peer_endpoint->capacity() : 0; - socket_holder new_socket(socket_ops::sync_accept(impl.socket_, - impl.state_, peer_endpoint ? peer_endpoint->data() : 0, - peer_endpoint ? &addr_len : 0, ec)); - - // On success, assign new connection to peer socket object. - if (new_socket.get() != invalid_socket) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return ec; - } - -#if defined(ASIO_HAS_MOVE) - // Accept a new connection. - typename Protocol::socket accept(implementation_type& impl, - io_context* peer_io_context, endpoint_type* peer_endpoint, - asio::error_code& ec) - { - typename Protocol::socket peer( - peer_io_context ? *peer_io_context : io_context_); - - std::size_t addr_len = peer_endpoint ? peer_endpoint->capacity() : 0; - socket_holder new_socket(socket_ops::sync_accept(impl.socket_, - impl.state_, peer_endpoint ? peer_endpoint->data() : 0, - peer_endpoint ? &addr_len : 0, ec)); - - // On success, assign new connection to peer socket object. - if (new_socket.get() != invalid_socket) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return peer; - } -#endif // defined(ASIO_HAS_MOVE) - - // Start an asynchronous accept. The peer and peer_endpoint objects must be - // valid until the accept's handler is invoked. - template - void async_accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_accept_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, impl.state_, peer, - impl.protocol_, peer_endpoint, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_accept")); - - start_accept_op(impl, p.p, is_continuation, peer.is_open()); - p.v = p.p = 0; - } - -#if defined(ASIO_HAS_MOVE) - // Start an asynchronous accept. The peer_endpoint object must be valid until - // the accept's handler is invoked. - template - void async_accept(implementation_type& impl, - asio::io_context* peer_io_context, - endpoint_type* peer_endpoint, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_move_accept_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(peer_io_context ? *peer_io_context : io_context_, - impl.socket_, impl.state_, impl.protocol_, peer_endpoint, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_accept")); - - start_accept_op(impl, p.p, is_continuation, false); - p.v = p.p = 0; - } -#endif // defined(ASIO_HAS_MOVE) - - // Connect the socket to the specified endpoint. - asio::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - socket_ops::sync_connect(impl.socket_, - peer_endpoint.data(), peer_endpoint.size(), ec); - return ec; - } - - // Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_connect_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_connect")); - - start_connect_op(impl, p.p, is_continuation, - peer_endpoint.data(), peer_endpoint.size()); - p.v = p.p = 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_socket_service_base.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_socket_service_base.hpp deleted file mode 100644 index ccd497e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_socket_service_base.hpp +++ /dev/null @@ -1,511 +0,0 @@ -// -// detail/reactive_socket_service_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_SOCKET_SERVICE_BASE_HPP -#define ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_BASE_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_IOCP) \ - && !defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/buffer.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactive_null_buffers_op.hpp" -#include "asio/detail/reactive_socket_recv_op.hpp" -#include "asio/detail/reactive_socket_recvmsg_op.hpp" -#include "asio/detail/reactive_socket_send_op.hpp" -#include "asio/detail/reactive_wait_op.hpp" -#include "asio/detail/reactor.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class reactive_socket_service_base -{ -public: - // The native type of a socket. - typedef socket_type native_handle_type; - - // The implementation type of the socket. - struct base_implementation_type - { - // The native socket representation. - socket_type socket_; - - // The current state of the socket. - socket_ops::state_type state_; - - // Per-descriptor data used by the reactor. - reactor::per_descriptor_data reactor_data_; - }; - - // Constructor. - ASIO_DECL reactive_socket_service_base( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void base_shutdown(); - - // Construct a new socket implementation. - ASIO_DECL void construct(base_implementation_type& impl); - - // Move-construct a new socket implementation. - ASIO_DECL void base_move_construct(base_implementation_type& impl, - base_implementation_type& other_impl); - - // Move-assign from another socket implementation. - ASIO_DECL void base_move_assign(base_implementation_type& impl, - reactive_socket_service_base& other_service, - base_implementation_type& other_impl); - - // Destroy a socket implementation. - ASIO_DECL void destroy(base_implementation_type& impl); - - // Determine whether the socket is open. - bool is_open(const base_implementation_type& impl) const - { - return impl.socket_ != invalid_socket; - } - - // Destroy a socket implementation. - ASIO_DECL asio::error_code close( - base_implementation_type& impl, asio::error_code& ec); - - // Release ownership of the socket. - ASIO_DECL socket_type release( - base_implementation_type& impl, asio::error_code& ec); - - // Get the native socket representation. - native_handle_type native_handle(base_implementation_type& impl) - { - return impl.socket_; - } - - // Cancel all operations associated with the socket. - ASIO_DECL asio::error_code cancel( - base_implementation_type& impl, asio::error_code& ec); - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const base_implementation_type& impl, - asio::error_code& ec) const - { - return socket_ops::sockatmark(impl.socket_, ec); - } - - // Determine the number of bytes available for reading. - std::size_t available(const base_implementation_type& impl, - asio::error_code& ec) const - { - return socket_ops::available(impl.socket_, ec); - } - - // Place the socket into the state where it will listen for new connections. - asio::error_code listen(base_implementation_type& impl, - int backlog, asio::error_code& ec) - { - socket_ops::listen(impl.socket_, backlog, ec); - return ec; - } - - // Perform an IO control command on the socket. - template - asio::error_code io_control(base_implementation_type& impl, - IO_Control_Command& command, asio::error_code& ec) - { - socket_ops::ioctl(impl.socket_, impl.state_, command.name(), - static_cast(command.data()), ec); - return ec; - } - - // Gets the non-blocking mode of the socket. - bool non_blocking(const base_implementation_type& impl) const - { - return (impl.state_ & socket_ops::user_set_non_blocking) != 0; - } - - // Sets the non-blocking mode of the socket. - asio::error_code non_blocking(base_implementation_type& impl, - bool mode, asio::error_code& ec) - { - socket_ops::set_user_non_blocking(impl.socket_, impl.state_, mode, ec); - return ec; - } - - // Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const base_implementation_type& impl) const - { - return (impl.state_ & socket_ops::internal_non_blocking) != 0; - } - - // Sets the non-blocking mode of the native socket implementation. - asio::error_code native_non_blocking(base_implementation_type& impl, - bool mode, asio::error_code& ec) - { - socket_ops::set_internal_non_blocking(impl.socket_, impl.state_, mode, ec); - return ec; - } - - // Wait for the socket to become ready to read, ready to write, or to have - // pending error conditions. - asio::error_code wait(base_implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - switch (w) - { - case socket_base::wait_read: - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - break; - case socket_base::wait_write: - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - break; - case socket_base::wait_error: - socket_ops::poll_error(impl.socket_, impl.state_, -1, ec); - break; - default: - ec = asio::error::invalid_argument; - break; - } - - return ec; - } - - // Asynchronously wait for the socket to become ready to read, ready to - // write, or to have pending error conditions. - template - void async_wait(base_implementation_type& impl, - socket_base::wait_type w, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_wait_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_wait")); - - int op_type; - switch (w) - { - case socket_base::wait_read: - op_type = reactor::read_op; - break; - case socket_base::wait_write: - op_type = reactor::write_op; - break; - case socket_base::wait_error: - op_type = reactor::except_op; - break; - default: - p.p->ec_ = asio::error::invalid_argument; - reactor_.post_immediate_completion(p.p, is_continuation); - p.v = p.p = 0; - return; - } - - start_op(impl, op_type, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Send the given data to the peer. - template - size_t send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_send(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, bufs.all_empty(), ec); - } - - // Wait until data can be sent without blocking. - size_t send(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_send_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, impl.state_, buffers, flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_send")); - - start_op(impl, reactor::write_op, p.p, is_continuation, true, - ((impl.state_ & socket_ops::stream_oriented) - && buffer_sequence_adapter::all_empty(buffers))); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_send(null_buffers)")); - - start_op(impl, reactor::write_op, p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Receive some data from the peer. Returns the number of bytes received. - template - size_t receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_recv(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, bufs.all_empty(), ec); - } - - // Wait until data can be received without blocking. - size_t receive(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_recv_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, impl.state_, buffers, flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive")); - - start_op(impl, - (flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, - (flags & socket_base::message_out_of_band) == 0, - ((impl.state_ & socket_ops::stream_oriented) - && buffer_sequence_adapter::all_empty(buffers))); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive(null_buffers)")); - - start_op(impl, - (flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, false, false); - p.v = p.p = 0; - } - - // Receive some data with associated flags. Returns the number of bytes - // received. - template - size_t receive_with_flags(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_recvmsg(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), in_flags, out_flags, ec); - } - - // Wait until data can be received without blocking. - size_t receive_with_flags(base_implementation_type& impl, - const null_buffers&, socket_base::message_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - // Clear out_flags, since we cannot give it any other sensible value when - // performing a null_buffers operation. - out_flags = 0; - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive_with_flags(base_implementation_type& impl, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_socket_recvmsg_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, buffers, in_flags, out_flags, handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive_with_flags")); - - start_op(impl, - (in_flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, - (in_flags & socket_base::message_out_of_band) == 0, false); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive_with_flags(base_implementation_type& impl, - const null_buffers&, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef reactive_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((reactor_.context(), *p.p, "socket", - &impl, impl.socket_, "async_receive_with_flags(null_buffers)")); - - // Clear out_flags, since we cannot give it any other sensible value when - // performing a null_buffers operation. - out_flags = 0; - - start_op(impl, - (in_flags & socket_base::message_out_of_band) - ? reactor::except_op : reactor::read_op, - p.p, is_continuation, false, false); - p.v = p.p = 0; - } - -protected: - // Open a new socket implementation. - ASIO_DECL asio::error_code do_open( - base_implementation_type& impl, int af, - int type, int protocol, asio::error_code& ec); - - // Assign a native socket to a socket implementation. - ASIO_DECL asio::error_code do_assign( - base_implementation_type& impl, int type, - const native_handle_type& native_socket, asio::error_code& ec); - - // Start the asynchronous read or write operation. - ASIO_DECL void start_op(base_implementation_type& impl, int op_type, - reactor_op* op, bool is_continuation, bool is_non_blocking, bool noop); - - // Start the asynchronous accept operation. - ASIO_DECL void start_accept_op(base_implementation_type& impl, - reactor_op* op, bool is_continuation, bool peer_is_open); - - // Start the asynchronous connect operation. - ASIO_DECL void start_connect_op(base_implementation_type& impl, - reactor_op* op, bool is_continuation, - const socket_addr_type* addr, size_t addrlen); - - // The io_context that owns this socket service. - io_context& io_context_; - - // The selector that performs event demultiplexing for the service. - reactor& reactor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/reactive_socket_service_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // !defined(ASIO_HAS_IOCP) - // && !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactive_wait_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactive_wait_op.hpp deleted file mode 100644 index 616d8b1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactive_wait_op.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// detail/reactive_wait_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTIVE_WAIT_OP_HPP -#define ASIO_DETAIL_REACTIVE_WAIT_OP_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/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactive_wait_op : public reactor_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(reactive_wait_op); - - reactive_wait_op(Handler& handler) - : reactor_op(&reactive_wait_op::do_perform, - &reactive_wait_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static status do_perform(reactor_op*) - { - return done; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - reactive_wait_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, o->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTIVE_WAIT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactor.hpp b/Sources/Vendor/asio/include/asio/detail/reactor.hpp deleted file mode 100644 index 4750276..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactor.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// detail/reactor.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTOR_HPP -#define ASIO_DETAIL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/reactor_fwd.hpp" - -#if defined(ASIO_HAS_EPOLL) -# include "asio/detail/epoll_reactor.hpp" -#elif defined(ASIO_HAS_KQUEUE) -# include "asio/detail/kqueue_reactor.hpp" -#elif defined(ASIO_HAS_DEV_POLL) -# include "asio/detail/dev_poll_reactor.hpp" -#elif defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_reactor.hpp" -#else -# include "asio/detail/select_reactor.hpp" -#endif - -#endif // ASIO_DETAIL_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactor_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/reactor_fwd.hpp deleted file mode 100644 index a4555c3..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactor_fwd.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// detail/reactor_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTOR_FWD_HPP -#define ASIO_DETAIL_REACTOR_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_IOCP) || defined(ASIO_WINDOWS_RUNTIME) -typedef class null_reactor reactor; -#elif defined(ASIO_HAS_IOCP) -typedef class select_reactor reactor; -#elif defined(ASIO_HAS_EPOLL) -typedef class epoll_reactor reactor; -#elif defined(ASIO_HAS_KQUEUE) -typedef class kqueue_reactor reactor; -#elif defined(ASIO_HAS_DEV_POLL) -typedef class dev_poll_reactor reactor; -#else -typedef class select_reactor reactor; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_REACTOR_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactor_op.hpp b/Sources/Vendor/asio/include/asio/detail/reactor_op.hpp deleted file mode 100644 index faad1a7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactor_op.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// detail/reactor_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTOR_OP_HPP -#define ASIO_DETAIL_REACTOR_OP_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/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class reactor_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - - // The number of bytes transferred, to be passed to the completion handler. - std::size_t bytes_transferred_; - - // Status returned by perform function. May be used to decide whether it is - // worth performing more operations on the descriptor immediately. - enum status { not_done, done, done_and_exhausted }; - - // Perform the operation. Returns true if it is finished. - status perform() - { - return perform_func_(this); - } - -protected: - typedef status (*perform_func_type)(reactor_op*); - - reactor_op(perform_func_type perform_func, func_type complete_func) - : operation(complete_func), - bytes_transferred_(0), - perform_func_(perform_func) - { - } - -private: - perform_func_type perform_func_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTOR_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/reactor_op_queue.hpp b/Sources/Vendor/asio/include/asio/detail/reactor_op_queue.hpp deleted file mode 100644 index 898f31d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/reactor_op_queue.hpp +++ /dev/null @@ -1,168 +0,0 @@ -// -// detail/reactor_op_queue.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REACTOR_OP_QUEUE_HPP -#define ASIO_DETAIL_REACTOR_OP_QUEUE_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/hash_map.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class reactor_op_queue - : private noncopyable -{ -public: - typedef Descriptor key_type; - - struct mapped_type : op_queue - { - mapped_type() {} - mapped_type(const mapped_type&) {} - void operator=(const mapped_type&) {} - }; - - typedef typename hash_map::value_type value_type; - typedef typename hash_map::iterator iterator; - - // Constructor. - reactor_op_queue() - : operations_() - { - } - - // Obtain iterators to all registered descriptors. - iterator begin() { return operations_.begin(); } - iterator end() { return operations_.end(); } - - // Add a new operation to the queue. Returns true if this is the only - // operation for the given descriptor, in which case the reactor's event - // demultiplexing function call may need to be interrupted and restarted. - bool enqueue_operation(Descriptor descriptor, reactor_op* op) - { - std::pair entry = - operations_.insert(value_type(descriptor, mapped_type())); - entry.first->second.push(op); - return entry.second; - } - - // Cancel all operations associated with the descriptor identified by the - // supplied iterator. Any operations pending for the descriptor will be - // cancelled. Returns true if any operations were cancelled, in which case - // the reactor's event demultiplexing function may need to be interrupted and - // restarted. - bool cancel_operations(iterator i, op_queue& ops, - const asio::error_code& ec = - asio::error::operation_aborted) - { - if (i != operations_.end()) - { - while (reactor_op* op = i->second.front()) - { - op->ec_ = ec; - i->second.pop(); - ops.push(op); - } - operations_.erase(i); - return true; - } - - return false; - } - - // Cancel all operations associated with the descriptor. Any operations - // pending for the descriptor will be cancelled. Returns true if any - // operations were cancelled, in which case the reactor's event - // demultiplexing function may need to be interrupted and restarted. - bool cancel_operations(Descriptor descriptor, op_queue& ops, - const asio::error_code& ec = - asio::error::operation_aborted) - { - return this->cancel_operations(operations_.find(descriptor), ops, ec); - } - - // Whether there are no operations in the queue. - bool empty() const - { - return operations_.empty(); - } - - // Determine whether there are any operations associated with the descriptor. - bool has_operation(Descriptor descriptor) const - { - return operations_.find(descriptor) != operations_.end(); - } - - // Perform the operations corresponding to the descriptor identified by the - // supplied iterator. Returns true if there are still unfinished operations - // queued for the descriptor. - bool perform_operations(iterator i, op_queue& ops) - { - if (i != operations_.end()) - { - while (reactor_op* op = i->second.front()) - { - if (op->perform()) - { - i->second.pop(); - ops.push(op); - } - else - { - return true; - } - } - operations_.erase(i); - } - return false; - } - - // Perform the operations corresponding to the descriptor. Returns true if - // there are still unfinished operations queued for the descriptor. - bool perform_operations(Descriptor descriptor, op_queue& ops) - { - return this->perform_operations(operations_.find(descriptor), ops); - } - - // Get all operations owned by the queue. - void get_all_operations(op_queue& ops) - { - iterator i = operations_.begin(); - while (i != operations_.end()) - { - iterator op_iter = i++; - ops.push(op_iter->second); - operations_.erase(op_iter); - } - } - -private: - // The operations that are currently executing asynchronously. - hash_map operations_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_REACTOR_OP_QUEUE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/recycling_allocator.hpp b/Sources/Vendor/asio/include/asio/detail/recycling_allocator.hpp deleted file mode 100644 index 964af1d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/recycling_allocator.hpp +++ /dev/null @@ -1,104 +0,0 @@ -// -// detail/recycling_allocator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_RECYCLING_ALLOCATOR_HPP -#define ASIO_DETAIL_RECYCLING_ALLOCATOR_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/memory.hpp" -#include "asio/detail/thread_context.hpp" -#include "asio/detail/thread_info_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class recycling_allocator -{ -public: - typedef T value_type; - - template - struct rebind - { - typedef recycling_allocator other; - }; - - recycling_allocator() - { - } - - template - recycling_allocator(const recycling_allocator&) - { - } - - T* allocate(std::size_t n) - { - typedef thread_context::thread_call_stack call_stack; - void* p = thread_info_base::allocate(call_stack::top(), sizeof(T) * n); - return static_cast(p); - } - - void deallocate(T* p, std::size_t n) - { - typedef thread_context::thread_call_stack call_stack; - thread_info_base::deallocate(call_stack::top(), p, sizeof(T) * n); - } -}; - -template <> -class recycling_allocator -{ -public: - typedef void value_type; - - template - struct rebind - { - typedef recycling_allocator other; - }; - - recycling_allocator() - { - } - - template - recycling_allocator(const recycling_allocator&) - { - } -}; - -template -struct get_recycling_allocator -{ - typedef Allocator type; - static type get(const Allocator& a) { return a; } -}; - -template -struct get_recycling_allocator > -{ - typedef recycling_allocator type; - static type get(const std::allocator&) { return type(); } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_RECYCLING_ALLOCATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/regex_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/regex_fwd.hpp deleted file mode 100644 index dcf7d06..0000000 --- a/Sources/Vendor/asio/include/asio/detail/regex_fwd.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// detail/regex_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_REGEX_FWD_HPP -#define ASIO_DETAIL_REGEX_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if defined(ASIO_HAS_BOOST_REGEX) - -#include -#include - -namespace boost { - -template -struct sub_match; - -template -class match_results; - -} // namespace boost - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -#endif // ASIO_DETAIL_REGEX_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolve_endpoint_op.hpp b/Sources/Vendor/asio/include/asio/detail/resolve_endpoint_op.hpp deleted file mode 100644 index 8eee2f9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolve_endpoint_op.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// detail/resolve_endpoint_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_RESOLVER_ENDPOINT_OP_HPP -#define ASIO_DETAIL_RESOLVER_ENDPOINT_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/resolve_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class resolve_endpoint_op : public resolve_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(resolve_endpoint_op); - - typedef typename Protocol::endpoint endpoint_type; - typedef asio::ip::basic_resolver_results results_type; - - resolve_endpoint_op(socket_ops::weak_cancel_token_type cancel_token, - const endpoint_type& endpoint, io_context_impl& ioc, Handler& handler) - : resolve_op(&resolve_endpoint_op::do_complete), - cancel_token_(cancel_token), - endpoint_(endpoint), - io_context_impl_(ioc), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the operation object. - resolve_endpoint_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - if (owner && owner != &o->io_context_impl_) - { - // The operation is being run on the worker io_context. Time to perform - // the resolver operation. - - // Perform the blocking endpoint resolution operation. - char host_name[NI_MAXHOST]; - char service_name[NI_MAXSERV]; - socket_ops::background_getnameinfo(o->cancel_token_, o->endpoint_.data(), - o->endpoint_.size(), host_name, NI_MAXHOST, service_name, NI_MAXSERV, - o->endpoint_.protocol().type(), o->ec_); - o->results_ = results_type::create(o->endpoint_, host_name, service_name); - - // Pass operation back to main io_context for completion. - o->io_context_impl_.post_deferred_completion(o); - p.v = p.p = 0; - } - else - { - // The operation has been returned to the main io_context. The completion - // handler is ready to be delivered. - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated - // before the upcall is made. Even if we're not about to make an upcall, - // a sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->results_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - endpoint_type endpoint_; - io_context_impl& io_context_impl_; - Handler handler_; - results_type results_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_RESOLVER_ENDPOINT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolve_op.hpp b/Sources/Vendor/asio/include/asio/detail/resolve_op.hpp deleted file mode 100644 index a528aa8..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolve_op.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// detail/resolve_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_RESOLVE_OP_HPP -#define ASIO_DETAIL_RESOLVE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class resolve_op : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - -protected: - resolve_op(func_type complete_func) - : operation(complete_func) - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_RESOLVE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolve_query_op.hpp b/Sources/Vendor/asio/include/asio/detail/resolve_query_op.hpp deleted file mode 100644 index 0ec5a32..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolve_query_op.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// detail/resolve_query_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_RESOLVE_QUERY_OP_HPP -#define ASIO_DETAIL_RESOLVE_QUERY_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/resolve_op.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class resolve_query_op : public resolve_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(resolve_query_op); - - typedef asio::ip::basic_resolver_query query_type; - typedef asio::ip::basic_resolver_results results_type; - - resolve_query_op(socket_ops::weak_cancel_token_type cancel_token, - const query_type& query, io_context_impl& ioc, Handler& handler) - : resolve_op(&resolve_query_op::do_complete), - cancel_token_(cancel_token), - query_(query), - io_context_impl_(ioc), - handler_(ASIO_MOVE_CAST(Handler)(handler)), - addrinfo_(0) - { - handler_work::start(handler_); - } - - ~resolve_query_op() - { - if (addrinfo_) - socket_ops::freeaddrinfo(addrinfo_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the operation object. - resolve_query_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - - if (owner && owner != &o->io_context_impl_) - { - // The operation is being run on the worker io_context. Time to perform - // the resolver operation. - - // Perform the blocking host resolution operation. - socket_ops::background_getaddrinfo(o->cancel_token_, - o->query_.host_name().c_str(), o->query_.service_name().c_str(), - o->query_.hints(), &o->addrinfo_, o->ec_); - - // Pass operation back to main io_context for completion. - o->io_context_impl_.post_deferred_completion(o); - p.v = p.p = 0; - } - else - { - // The operation has been returned to the main io_context. The completion - // handler is ready to be delivered. - - // Take ownership of the operation's outstanding work. - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated - // before the upcall is made. Even if we're not about to make an upcall, - // a sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, results_type()); - p.h = asio::detail::addressof(handler.handler_); - if (o->addrinfo_) - { - handler.arg2_ = results_type::create(o->addrinfo_, - o->query_.host_name(), o->query_.service_name()); - } - p.reset(); - - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - query_type query_; - io_context_impl& io_context_impl_; - Handler handler_; - asio::detail::addrinfo_type* addrinfo_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_RESOLVE_QUERY_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolver_service.hpp b/Sources/Vendor/asio/include/asio/detail/resolver_service.hpp deleted file mode 100644 index 11a94d1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolver_service.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// -// detail/resolver_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_RESOLVER_SERVICE_HPP -#define ASIO_DETAIL_RESOLVER_SERVICE_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_WINDOWS_RUNTIME) - -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/detail/concurrency_hint.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/resolve_endpoint_op.hpp" -#include "asio/detail/resolve_query_op.hpp" -#include "asio/detail/resolver_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class resolver_service : - public service_base >, - public resolver_service_base -{ -public: - // The implementation type of the resolver. A cancellation token is used to - // indicate to the background thread that the operation has been cancelled. - typedef socket_ops::shared_cancel_token_type implementation_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The query type. - typedef asio::ip::basic_resolver_query query_type; - - // The results type. - typedef asio::ip::basic_resolver_results results_type; - - // Constructor. - resolver_service(asio::io_context& io_context) - : service_base >(io_context), - resolver_service_base(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - this->base_shutdown(); - } - - // Perform any fork-related housekeeping. - void notify_fork(asio::io_context::fork_event fork_ev) - { - this->base_notify_fork(fork_ev); - } - - // Resolve a query to a list of entries. - results_type resolve(implementation_type&, const query_type& query, - asio::error_code& ec) - { - asio::detail::addrinfo_type* address_info = 0; - - socket_ops::getaddrinfo(query.host_name().c_str(), - query.service_name().c_str(), query.hints(), &address_info, ec); - auto_addrinfo auto_address_info(address_info); - - return ec ? results_type() : results_type::create( - address_info, query.host_name(), query.service_name()); - } - - // Asynchronously resolve a query to a list of entries. - template - void async_resolve(implementation_type& impl, - const query_type& query, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef resolve_query_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl, query, io_context_impl_, handler); - - ASIO_HANDLER_CREATION((io_context_impl_.context(), - *p.p, "resolver", &impl, 0, "async_resolve")); - - start_resolve_op(p.p); - p.v = p.p = 0; - } - - // Resolve an endpoint to a list of entries. - results_type resolve(implementation_type&, - const endpoint_type& endpoint, asio::error_code& ec) - { - char host_name[NI_MAXHOST]; - char service_name[NI_MAXSERV]; - socket_ops::sync_getnameinfo(endpoint.data(), endpoint.size(), - host_name, NI_MAXHOST, service_name, NI_MAXSERV, - endpoint.protocol().type(), ec); - - return ec ? results_type() : results_type::create( - endpoint, host_name, service_name); - } - - // Asynchronously resolve an endpoint to a list of entries. - template - void async_resolve(implementation_type& impl, - const endpoint_type& endpoint, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef resolve_endpoint_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl, endpoint, io_context_impl_, handler); - - ASIO_HANDLER_CREATION((io_context_impl_.context(), - *p.p, "resolver", &impl, 0, "async_resolve")); - - start_resolve_op(p.p); - p.v = p.p = 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_RESOLVER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/resolver_service_base.hpp b/Sources/Vendor/asio/include/asio/detail/resolver_service_base.hpp deleted file mode 100644 index 10a7922..0000000 --- a/Sources/Vendor/asio/include/asio/detail/resolver_service_base.hpp +++ /dev/null @@ -1,140 +0,0 @@ -// -// detail/resolver_service_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_RESOLVER_SERVICE_BASE_HPP -#define ASIO_DETAIL_RESOLVER_SERVICE_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error.hpp" -#include "asio/executor_work_guard.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/resolve_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/thread.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class resolver_service_base -{ -public: - // The implementation type of the resolver. A cancellation token is used to - // indicate to the background thread that the operation has been cancelled. - typedef socket_ops::shared_cancel_token_type implementation_type; - - // Constructor. - ASIO_DECL resolver_service_base(asio::io_context& io_context); - - // Destructor. - ASIO_DECL ~resolver_service_base(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void base_shutdown(); - - // Perform any fork-related housekeeping. - ASIO_DECL void base_notify_fork( - asio::io_context::fork_event fork_ev); - - // Construct a new resolver implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Destroy a resolver implementation. - ASIO_DECL void destroy(implementation_type&); - - // Move-construct a new resolver implementation. - ASIO_DECL void move_construct(implementation_type& impl, - implementation_type& other_impl); - - // Move-assign from another resolver implementation. - ASIO_DECL void move_assign(implementation_type& impl, - resolver_service_base& other_service, - implementation_type& other_impl); - - // Cancel pending asynchronous operations. - ASIO_DECL void cancel(implementation_type& impl); - -protected: - // Helper function to start an asynchronous resolve operation. - ASIO_DECL void start_resolve_op(resolve_op* op); - -#if !defined(ASIO_WINDOWS_RUNTIME) - // Helper class to perform exception-safe cleanup of addrinfo objects. - class auto_addrinfo - : private asio::detail::noncopyable - { - public: - explicit auto_addrinfo(asio::detail::addrinfo_type* ai) - : ai_(ai) - { - } - - ~auto_addrinfo() - { - if (ai_) - socket_ops::freeaddrinfo(ai_); - } - - operator asio::detail::addrinfo_type*() - { - return ai_; - } - - private: - asio::detail::addrinfo_type* ai_; - }; -#endif // !defined(ASIO_WINDOWS_RUNTIME) - - // Helper class to run the work io_context in a thread. - class work_io_context_runner; - - // Start the work thread if it's not already running. - ASIO_DECL void start_work_thread(); - - // The io_context implementation used to post completions. - io_context_impl& io_context_impl_; - -private: - // Mutex to protect access to internal data. - asio::detail::mutex mutex_; - - // Private io_context used for performing asynchronous host resolution. - asio::detail::scoped_ptr work_io_context_; - - // The work io_context implementation used to post completions. - io_context_impl& work_io_context_impl_; - - // Work for the private io_context to perform. - asio::executor_work_guard< - asio::io_context::executor_type> work_; - - // Thread used for running the work io_context's run loop. - asio::detail::scoped_ptr work_thread_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/resolver_service_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_RESOLVER_SERVICE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scheduler.hpp b/Sources/Vendor/asio/include/asio/detail/scheduler.hpp deleted file mode 100644 index 10c29b7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scheduler.hpp +++ /dev/null @@ -1,213 +0,0 @@ -// -// detail/scheduler.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SCHEDULER_HPP -#define ASIO_DETAIL_SCHEDULER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/error_code.hpp" -#include "asio/execution_context.hpp" -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/conditionally_enabled_event.hpp" -#include "asio/detail/conditionally_enabled_mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_fwd.hpp" -#include "asio/detail/scheduler_operation.hpp" -#include "asio/detail/thread_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct scheduler_thread_info; - -class scheduler - : public execution_context_service_base, - public thread_context -{ -public: - typedef scheduler_operation operation; - - // Constructor. Specifies the number of concurrent threads that are likely to - // run the scheduler. If set to 1 certain optimisation are performed. - ASIO_DECL scheduler(asio::execution_context& ctx, - int concurrency_hint = 0); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Initialise the task, if required. - ASIO_DECL void init_task(); - - // Run the event loop until interrupted or no more work. - ASIO_DECL std::size_t run(asio::error_code& ec); - - // Run until interrupted or one operation is performed. - ASIO_DECL std::size_t run_one(asio::error_code& ec); - - // Run until timeout, interrupted, or one operation is performed. - ASIO_DECL std::size_t wait_one( - long usec, asio::error_code& ec); - - // Poll for operations without blocking. - ASIO_DECL std::size_t poll(asio::error_code& ec); - - // Poll for one operation without blocking. - ASIO_DECL std::size_t poll_one(asio::error_code& ec); - - // Interrupt the event processing loop. - ASIO_DECL void stop(); - - // Determine whether the scheduler is stopped. - ASIO_DECL bool stopped() const; - - // Restart in preparation for a subsequent run invocation. - ASIO_DECL void restart(); - - // Notify that some work has started. - void work_started() - { - ++outstanding_work_; - } - - // Used to compensate for a forthcoming work_finished call. Must be called - // from within a scheduler-owned thread. - ASIO_DECL void compensating_work_started(); - - // Notify that some work has finished. - void work_finished() - { - if (--outstanding_work_ == 0) - stop(); - } - - // Return whether a handler can be dispatched immediately. - bool can_dispatch() - { - return thread_call_stack::contains(this) != 0; - } - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() has not yet been called for the operation. - ASIO_DECL void post_immediate_completion( - operation* op, bool is_continuation); - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() was previously called for the operation. - ASIO_DECL void post_deferred_completion(operation* op); - - // Request invocation of the given operations and return immediately. Assumes - // that work_started() was previously called for each operation. - ASIO_DECL void post_deferred_completions(op_queue& ops); - - // Enqueue the given operation following a failed attempt to dispatch the - // operation for immediate invocation. - ASIO_DECL void do_dispatch(operation* op); - - // Process unfinished operations as part of a shutdownoperation. Assumes that - // work_started() was previously called for the operations. - ASIO_DECL void abandon_operations(op_queue& ops); - - // Get the concurrency hint that was used to initialise the scheduler. - int concurrency_hint() const - { - return concurrency_hint_; - } - -private: - // The mutex type used by this scheduler. - typedef conditionally_enabled_mutex mutex; - - // The event type used by this scheduler. - typedef conditionally_enabled_event event; - - // Structure containing thread-specific data. - typedef scheduler_thread_info thread_info; - - // Run at most one operation. May block. - ASIO_DECL std::size_t do_run_one(mutex::scoped_lock& lock, - thread_info& this_thread, const asio::error_code& ec); - - // Run at most one operation with a timeout. May block. - ASIO_DECL std::size_t do_wait_one(mutex::scoped_lock& lock, - thread_info& this_thread, long usec, const asio::error_code& ec); - - // Poll for at most one operation. - ASIO_DECL std::size_t do_poll_one(mutex::scoped_lock& lock, - thread_info& this_thread, const asio::error_code& ec); - - // Stop the task and all idle threads. - ASIO_DECL void stop_all_threads(mutex::scoped_lock& lock); - - // Wake a single idle thread, or the task, and always unlock the mutex. - ASIO_DECL void wake_one_thread_and_unlock( - mutex::scoped_lock& lock); - - // Helper class to perform task-related operations on block exit. - struct task_cleanup; - friend struct task_cleanup; - - // Helper class to call work-related operations on block exit. - struct work_cleanup; - friend struct work_cleanup; - - // Whether to optimise for single-threaded use cases. - const bool one_thread_; - - // Mutex to protect access to internal data. - mutable mutex mutex_; - - // Event to wake up blocked threads. - event wakeup_event_; - - // The task to be run by this service. - reactor* task_; - - // Operation object to represent the position of the task in the queue. - struct task_operation : operation - { - task_operation() : operation(0) {} - } task_operation_; - - // Whether the task has been interrupted. - bool task_interrupted_; - - // The count of unfinished work. - atomic_count outstanding_work_; - - // The queue of handlers that are ready to be delivered. - op_queue op_queue_; - - // Flag to indicate that the dispatcher has been stopped. - bool stopped_; - - // Flag to indicate that the dispatcher has been shut down. - bool shutdown_; - - // The concurrency hint used to initialise the scheduler. - const int concurrency_hint_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/scheduler.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_SCHEDULER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scheduler_operation.hpp b/Sources/Vendor/asio/include/asio/detail/scheduler_operation.hpp deleted file mode 100644 index 1c2ce02..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scheduler_operation.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// detail/scheduler_operation.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SCHEDULER_OPERATION_HPP -#define ASIO_DETAIL_SCHEDULER_OPERATION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/error_code.hpp" -#include "asio/detail/handler_tracking.hpp" -#include "asio/detail/op_queue.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class scheduler; - -// Base class for all operations. A function pointer is used instead of virtual -// functions to avoid the associated overhead. -class scheduler_operation ASIO_INHERIT_TRACKED_HANDLER -{ -public: - typedef scheduler_operation operation_type; - - void complete(void* owner, const asio::error_code& ec, - std::size_t bytes_transferred) - { - func_(owner, this, ec, bytes_transferred); - } - - void destroy() - { - func_(0, this, asio::error_code(), 0); - } - -protected: - typedef void (*func_type)(void*, - scheduler_operation*, - const asio::error_code&, std::size_t); - - scheduler_operation(func_type func) - : next_(0), - func_(func), - task_result_(0) - { - } - - // Prevents deletion through this type. - ~scheduler_operation() - { - } - -private: - friend class op_queue_access; - scheduler_operation* next_; - func_type func_; -protected: - friend class scheduler; - unsigned int task_result_; // Passed into bytes transferred. -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SCHEDULER_OPERATION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scheduler_thread_info.hpp b/Sources/Vendor/asio/include/asio/detail/scheduler_thread_info.hpp deleted file mode 100644 index 2ffe013..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scheduler_thread_info.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// detail/scheduler_thread_info.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SCHEDULER_THREAD_INFO_HPP -#define ASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/op_queue.hpp" -#include "asio/detail/thread_info_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class scheduler; -class scheduler_operation; - -struct scheduler_thread_info : public thread_info_base -{ - op_queue private_op_queue; - long private_outstanding_work; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SCHEDULER_THREAD_INFO_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scoped_lock.hpp b/Sources/Vendor/asio/include/asio/detail/scoped_lock.hpp deleted file mode 100644 index 6cbce38..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scoped_lock.hpp +++ /dev/null @@ -1,101 +0,0 @@ -// -// detail/scoped_lock.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SCOPED_LOCK_HPP -#define ASIO_DETAIL_SCOPED_LOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper class to lock and unlock a mutex automatically. -template -class scoped_lock - : private noncopyable -{ -public: - // Tag type used to distinguish constructors. - enum adopt_lock_t { adopt_lock }; - - // Constructor adopts a lock that is already held. - scoped_lock(Mutex& m, adopt_lock_t) - : mutex_(m), - locked_(true) - { - } - - // Constructor acquires the lock. - explicit scoped_lock(Mutex& m) - : mutex_(m) - { - mutex_.lock(); - locked_ = true; - } - - // Destructor releases the lock. - ~scoped_lock() - { - if (locked_) - mutex_.unlock(); - } - - // Explicitly acquire the lock. - void lock() - { - if (!locked_) - { - mutex_.lock(); - locked_ = true; - } - } - - // Explicitly release the lock. - void unlock() - { - if (locked_) - { - mutex_.unlock(); - locked_ = false; - } - } - - // Test whether the lock is held. - bool locked() const - { - return locked_; - } - - // Get the underlying mutex. - Mutex& mutex() - { - return mutex_; - } - -private: - // The underlying mutex. - Mutex& mutex_; - - // Whether the mutex is currently locked or unlocked. - bool locked_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SCOPED_LOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/scoped_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/scoped_ptr.hpp deleted file mode 100644 index 3449c53..0000000 --- a/Sources/Vendor/asio/include/asio/detail/scoped_ptr.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// -// detail/scoped_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SCOPED_PTR_HPP -#define ASIO_DETAIL_SCOPED_PTR_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 { -namespace detail { - -template -class scoped_ptr -{ -public: - // Constructor. - explicit scoped_ptr(T* p = 0) - : p_(p) - { - } - - // Destructor. - ~scoped_ptr() - { - delete p_; - } - - // Access. - T* get() - { - return p_; - } - - // Access. - T* operator->() - { - return p_; - } - - // Dereference. - T& operator*() - { - return *p_; - } - - // Reset pointer. - void reset(T* p = 0) - { - delete p_; - p_ = p; - } - - // Release ownership of the pointer. - T* release() - { - T* tmp = p_; - p_ = 0; - return tmp; - } - -private: - // Disallow copying and assignment. - scoped_ptr(const scoped_ptr&); - scoped_ptr& operator=(const scoped_ptr&); - - T* p_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SCOPED_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/select_interrupter.hpp b/Sources/Vendor/asio/include/asio/detail/select_interrupter.hpp deleted file mode 100644 index 1a07599..0000000 --- a/Sources/Vendor/asio/include/asio/detail/select_interrupter.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// detail/select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SELECT_INTERRUPTER_HPP -#define ASIO_DETAIL_SELECT_INTERRUPTER_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_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__) -# include "asio/detail/socket_select_interrupter.hpp" -#elif defined(ASIO_HAS_EVENTFD) -# include "asio/detail/eventfd_select_interrupter.hpp" -#else -# include "asio/detail/pipe_select_interrupter.hpp" -#endif - -namespace asio { -namespace detail { - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) || defined(__SYMBIAN32__) -typedef socket_select_interrupter select_interrupter; -#elif defined(ASIO_HAS_EVENTFD) -typedef eventfd_select_interrupter select_interrupter; -#else -typedef pipe_select_interrupter select_interrupter; -#endif - -} // namespace detail -} // namespace asio - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_SELECT_INTERRUPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/select_reactor.hpp b/Sources/Vendor/asio/include/asio/detail/select_reactor.hpp deleted file mode 100644 index 0996549..0000000 --- a/Sources/Vendor/asio/include/asio/detail/select_reactor.hpp +++ /dev/null @@ -1,238 +0,0 @@ -// -// detail/select_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SELECT_REACTOR_HPP -#define ASIO_DETAIL_SELECT_REACTOR_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_IOCP) \ - || (!defined(ASIO_HAS_DEV_POLL) \ - && !defined(ASIO_HAS_EPOLL) \ - && !defined(ASIO_HAS_KQUEUE) \ - && !defined(ASIO_WINDOWS_RUNTIME)) - -#include -#include "asio/detail/fd_set_adapter.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/reactor_op_queue.hpp" -#include "asio/detail/select_interrupter.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/execution_context.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/thread.hpp" -#endif // defined(ASIO_HAS_IOCP) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class select_reactor - : public execution_context_service_base -{ -public: -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - enum op_types { read_op = 0, write_op = 1, except_op = 2, - max_select_ops = 3, connect_op = 3, max_ops = 4 }; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - enum op_types { read_op = 0, write_op = 1, except_op = 2, - max_select_ops = 3, connect_op = 1, max_ops = 3 }; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - - // Per-descriptor data. - struct per_descriptor_data - { - }; - - // Constructor. - ASIO_DECL select_reactor(asio::execution_context& ctx); - - // Destructor. - ASIO_DECL ~select_reactor(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::execution_context::fork_event fork_ev); - - // Initialise the task, but only if the reactor is not in its own thread. - ASIO_DECL void init_task(); - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - ASIO_DECL int register_descriptor(socket_type, per_descriptor_data&); - - // Register a descriptor with an associated single operation. Returns 0 on - // success, system error code on failure. - ASIO_DECL int register_internal_descriptor( - int op_type, socket_type descriptor, - per_descriptor_data& descriptor_data, reactor_op* op); - - // Post a reactor operation for immediate completion. - void post_immediate_completion(reactor_op* op, bool is_continuation) - { - scheduler_.post_immediate_completion(op, is_continuation); - } - - // Start a new operation. The reactor operation will be performed when the - // given descriptor is flagged as ready, or an error has occurred. - ASIO_DECL void start_op(int op_type, socket_type descriptor, - per_descriptor_data&, reactor_op* op, bool is_continuation, bool); - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - ASIO_DECL void cancel_ops(socket_type descriptor, per_descriptor_data&); - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. The reactor resources associated with - // the descriptor must be released by calling cleanup_descriptor_data. - ASIO_DECL void deregister_descriptor(socket_type descriptor, - per_descriptor_data&, bool closing); - - // Remove the descriptor's registration from the reactor. The reactor - // resources associated with the descriptor must be released by calling - // cleanup_descriptor_data. - ASIO_DECL void deregister_internal_descriptor( - socket_type descriptor, per_descriptor_data&); - - // Perform any post-deregistration cleanup tasks associated with the - // descriptor data. - ASIO_DECL void cleanup_descriptor_data(per_descriptor_data&); - - // Move descriptor registration from one descriptor_data object to another. - ASIO_DECL void move_descriptor(socket_type descriptor, - per_descriptor_data& target_descriptor_data, - per_descriptor_data& source_descriptor_data); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& target, - typename timer_queue::per_timer_data& source); - - // Run select once until interrupted or events are ready to be dispatched. - ASIO_DECL void run(long usec, op_queue& ops); - - // Interrupt the select loop. - ASIO_DECL void interrupt(); - -private: -#if defined(ASIO_HAS_IOCP) - // Run the select loop in the thread. - ASIO_DECL void run_thread(); -#endif // defined(ASIO_HAS_IOCP) - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Get the timeout value for the select call. - ASIO_DECL timeval* get_timeout(long usec, timeval& tv); - - // Cancel all operations associated with the given descriptor. This function - // does not acquire the select_reactor's mutex. - ASIO_DECL void cancel_ops_unlocked(socket_type descriptor, - const asio::error_code& ec); - - // The scheduler implementation used to post completions. -# if defined(ASIO_HAS_IOCP) - typedef class win_iocp_io_context scheduler_type; -# else // defined(ASIO_HAS_IOCP) - typedef class scheduler scheduler_type; -# endif // defined(ASIO_HAS_IOCP) - scheduler_type& scheduler_; - - // Mutex to protect access to internal data. - asio::detail::mutex mutex_; - - // The interrupter is used to break a blocking select call. - select_interrupter interrupter_; - - // The queues of read, write and except operations. - reactor_op_queue op_queue_[max_ops]; - - // The file descriptor sets to be passed to the select system call. - fd_set_adapter fd_sets_[max_select_ops]; - - // The timer queues. - timer_queue_set timer_queues_; - -#if defined(ASIO_HAS_IOCP) - // Helper class to run the reactor loop in a thread. - class thread_function; - friend class thread_function; - - // Does the reactor loop thread need to stop. - bool stop_thread_; - - // The thread that is running the reactor loop. - asio::detail::thread* thread_; -#endif // defined(ASIO_HAS_IOCP) - - // Whether the service has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/select_reactor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/select_reactor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) - // || (!defined(ASIO_HAS_DEV_POLL) - // && !defined(ASIO_HAS_EPOLL) - // && !defined(ASIO_HAS_KQUEUE) - // && !defined(ASIO_WINDOWS_RUNTIME)) - -#endif // ASIO_DETAIL_SELECT_REACTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/service_registry.hpp b/Sources/Vendor/asio/include/asio/detail/service_registry.hpp deleted file mode 100644 index cda6307..0000000 --- a/Sources/Vendor/asio/include/asio/detail/service_registry.hpp +++ /dev/null @@ -1,164 +0,0 @@ -// -// detail/service_registry.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SERVICE_REGISTRY_HPP -#define ASIO_DETAIL_SERVICE_REGISTRY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/mutex.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class io_context; - -namespace detail { - -template -class typeid_wrapper {}; - -class service_registry - : private noncopyable -{ -public: - // Constructor. - ASIO_DECL service_registry(execution_context& owner); - - // Destructor. - ASIO_DECL ~service_registry(); - - // Shutdown all services. - ASIO_DECL void shutdown_services(); - - // Destroy all services. - ASIO_DECL void destroy_services(); - - // Notify all services of a fork event. - ASIO_DECL void notify_fork(execution_context::fork_event fork_ev); - - // Get the service object corresponding to the specified service type. Will - // create a new service object automatically if no such object already - // exists. Ownership of the service object is not transferred to the caller. - template - Service& use_service(); - - // Get the service object corresponding to the specified service type. Will - // create a new service object automatically if no such object already - // exists. Ownership of the service object is not transferred to the caller. - // This overload is used for backwards compatibility with services that - // inherit from io_context::service. - template - Service& use_service(io_context& owner); - - // Add a service object. Throws on error, in which case ownership of the - // object is retained by the caller. - template - void add_service(Service* new_service); - - // Check whether a service object of the specified type already exists. - template - bool has_service() const; - -private: - // Initalise a service's key when the key_type typedef is not available. - template - static void init_key(execution_context::service::key& key, ...); - -#if !defined(ASIO_NO_TYPEID) - // Initalise a service's key when the key_type typedef is available. - template - static void init_key(execution_context::service::key& key, - typename enable_if< - is_base_of::value>::type*); -#endif // !defined(ASIO_NO_TYPEID) - - // Initialise a service's key based on its id. - ASIO_DECL static void init_key_from_id( - execution_context::service::key& key, - const execution_context::id& id); - -#if !defined(ASIO_NO_TYPEID) - // Initialise a service's key based on its id. - template - static void init_key_from_id(execution_context::service::key& key, - const service_id& /*id*/); -#endif // !defined(ASIO_NO_TYPEID) - - // Check if a service matches the given id. - ASIO_DECL static bool keys_match( - const execution_context::service::key& key1, - const execution_context::service::key& key2); - - // The type of a factory function used for creating a service instance. - typedef execution_context::service*(*factory_type)(void*); - - // Factory function for creating a service instance. - template - static execution_context::service* create(void* owner); - - // Destroy a service instance. - ASIO_DECL static void destroy(execution_context::service* service); - - // Helper class to manage service pointers. - struct auto_service_ptr; - friend struct auto_service_ptr; - struct auto_service_ptr - { - execution_context::service* ptr_; - ~auto_service_ptr() { destroy(ptr_); } - }; - - // Get the service object corresponding to the specified service key. Will - // create a new service object automatically if no such object already - // exists. Ownership of the service object is not transferred to the caller. - ASIO_DECL execution_context::service* do_use_service( - const execution_context::service::key& key, - factory_type factory, void* owner); - - // Add a service object. Throws on error, in which case ownership of the - // object is retained by the caller. - ASIO_DECL void do_add_service( - const execution_context::service::key& key, - execution_context::service* new_service); - - // Check whether a service object with the specified key already exists. - ASIO_DECL bool do_has_service( - const execution_context::service::key& key) const; - - // Mutex to protect access to internal data. - mutable asio::detail::mutex mutex_; - - // The owner of this service registry and the services it contains. - execution_context& owner_; - - // The first service in the list of contained services. - execution_context::service* first_service_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/service_registry.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/service_registry.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_SERVICE_REGISTRY_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_blocker.hpp b/Sources/Vendor/asio/include/asio/detail/signal_blocker.hpp deleted file mode 100644 index b684295..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_blocker.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// detail/signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SIGNAL_BLOCKER_HPP -#define ASIO_DETAIL_SIGNAL_BLOCKER_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_THREADS) || defined(ASIO_WINDOWS) \ - || defined(ASIO_WINDOWS_RUNTIME) \ - || defined(__CYGWIN__) || defined(__SYMBIAN32__) -# include "asio/detail/null_signal_blocker.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_signal_blocker.hpp" -#else -# error Only Windows and POSIX are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) || defined(ASIO_WINDOWS) \ - || defined(ASIO_WINDOWS_RUNTIME) \ - || defined(__CYGWIN__) || defined(__SYMBIAN32__) -typedef null_signal_blocker signal_blocker; -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_signal_blocker signal_blocker; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_SIGNAL_BLOCKER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_handler.hpp b/Sources/Vendor/asio/include/asio/detail/signal_handler.hpp deleted file mode 100644 index d1c9910..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_handler.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// -// detail/signal_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SIGNAL_HANDLER_HPP -#define ASIO_DETAIL_SIGNAL_HANDLER_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/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_work.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/signal_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class signal_handler : public signal_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(signal_handler); - - signal_handler(Handler& h) - : signal_op(&signal_handler::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(h)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - signal_handler* h(static_cast(base)); - ptr p = { asio::detail::addressof(h->handler_), h, h }; - handler_work w(h->handler_); - - ASIO_HANDLER_COMPLETION((*h)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(h->handler_, h->ec_, h->signal_number_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SIGNAL_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_init.hpp b/Sources/Vendor/asio/include/asio/detail/signal_init.hpp deleted file mode 100644 index 814ff51..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_init.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// detail/signal_init.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SIGNAL_INIT_HPP -#define ASIO_DETAIL_SIGNAL_INIT_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_WINDOWS) && !defined(__CYGWIN__) - -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class signal_init -{ -public: - // Constructor. - signal_init() - { - std::signal(Signal, SIG_IGN); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#endif // ASIO_DETAIL_SIGNAL_INIT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_op.hpp b/Sources/Vendor/asio/include/asio/detail/signal_op.hpp deleted file mode 100644 index c4e364c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_op.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// -// detail/signal_op.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SIGNAL_OP_HPP -#define ASIO_DETAIL_SIGNAL_OP_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/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class signal_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - - // The signal number to be passed to the completion handler. - int signal_number_; - -protected: - signal_op(func_type func) - : operation(func), - signal_number_(0) - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SIGNAL_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/signal_set_service.hpp b/Sources/Vendor/asio/include/asio/detail/signal_set_service.hpp deleted file mode 100644 index a18ab70..0000000 --- a/Sources/Vendor/asio/include/asio/detail/signal_set_service.hpp +++ /dev/null @@ -1,217 +0,0 @@ -// -// detail/signal_set_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SIGNAL_SET_SERVICE_HPP -#define ASIO_DETAIL_SIGNAL_SET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/signal_handler.hpp" -#include "asio/detail/signal_op.hpp" -#include "asio/detail/socket_types.hpp" - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) -# include "asio/detail/reactor.hpp" -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(NSIG) && (NSIG > 0) -enum { max_signal_number = NSIG }; -#else -enum { max_signal_number = 128 }; -#endif - -extern ASIO_DECL struct signal_state* get_signal_state(); - -extern "C" ASIO_DECL void asio_signal_handler(int signal_number); - -class signal_set_service : - public service_base -{ -public: - // Type used for tracking an individual signal registration. - class registration - { - public: - // Default constructor. - registration() - : signal_number_(0), - queue_(0), - undelivered_(0), - next_in_table_(0), - prev_in_table_(0), - next_in_set_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class signal_set_service; - - // The signal number that is registered. - int signal_number_; - - // The waiting signal handlers. - op_queue* queue_; - - // The number of undelivered signals. - std::size_t undelivered_; - - // Pointers to adjacent registrations in the registrations_ table. - registration* next_in_table_; - registration* prev_in_table_; - - // Link to next registration in the signal set. - registration* next_in_set_; - }; - - // The implementation type of the signal_set. - class implementation_type - { - public: - // Default constructor. - implementation_type() - : signals_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class signal_set_service; - - // The pending signal handlers. - op_queue queue_; - - // Linked list of registered signals. - registration* signals_; - }; - - // Constructor. - ASIO_DECL signal_set_service(asio::io_context& io_context); - - // Destructor. - ASIO_DECL ~signal_set_service(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Perform fork-related housekeeping. - ASIO_DECL void notify_fork( - asio::io_context::fork_event fork_ev); - - // Construct a new signal_set implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Destroy a signal_set implementation. - ASIO_DECL void destroy(implementation_type& impl); - - // Add a signal to a signal_set. - ASIO_DECL asio::error_code add(implementation_type& impl, - int signal_number, asio::error_code& ec); - - // Remove a signal to a signal_set. - ASIO_DECL asio::error_code remove(implementation_type& impl, - int signal_number, asio::error_code& ec); - - // Remove all signals from a signal_set. - ASIO_DECL asio::error_code clear(implementation_type& impl, - asio::error_code& ec); - - // Cancel all operations associated with the signal set. - ASIO_DECL asio::error_code cancel(implementation_type& impl, - asio::error_code& ec); - - // Start an asynchronous operation to wait for a signal to be delivered. - template - void async_wait(implementation_type& impl, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef signal_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "signal_set", &impl, 0, "async_wait")); - - start_wait_op(impl, p.p); - p.v = p.p = 0; - } - - // Deliver notification that a particular signal occurred. - ASIO_DECL static void deliver_signal(int signal_number); - -private: - // Helper function to add a service to the global signal state. - ASIO_DECL static void add_service(signal_set_service* service); - - // Helper function to remove a service from the global signal state. - ASIO_DECL static void remove_service(signal_set_service* service); - - // Helper function to create the pipe descriptors. - ASIO_DECL static void open_descriptors(); - - // Helper function to close the pipe descriptors. - ASIO_DECL static void close_descriptors(); - - // Helper function to start a wait operation. - ASIO_DECL void start_wait_op(implementation_type& impl, signal_op* op); - - // The io_context instance used for dispatching handlers. - io_context_impl& io_context_; - -#if !defined(ASIO_WINDOWS) \ - && !defined(ASIO_WINDOWS_RUNTIME) \ - && !defined(__CYGWIN__) - // The type used for registering for pipe reactor notifications. - class pipe_read_op; - - // The reactor used for waiting for pipe readiness. - reactor& reactor_; - - // The per-descriptor reactor data used for the pipe. - reactor::per_descriptor_data reactor_data_; -#endif // !defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_RUNTIME) - // && !defined(__CYGWIN__) - - // A mapping from signal number to the registered signal sets. - registration* registrations_[max_signal_number]; - - // Pointers to adjacent services in linked list. - signal_set_service* next_; - signal_set_service* prev_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/signal_set_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_SIGNAL_SET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_holder.hpp b/Sources/Vendor/asio/include/asio/detail/socket_holder.hpp deleted file mode 100644 index 99b081f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_holder.hpp +++ /dev/null @@ -1,98 +0,0 @@ -// -// detail/socket_holder.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SOCKET_HOLDER_HPP -#define ASIO_DETAIL_SOCKET_HOLDER_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/noncopyable.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Implement the resource acquisition is initialisation idiom for sockets. -class socket_holder - : private noncopyable -{ -public: - // Construct as an uninitialised socket. - socket_holder() - : socket_(invalid_socket) - { - } - - // Construct to take ownership of the specified socket. - explicit socket_holder(socket_type s) - : socket_(s) - { - } - - // Destructor. - ~socket_holder() - { - if (socket_ != invalid_socket) - { - asio::error_code ec; - socket_ops::state_type state = 0; - socket_ops::close(socket_, state, true, ec); - } - } - - // Get the underlying socket. - socket_type get() const - { - return socket_; - } - - // Reset to an uninitialised socket. - void reset() - { - if (socket_ != invalid_socket) - { - asio::error_code ec; - socket_ops::state_type state = 0; - socket_ops::close(socket_, state, true, ec); - socket_ = invalid_socket; - } - } - - // Reset to take ownership of the specified socket. - void reset(socket_type s) - { - reset(); - socket_ = s; - } - - // Release ownership of the socket. - socket_type release() - { - socket_type tmp = socket_; - socket_ = invalid_socket; - return tmp; - } - -private: - // The underlying socket. - socket_type socket_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SOCKET_HOLDER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_ops.hpp b/Sources/Vendor/asio/include/asio/detail/socket_ops.hpp deleted file mode 100644 index 815b0d1..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_ops.hpp +++ /dev/null @@ -1,337 +0,0 @@ -// -// detail/socket_ops.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SOCKET_OPS_HPP -#define ASIO_DETAIL_SOCKET_OPS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/error_code.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace socket_ops { - -// Socket state bits. -enum -{ - // The user wants a non-blocking socket. - user_set_non_blocking = 1, - - // The socket has been set non-blocking. - internal_non_blocking = 2, - - // Helper "state" used to determine whether the socket is non-blocking. - non_blocking = user_set_non_blocking | internal_non_blocking, - - // User wants connection_aborted errors, which are disabled by default. - enable_connection_aborted = 4, - - // The user set the linger option. Needs to be checked when closing. - user_set_linger = 8, - - // The socket is stream-oriented. - stream_oriented = 16, - - // The socket is datagram-oriented. - datagram_oriented = 32, - - // The socket may have been dup()-ed. - possible_dup = 64 -}; - -typedef unsigned char state_type; - -struct noop_deleter { void operator()(void*) {} }; -typedef shared_ptr shared_cancel_token_type; -typedef weak_ptr weak_cancel_token_type; - -#if !defined(ASIO_WINDOWS_RUNTIME) - -ASIO_DECL socket_type accept(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -ASIO_DECL socket_type sync_accept(socket_type s, - state_type state, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_accept(socket_type s, - void* output_buffer, DWORD address_length, - socket_addr_type* addr, std::size_t* addrlen, - socket_type new_socket, asio::error_code& ec); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_accept(socket_type s, - state_type state, socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec, socket_type& new_socket); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL int bind(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -ASIO_DECL int close(socket_type s, state_type& state, - bool destruction, asio::error_code& ec); - -ASIO_DECL bool set_user_non_blocking(socket_type s, - state_type& state, bool value, asio::error_code& ec); - -ASIO_DECL bool set_internal_non_blocking(socket_type s, - state_type& state, bool value, asio::error_code& ec); - -ASIO_DECL int shutdown(socket_type s, - int what, asio::error_code& ec); - -ASIO_DECL int connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -ASIO_DECL void sync_connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_connect(socket_type s, - asio::error_code& ec); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_connect(socket_type s, - asio::error_code& ec); - -ASIO_DECL int socketpair(int af, int type, int protocol, - socket_type sv[2], asio::error_code& ec); - -ASIO_DECL bool sockatmark(socket_type s, asio::error_code& ec); - -ASIO_DECL size_t available(socket_type s, asio::error_code& ec); - -ASIO_DECL int listen(socket_type s, - int backlog, asio::error_code& ec); - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef WSABUF buf; -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef iovec buf; -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -ASIO_DECL void init_buf(buf& b, void* data, size_t size); - -ASIO_DECL void init_buf(buf& b, const void* data, size_t size); - -ASIO_DECL signed_size_type recv(socket_type s, buf* bufs, - size_t count, int flags, asio::error_code& ec); - -ASIO_DECL size_t sync_recv(socket_type s, state_type state, buf* bufs, - size_t count, int flags, bool all_empty, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_recv(state_type state, - const weak_cancel_token_type& cancel_token, bool all_empty, - asio::error_code& ec, size_t bytes_transferred); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_recv(socket_type s, - buf* bufs, size_t count, int flags, bool is_stream, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL signed_size_type recvfrom(socket_type s, buf* bufs, - size_t count, int flags, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -ASIO_DECL size_t sync_recvfrom(socket_type s, state_type state, - buf* bufs, size_t count, int flags, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_recvfrom( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_recvfrom(socket_type s, - buf* bufs, size_t count, int flags, - socket_addr_type* addr, std::size_t* addrlen, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL signed_size_type recvmsg(socket_type s, buf* bufs, - size_t count, int in_flags, int& out_flags, - asio::error_code& ec); - -ASIO_DECL size_t sync_recvmsg(socket_type s, state_type state, - buf* bufs, size_t count, int in_flags, int& out_flags, - asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_recvmsg( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_recvmsg(socket_type s, - buf* bufs, size_t count, int in_flags, int& out_flags, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL signed_size_type send(socket_type s, const buf* bufs, - size_t count, int flags, asio::error_code& ec); - -ASIO_DECL size_t sync_send(socket_type s, state_type state, - const buf* bufs, size_t count, int flags, - bool all_empty, asio::error_code& ec); - -#if defined(ASIO_HAS_IOCP) - -ASIO_DECL void complete_iocp_send( - const weak_cancel_token_type& cancel_token, - asio::error_code& ec); - -#else // defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_send(socket_type s, - const buf* bufs, size_t count, int flags, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // defined(ASIO_HAS_IOCP) - -ASIO_DECL signed_size_type sendto(socket_type s, const buf* bufs, - size_t count, int flags, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -ASIO_DECL size_t sync_sendto(socket_type s, state_type state, - const buf* bufs, size_t count, int flags, const socket_addr_type* addr, - std::size_t addrlen, asio::error_code& ec); - -#if !defined(ASIO_HAS_IOCP) - -ASIO_DECL bool non_blocking_sendto(socket_type s, - const buf* bufs, size_t count, int flags, - const socket_addr_type* addr, std::size_t addrlen, - asio::error_code& ec, size_t& bytes_transferred); - -#endif // !defined(ASIO_HAS_IOCP) - -ASIO_DECL socket_type socket(int af, int type, int protocol, - asio::error_code& ec); - -ASIO_DECL int setsockopt(socket_type s, state_type& state, - int level, int optname, const void* optval, - std::size_t optlen, asio::error_code& ec); - -ASIO_DECL int getsockopt(socket_type s, state_type state, - int level, int optname, void* optval, - size_t* optlen, asio::error_code& ec); - -ASIO_DECL int getpeername(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, bool cached, asio::error_code& ec); - -ASIO_DECL int getsockname(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, asio::error_code& ec); - -ASIO_DECL int ioctl(socket_type s, state_type& state, - int cmd, ioctl_arg_type* arg, asio::error_code& ec); - -ASIO_DECL int select(int nfds, fd_set* readfds, fd_set* writefds, - fd_set* exceptfds, timeval* timeout, asio::error_code& ec); - -ASIO_DECL int poll_read(socket_type s, - state_type state, int msec, asio::error_code& ec); - -ASIO_DECL int poll_write(socket_type s, - state_type state, int msec, asio::error_code& ec); - -ASIO_DECL int poll_error(socket_type s, - state_type state, int msec, asio::error_code& ec); - -ASIO_DECL int poll_connect(socket_type s, - int msec, asio::error_code& ec); - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -ASIO_DECL const char* inet_ntop(int af, const void* src, char* dest, - size_t length, unsigned long scope_id, asio::error_code& ec); - -ASIO_DECL int inet_pton(int af, const char* src, void* dest, - unsigned long* scope_id, asio::error_code& ec); - -ASIO_DECL int gethostname(char* name, - int namelen, asio::error_code& ec); - -#if !defined(ASIO_WINDOWS_RUNTIME) - -ASIO_DECL asio::error_code getaddrinfo(const char* host, - const char* service, const addrinfo_type& hints, - addrinfo_type** result, asio::error_code& ec); - -ASIO_DECL asio::error_code background_getaddrinfo( - const weak_cancel_token_type& cancel_token, const char* host, - const char* service, const addrinfo_type& hints, - addrinfo_type** result, asio::error_code& ec); - -ASIO_DECL void freeaddrinfo(addrinfo_type* ai); - -ASIO_DECL asio::error_code getnameinfo( - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int flags, asio::error_code& ec); - -ASIO_DECL asio::error_code sync_getnameinfo( - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int sock_type, asio::error_code& ec); - -ASIO_DECL asio::error_code background_getnameinfo( - const weak_cancel_token_type& cancel_token, - const socket_addr_type* addr, std::size_t addrlen, - char* host, std::size_t hostlen, char* serv, - std::size_t servlen, int sock_type, asio::error_code& ec); - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -ASIO_DECL u_long_type network_to_host_long(u_long_type value); - -ASIO_DECL u_long_type host_to_network_long(u_long_type value); - -ASIO_DECL u_short_type network_to_host_short(u_short_type value); - -ASIO_DECL u_short_type host_to_network_short(u_short_type value); - -} // namespace socket_ops -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/socket_ops.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_SOCKET_OPS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_option.hpp b/Sources/Vendor/asio/include/asio/detail/socket_option.hpp deleted file mode 100644 index 6852d56..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_option.hpp +++ /dev/null @@ -1,316 +0,0 @@ -// -// detail/socket_option.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SOCKET_OPTION_HPP -#define ASIO_DETAIL_SOCKET_OPTION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace socket_option { - -// Helper template for implementing boolean-based options. -template -class boolean -{ -public: - // Default constructor. - boolean() - : value_(0) - { - } - - // Construct with a specific option value. - explicit boolean(bool v) - : value_(v ? 1 : 0) - { - } - - // Set the current value of the boolean. - boolean& operator=(bool v) - { - value_ = v ? 1 : 0; - return *this; - } - - // Get the current value of the boolean. - bool value() const - { - return !!value_; - } - - // Convert to bool. - operator bool() const - { - return !!value_; - } - - // Test for false. - bool operator!() const - { - return !value_; - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the boolean data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the boolean data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the boolean data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the boolean data. - template - void resize(const Protocol&, std::size_t s) - { - // On some platforms (e.g. Windows Vista), the getsockopt function will - // return the size of a boolean socket option as one byte, even though a - // four byte integer was passed in. - switch (s) - { - case sizeof(char): - value_ = *reinterpret_cast(&value_) ? 1 : 0; - break; - case sizeof(value_): - break; - default: - { - std::length_error ex("boolean socket option resize"); - asio::detail::throw_exception(ex); - } - } - } - -private: - int value_; -}; - -// Helper template for implementing integer options. -template -class integer -{ -public: - // Default constructor. - integer() - : value_(0) - { - } - - // Construct with a specific option value. - explicit integer(int v) - : value_(v) - { - } - - // Set the value of the int option. - integer& operator=(int v) - { - value_ = v; - return *this; - } - - // Get the current value of the int option. - int value() const - { - return value_; - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the int data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the int data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the int data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the int data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - { - std::length_error ex("integer socket option resize"); - asio::detail::throw_exception(ex); - } - } - -private: - int value_; -}; - -// Helper template for implementing linger options. -template -class linger -{ -public: - // Default constructor. - linger() - { - value_.l_onoff = 0; - value_.l_linger = 0; - } - - // Construct with specific option values. - linger(bool e, int t) - { - enabled(e); - timeout ASIO_PREVENT_MACRO_SUBSTITUTION(t); - } - - // Set the value for whether linger is enabled. - void enabled(bool value) - { - value_.l_onoff = value ? 1 : 0; - } - - // Get the value for whether linger is enabled. - bool enabled() const - { - return value_.l_onoff != 0; - } - - // Set the value for the linger timeout. - void timeout ASIO_PREVENT_MACRO_SUBSTITUTION(int value) - { -#if defined(WIN32) - value_.l_linger = static_cast(value); -#else - value_.l_linger = value; -#endif - } - - // Get the value for the linger timeout. - int timeout ASIO_PREVENT_MACRO_SUBSTITUTION() const - { - return static_cast(value_.l_linger); - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the linger data. - template - detail::linger_type* data(const Protocol&) - { - return &value_; - } - - // Get the address of the linger data. - template - const detail::linger_type* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the linger data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the int data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - { - std::length_error ex("linger socket option resize"); - asio::detail::throw_exception(ex); - } - } - -private: - detail::linger_type value_; -}; - -} // namespace socket_option -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SOCKET_OPTION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_select_interrupter.hpp b/Sources/Vendor/asio/include/asio/detail/socket_select_interrupter.hpp deleted file mode 100644 index 7351070..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_select_interrupter.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// detail/socket_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SOCKET_SELECT_INTERRUPTER_HPP -#define ASIO_DETAIL_SOCKET_SELECT_INTERRUPTER_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_WINDOWS_RUNTIME) - -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(__SYMBIAN32__) - -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class socket_select_interrupter -{ -public: - // Constructor. - ASIO_DECL socket_select_interrupter(); - - // Destructor. - ASIO_DECL ~socket_select_interrupter(); - - // Recreate the interrupter's descriptors. Used after a fork. - ASIO_DECL void recreate(); - - // Interrupt the select call. - ASIO_DECL void interrupt(); - - // Reset the select interrupt. Returns true if the call was interrupted. - ASIO_DECL bool reset(); - - // Get the read descriptor to be passed to select. - socket_type read_descriptor() const - { - return read_descriptor_; - } - -private: - // Open the descriptors. Throws on error. - ASIO_DECL void open_descriptors(); - - // Close the descriptors. - ASIO_DECL void close_descriptors(); - - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // byte will be written on the other end of the connection and this - // descriptor will become readable. - socket_type read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // byte may be written to this to wake up the select which is waiting for the - // other end to become readable. - socket_type write_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/socket_select_interrupter.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - // || defined(__CYGWIN__) - // || defined(__SYMBIAN32__) - -#endif // !defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_SOCKET_SELECT_INTERRUPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/socket_types.hpp b/Sources/Vendor/asio/include/asio/detail/socket_types.hpp deleted file mode 100644 index d354343..0000000 --- a/Sources/Vendor/asio/include/asio/detail/socket_types.hpp +++ /dev/null @@ -1,416 +0,0 @@ -// -// detail/socket_types.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SOCKET_TYPES_HPP -#define ASIO_DETAIL_SOCKET_TYPES_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_WINDOWS_RUNTIME) -// Empty. -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_) -# error WinSock.h has already been included -# endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_) -# if defined(__BORLANDC__) -# include // Needed for __errno -# if !defined(_WSPIAPI_H_) -# define _WSPIAPI_H_ -# define ASIO_WSPIAPI_H_DEFINED -# endif // !defined(_WSPIAPI_H_) -# endif // defined(__BORLANDC__) -# include -# include -# if defined(WINAPI_FAMILY) -# if ((WINAPI_FAMILY & WINAPI_PARTITION_DESKTOP) != 0) -# include -# endif // ((WINAPI_FAMILY & WINAPI_PARTITION_DESKTOP) != 0) -# endif // defined(WINAPI_FAMILY) -# if !defined(ASIO_WINDOWS_APP) -# include -# endif // !defined(ASIO_WINDOWS_APP) -# if defined(ASIO_WSPIAPI_H_DEFINED) -# undef _WSPIAPI_H_ -# undef ASIO_WSPIAPI_H_DEFINED -# endif // defined(ASIO_WSPIAPI_H_DEFINED) -# if !defined(ASIO_NO_DEFAULT_LINKED_LIBS) -# if defined(UNDER_CE) -# pragma comment(lib, "ws2.lib") -# elif defined(_MSC_VER) || defined(__BORLANDC__) -# pragma comment(lib, "ws2_32.lib") -# if !defined(ASIO_WINDOWS_APP) -# pragma comment(lib, "mswsock.lib") -# endif // !defined(ASIO_WINDOWS_APP) -# endif // defined(_MSC_VER) || defined(__BORLANDC__) -# endif // !defined(ASIO_NO_DEFAULT_LINKED_LIBS) -# include "asio/detail/old_win_sdk_compat.hpp" -#else -# include -# if (defined(__MACH__) && defined(__APPLE__)) \ - || defined(__FreeBSD__) || defined(__NetBSD__) \ - || defined(__OpenBSD__) || defined(__linux__) \ - || defined(__EMSCRIPTEN__) -# include -# elif !defined(__SYMBIAN32__) -# include -# endif -# include -# include -# include -# if defined(__hpux) -# include -# endif -# if !defined(__hpux) || defined(__SELECT) -# include -# endif -# include -# include -# include -# include -# if !defined(__SYMBIAN32__) -# include -# endif -# include -# include -# include -# include -# if defined(__sun) -# include -# include -# endif -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_WINDOWS_RUNTIME) -const int max_addr_v4_str_len = 256; -const int max_addr_v6_str_len = 256; -typedef unsigned __int32 u_long_type; -typedef unsigned __int16 u_short_type; -struct in4_addr_type { u_long_type s_addr; }; -struct in4_mreq_type { in4_addr_type imr_multiaddr, imr_interface; }; -struct in6_addr_type { unsigned char s6_addr[16]; }; -struct in6_mreq_type { in6_addr_type ipv6mr_multiaddr; - unsigned long ipv6mr_interface; }; -struct socket_addr_type { int sa_family; }; -struct sockaddr_in4_type { int sin_family; - in4_addr_type sin_addr; u_short_type sin_port; }; -struct sockaddr_in6_type { int sin6_family; - in6_addr_type sin6_addr; u_short_type sin6_port; - u_long_type sin6_flowinfo; u_long_type sin6_scope_id; }; -struct sockaddr_storage_type { int ss_family; - unsigned char ss_bytes[128 - sizeof(int)]; }; -struct addrinfo_type { int ai_flags; - int ai_family, ai_socktype, ai_protocol; - int ai_addrlen; const void* ai_addr; - const char* ai_canonname; addrinfo_type* ai_next; }; -struct linger_type { u_short_type l_onoff, l_linger; }; -typedef u_long_type ioctl_arg_type; -typedef int signed_size_type; -# define ASIO_OS_DEF(c) ASIO_OS_DEF_##c -# define ASIO_OS_DEF_AF_UNSPEC 0 -# define ASIO_OS_DEF_AF_INET 2 -# define ASIO_OS_DEF_AF_INET6 23 -# define ASIO_OS_DEF_SOCK_STREAM 1 -# define ASIO_OS_DEF_SOCK_DGRAM 2 -# define ASIO_OS_DEF_SOCK_RAW 3 -# define ASIO_OS_DEF_SOCK_SEQPACKET 5 -# define ASIO_OS_DEF_IPPROTO_IP 0 -# define ASIO_OS_DEF_IPPROTO_IPV6 41 -# define ASIO_OS_DEF_IPPROTO_TCP 6 -# define ASIO_OS_DEF_IPPROTO_UDP 17 -# define ASIO_OS_DEF_IPPROTO_ICMP 1 -# define ASIO_OS_DEF_IPPROTO_ICMPV6 58 -# define ASIO_OS_DEF_FIONBIO 1 -# define ASIO_OS_DEF_FIONREAD 2 -# define ASIO_OS_DEF_INADDR_ANY 0 -# define ASIO_OS_DEF_MSG_OOB 0x1 -# define ASIO_OS_DEF_MSG_PEEK 0x2 -# define ASIO_OS_DEF_MSG_DONTROUTE 0x4 -# define ASIO_OS_DEF_MSG_EOR 0 // Not supported. -# define ASIO_OS_DEF_SHUT_RD 0x0 -# define ASIO_OS_DEF_SHUT_WR 0x1 -# define ASIO_OS_DEF_SHUT_RDWR 0x2 -# define ASIO_OS_DEF_SOMAXCONN 0x7fffffff -# define ASIO_OS_DEF_SOL_SOCKET 0xffff -# define ASIO_OS_DEF_SO_BROADCAST 0x20 -# define ASIO_OS_DEF_SO_DEBUG 0x1 -# define ASIO_OS_DEF_SO_DONTROUTE 0x10 -# define ASIO_OS_DEF_SO_KEEPALIVE 0x8 -# define ASIO_OS_DEF_SO_LINGER 0x80 -# define ASIO_OS_DEF_SO_OOBINLINE 0x100 -# define ASIO_OS_DEF_SO_SNDBUF 0x1001 -# define ASIO_OS_DEF_SO_RCVBUF 0x1002 -# define ASIO_OS_DEF_SO_SNDLOWAT 0x1003 -# define ASIO_OS_DEF_SO_RCVLOWAT 0x1004 -# define ASIO_OS_DEF_SO_REUSEADDR 0x4 -# define ASIO_OS_DEF_TCP_NODELAY 0x1 -# define ASIO_OS_DEF_IP_MULTICAST_IF 2 -# define ASIO_OS_DEF_IP_MULTICAST_TTL 3 -# define ASIO_OS_DEF_IP_MULTICAST_LOOP 4 -# define ASIO_OS_DEF_IP_ADD_MEMBERSHIP 5 -# define ASIO_OS_DEF_IP_DROP_MEMBERSHIP 6 -# define ASIO_OS_DEF_IP_TTL 7 -# define ASIO_OS_DEF_IPV6_UNICAST_HOPS 4 -# define ASIO_OS_DEF_IPV6_MULTICAST_IF 9 -# define ASIO_OS_DEF_IPV6_MULTICAST_HOPS 10 -# define ASIO_OS_DEF_IPV6_MULTICAST_LOOP 11 -# define ASIO_OS_DEF_IPV6_JOIN_GROUP 12 -# define ASIO_OS_DEF_IPV6_LEAVE_GROUP 13 -# define ASIO_OS_DEF_AI_CANONNAME 0x2 -# define ASIO_OS_DEF_AI_PASSIVE 0x1 -# define ASIO_OS_DEF_AI_NUMERICHOST 0x4 -# define ASIO_OS_DEF_AI_NUMERICSERV 0x8 -# define ASIO_OS_DEF_AI_V4MAPPED 0x800 -# define ASIO_OS_DEF_AI_ALL 0x100 -# define ASIO_OS_DEF_AI_ADDRCONFIG 0x400 -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -typedef SOCKET socket_type; -const SOCKET invalid_socket = INVALID_SOCKET; -const int socket_error_retval = SOCKET_ERROR; -const int max_addr_v4_str_len = 256; -const int max_addr_v6_str_len = 256; -typedef sockaddr socket_addr_type; -typedef in_addr in4_addr_type; -typedef ip_mreq in4_mreq_type; -typedef sockaddr_in sockaddr_in4_type; -# if defined(ASIO_HAS_OLD_WIN_SDK) -typedef in6_addr_emulation in6_addr_type; -typedef ipv6_mreq_emulation in6_mreq_type; -typedef sockaddr_in6_emulation sockaddr_in6_type; -typedef sockaddr_storage_emulation sockaddr_storage_type; -typedef addrinfo_emulation addrinfo_type; -# else -typedef in6_addr in6_addr_type; -typedef ipv6_mreq in6_mreq_type; -typedef sockaddr_in6 sockaddr_in6_type; -typedef sockaddr_storage sockaddr_storage_type; -typedef addrinfo addrinfo_type; -# endif -typedef ::linger linger_type; -typedef unsigned long ioctl_arg_type; -typedef u_long u_long_type; -typedef u_short u_short_type; -typedef int signed_size_type; -# define ASIO_OS_DEF(c) ASIO_OS_DEF_##c -# define ASIO_OS_DEF_AF_UNSPEC AF_UNSPEC -# define ASIO_OS_DEF_AF_INET AF_INET -# define ASIO_OS_DEF_AF_INET6 AF_INET6 -# define ASIO_OS_DEF_SOCK_STREAM SOCK_STREAM -# define ASIO_OS_DEF_SOCK_DGRAM SOCK_DGRAM -# define ASIO_OS_DEF_SOCK_RAW SOCK_RAW -# define ASIO_OS_DEF_SOCK_SEQPACKET SOCK_SEQPACKET -# define ASIO_OS_DEF_IPPROTO_IP IPPROTO_IP -# define ASIO_OS_DEF_IPPROTO_IPV6 IPPROTO_IPV6 -# define ASIO_OS_DEF_IPPROTO_TCP IPPROTO_TCP -# define ASIO_OS_DEF_IPPROTO_UDP IPPROTO_UDP -# define ASIO_OS_DEF_IPPROTO_ICMP IPPROTO_ICMP -# define ASIO_OS_DEF_IPPROTO_ICMPV6 IPPROTO_ICMPV6 -# define ASIO_OS_DEF_FIONBIO FIONBIO -# define ASIO_OS_DEF_FIONREAD FIONREAD -# define ASIO_OS_DEF_INADDR_ANY INADDR_ANY -# define ASIO_OS_DEF_MSG_OOB MSG_OOB -# define ASIO_OS_DEF_MSG_PEEK MSG_PEEK -# define ASIO_OS_DEF_MSG_DONTROUTE MSG_DONTROUTE -# define ASIO_OS_DEF_MSG_EOR 0 // Not supported on Windows. -# define ASIO_OS_DEF_SHUT_RD SD_RECEIVE -# define ASIO_OS_DEF_SHUT_WR SD_SEND -# define ASIO_OS_DEF_SHUT_RDWR SD_BOTH -# define ASIO_OS_DEF_SOMAXCONN SOMAXCONN -# define ASIO_OS_DEF_SOL_SOCKET SOL_SOCKET -# define ASIO_OS_DEF_SO_BROADCAST SO_BROADCAST -# define ASIO_OS_DEF_SO_DEBUG SO_DEBUG -# define ASIO_OS_DEF_SO_DONTROUTE SO_DONTROUTE -# define ASIO_OS_DEF_SO_KEEPALIVE SO_KEEPALIVE -# define ASIO_OS_DEF_SO_LINGER SO_LINGER -# define ASIO_OS_DEF_SO_OOBINLINE SO_OOBINLINE -# define ASIO_OS_DEF_SO_SNDBUF SO_SNDBUF -# define ASIO_OS_DEF_SO_RCVBUF SO_RCVBUF -# define ASIO_OS_DEF_SO_SNDLOWAT SO_SNDLOWAT -# define ASIO_OS_DEF_SO_RCVLOWAT SO_RCVLOWAT -# define ASIO_OS_DEF_SO_REUSEADDR SO_REUSEADDR -# define ASIO_OS_DEF_TCP_NODELAY TCP_NODELAY -# define ASIO_OS_DEF_IP_MULTICAST_IF IP_MULTICAST_IF -# define ASIO_OS_DEF_IP_MULTICAST_TTL IP_MULTICAST_TTL -# define ASIO_OS_DEF_IP_MULTICAST_LOOP IP_MULTICAST_LOOP -# define ASIO_OS_DEF_IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP -# define ASIO_OS_DEF_IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP -# define ASIO_OS_DEF_IP_TTL IP_TTL -# define ASIO_OS_DEF_IPV6_UNICAST_HOPS IPV6_UNICAST_HOPS -# define ASIO_OS_DEF_IPV6_MULTICAST_IF IPV6_MULTICAST_IF -# define ASIO_OS_DEF_IPV6_MULTICAST_HOPS IPV6_MULTICAST_HOPS -# define ASIO_OS_DEF_IPV6_MULTICAST_LOOP IPV6_MULTICAST_LOOP -# define ASIO_OS_DEF_IPV6_JOIN_GROUP IPV6_JOIN_GROUP -# define ASIO_OS_DEF_IPV6_LEAVE_GROUP IPV6_LEAVE_GROUP -# define ASIO_OS_DEF_AI_CANONNAME AI_CANONNAME -# define ASIO_OS_DEF_AI_PASSIVE AI_PASSIVE -# define ASIO_OS_DEF_AI_NUMERICHOST AI_NUMERICHOST -# if defined(AI_NUMERICSERV) -# define ASIO_OS_DEF_AI_NUMERICSERV AI_NUMERICSERV -# else -# define ASIO_OS_DEF_AI_NUMERICSERV 0 -# endif -# if defined(AI_V4MAPPED) -# define ASIO_OS_DEF_AI_V4MAPPED AI_V4MAPPED -# else -# define ASIO_OS_DEF_AI_V4MAPPED 0 -# endif -# if defined(AI_ALL) -# define ASIO_OS_DEF_AI_ALL AI_ALL -# else -# define ASIO_OS_DEF_AI_ALL 0 -# endif -# if defined(AI_ADDRCONFIG) -# define ASIO_OS_DEF_AI_ADDRCONFIG AI_ADDRCONFIG -# else -# define ASIO_OS_DEF_AI_ADDRCONFIG 0 -# endif -# if defined (_WIN32_WINNT) -const int max_iov_len = 64; -# else -const int max_iov_len = 16; -# endif -#else -typedef int socket_type; -const int invalid_socket = -1; -const int socket_error_retval = -1; -const int max_addr_v4_str_len = INET_ADDRSTRLEN; -#if defined(INET6_ADDRSTRLEN) -const int max_addr_v6_str_len = INET6_ADDRSTRLEN + 1 + IF_NAMESIZE; -#else // defined(INET6_ADDRSTRLEN) -const int max_addr_v6_str_len = 256; -#endif // defined(INET6_ADDRSTRLEN) -typedef sockaddr socket_addr_type; -typedef in_addr in4_addr_type; -# if defined(__hpux) -// HP-UX doesn't provide ip_mreq when _XOPEN_SOURCE_EXTENDED is defined. -struct in4_mreq_type -{ - struct in_addr imr_multiaddr; - struct in_addr imr_interface; -}; -# else -typedef ip_mreq in4_mreq_type; -# endif -typedef sockaddr_in sockaddr_in4_type; -typedef in6_addr in6_addr_type; -typedef ipv6_mreq in6_mreq_type; -typedef sockaddr_in6 sockaddr_in6_type; -typedef sockaddr_storage sockaddr_storage_type; -typedef sockaddr_un sockaddr_un_type; -typedef addrinfo addrinfo_type; -typedef ::linger linger_type; -typedef int ioctl_arg_type; -typedef uint32_t u_long_type; -typedef uint16_t u_short_type; -#if defined(ASIO_HAS_SSIZE_T) -typedef ssize_t signed_size_type; -#else // defined(ASIO_HAS_SSIZE_T) -typedef int signed_size_type; -#endif // defined(ASIO_HAS_SSIZE_T) -# define ASIO_OS_DEF(c) ASIO_OS_DEF_##c -# define ASIO_OS_DEF_AF_UNSPEC AF_UNSPEC -# define ASIO_OS_DEF_AF_INET AF_INET -# define ASIO_OS_DEF_AF_INET6 AF_INET6 -# define ASIO_OS_DEF_SOCK_STREAM SOCK_STREAM -# define ASIO_OS_DEF_SOCK_DGRAM SOCK_DGRAM -# define ASIO_OS_DEF_SOCK_RAW SOCK_RAW -# define ASIO_OS_DEF_SOCK_SEQPACKET SOCK_SEQPACKET -# define ASIO_OS_DEF_IPPROTO_IP IPPROTO_IP -# define ASIO_OS_DEF_IPPROTO_IPV6 IPPROTO_IPV6 -# define ASIO_OS_DEF_IPPROTO_TCP IPPROTO_TCP -# define ASIO_OS_DEF_IPPROTO_UDP IPPROTO_UDP -# define ASIO_OS_DEF_IPPROTO_ICMP IPPROTO_ICMP -# define ASIO_OS_DEF_IPPROTO_ICMPV6 IPPROTO_ICMPV6 -# define ASIO_OS_DEF_FIONBIO FIONBIO -# define ASIO_OS_DEF_FIONREAD FIONREAD -# define ASIO_OS_DEF_INADDR_ANY INADDR_ANY -# define ASIO_OS_DEF_MSG_OOB MSG_OOB -# define ASIO_OS_DEF_MSG_PEEK MSG_PEEK -# define ASIO_OS_DEF_MSG_DONTROUTE MSG_DONTROUTE -# define ASIO_OS_DEF_MSG_EOR MSG_EOR -# define ASIO_OS_DEF_SHUT_RD SHUT_RD -# define ASIO_OS_DEF_SHUT_WR SHUT_WR -# define ASIO_OS_DEF_SHUT_RDWR SHUT_RDWR -# define ASIO_OS_DEF_SOMAXCONN SOMAXCONN -# define ASIO_OS_DEF_SOL_SOCKET SOL_SOCKET -# define ASIO_OS_DEF_SO_BROADCAST SO_BROADCAST -# define ASIO_OS_DEF_SO_DEBUG SO_DEBUG -# define ASIO_OS_DEF_SO_DONTROUTE SO_DONTROUTE -# define ASIO_OS_DEF_SO_KEEPALIVE SO_KEEPALIVE -# define ASIO_OS_DEF_SO_LINGER SO_LINGER -# define ASIO_OS_DEF_SO_OOBINLINE SO_OOBINLINE -# define ASIO_OS_DEF_SO_SNDBUF SO_SNDBUF -# define ASIO_OS_DEF_SO_RCVBUF SO_RCVBUF -# define ASIO_OS_DEF_SO_SNDLOWAT SO_SNDLOWAT -# define ASIO_OS_DEF_SO_RCVLOWAT SO_RCVLOWAT -# define ASIO_OS_DEF_SO_REUSEADDR SO_REUSEADDR -# define ASIO_OS_DEF_TCP_NODELAY TCP_NODELAY -# define ASIO_OS_DEF_IP_MULTICAST_IF IP_MULTICAST_IF -# define ASIO_OS_DEF_IP_MULTICAST_TTL IP_MULTICAST_TTL -# define ASIO_OS_DEF_IP_MULTICAST_LOOP IP_MULTICAST_LOOP -# define ASIO_OS_DEF_IP_ADD_MEMBERSHIP IP_ADD_MEMBERSHIP -# define ASIO_OS_DEF_IP_DROP_MEMBERSHIP IP_DROP_MEMBERSHIP -# define ASIO_OS_DEF_IP_TTL IP_TTL -# define ASIO_OS_DEF_IPV6_UNICAST_HOPS IPV6_UNICAST_HOPS -# define ASIO_OS_DEF_IPV6_MULTICAST_IF IPV6_MULTICAST_IF -# define ASIO_OS_DEF_IPV6_MULTICAST_HOPS IPV6_MULTICAST_HOPS -# define ASIO_OS_DEF_IPV6_MULTICAST_LOOP IPV6_MULTICAST_LOOP -# define ASIO_OS_DEF_IPV6_JOIN_GROUP IPV6_JOIN_GROUP -# define ASIO_OS_DEF_IPV6_LEAVE_GROUP IPV6_LEAVE_GROUP -# define ASIO_OS_DEF_AI_CANONNAME AI_CANONNAME -# define ASIO_OS_DEF_AI_PASSIVE AI_PASSIVE -# define ASIO_OS_DEF_AI_NUMERICHOST AI_NUMERICHOST -# if defined(AI_NUMERICSERV) -# define ASIO_OS_DEF_AI_NUMERICSERV AI_NUMERICSERV -# else -# define ASIO_OS_DEF_AI_NUMERICSERV 0 -# endif -// Note: QNX Neutrino 6.3 defines AI_V4MAPPED, AI_ALL and AI_ADDRCONFIG but -// does not implement them. Therefore they are specifically excluded here. -# if defined(AI_V4MAPPED) && !defined(__QNXNTO__) -# define ASIO_OS_DEF_AI_V4MAPPED AI_V4MAPPED -# else -# define ASIO_OS_DEF_AI_V4MAPPED 0 -# endif -# if defined(AI_ALL) && !defined(__QNXNTO__) -# define ASIO_OS_DEF_AI_ALL AI_ALL -# else -# define ASIO_OS_DEF_AI_ALL 0 -# endif -# if defined(AI_ADDRCONFIG) && !defined(__QNXNTO__) -# define ASIO_OS_DEF_AI_ADDRCONFIG AI_ADDRCONFIG -# else -# define ASIO_OS_DEF_AI_ADDRCONFIG 0 -# endif -# if defined(IOV_MAX) -const int max_iov_len = IOV_MAX; -# else -// POSIX platforms are not required to define IOV_MAX. -const int max_iov_len = 16; -# endif -#endif -const int custom_socket_option_level = 0xA5100000; -const int enable_connection_aborted_option = 1; -const int always_fail_option = 2; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_SOCKET_TYPES_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/solaris_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/solaris_fenced_block.hpp deleted file mode 100644 index d48f6a3..0000000 --- a/Sources/Vendor/asio/include/asio/detail/solaris_fenced_block.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// detail/solaris_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_SOLARIS_FENCED_BLOCK_HPP -#define ASIO_DETAIL_SOLARIS_FENCED_BLOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#if defined(__sun) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class solaris_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit solaris_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit solaris_fenced_block(full_t) - { - membar_consumer(); - } - - // Destructor. - ~solaris_fenced_block() - { - membar_producer(); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(__sun) - -#endif // ASIO_DETAIL_SOLARIS_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/static_mutex.hpp deleted file mode 100644 index 8f2bc02..0000000 --- a/Sources/Vendor/asio/include/asio/detail/static_mutex.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// detail/static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STATIC_MUTEX_HPP -#define ASIO_DETAIL_STATIC_MUTEX_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_THREADS) -# include "asio/detail/null_static_mutex.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_static_mutex.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_static_mutex.hpp" -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -# include "asio/detail/std_static_mutex.hpp" -#else -# error Only Windows and POSIX are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef null_static_mutex static_mutex; -# define ASIO_STATIC_MUTEX_INIT ASIO_NULL_STATIC_MUTEX_INIT -#elif defined(ASIO_WINDOWS) -typedef win_static_mutex static_mutex; -# define ASIO_STATIC_MUTEX_INIT ASIO_WIN_STATIC_MUTEX_INIT -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_static_mutex static_mutex; -# define ASIO_STATIC_MUTEX_INIT ASIO_POSIX_STATIC_MUTEX_INIT -#elif defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) -typedef std_static_mutex static_mutex; -# define ASIO_STATIC_MUTEX_INIT ASIO_STD_STATIC_MUTEX_INIT -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_event.hpp b/Sources/Vendor/asio/include/asio/detail/std_event.hpp deleted file mode 100644 index 5639ecd..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_event.hpp +++ /dev/null @@ -1,176 +0,0 @@ -// -// detail/std_event.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STD_EVENT_HPP -#define ASIO_DETAIL_STD_EVENT_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_MUTEX_AND_CONDVAR) - -#include -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_event - : private noncopyable -{ -public: - // Constructor. - std_event() - : state_(0) - { - } - - // Destructor. - ~std_event() - { - } - - // Signal the event. (Retained for backward compatibility.) - template - void signal(Lock& lock) - { - this->signal_all(lock); - } - - // Signal all waiters. - template - void signal_all(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ |= 1; - cond_.notify_all(); - } - - // Unlock the mutex and signal one waiter. - template - void unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - bool have_waiters = (state_ > 1); - lock.unlock(); - if (have_waiters) - cond_.notify_one(); - } - - // If there's a waiter, unlock the mutex and signal it. - template - bool maybe_unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - if (state_ > 1) - { - lock.unlock(); - cond_.notify_one(); - return true; - } - return false; - } - - // Reset the event. - template - void clear(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ &= ~std::size_t(1); - } - - // Wait for the event to become signalled. - template - void wait(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - unique_lock_adapter u_lock(lock); - while ((state_ & 1) == 0) - { - waiter w(state_); - cond_.wait(u_lock.unique_lock_); - } - } - - // Timed wait for the event to become signalled. - template - bool wait_for_usec(Lock& lock, long usec) - { - ASIO_ASSERT(lock.locked()); - unique_lock_adapter u_lock(lock); - if ((state_ & 1) == 0) - { - waiter w(state_); - cond_.wait_for(u_lock.unique_lock_, std::chrono::microseconds(usec)); - } - return (state_ & 1) != 0; - } - -private: - // Helper class to temporarily adapt a scoped_lock into a unique_lock so that - // it can be passed to std::condition_variable::wait(). - struct unique_lock_adapter - { - template - explicit unique_lock_adapter(Lock& lock) - : unique_lock_(lock.mutex().mutex_, std::adopt_lock) - { - } - - ~unique_lock_adapter() - { - unique_lock_.release(); - } - - std::unique_lock unique_lock_; - }; - - // Helper to increment and decrement the state to track outstanding waiters. - class waiter - { - public: - explicit waiter(std::size_t& state) - : state_(state) - { - state_ += 2; - } - - ~waiter() - { - state_ -= 2; - } - - private: - std::size_t& state_; - }; - - std::condition_variable cond_; - std::size_t state_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#endif // ASIO_DETAIL_STD_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/std_fenced_block.hpp deleted file mode 100644 index 0d8ade0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_fenced_block.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// detail/std_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STD_FENCED_BLOCK_HPP -#define ASIO_DETAIL_STD_FENCED_BLOCK_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_ATOMIC) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit std_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit std_fenced_block(full_t) - { - std::atomic_thread_fence(std::memory_order_acquire); - } - - // Destructor. - ~std_fenced_block() - { - std::atomic_thread_fence(std::memory_order_release); - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_ATOMIC) - -#endif // ASIO_DETAIL_STD_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_global.hpp b/Sources/Vendor/asio/include/asio/detail/std_global.hpp deleted file mode 100644 index 0c5173e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_global.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// detail/std_global.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STD_GLOBAL_HPP -#define ASIO_DETAIL_STD_GLOBAL_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_CALL_ONCE) - -#include -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct std_global_impl -{ - // Helper function to perform initialisation. - static void do_init() - { - instance_.ptr_ = new T; - } - - // Destructor automatically cleans up the global. - ~std_global_impl() - { - delete ptr_; - } - - static std::once_flag init_once_; - static std_global_impl instance_; - T* ptr_; -}; - -template -std::once_flag std_global_impl::init_once_; - -template -std_global_impl std_global_impl::instance_; - -template -T& std_global() -{ - std::call_once(std_global_impl::init_once_, &std_global_impl::do_init); - return *std_global_impl::instance_.ptr_; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_CALL_ONCE) - -#endif // ASIO_DETAIL_STD_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/std_mutex.hpp deleted file mode 100644 index 159049e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_mutex.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// -// detail/std_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STD_MUTEX_HPP -#define ASIO_DETAIL_STD_MUTEX_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_MUTEX_AND_CONDVAR) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_event; - -class std_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - std_mutex() - { - } - - // Destructor. - ~std_mutex() - { - } - - // Lock the mutex. - void lock() - { - mutex_.lock(); - } - - // Unlock the mutex. - void unlock() - { - mutex_.unlock(); - } - -private: - friend class std_event; - std::mutex mutex_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#endif // ASIO_DETAIL_STD_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/std_static_mutex.hpp deleted file mode 100644 index e9c9dc5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_static_mutex.hpp +++ /dev/null @@ -1,81 +0,0 @@ -// -// detail/std_static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STD_STATIC_MUTEX_HPP -#define ASIO_DETAIL_STD_STATIC_MUTEX_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_MUTEX_AND_CONDVAR) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_event; - -class std_static_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - std_static_mutex(int) - { - } - - // Destructor. - ~std_static_mutex() - { - } - - // Initialise the mutex. - void init() - { - // Nothing to do. - } - - // Lock the mutex. - void lock() - { - mutex_.lock(); - } - - // Unlock the mutex. - void unlock() - { - mutex_.unlock(); - } - -private: - friend class std_event; - std::mutex mutex_; -}; - -#define ASIO_STD_STATIC_MUTEX_INIT 0 - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_MUTEX_AND_CONDVAR) - -#endif // ASIO_DETAIL_STD_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/std_thread.hpp b/Sources/Vendor/asio/include/asio/detail/std_thread.hpp deleted file mode 100644 index a240308..0000000 --- a/Sources/Vendor/asio/include/asio/detail/std_thread.hpp +++ /dev/null @@ -1,71 +0,0 @@ -// -// detail/std_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STD_THREAD_HPP -#define ASIO_DETAIL_STD_THREAD_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_THREAD) - -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class std_thread - : private noncopyable -{ -public: - // Constructor. - template - std_thread(Function f, unsigned int = 0) - : thread_(f) - { - } - - // Destructor. - ~std_thread() - { - join(); - } - - // Wait for the thread to exit. - void join() - { - if (thread_.joinable()) - thread_.join(); - } - - // Get number of CPUs. - static std::size_t hardware_concurrency() - { - return std::thread::hardware_concurrency(); - } - -private: - std::thread thread_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_THREAD) - -#endif // ASIO_DETAIL_STD_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/strand_executor_service.hpp b/Sources/Vendor/asio/include/asio/detail/strand_executor_service.hpp deleted file mode 100644 index 67e8427..0000000 --- a/Sources/Vendor/asio/include/asio/detail/strand_executor_service.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// detail/strand_executor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STRAND_EXECUTOR_SERVICE_HPP -#define ASIO_DETAIL_STRAND_EXECUTOR_SERVICE_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/atomic_count.hpp" -#include "asio/detail/executor_op.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/scheduler_operation.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Default service implementation for a strand. -class strand_executor_service - : public execution_context_service_base -{ -public: - // The underlying implementation of a strand. - class strand_impl - { - public: - ASIO_DECL ~strand_impl(); - - private: - friend class strand_executor_service; - - // Mutex to protect access to internal data. - mutex* mutex_; - - // Indicates whether the strand is currently "locked" by a handler. This - // means that there is a handler upcall in progress, or that the strand - // itself has been scheduled in order to invoke some pending handlers. - bool locked_; - - // Indicates that the strand has been shut down and will accept no further - // handlers. - bool shutdown_; - - // The handlers that are waiting on the strand but should not be run until - // after the next time the strand is scheduled. This queue must only be - // modified while the mutex is locked. - op_queue waiting_queue_; - - // The handlers that are ready to be run. Logically speaking, these are the - // handlers that hold the strand's lock. The ready queue is only modified - // from within the strand and so may be accessed without locking the mutex. - op_queue ready_queue_; - - // Pointers to adjacent handle implementations in linked list. - strand_impl* next_; - strand_impl* prev_; - - // The strand service in where the implementation is held. - strand_executor_service* service_; - }; - - typedef shared_ptr implementation_type; - - // Construct a new strand service for the specified context. - ASIO_DECL explicit strand_executor_service(execution_context& context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Create a new strand_executor implementation. - ASIO_DECL implementation_type create_implementation(); - - // Request invocation of the given function. - template - static void dispatch(const implementation_type& impl, Executor& ex, - ASIO_MOVE_ARG(Function) function, const Allocator& a); - - // Request invocation of the given function and return immediately. - template - static void post(const implementation_type& impl, Executor& ex, - ASIO_MOVE_ARG(Function) function, const Allocator& a); - - // Request invocation of the given function and return immediately. - template - static void defer(const implementation_type& impl, Executor& ex, - ASIO_MOVE_ARG(Function) function, const Allocator& a); - - // Determine whether the strand is running in the current thread. - ASIO_DECL static bool running_in_this_thread( - const implementation_type& impl); - -private: - friend class strand_impl; - template class invoker; - - // Adds a function to the strand. Returns true if it acquires the lock. - ASIO_DECL static bool enqueue(const implementation_type& impl, - scheduler_operation* op); - - // Mutex to protect access to the service-wide state. - mutex mutex_; - - // Number of mutexes shared between all strand objects. - enum { num_mutexes = 193 }; - - // Pool of mutexes. - scoped_ptr mutexes_[num_mutexes]; - - // Extra value used when hashing to prevent recycled memory locations from - // getting the same mutex. - std::size_t salt_; - - // The head of a linked list of all implementations. - strand_impl* impl_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/strand_executor_service.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/strand_executor_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_STRAND_EXECUTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/strand_service.hpp b/Sources/Vendor/asio/include/asio/detail/strand_service.hpp deleted file mode 100644 index edc14a0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/strand_service.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// detail/strand_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STRAND_SERVICE_HPP -#define ASIO_DETAIL_STRAND_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/scoped_ptr.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Default service implementation for a strand. -class strand_service - : public asio::detail::service_base -{ -private: - // Helper class to re-post the strand on exit. - struct on_do_complete_exit; - - // Helper class to re-post the strand on exit. - struct on_dispatch_exit; - -public: - - // The underlying implementation of a strand. - class strand_impl - : public operation - { - public: - strand_impl(); - - private: - // Only this service will have access to the internal values. - friend class strand_service; - friend struct on_do_complete_exit; - friend struct on_dispatch_exit; - - // Mutex to protect access to internal data. - asio::detail::mutex mutex_; - - // Indicates whether the strand is currently "locked" by a handler. This - // means that there is a handler upcall in progress, or that the strand - // itself has been scheduled in order to invoke some pending handlers. - bool locked_; - - // The handlers that are waiting on the strand but should not be run until - // after the next time the strand is scheduled. This queue must only be - // modified while the mutex is locked. - op_queue waiting_queue_; - - // The handlers that are ready to be run. Logically speaking, these are the - // handlers that hold the strand's lock. The ready queue is only modified - // from within the strand and so may be accessed without locking the mutex. - op_queue ready_queue_; - }; - - typedef strand_impl* implementation_type; - - // Construct a new strand service for the specified io_context. - ASIO_DECL explicit strand_service(asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new strand implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Request the io_context to invoke the given handler. - template - void dispatch(implementation_type& impl, Handler& handler); - - // Request the io_context to invoke the given handler and return immediately. - template - void post(implementation_type& impl, Handler& handler); - - // Determine whether the strand is running in the current thread. - ASIO_DECL bool running_in_this_thread( - const implementation_type& impl) const; - -private: - // Helper function to dispatch a handler. Returns true if the handler should - // be dispatched immediately. - ASIO_DECL bool do_dispatch(implementation_type& impl, operation* op); - - // Helper fiunction to post a handler. - ASIO_DECL void do_post(implementation_type& impl, - operation* op, bool is_continuation); - - ASIO_DECL static void do_complete(void* owner, - operation* base, const asio::error_code& ec, - std::size_t bytes_transferred); - - // The io_context implementation used to post completions. - io_context_impl& io_context_; - - // Mutex to protect access to the array of implementations. - asio::detail::mutex mutex_; - - // Number of implementations shared between all strand objects. -#if defined(ASIO_STRAND_IMPLEMENTATIONS) - enum { num_implementations = ASIO_STRAND_IMPLEMENTATIONS }; -#else // defined(ASIO_STRAND_IMPLEMENTATIONS) - enum { num_implementations = 193 }; -#endif // defined(ASIO_STRAND_IMPLEMENTATIONS) - - // Pool of implementations. - scoped_ptr implementations_[num_implementations]; - - // Extra value used when hashing to prevent recycled memory locations from - // getting the same strand implementation. - std::size_t salt_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/strand_service.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/strand_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_STRAND_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/string_view.hpp b/Sources/Vendor/asio/include/asio/detail/string_view.hpp deleted file mode 100644 index f09cebc..0000000 --- a/Sources/Vendor/asio/include/asio/detail/string_view.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// detail/string_view.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_STRING_VIEW_HPP -#define ASIO_DETAIL_STRING_VIEW_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_STRING_VIEW) - -#if defined(ASIO_HAS_STD_STRING_VIEW) -# include -#elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# include -#else // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -# error ASIO_HAS_STRING_VIEW is set but no string_view is available -#endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) - -namespace asio { - -#if defined(ASIO_HAS_STD_STRING_VIEW) -using std::basic_string_view; -using std::string_view; -#elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) -using std::experimental::basic_string_view; -using std::experimental::string_view; -#endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) - -} // namespace asio - -# define ASIO_STRING_VIEW_PARAM asio::string_view -#else // defined(ASIO_HAS_STRING_VIEW) -# define ASIO_STRING_VIEW_PARAM const std::string& -#endif // defined(ASIO_HAS_STRING_VIEW) - -#endif // ASIO_DETAIL_STRING_VIEW_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/thread.hpp b/Sources/Vendor/asio/include/asio/detail/thread.hpp deleted file mode 100644 index ea556db..0000000 --- a/Sources/Vendor/asio/include/asio/detail/thread.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// detail/thread.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_THREAD_HPP -#define ASIO_DETAIL_THREAD_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_THREADS) -# include "asio/detail/null_thread.hpp" -#elif defined(ASIO_WINDOWS) -# if defined(UNDER_CE) -# include "asio/detail/wince_thread.hpp" -# elif defined(ASIO_WINDOWS_APP) -# include "asio/detail/winapp_thread.hpp" -# else -# include "asio/detail/win_thread.hpp" -# endif -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_thread.hpp" -#elif defined(ASIO_HAS_STD_THREAD) -# include "asio/detail/std_thread.hpp" -#else -# error Only Windows, POSIX and std::thread are supported! -#endif - -namespace asio { -namespace detail { - -#if !defined(ASIO_HAS_THREADS) -typedef null_thread thread; -#elif defined(ASIO_WINDOWS) -# if defined(UNDER_CE) -typedef wince_thread thread; -# elif defined(ASIO_WINDOWS_APP) -typedef winapp_thread thread; -# else -typedef win_thread thread; -# endif -#elif defined(ASIO_HAS_PTHREADS) -typedef posix_thread thread; -#elif defined(ASIO_HAS_STD_THREAD) -typedef std_thread thread; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/thread_context.hpp b/Sources/Vendor/asio/include/asio/detail/thread_context.hpp deleted file mode 100644 index 88b4f31..0000000 --- a/Sources/Vendor/asio/include/asio/detail/thread_context.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// detail/thread_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_THREAD_CONTEXT_HPP -#define ASIO_DETAIL_THREAD_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include -#include "asio/detail/call_stack.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class thread_info_base; - -// Base class for things that manage threads (scheduler, win_iocp_io_context). -class thread_context -{ -public: - // Per-thread call stack to track the state of each thread in the context. - typedef call_stack thread_call_stack; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_THREAD_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/thread_group.hpp b/Sources/Vendor/asio/include/asio/detail/thread_group.hpp deleted file mode 100644 index 1e400b0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/thread_group.hpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// detail/thread_group.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_THREAD_GROUP_HPP -#define ASIO_DETAIL_THREAD_GROUP_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/scoped_ptr.hpp" -#include "asio/detail/thread.hpp" - -namespace asio { -namespace detail { - -class thread_group -{ -public: - // Constructor initialises an empty thread group. - thread_group() - : first_(0) - { - } - - // Destructor joins any remaining threads in the group. - ~thread_group() - { - join(); - } - - // Create a new thread in the group. - template - void create_thread(Function f) - { - first_ = new item(f, first_); - } - - // Create new threads in the group. - template - void create_threads(Function f, std::size_t num_threads) - { - for (std::size_t i = 0; i < num_threads; ++i) - create_thread(f); - } - - // Wait for all threads in the group to exit. - void join() - { - while (first_) - { - first_->thread_.join(); - item* tmp = first_; - first_ = first_->next_; - delete tmp; - } - } - -private: - // Structure used to track a single thread in the group. - struct item - { - template - explicit item(Function f, item* next) - : thread_(f), - next_(next) - { - } - - asio::detail::thread thread_; - item* next_; - }; - - // The first thread in the group. - item* first_; -}; - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_THREAD_GROUP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/thread_info_base.hpp b/Sources/Vendor/asio/include/asio/detail/thread_info_base.hpp deleted file mode 100644 index 1b22207..0000000 --- a/Sources/Vendor/asio/include/asio/detail/thread_info_base.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// detail/thread_info_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_THREAD_INFO_BASE_HPP -#define ASIO_DETAIL_THREAD_INFO_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class thread_info_base - : private noncopyable -{ -public: - struct default_tag - { - enum { mem_index = 0 }; - }; - - struct awaitee_tag - { - enum { mem_index = 1 }; - }; - - thread_info_base() - { - for (int i = 0; i < max_mem_index; ++i) - reusable_memory_[i] = 0; - } - - ~thread_info_base() - { - for (int i = 0; i < max_mem_index; ++i) - if (reusable_memory_[i]) - ::operator delete(reusable_memory_[i]); - } - - static void* allocate(thread_info_base* this_thread, std::size_t size) - { - return allocate(default_tag(), this_thread, size); - } - - static void deallocate(thread_info_base* this_thread, - void* pointer, std::size_t size) - { - deallocate(default_tag(), this_thread, pointer, size); - } - - template - static void* allocate(Purpose, thread_info_base* this_thread, - std::size_t size) - { - std::size_t chunks = (size + chunk_size - 1) / chunk_size; - - if (this_thread && this_thread->reusable_memory_[Purpose::mem_index]) - { - void* const pointer = this_thread->reusable_memory_[Purpose::mem_index]; - this_thread->reusable_memory_[Purpose::mem_index] = 0; - - unsigned char* const mem = static_cast(pointer); - if (static_cast(mem[0]) >= chunks) - { - mem[size] = mem[0]; - return pointer; - } - - ::operator delete(pointer); - } - - void* const pointer = ::operator new(chunks * chunk_size + 1); - unsigned char* const mem = static_cast(pointer); - mem[size] = (chunks <= UCHAR_MAX) ? static_cast(chunks) : 0; - return pointer; - } - - template - static void deallocate(Purpose, thread_info_base* this_thread, - void* pointer, std::size_t size) - { - if (size <= chunk_size * UCHAR_MAX) - { - if (this_thread && this_thread->reusable_memory_[Purpose::mem_index] == 0) - { - unsigned char* const mem = static_cast(pointer); - mem[0] = mem[size]; - this_thread->reusable_memory_[Purpose::mem_index] = pointer; - return; - } - } - - ::operator delete(pointer); - } - -private: - enum { chunk_size = 4 }; - enum { max_mem_index = 2 }; - void* reusable_memory_[max_mem_index]; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_THREAD_INFO_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/throw_error.hpp b/Sources/Vendor/asio/include/asio/detail/throw_error.hpp deleted file mode 100644 index 5dd8785..0000000 --- a/Sources/Vendor/asio/include/asio/detail/throw_error.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// detail/throw_error.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_THROW_ERROR_HPP -#define ASIO_DETAIL_THROW_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -ASIO_DECL void do_throw_error(const asio::error_code& err); - -ASIO_DECL void do_throw_error(const asio::error_code& err, - const char* location); - -inline void throw_error(const asio::error_code& err) -{ - if (err) - do_throw_error(err); -} - -inline void throw_error(const asio::error_code& err, - const char* location) -{ - if (err) - do_throw_error(err, location); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/throw_error.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_THROW_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/throw_exception.hpp b/Sources/Vendor/asio/include/asio/detail/throw_exception.hpp deleted file mode 100644 index f9f7bfb..0000000 --- a/Sources/Vendor/asio/include/asio/detail/throw_exception.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// -// detail/throw_exception.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_THROW_EXCEPTION_HPP -#define ASIO_DETAIL_THROW_EXCEPTION_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_BOOST_THROW_EXCEPTION) -# include -#endif // defined(ASIO_BOOST_THROW_EXCEPTION) - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_BOOST_THROW_EXCEPTION) -using boost::throw_exception; -#else // defined(ASIO_HAS_BOOST_THROW_EXCEPTION) - -// Declare the throw_exception function for all targets. -template -void throw_exception(const Exception& e); - -// Only define the throw_exception function when exceptions are enabled. -// Otherwise, it is up to the application to provide a definition of this -// function. -# if !defined(ASIO_NO_EXCEPTIONS) -template -void throw_exception(const Exception& e) -{ - throw e; -} -# endif // !defined(ASIO_NO_EXCEPTIONS) - -#endif // defined(ASIO_HAS_BOOST_THROW_EXCEPTION) - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_THROW_EXCEPTION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_queue.hpp b/Sources/Vendor/asio/include/asio/detail/timer_queue.hpp deleted file mode 100644 index de37000..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_queue.hpp +++ /dev/null @@ -1,360 +0,0 @@ -// -// detail/timer_queue.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_TIMER_QUEUE_HPP -#define ASIO_DETAIL_TIMER_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/detail/cstdint.hpp" -#include "asio/detail/date_time_fwd.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class timer_queue - : public timer_queue_base -{ -public: - // The time type. - typedef typename Time_Traits::time_type time_type; - - // The duration type. - typedef typename Time_Traits::duration_type duration_type; - - // Per-timer data. - class per_timer_data - { - public: - per_timer_data() : - heap_index_((std::numeric_limits::max)()), - next_(0), prev_(0) - { - } - - private: - friend class timer_queue; - - // The operations waiting on the timer. - op_queue op_queue_; - - // The index of the timer in the heap. - std::size_t heap_index_; - - // Pointers to adjacent timers in a linked list. - per_timer_data* next_; - per_timer_data* prev_; - }; - - // Constructor. - timer_queue() - : timers_(), - heap_() - { - } - - // Add a new timer to the queue. Returns true if this is the timer that is - // earliest in the queue, in which case the reactor's event demultiplexing - // function call may need to be interrupted and restarted. - bool enqueue_timer(const time_type& time, per_timer_data& timer, wait_op* op) - { - // Enqueue the timer object. - if (timer.prev_ == 0 && &timer != timers_) - { - if (this->is_positive_infinity(time)) - { - // No heap entry is required for timers that never expire. - timer.heap_index_ = (std::numeric_limits::max)(); - } - else - { - // Put the new timer at the correct position in the heap. This is done - // first since push_back() can throw due to allocation failure. - timer.heap_index_ = heap_.size(); - heap_entry entry = { time, &timer }; - heap_.push_back(entry); - up_heap(heap_.size() - 1); - } - - // Insert the new timer into the linked list of active timers. - timer.next_ = timers_; - timer.prev_ = 0; - if (timers_) - timers_->prev_ = &timer; - timers_ = &timer; - } - - // Enqueue the individual timer operation. - timer.op_queue_.push(op); - - // Interrupt reactor only if newly added timer is first to expire. - return timer.heap_index_ == 0 && timer.op_queue_.front() == op; - } - - // Whether there are no timers in the queue. - virtual bool empty() const - { - return timers_ == 0; - } - - // Get the time for the timer that is earliest in the queue. - virtual long wait_duration_msec(long max_duration) const - { - if (heap_.empty()) - return max_duration; - - return this->to_msec( - Time_Traits::to_posix_duration( - Time_Traits::subtract(heap_[0].time_, Time_Traits::now())), - max_duration); - } - - // Get the time for the timer that is earliest in the queue. - virtual long wait_duration_usec(long max_duration) const - { - if (heap_.empty()) - return max_duration; - - return this->to_usec( - Time_Traits::to_posix_duration( - Time_Traits::subtract(heap_[0].time_, Time_Traits::now())), - max_duration); - } - - // Dequeue all timers not later than the current time. - virtual void get_ready_timers(op_queue& ops) - { - if (!heap_.empty()) - { - const time_type now = Time_Traits::now(); - while (!heap_.empty() && !Time_Traits::less_than(now, heap_[0].time_)) - { - per_timer_data* timer = heap_[0].timer_; - ops.push(timer->op_queue_); - remove_timer(*timer); - } - } - } - - // Dequeue all timers. - virtual void get_all_timers(op_queue& ops) - { - while (timers_) - { - per_timer_data* timer = timers_; - timers_ = timers_->next_; - ops.push(timer->op_queue_); - timer->next_ = 0; - timer->prev_ = 0; - } - - heap_.clear(); - } - - // Cancel and dequeue operations for the given timer. - std::size_t cancel_timer(per_timer_data& timer, op_queue& ops, - std::size_t max_cancelled = (std::numeric_limits::max)()) - { - std::size_t num_cancelled = 0; - if (timer.prev_ != 0 || &timer == timers_) - { - while (wait_op* op = (num_cancelled != max_cancelled) - ? timer.op_queue_.front() : 0) - { - op->ec_ = asio::error::operation_aborted; - timer.op_queue_.pop(); - ops.push(op); - ++num_cancelled; - } - if (timer.op_queue_.empty()) - remove_timer(timer); - } - return num_cancelled; - } - - // Move operations from one timer to another, empty timer. - void move_timer(per_timer_data& target, per_timer_data& source) - { - target.op_queue_.push(source.op_queue_); - - target.heap_index_ = source.heap_index_; - source.heap_index_ = (std::numeric_limits::max)(); - - if (target.heap_index_ < heap_.size()) - heap_[target.heap_index_].timer_ = ⌖ - - if (timers_ == &source) - timers_ = ⌖ - if (source.prev_) - source.prev_->next_ = ⌖ - if (source.next_) - source.next_->prev_= ⌖ - target.next_ = source.next_; - target.prev_ = source.prev_; - source.next_ = 0; - source.prev_ = 0; - } - -private: - // Move the item at the given index up the heap to its correct position. - void up_heap(std::size_t index) - { - while (index > 0) - { - std::size_t parent = (index - 1) / 2; - if (!Time_Traits::less_than(heap_[index].time_, heap_[parent].time_)) - break; - swap_heap(index, parent); - index = parent; - } - } - - // Move the item at the given index down the heap to its correct position. - void down_heap(std::size_t index) - { - std::size_t child = index * 2 + 1; - while (child < heap_.size()) - { - std::size_t min_child = (child + 1 == heap_.size() - || Time_Traits::less_than( - heap_[child].time_, heap_[child + 1].time_)) - ? child : child + 1; - if (Time_Traits::less_than(heap_[index].time_, heap_[min_child].time_)) - break; - swap_heap(index, min_child); - index = min_child; - child = index * 2 + 1; - } - } - - // Swap two entries in the heap. - void swap_heap(std::size_t index1, std::size_t index2) - { - heap_entry tmp = heap_[index1]; - heap_[index1] = heap_[index2]; - heap_[index2] = tmp; - heap_[index1].timer_->heap_index_ = index1; - heap_[index2].timer_->heap_index_ = index2; - } - - // Remove a timer from the heap and list of timers. - void remove_timer(per_timer_data& timer) - { - // Remove the timer from the heap. - std::size_t index = timer.heap_index_; - if (!heap_.empty() && index < heap_.size()) - { - if (index == heap_.size() - 1) - { - timer.heap_index_ = (std::numeric_limits::max)(); - heap_.pop_back(); - } - else - { - swap_heap(index, heap_.size() - 1); - timer.heap_index_ = (std::numeric_limits::max)(); - heap_.pop_back(); - if (index > 0 && Time_Traits::less_than( - heap_[index].time_, heap_[(index - 1) / 2].time_)) - up_heap(index); - else - down_heap(index); - } - } - - // Remove the timer from the linked list of active timers. - if (timers_ == &timer) - timers_ = timer.next_; - if (timer.prev_) - timer.prev_->next_ = timer.next_; - if (timer.next_) - timer.next_->prev_= timer.prev_; - timer.next_ = 0; - timer.prev_ = 0; - } - - // Determine if the specified absolute time is positive infinity. - template - static bool is_positive_infinity(const Time_Type&) - { - return false; - } - - // Determine if the specified absolute time is positive infinity. - template - static bool is_positive_infinity( - const boost::date_time::base_time& time) - { - return time.is_pos_infinity(); - } - - // Helper function to convert a duration into milliseconds. - template - long to_msec(const Duration& d, long max_duration) const - { - if (d.ticks() <= 0) - return 0; - int64_t msec = d.total_milliseconds(); - if (msec == 0) - return 1; - if (msec > max_duration) - return max_duration; - return static_cast(msec); - } - - // Helper function to convert a duration into microseconds. - template - long to_usec(const Duration& d, long max_duration) const - { - if (d.ticks() <= 0) - return 0; - int64_t usec = d.total_microseconds(); - if (usec == 0) - return 1; - if (usec > max_duration) - return max_duration; - return static_cast(usec); - } - - // The head of a linked list of all active timers. - per_timer_data* timers_; - - struct heap_entry - { - // The time when the timer should fire. - time_type time_; - - // The associated timer with enqueued operations. - per_timer_data* timer_; - }; - - // The heap of timers, with the earliest timer at the front. - std::vector heap_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_TIMER_QUEUE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_queue_base.hpp b/Sources/Vendor/asio/include/asio/detail/timer_queue_base.hpp deleted file mode 100644 index 4af995f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_queue_base.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// detail/timer_queue_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_TIMER_QUEUE_BASE_HPP -#define ASIO_DETAIL_TIMER_QUEUE_BASE_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/noncopyable.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class timer_queue_base - : private noncopyable -{ -public: - // Constructor. - timer_queue_base() : next_(0) {} - - // Destructor. - virtual ~timer_queue_base() {} - - // Whether there are no timers in the queue. - virtual bool empty() const = 0; - - // Get the time to wait until the next timer. - virtual long wait_duration_msec(long max_duration) const = 0; - - // Get the time to wait until the next timer. - virtual long wait_duration_usec(long max_duration) const = 0; - - // Dequeue all ready timers. - virtual void get_ready_timers(op_queue& ops) = 0; - - // Dequeue all timers. - virtual void get_all_timers(op_queue& ops) = 0; - -private: - friend class timer_queue_set; - - // Next timer queue in the set. - timer_queue_base* next_; -}; - -template -class timer_queue; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_TIMER_QUEUE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_queue_ptime.hpp b/Sources/Vendor/asio/include/asio/detail/timer_queue_ptime.hpp deleted file mode 100644 index 84e8338..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_queue_ptime.hpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// detail/timer_queue_ptime.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_TIMER_QUEUE_PTIME_HPP -#define ASIO_DETAIL_TIMER_QUEUE_PTIME_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_BOOST_DATE_TIME) - -#include "asio/time_traits.hpp" -#include "asio/detail/timer_queue.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct forwarding_posix_time_traits : time_traits {}; - -// Template specialisation for the commonly used instantation. -template <> -class timer_queue > - : public timer_queue_base -{ -public: - // The time type. - typedef boost::posix_time::ptime time_type; - - // The duration type. - typedef boost::posix_time::time_duration duration_type; - - // Per-timer data. - typedef timer_queue::per_timer_data - per_timer_data; - - // Constructor. - ASIO_DECL timer_queue(); - - // Destructor. - ASIO_DECL virtual ~timer_queue(); - - // Add a new timer to the queue. Returns true if this is the timer that is - // earliest in the queue, in which case the reactor's event demultiplexing - // function call may need to be interrupted and restarted. - ASIO_DECL bool enqueue_timer(const time_type& time, - per_timer_data& timer, wait_op* op); - - // Whether there are no timers in the queue. - ASIO_DECL virtual bool empty() const; - - // Get the time for the timer that is earliest in the queue. - ASIO_DECL virtual long wait_duration_msec(long max_duration) const; - - // Get the time for the timer that is earliest in the queue. - ASIO_DECL virtual long wait_duration_usec(long max_duration) const; - - // Dequeue all timers not later than the current time. - ASIO_DECL virtual void get_ready_timers(op_queue& ops); - - // Dequeue all timers. - ASIO_DECL virtual void get_all_timers(op_queue& ops); - - // Cancel and dequeue operations for the given timer. - ASIO_DECL std::size_t cancel_timer( - per_timer_data& timer, op_queue& ops, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move operations from one timer to another, empty timer. - ASIO_DECL void move_timer(per_timer_data& target, - per_timer_data& source); - -private: - timer_queue impl_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/timer_queue_ptime.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#endif // ASIO_DETAIL_TIMER_QUEUE_PTIME_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_queue_set.hpp b/Sources/Vendor/asio/include/asio/detail/timer_queue_set.hpp deleted file mode 100644 index 0ea372a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_queue_set.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// detail/timer_queue_set.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_TIMER_QUEUE_SET_HPP -#define ASIO_DETAIL_TIMER_QUEUE_SET_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/timer_queue_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class timer_queue_set -{ -public: - // Constructor. - ASIO_DECL timer_queue_set(); - - // Add a timer queue to the set. - ASIO_DECL void insert(timer_queue_base* q); - - // Remove a timer queue from the set. - ASIO_DECL void erase(timer_queue_base* q); - - // Determine whether all queues are empty. - ASIO_DECL bool all_empty() const; - - // Get the wait duration in milliseconds. - ASIO_DECL long wait_duration_msec(long max_duration) const; - - // Get the wait duration in microseconds. - ASIO_DECL long wait_duration_usec(long max_duration) const; - - // Dequeue all ready timers. - ASIO_DECL void get_ready_timers(op_queue& ops); - - // Dequeue all timers. - ASIO_DECL void get_all_timers(op_queue& ops); - -private: - timer_queue_base* first_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/timer_queue_set.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_DETAIL_TIMER_QUEUE_SET_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_scheduler.hpp b/Sources/Vendor/asio/include/asio/detail/timer_scheduler.hpp deleted file mode 100644 index b1f8df4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_scheduler.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// detail/timer_scheduler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_TIMER_SCHEDULER_HPP -#define ASIO_DETAIL_TIMER_SCHEDULER_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/timer_scheduler_fwd.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_timer_scheduler.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_io_context.hpp" -#elif defined(ASIO_HAS_EPOLL) -# include "asio/detail/epoll_reactor.hpp" -#elif defined(ASIO_HAS_KQUEUE) -# include "asio/detail/kqueue_reactor.hpp" -#elif defined(ASIO_HAS_DEV_POLL) -# include "asio/detail/dev_poll_reactor.hpp" -#else -# include "asio/detail/select_reactor.hpp" -#endif - -#endif // ASIO_DETAIL_TIMER_SCHEDULER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/timer_scheduler_fwd.hpp b/Sources/Vendor/asio/include/asio/detail/timer_scheduler_fwd.hpp deleted file mode 100644 index 80bae50..0000000 --- a/Sources/Vendor/asio/include/asio/detail/timer_scheduler_fwd.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// detail/timer_scheduler_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_TIMER_SCHEDULER_FWD_HPP -#define ASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_WINDOWS_RUNTIME) -typedef class winrt_timer_scheduler timer_scheduler; -#elif defined(ASIO_HAS_IOCP) -typedef class win_iocp_io_context timer_scheduler; -#elif defined(ASIO_HAS_EPOLL) -typedef class epoll_reactor timer_scheduler; -#elif defined(ASIO_HAS_KQUEUE) -typedef class kqueue_reactor timer_scheduler; -#elif defined(ASIO_HAS_DEV_POLL) -typedef class dev_poll_reactor timer_scheduler; -#else -typedef class select_reactor timer_scheduler; -#endif - -} // namespace detail -} // namespace asio - -#endif // ASIO_DETAIL_TIMER_SCHEDULER_FWD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/tss_ptr.hpp deleted file mode 100644 index e628abe..0000000 --- a/Sources/Vendor/asio/include/asio/detail/tss_ptr.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// detail/tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_TSS_PTR_HPP -#define ASIO_DETAIL_TSS_PTR_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_THREADS) -# include "asio/detail/null_tss_ptr.hpp" -#elif defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) -# include "asio/detail/keyword_tss_ptr.hpp" -#elif defined(ASIO_WINDOWS) -# include "asio/detail/win_tss_ptr.hpp" -#elif defined(ASIO_HAS_PTHREADS) -# include "asio/detail/posix_tss_ptr.hpp" -#else -# error Only Windows and POSIX are supported! -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class tss_ptr -#if !defined(ASIO_HAS_THREADS) - : public null_tss_ptr -#elif defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) - : public keyword_tss_ptr -#elif defined(ASIO_WINDOWS) - : public win_tss_ptr -#elif defined(ASIO_HAS_PTHREADS) - : public posix_tss_ptr -#endif -{ -public: - void operator=(T* value) - { -#if !defined(ASIO_HAS_THREADS) - null_tss_ptr::operator=(value); -#elif defined(ASIO_HAS_THREAD_KEYWORD_EXTENSION) - keyword_tss_ptr::operator=(value); -#elif defined(ASIO_WINDOWS) - win_tss_ptr::operator=(value); -#elif defined(ASIO_HAS_PTHREADS) - posix_tss_ptr::operator=(value); -#endif - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/type_traits.hpp b/Sources/Vendor/asio/include/asio/detail/type_traits.hpp deleted file mode 100644 index edf0928..0000000 --- a/Sources/Vendor/asio/include/asio/detail/type_traits.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// -// detail/type_traits.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_TYPE_TRAITS_HPP -#define ASIO_DETAIL_TYPE_TRAITS_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_TYPE_TRAITS) -# include -#else // defined(ASIO_HAS_TYPE_TRAITS) -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif // defined(ASIO_HAS_TYPE_TRAITS) - -namespace asio { - -#if defined(ASIO_HAS_STD_TYPE_TRAITS) -using std::add_const; -using std::conditional; -using std::decay; -using std::enable_if; -using std::false_type; -using std::integral_constant; -using std::is_base_of; -using std::is_class; -using std::is_const; -using std::is_convertible; -using std::is_function; -using std::is_same; -using std::remove_pointer; -using std::remove_reference; -#if defined(ASIO_HAS_STD_INVOKE_RESULT) -template struct result_of; -template -struct result_of : std::invoke_result {}; -#else // defined(ASIO_HAS_STD_INVOKE_RESULT) -using std::result_of; -#endif // defined(ASIO_HAS_STD_INVOKE_RESULT) -using std::true_type; -#else // defined(ASIO_HAS_STD_TYPE_TRAITS) -using boost::add_const; -template -struct enable_if : boost::enable_if_c {}; -using boost::conditional; -using boost::decay; -using boost::false_type; -using boost::integral_constant; -using boost::is_base_of; -using boost::is_class; -using boost::is_const; -using boost::is_convertible; -using boost::is_function; -using boost::is_same; -using boost::remove_pointer; -using boost::remove_reference; -using boost::result_of; -using boost::true_type; -#endif // defined(ASIO_HAS_STD_TYPE_TRAITS) - -} // namespace asio - -#endif // ASIO_DETAIL_TYPE_TRAITS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/variadic_templates.hpp b/Sources/Vendor/asio/include/asio/detail/variadic_templates.hpp deleted file mode 100644 index d54eb4e..0000000 --- a/Sources/Vendor/asio/include/asio/detail/variadic_templates.hpp +++ /dev/null @@ -1,119 +0,0 @@ -// -// detail/variadic_templates.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_VARIADIC_TEMPLATES_HPP -#define ASIO_DETAIL_VARIADIC_TEMPLATES_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_VARIADIC_TEMPLATES) - -# define ASIO_VARIADIC_TPARAMS(n) ASIO_VARIADIC_TPARAMS_##n - -# define ASIO_VARIADIC_TPARAMS_1 \ - typename T1 -# define ASIO_VARIADIC_TPARAMS_2 \ - typename T1, typename T2 -# define ASIO_VARIADIC_TPARAMS_3 \ - typename T1, typename T2, typename T3 -# define ASIO_VARIADIC_TPARAMS_4 \ - typename T1, typename T2, typename T3, typename T4 -# define ASIO_VARIADIC_TPARAMS_5 \ - typename T1, typename T2, typename T3, typename T4, typename T5 - -# define ASIO_VARIADIC_TARGS(n) ASIO_VARIADIC_TARGS_##n - -# define ASIO_VARIADIC_TARGS_1 T1 -# define ASIO_VARIADIC_TARGS_2 T1, T2 -# define ASIO_VARIADIC_TARGS_3 T1, T2, T3 -# define ASIO_VARIADIC_TARGS_4 T1, T2, T3, T4 -# define ASIO_VARIADIC_TARGS_5 T1, T2, T3, T4, T5 - -# define ASIO_VARIADIC_BYVAL_PARAMS(n) \ - ASIO_VARIADIC_BYVAL_PARAMS_##n - -# define ASIO_VARIADIC_BYVAL_PARAMS_1 T1 x1 -# define ASIO_VARIADIC_BYVAL_PARAMS_2 T1 x1, T2 x2 -# define ASIO_VARIADIC_BYVAL_PARAMS_3 T1 x1, T2 x2, T3 x3 -# define ASIO_VARIADIC_BYVAL_PARAMS_4 T1 x1, T2 x2, T3 x3, T4 x4 -# define ASIO_VARIADIC_BYVAL_PARAMS_5 T1 x1, T2 x2, T3 x3, T4 x4, T5 x5 - -# define ASIO_VARIADIC_BYVAL_ARGS(n) \ - ASIO_VARIADIC_BYVAL_ARGS_##n - -# define ASIO_VARIADIC_BYVAL_ARGS_1 x1 -# define ASIO_VARIADIC_BYVAL_ARGS_2 x1, x2 -# define ASIO_VARIADIC_BYVAL_ARGS_3 x1, x2, x3 -# define ASIO_VARIADIC_BYVAL_ARGS_4 x1, x2, x3, x4 -# define ASIO_VARIADIC_BYVAL_ARGS_5 x1, x2, x3, x4, x5 - -# define ASIO_VARIADIC_MOVE_PARAMS(n) \ - ASIO_VARIADIC_MOVE_PARAMS_##n - -# define ASIO_VARIADIC_MOVE_PARAMS_1 \ - ASIO_MOVE_ARG(T1) x1 -# define ASIO_VARIADIC_MOVE_PARAMS_2 \ - ASIO_MOVE_ARG(T1) x1, ASIO_MOVE_ARG(T2) x2 -# define ASIO_VARIADIC_MOVE_PARAMS_3 \ - ASIO_MOVE_ARG(T1) x1, ASIO_MOVE_ARG(T2) x2, \ - ASIO_MOVE_ARG(T3) x3 -# define ASIO_VARIADIC_MOVE_PARAMS_4 \ - ASIO_MOVE_ARG(T1) x1, ASIO_MOVE_ARG(T2) x2, \ - ASIO_MOVE_ARG(T3) x3, ASIO_MOVE_ARG(T4) x4 -# define ASIO_VARIADIC_MOVE_PARAMS_5 \ - ASIO_MOVE_ARG(T1) x1, ASIO_MOVE_ARG(T2) x2, \ - ASIO_MOVE_ARG(T3) x3, ASIO_MOVE_ARG(T4) x4, \ - ASIO_MOVE_ARG(T5) x5 - -# define ASIO_VARIADIC_MOVE_ARGS(n) \ - ASIO_VARIADIC_MOVE_ARGS_##n - -# define ASIO_VARIADIC_MOVE_ARGS_1 \ - ASIO_MOVE_CAST(T1)(x1) -# define ASIO_VARIADIC_MOVE_ARGS_2 \ - ASIO_MOVE_CAST(T1)(x1), ASIO_MOVE_CAST(T2)(x2) -# define ASIO_VARIADIC_MOVE_ARGS_3 \ - ASIO_MOVE_CAST(T1)(x1), ASIO_MOVE_CAST(T2)(x2), \ - ASIO_MOVE_CAST(T3)(x3) -# define ASIO_VARIADIC_MOVE_ARGS_4 \ - ASIO_MOVE_CAST(T1)(x1), ASIO_MOVE_CAST(T2)(x2), \ - ASIO_MOVE_CAST(T3)(x3), ASIO_MOVE_CAST(T4)(x4) -# define ASIO_VARIADIC_MOVE_ARGS_5 \ - ASIO_MOVE_CAST(T1)(x1), ASIO_MOVE_CAST(T2)(x2), \ - ASIO_MOVE_CAST(T3)(x3), ASIO_MOVE_CAST(T4)(x4), \ - ASIO_MOVE_CAST(T5)(x5) - -# define ASIO_VARIADIC_DECAY(n) \ - ASIO_VARIADIC_DECAY_##n - -# define ASIO_VARIADIC_DECAY_1 \ - typename decay::type -# define ASIO_VARIADIC_DECAY_2 \ - typename decay::type, typename decay::type -# define ASIO_VARIADIC_DECAY_3 \ - typename decay::type, typename decay::type, \ - typename decay::type -# define ASIO_VARIADIC_DECAY_4 \ - typename decay::type, typename decay::type, \ - typename decay::type, typename decay::type -# define ASIO_VARIADIC_DECAY_5 \ - typename decay::type, typename decay::type, \ - typename decay::type, typename decay::type, \ - typename decay::type - -# define ASIO_VARIADIC_GENERATE(m) m(1) m(2) m(3) m(4) m(5) - -#endif // !defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#endif // ASIO_DETAIL_VARIADIC_TEMPLATES_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/wait_handler.hpp b/Sources/Vendor/asio/include/asio/detail/wait_handler.hpp deleted file mode 100644 index bd3dc24..0000000 --- a/Sources/Vendor/asio/include/asio/detail/wait_handler.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// detail/wait_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WAIT_HANDLER_HPP -#define ASIO_DETAIL_WAIT_HANDLER_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/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class wait_handler : public wait_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(wait_handler); - - wait_handler(Handler& h) - : wait_op(&wait_handler::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(h)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& /*ec*/, - std::size_t /*bytes_transferred*/) - { - // Take ownership of the handler object. - wait_handler* h(static_cast(base)); - ptr p = { asio::detail::addressof(h->handler_), h, h }; - handler_work w(h->handler_); - - ASIO_HANDLER_COMPLETION((*h)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(h->handler_, h->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WAIT_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/wait_op.hpp b/Sources/Vendor/asio/include/asio/detail/wait_op.hpp deleted file mode 100644 index 1a3017b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/wait_op.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// detail/wait_op.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WAIT_OP_HPP -#define ASIO_DETAIL_WAIT_OP_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/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class wait_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - -protected: - wait_op(func_type func) - : operation(func) - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WAIT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_event.hpp b/Sources/Vendor/asio/include/asio/detail/win_event.hpp deleted file mode 100644 index 859cdee..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_event.hpp +++ /dev/null @@ -1,151 +0,0 @@ -// -// detail/win_event.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_EVENT_HPP -#define ASIO_DETAIL_WIN_EVENT_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_WINDOWS) - -#include "asio/detail/assert.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_event - : private noncopyable -{ -public: - // Constructor. - ASIO_DECL win_event(); - - // Destructor. - ASIO_DECL ~win_event(); - - // Signal the event. (Retained for backward compatibility.) - template - void signal(Lock& lock) - { - this->signal_all(lock); - } - - // Signal all waiters. - template - void signal_all(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - state_ |= 1; - ::SetEvent(events_[0]); - } - - // Unlock the mutex and signal one waiter. - template - void unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - bool have_waiters = (state_ > 1); - lock.unlock(); - if (have_waiters) - ::SetEvent(events_[1]); - } - - // If there's a waiter, unlock the mutex and signal it. - template - bool maybe_unlock_and_signal_one(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - state_ |= 1; - if (state_ > 1) - { - lock.unlock(); - ::SetEvent(events_[1]); - return true; - } - return false; - } - - // Reset the event. - template - void clear(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - (void)lock; - ::ResetEvent(events_[0]); - state_ &= ~std::size_t(1); - } - - // Wait for the event to become signalled. - template - void wait(Lock& lock) - { - ASIO_ASSERT(lock.locked()); - while ((state_ & 1) == 0) - { - state_ += 2; - lock.unlock(); -#if defined(ASIO_WINDOWS_APP) - ::WaitForMultipleObjectsEx(2, events_, false, INFINITE, false); -#else // defined(ASIO_WINDOWS_APP) - ::WaitForMultipleObjects(2, events_, false, INFINITE); -#endif // defined(ASIO_WINDOWS_APP) - lock.lock(); - state_ -= 2; - } - } - - // Timed wait for the event to become signalled. - template - bool wait_for_usec(Lock& lock, long usec) - { - ASIO_ASSERT(lock.locked()); - if ((state_ & 1) == 0) - { - state_ += 2; - lock.unlock(); - DWORD msec = usec > 0 ? (usec < 1000 ? 1 : usec / 1000) : 0; -#if defined(ASIO_WINDOWS_APP) - ::WaitForMultipleObjectsEx(2, events_, false, msec, false); -#else // defined(ASIO_WINDOWS_APP) - ::WaitForMultipleObjects(2, events_, false, msec); -#endif // defined(ASIO_WINDOWS_APP) - lock.lock(); - state_ -= 2; - } - return (state_ & 1) != 0; - } - -private: - HANDLE events_[2]; - std::size_t state_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_event.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_WIN_EVENT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_fd_set_adapter.hpp b/Sources/Vendor/asio/include/asio/detail/win_fd_set_adapter.hpp deleted file mode 100644 index 8d5e700..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_fd_set_adapter.hpp +++ /dev/null @@ -1,149 +0,0 @@ -// -// detail/win_fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_FD_SET_ADAPTER_HPP -#define ASIO_DETAIL_WIN_FD_SET_ADAPTER_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_WINDOWS) || defined(__CYGWIN__) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/reactor_op_queue.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Adapts the FD_SET type to meet the Descriptor_Set concept's requirements. -class win_fd_set_adapter : noncopyable -{ -public: - enum { default_fd_set_size = 1024 }; - - win_fd_set_adapter() - : capacity_(default_fd_set_size), - max_descriptor_(invalid_socket) - { - fd_set_ = static_cast(::operator new( - sizeof(win_fd_set) - sizeof(SOCKET) - + sizeof(SOCKET) * (capacity_))); - fd_set_->fd_count = 0; - } - - ~win_fd_set_adapter() - { - ::operator delete(fd_set_); - } - - void reset() - { - fd_set_->fd_count = 0; - max_descriptor_ = invalid_socket; - } - - bool set(socket_type descriptor) - { - for (u_int i = 0; i < fd_set_->fd_count; ++i) - if (fd_set_->fd_array[i] == descriptor) - return true; - - reserve(fd_set_->fd_count + 1); - fd_set_->fd_array[fd_set_->fd_count++] = descriptor; - return true; - } - - void set(reactor_op_queue& operations, op_queue&) - { - reactor_op_queue::iterator i = operations.begin(); - while (i != operations.end()) - { - reactor_op_queue::iterator op_iter = i++; - reserve(fd_set_->fd_count + 1); - fd_set_->fd_array[fd_set_->fd_count++] = op_iter->first; - } - } - - bool is_set(socket_type descriptor) const - { - return !!__WSAFDIsSet(descriptor, - const_cast(reinterpret_cast(fd_set_))); - } - - operator fd_set*() - { - return reinterpret_cast(fd_set_); - } - - socket_type max_descriptor() const - { - return max_descriptor_; - } - - void perform(reactor_op_queue& operations, - op_queue& ops) const - { - for (u_int i = 0; i < fd_set_->fd_count; ++i) - operations.perform_operations(fd_set_->fd_array[i], ops); - } - -private: - // This structure is defined to be compatible with the Windows API fd_set - // structure, but without being dependent on the value of FD_SETSIZE. We use - // the "struct hack" to allow the number of descriptors to be varied at - // runtime. - struct win_fd_set - { - u_int fd_count; - SOCKET fd_array[1]; - }; - - // Increase the fd_set_ capacity to at least the specified number of elements. - void reserve(u_int n) - { - if (n <= capacity_) - return; - - u_int new_capacity = capacity_ + capacity_ / 2; - if (new_capacity < n) - new_capacity = n; - - win_fd_set* new_fd_set = static_cast(::operator new( - sizeof(win_fd_set) - sizeof(SOCKET) - + sizeof(SOCKET) * (new_capacity))); - - new_fd_set->fd_count = fd_set_->fd_count; - for (u_int i = 0; i < fd_set_->fd_count; ++i) - new_fd_set->fd_array[i] = fd_set_->fd_array[i]; - - ::operator delete(fd_set_); - fd_set_ = new_fd_set; - capacity_ = new_capacity; - } - - win_fd_set* fd_set_; - u_int capacity_; - socket_type max_descriptor_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_WIN_FD_SET_ADAPTER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_fenced_block.hpp b/Sources/Vendor/asio/include/asio/detail/win_fenced_block.hpp deleted file mode 100644 index 1ce6e13..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_fenced_block.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// detail/win_fenced_block.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_FENCED_BLOCK_HPP -#define ASIO_DETAIL_WIN_FENCED_BLOCK_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_WINDOWS) && !defined(UNDER_CE) - -#include "asio/detail/socket_types.hpp" -#include "asio/detail/noncopyable.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_fenced_block - : private noncopyable -{ -public: - enum half_t { half }; - enum full_t { full }; - - // Constructor for a half fenced block. - explicit win_fenced_block(half_t) - { - } - - // Constructor for a full fenced block. - explicit win_fenced_block(full_t) - { -#if defined(__BORLANDC__) - LONG barrier = 0; - ::InterlockedExchange(&barrier, 1); -#elif defined(ASIO_MSVC) \ - && ((ASIO_MSVC < 1400) || !defined(MemoryBarrier)) -# if defined(_M_IX86) -# pragma warning(push) -# pragma warning(disable:4793) - LONG barrier; - __asm { xchg barrier, eax } -# pragma warning(pop) -# endif // defined(_M_IX86) -#else - MemoryBarrier(); -#endif - } - - // Destructor. - ~win_fenced_block() - { -#if defined(__BORLANDC__) - LONG barrier = 0; - ::InterlockedExchange(&barrier, 1); -#elif defined(ASIO_MSVC) \ - && ((ASIO_MSVC < 1400) || !defined(MemoryBarrier)) -# if defined(_M_IX86) -# pragma warning(push) -# pragma warning(disable:4793) - LONG barrier; - __asm { xchg barrier, eax } -# pragma warning(pop) -# endif // defined(_M_IX86) -#else - MemoryBarrier(); -#endif - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) && !defined(UNDER_CE) - -#endif // ASIO_DETAIL_WIN_FENCED_BLOCK_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_global.hpp b/Sources/Vendor/asio/include/asio/detail/win_global.hpp deleted file mode 100644 index dd0a555..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_global.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// detail/win_global.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_GLOBAL_HPP -#define ASIO_DETAIL_WIN_GLOBAL_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/static_mutex.hpp" -#include "asio/detail/tss_ptr.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -struct win_global_impl -{ - // Destructor automatically cleans up the global. - ~win_global_impl() - { - delete ptr_; - } - - static win_global_impl instance_; - static static_mutex mutex_; - static T* ptr_; - static tss_ptr tss_ptr_; -}; - -template -win_global_impl win_global_impl::instance_ = { 0 }; - -template -static_mutex win_global_impl::mutex_ = ASIO_STATIC_MUTEX_INIT; - -template -T* win_global_impl::ptr_ = 0; - -template -tss_ptr win_global_impl::tss_ptr_; - -template -T& win_global() -{ - if (static_cast(win_global_impl::tss_ptr_) == 0) - { - win_global_impl::mutex_.init(); - static_mutex::scoped_lock lock(win_global_impl::mutex_); - if (win_global_impl::ptr_ == 0) - win_global_impl::ptr_ = new T; - win_global_impl::tss_ptr_ = win_global_impl::ptr_; - } - - return *win_global_impl::tss_ptr_; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WIN_GLOBAL_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_read_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_read_op.hpp deleted file mode 100644 index 88e3f6c..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_read_op.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// detail/win_iocp_handle_read_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_DETAIL_WIN_IOCP_HANDLE_READ_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_HANDLE_READ_OP_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_IOCP) - -#include "asio/error.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_handle_read_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_handle_read_op); - - win_iocp_handle_read_op( - const MutableBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_handle_read_op::do_complete), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_handle_read_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - if (owner) - { - // Check whether buffers are still valid. - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_HANDLE_EOF) - ec = asio::error::eof; - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - MutableBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_HANDLE_READ_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_service.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_service.hpp deleted file mode 100644 index 849fe8f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_service.hpp +++ /dev/null @@ -1,323 +0,0 @@ -// -// detail/win_iocp_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_DETAIL_WIN_IOCP_HANDLE_SERVICE_HPP -#define ASIO_DETAIL_WIN_IOCP_HANDLE_SERVICE_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_IOCP) - -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/win_iocp_handle_read_op.hpp" -#include "asio/detail/win_iocp_handle_write_op.hpp" -#include "asio/detail/win_iocp_io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_handle_service : - public service_base -{ -public: - // The native type of a stream handle. - typedef HANDLE native_handle_type; - - // The implementation type of the stream handle. - class implementation_type - { - public: - // Default constructor. - implementation_type() - : handle_(INVALID_HANDLE_VALUE), - safe_cancellation_thread_id_(0), - next_(0), - prev_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class win_iocp_handle_service; - - // The native stream handle representation. - native_handle_type handle_; - - // The ID of the thread from which it is safe to cancel asynchronous - // operations. 0 means no asynchronous operations have been started yet. - // ~0 means asynchronous operations have been started from more than one - // thread, and cancellation is not supported for the handle. - DWORD safe_cancellation_thread_id_; - - // Pointers to adjacent handle implementations in linked list. - implementation_type* next_; - implementation_type* prev_; - }; - - ASIO_DECL win_iocp_handle_service(asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new handle implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Move-construct a new handle implementation. - ASIO_DECL void move_construct(implementation_type& impl, - implementation_type& other_impl); - - // Move-assign from another handle implementation. - ASIO_DECL void move_assign(implementation_type& impl, - win_iocp_handle_service& other_service, - implementation_type& other_impl); - - // Destroy a handle implementation. - ASIO_DECL void destroy(implementation_type& impl); - - // Assign a native handle to a handle implementation. - ASIO_DECL asio::error_code assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec); - - // Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return impl.handle_ != INVALID_HANDLE_VALUE; - } - - // Destroy a handle implementation. - ASIO_DECL asio::error_code close(implementation_type& impl, - asio::error_code& ec); - - // Get the native handle representation. - native_handle_type native_handle(const implementation_type& impl) const - { - return impl.handle_; - } - - // Cancel all operations associated with the handle. - ASIO_DECL asio::error_code cancel(implementation_type& impl, - asio::error_code& ec); - - // Write the given data. Returns the number of bytes written. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return write_some_at(impl, 0, buffers, ec); - } - - // Write the given data at the specified offset. Returns the number of bytes - // written. - template - size_t write_some_at(implementation_type& impl, uint64_t offset, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - asio::const_buffer buffer = - buffer_sequence_adapter::first(buffers); - - return do_write(impl, offset, buffer, ec); - } - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_handle_write_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((iocp_service_.context(), *p.p, "handle", &impl, - reinterpret_cast(impl.handle_), "async_write_some")); - - start_write_op(impl, 0, - buffer_sequence_adapter::first(buffers), p.p); - p.v = p.p = 0; - } - - // Start an asynchronous write at a specified offset. The data being written - // must be valid for the lifetime of the asynchronous operation. - template - void async_write_some_at(implementation_type& impl, uint64_t offset, - const ConstBufferSequence& buffers, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_handle_write_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((iocp_service_.context(), *p.p, "handle", &impl, - reinterpret_cast(impl.handle_), "async_write_some_at")); - - start_write_op(impl, offset, - buffer_sequence_adapter::first(buffers), p.p); - p.v = p.p = 0; - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return read_some_at(impl, 0, buffers, ec); - } - - // Read some data at a specified offset. Returns the number of bytes received. - template - size_t read_some_at(implementation_type& impl, uint64_t offset, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - asio::mutable_buffer buffer = - buffer_sequence_adapter::first(buffers); - - return do_read(impl, offset, buffer, ec); - } - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_handle_read_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((iocp_service_.context(), *p.p, "handle", &impl, - reinterpret_cast(impl.handle_), "async_read_some")); - - start_read_op(impl, 0, - buffer_sequence_adapter::first(buffers), p.p); - p.v = p.p = 0; - } - - // Start an asynchronous read at a specified offset. The buffer for the data - // being received must be valid for the lifetime of the asynchronous - // operation. - template - void async_read_some_at(implementation_type& impl, uint64_t offset, - const MutableBufferSequence& buffers, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_handle_read_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((iocp_service_.context(), *p.p, "handle", &impl, - reinterpret_cast(impl.handle_), "async_read_some_at")); - - start_read_op(impl, offset, - buffer_sequence_adapter::first(buffers), p.p); - p.v = p.p = 0; - } - -private: - // Prevent the use of the null_buffers type with this service. - size_t write_some(implementation_type& impl, - const null_buffers& buffers, asio::error_code& ec); - size_t write_some_at(implementation_type& impl, uint64_t offset, - const null_buffers& buffers, asio::error_code& ec); - template - void async_write_some(implementation_type& impl, - const null_buffers& buffers, Handler& handler); - template - void async_write_some_at(implementation_type& impl, uint64_t offset, - const null_buffers& buffers, Handler& handler); - size_t read_some(implementation_type& impl, - const null_buffers& buffers, asio::error_code& ec); - size_t read_some_at(implementation_type& impl, uint64_t offset, - const null_buffers& buffers, asio::error_code& ec); - template - void async_read_some(implementation_type& impl, - const null_buffers& buffers, Handler& handler); - template - void async_read_some_at(implementation_type& impl, uint64_t offset, - const null_buffers& buffers, Handler& handler); - - // Helper class for waiting for synchronous operations to complete. - class overlapped_wrapper; - - // Helper function to perform a synchronous write operation. - ASIO_DECL size_t do_write(implementation_type& impl, - uint64_t offset, const asio::const_buffer& buffer, - asio::error_code& ec); - - // Helper function to start a write operation. - ASIO_DECL void start_write_op(implementation_type& impl, - uint64_t offset, const asio::const_buffer& buffer, - operation* op); - - // Helper function to perform a synchronous write operation. - ASIO_DECL size_t do_read(implementation_type& impl, - uint64_t offset, const asio::mutable_buffer& buffer, - asio::error_code& ec); - - // Helper function to start a read operation. - ASIO_DECL void start_read_op(implementation_type& impl, - uint64_t offset, const asio::mutable_buffer& buffer, - operation* op); - - // Update the ID of the thread from which cancellation is safe. - ASIO_DECL void update_cancellation_thread_id(implementation_type& impl); - - // Helper function to close a handle when the associated object is being - // destroyed. - ASIO_DECL void close_for_destruction(implementation_type& impl); - - // The IOCP service used for running asynchronous operations and dispatching - // handlers. - win_iocp_io_context& iocp_service_; - - // Mutex to protect access to the linked list of implementations. - mutex mutex_; - - // The head of a linked list of all implementations. - implementation_type* impl_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_iocp_handle_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_write_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_write_op.hpp deleted file mode 100644 index d7bb944..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_handle_write_op.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// detail/win_iocp_handle_write_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_DETAIL_WIN_IOCP_HANDLE_WRITE_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_HANDLE_WRITE_OP_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_IOCP) - -#include "asio/error.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_handle_write_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_handle_write_op); - - win_iocp_handle_write_op(const ConstBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_handle_write_op::do_complete), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& ec, std::size_t bytes_transferred) - { - // Take ownership of the operation object. - win_iocp_handle_write_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - if (owner) - { - // Check whether buffers are still valid. - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - ConstBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_HANDLE_WRITE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_io_context.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_io_context.hpp deleted file mode 100644 index 11bf58b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_io_context.hpp +++ /dev/null @@ -1,328 +0,0 @@ -// -// detail/win_iocp_io_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_IO_CONTEXT_HPP -#define ASIO_DETAIL_WIN_IOCP_IO_CONTEXT_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_IOCP) - -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/thread.hpp" -#include "asio/detail/thread_context.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/detail/win_iocp_operation.hpp" -#include "asio/detail/win_iocp_thread_info.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class wait_op; - -class win_iocp_io_context - : public execution_context_service_base, - public thread_context -{ -public: - // Constructor. Specifies a concurrency hint that is passed through to the - // underlying I/O completion port. - ASIO_DECL win_iocp_io_context(asio::execution_context& ctx, - int concurrency_hint = -1); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Initialise the task. Nothing to do here. - void init_task() - { - } - - // Register a handle with the IO completion port. - ASIO_DECL asio::error_code register_handle( - HANDLE handle, asio::error_code& ec); - - // Run the event loop until stopped or no more work. - ASIO_DECL size_t run(asio::error_code& ec); - - // Run until stopped or one operation is performed. - ASIO_DECL size_t run_one(asio::error_code& ec); - - // Run until timeout, interrupted, or one operation is performed. - ASIO_DECL size_t wait_one(long usec, asio::error_code& ec); - - // Poll for operations without blocking. - ASIO_DECL size_t poll(asio::error_code& ec); - - // Poll for one operation without blocking. - ASIO_DECL size_t poll_one(asio::error_code& ec); - - // Stop the event processing loop. - ASIO_DECL void stop(); - - // Determine whether the io_context is stopped. - bool stopped() const - { - return ::InterlockedExchangeAdd(&stopped_, 0) != 0; - } - - // Restart in preparation for a subsequent run invocation. - void restart() - { - ::InterlockedExchange(&stopped_, 0); - } - - // Notify that some work has started. - void work_started() - { - ::InterlockedIncrement(&outstanding_work_); - } - - // Notify that some work has finished. - void work_finished() - { - if (::InterlockedDecrement(&outstanding_work_) == 0) - stop(); - } - - // Return whether a handler can be dispatched immediately. - bool can_dispatch() - { - return thread_call_stack::contains(this) != 0; - } - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() has not yet been called for the operation. - void post_immediate_completion(win_iocp_operation* op, bool) - { - work_started(); - post_deferred_completion(op); - } - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() was previously called for the operation. - ASIO_DECL void post_deferred_completion(win_iocp_operation* op); - - // Request invocation of the given operation and return immediately. Assumes - // that work_started() was previously called for the operations. - ASIO_DECL void post_deferred_completions( - op_queue& ops); - - // Request invocation of the given operation using the thread-private queue - // and return immediately. Assumes that work_started() has not yet been - // called for the operation. - void post_private_immediate_completion(win_iocp_operation* op) - { - post_immediate_completion(op, false); - } - - // Request invocation of the given operation using the thread-private queue - // and return immediately. Assumes that work_started() was previously called - // for the operation. - void post_private_deferred_completion(win_iocp_operation* op) - { - post_deferred_completion(op); - } - - // Enqueue the given operation following a failed attempt to dispatch the - // operation for immediate invocation. - void do_dispatch(operation* op) - { - post_immediate_completion(op, false); - } - - // Process unfinished operations as part of a shutdown operation. Assumes - // that work_started() was previously called for the operations. - ASIO_DECL void abandon_operations(op_queue& ops); - - // Called after starting an overlapped I/O operation that did not complete - // immediately. The caller must have already called work_started() prior to - // starting the operation. - ASIO_DECL void on_pending(win_iocp_operation* op); - - // Called after starting an overlapped I/O operation that completed - // immediately. The caller must have already called work_started() prior to - // starting the operation. - ASIO_DECL void on_completion(win_iocp_operation* op, - DWORD last_error = 0, DWORD bytes_transferred = 0); - - // Called after starting an overlapped I/O operation that completed - // immediately. The caller must have already called work_started() prior to - // starting the operation. - ASIO_DECL void on_completion(win_iocp_operation* op, - const asio::error_code& ec, DWORD bytes_transferred = 0); - - // Add a new timer queue to the service. - template - void add_timer_queue(timer_queue& timer_queue); - - // Remove a timer queue from the service. - template - void remove_timer_queue(timer_queue& timer_queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer associated with the given token. Returns the number of - // handlers that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& to, - typename timer_queue::per_timer_data& from); - - // Get the concurrency hint that was used to initialise the io_context. - int concurrency_hint() const - { - return concurrency_hint_; - } - -private: -#if defined(WINVER) && (WINVER < 0x0500) - typedef DWORD dword_ptr_t; - typedef ULONG ulong_ptr_t; -#else // defined(WINVER) && (WINVER < 0x0500) - typedef DWORD_PTR dword_ptr_t; - typedef ULONG_PTR ulong_ptr_t; -#endif // defined(WINVER) && (WINVER < 0x0500) - - // Dequeues at most one operation from the I/O completion port, and then - // executes it. Returns the number of operations that were dequeued (i.e. - // either 0 or 1). - ASIO_DECL size_t do_one(DWORD msec, asio::error_code& ec); - - // Helper to calculate the GetQueuedCompletionStatus timeout. - ASIO_DECL static DWORD get_gqcs_timeout(); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // Called to recalculate and update the timeout. - ASIO_DECL void update_timeout(); - - // Helper class to call work_finished() on block exit. - struct work_finished_on_block_exit; - - // Helper class for managing a HANDLE. - struct auto_handle - { - HANDLE handle; - auto_handle() : handle(0) {} - ~auto_handle() { if (handle) ::CloseHandle(handle); } - }; - - // The IO completion port used for queueing operations. - auto_handle iocp_; - - // The count of unfinished work. - long outstanding_work_; - - // Flag to indicate whether the event loop has been stopped. - mutable long stopped_; - - // Flag to indicate whether there is an in-flight stop event. Every event - // posted using PostQueuedCompletionStatus consumes non-paged pool, so to - // avoid exhausting this resouce we limit the number of outstanding events. - long stop_event_posted_; - - // Flag to indicate whether the service has been shut down. - long shutdown_; - - enum - { - // Timeout to use with GetQueuedCompletionStatus on older versions of - // Windows. Some versions of windows have a "bug" where a call to - // GetQueuedCompletionStatus can appear stuck even though there are events - // waiting on the queue. Using a timeout helps to work around the issue. - default_gqcs_timeout = 500, - - // Maximum waitable timer timeout, in milliseconds. - max_timeout_msec = 5 * 60 * 1000, - - // Maximum waitable timer timeout, in microseconds. - max_timeout_usec = max_timeout_msec * 1000, - - // Completion key value used to wake up a thread to dispatch timers or - // completed operations. - wake_for_dispatch = 1, - - // Completion key value to indicate that an operation has posted with the - // original last_error and bytes_transferred values stored in the fields of - // the OVERLAPPED structure. - overlapped_contains_result = 2 - }; - - // Timeout to use with GetQueuedCompletionStatus. - const DWORD gqcs_timeout_; - - // Function object for processing timeouts in a background thread. - struct timer_thread_function; - friend struct timer_thread_function; - - // Background thread used for processing timeouts. - scoped_ptr timer_thread_; - - // A waitable timer object used for waiting for timeouts. - auto_handle waitable_timer_; - - // Non-zero if timers or completed operations need to be dispatched. - long dispatch_required_; - - // Mutex for protecting access to the timer queues and completed operations. - mutex dispatch_mutex_; - - // The timer queues. - timer_queue_set timer_queues_; - - // The operations that are ready to dispatch. - op_queue completed_ops_; - - // The concurrency hint used to initialise the io_context. - const int concurrency_hint_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/win_iocp_io_context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_iocp_io_context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_null_buffers_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_null_buffers_op.hpp deleted file mode 100644 index db70cb2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_null_buffers_op.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// detail/win_iocp_null_buffers_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_NULL_BUFFERS_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_NULL_BUFFERS_OP_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_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_null_buffers_op : public reactor_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_null_buffers_op); - - win_iocp_null_buffers_op(socket_ops::weak_cancel_token_type cancel_token, - Handler& handler) - : reactor_op(&win_iocp_null_buffers_op::do_perform, - &win_iocp_null_buffers_op::do_complete), - cancel_token_(cancel_token), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static status do_perform(reactor_op*) - { - return done; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_null_buffers_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // The reactor may have stored a result in the operation object. - if (o->ec_) - ec = o->ec_; - - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (o->cancel_token_.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_NULL_BUFFERS_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_operation.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_operation.hpp deleted file mode 100644 index 81d43f0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_operation.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// -// detail/win_iocp_operation.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_OPERATION_HPP -#define ASIO_DETAIL_WIN_IOCP_OPERATION_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_IOCP) - -#include "asio/detail/handler_tracking.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_io_context; - -// Base class for all operations. A function pointer is used instead of virtual -// functions to avoid the associated overhead. -class win_iocp_operation - : public OVERLAPPED - ASIO_ALSO_INHERIT_TRACKED_HANDLER -{ -public: - typedef win_iocp_operation operation_type; - - void complete(void* owner, const asio::error_code& ec, - std::size_t bytes_transferred) - { - func_(owner, this, ec, bytes_transferred); - } - - void destroy() - { - func_(0, this, asio::error_code(), 0); - } - -protected: - typedef void (*func_type)( - void*, win_iocp_operation*, - const asio::error_code&, std::size_t); - - win_iocp_operation(func_type func) - : next_(0), - func_(func) - { - reset(); - } - - // Prevents deletion through this type. - ~win_iocp_operation() - { - } - - void reset() - { - Internal = 0; - InternalHigh = 0; - Offset = 0; - OffsetHigh = 0; - hEvent = 0; - ready_ = 0; - } - -private: - friend class op_queue_access; - friend class win_iocp_io_context; - win_iocp_operation* next_; - func_type func_; - long ready_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_OPERATION_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_op.hpp deleted file mode 100644 index 2b2cc31..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_op.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// detail/win_iocp_overlapped_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_OVERLAPPED_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_OVERLAPPED_OP_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_IOCP) - -#include "asio/error.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_overlapped_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_overlapped_op); - - win_iocp_overlapped_op(Handler& handler) - : operation(&win_iocp_overlapped_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& ec, std::size_t bytes_transferred) - { - // Take ownership of the operation object. - win_iocp_overlapped_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_OVERLAPPED_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp deleted file mode 100644 index 7a19114..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_overlapped_ptr.hpp +++ /dev/null @@ -1,143 +0,0 @@ -// -// detail/win_iocp_overlapped_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_OVERLAPPED_PTR_HPP -#define ASIO_DETAIL_WIN_IOCP_OVERLAPPED_PTR_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_IOCP) - -#include "asio/io_context.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/win_iocp_overlapped_op.hpp" -#include "asio/detail/win_iocp_io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Wraps a handler to create an OVERLAPPED object for use with overlapped I/O. -class win_iocp_overlapped_ptr - : private noncopyable -{ -public: - // Construct an empty win_iocp_overlapped_ptr. - win_iocp_overlapped_ptr() - : ptr_(0), - iocp_service_(0) - { - } - - // Construct an win_iocp_overlapped_ptr to contain the specified handler. - template - explicit win_iocp_overlapped_ptr( - asio::io_context& io_context, ASIO_MOVE_ARG(Handler) handler) - : ptr_(0), - iocp_service_(0) - { - this->reset(io_context, ASIO_MOVE_CAST(Handler)(handler)); - } - - // Destructor automatically frees the OVERLAPPED object unless released. - ~win_iocp_overlapped_ptr() - { - reset(); - } - - // Reset to empty. - void reset() - { - if (ptr_) - { - ptr_->destroy(); - ptr_ = 0; - iocp_service_->work_finished(); - iocp_service_ = 0; - } - } - - // Reset to contain the specified handler, freeing any current OVERLAPPED - // object. - template - void reset(asio::io_context& io_context, Handler handler) - { - typedef win_iocp_overlapped_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((io_context, *p.p, - "io_context", &io_context.impl_, 0, "overlapped")); - - io_context.impl_.work_started(); - reset(); - ptr_ = p.p; - p.v = p.p = 0; - iocp_service_ = &io_context.impl_; - } - - // Get the contained OVERLAPPED object. - OVERLAPPED* get() - { - return ptr_; - } - - // Get the contained OVERLAPPED object. - const OVERLAPPED* get() const - { - return ptr_; - } - - // Release ownership of the OVERLAPPED object. - OVERLAPPED* release() - { - if (ptr_) - iocp_service_->on_pending(ptr_); - - OVERLAPPED* tmp = ptr_; - ptr_ = 0; - iocp_service_ = 0; - return tmp; - } - - // Post completion notification for overlapped operation. Releases ownership. - void complete(const asio::error_code& ec, - std::size_t bytes_transferred) - { - if (ptr_) - { - iocp_service_->on_completion(ptr_, ec, - static_cast(bytes_transferred)); - ptr_ = 0; - iocp_service_ = 0; - } - } - -private: - win_iocp_operation* ptr_; - win_iocp_io_context* iocp_service_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_OVERLAPPED_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_serial_port_service.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_serial_port_service.hpp deleted file mode 100644 index ac06348..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_serial_port_service.hpp +++ /dev/null @@ -1,230 +0,0 @@ -// -// detail/win_iocp_serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_HPP -#define ASIO_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_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_IOCP) && defined(ASIO_HAS_SERIAL_PORT) - -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/win_iocp_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Extend win_iocp_handle_service to provide serial port support. -class win_iocp_serial_port_service : - public service_base -{ -public: - // The native type of a serial port. - typedef win_iocp_handle_service::native_handle_type native_handle_type; - - // The implementation type of the serial port. - typedef win_iocp_handle_service::implementation_type implementation_type; - - // Constructor. - ASIO_DECL win_iocp_serial_port_service( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new serial port implementation. - void construct(implementation_type& impl) - { - handle_service_.construct(impl); - } - - // Move-construct a new serial port implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - handle_service_.move_construct(impl, other_impl); - } - - // Move-assign from another serial port implementation. - void move_assign(implementation_type& impl, - win_iocp_serial_port_service& other_service, - implementation_type& other_impl) - { - handle_service_.move_assign(impl, - other_service.handle_service_, other_impl); - } - - // Destroy a serial port implementation. - void destroy(implementation_type& impl) - { - handle_service_.destroy(impl); - } - - // Open the serial port using the specified device name. - ASIO_DECL asio::error_code open(implementation_type& impl, - const std::string& device, asio::error_code& ec); - - // Assign a native handle to a serial port implementation. - asio::error_code assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - return handle_service_.assign(impl, handle, ec); - } - - // Determine whether the serial port is open. - bool is_open(const implementation_type& impl) const - { - return handle_service_.is_open(impl); - } - - // Destroy a serial port implementation. - asio::error_code close(implementation_type& impl, - asio::error_code& ec) - { - return handle_service_.close(impl, ec); - } - - // Get the native serial port representation. - native_handle_type native_handle(implementation_type& impl) - { - return handle_service_.native_handle(impl); - } - - // Cancel all operations associated with the handle. - asio::error_code cancel(implementation_type& impl, - asio::error_code& ec) - { - return handle_service_.cancel(impl, ec); - } - - // Set an option on the serial port. - template - asio::error_code set_option(implementation_type& impl, - const SettableSerialPortOption& option, asio::error_code& ec) - { - return do_set_option(impl, - &win_iocp_serial_port_service::store_option, - &option, ec); - } - - // Get an option from the serial port. - template - asio::error_code get_option(const implementation_type& impl, - GettableSerialPortOption& option, asio::error_code& ec) const - { - return do_get_option(impl, - &win_iocp_serial_port_service::load_option, - &option, ec); - } - - // Send a break sequence to the serial port. - asio::error_code send_break(implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Write the given data. Returns the number of bytes sent. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return handle_service_.write_some(impl, buffers, ec); - } - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler& handler) - { - handle_service_.async_write_some(impl, buffers, handler); - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return handle_service_.read_some(impl, buffers, ec); - } - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler& handler) - { - handle_service_.async_read_some(impl, buffers, handler); - } - -private: - // Function pointer type for storing a serial port option. - typedef asio::error_code (*store_function_type)( - const void*, ::DCB&, asio::error_code&); - - // Helper function template to store a serial port option. - template - static asio::error_code store_option(const void* option, - ::DCB& storage, asio::error_code& ec) - { - static_cast(option)->store(storage, ec); - return ec; - } - - // Helper function to set a serial port option. - ASIO_DECL asio::error_code do_set_option( - implementation_type& impl, store_function_type store, - const void* option, asio::error_code& ec); - - // Function pointer type for loading a serial port option. - typedef asio::error_code (*load_function_type)( - void*, const ::DCB&, asio::error_code&); - - // Helper function template to load a serial port option. - template - static asio::error_code load_option(void* option, - const ::DCB& storage, asio::error_code& ec) - { - static_cast(option)->load(storage, ec); - return ec; - } - - // Helper function to get a serial port option. - ASIO_DECL asio::error_code do_get_option( - const implementation_type& impl, load_function_type load, - void* option, asio::error_code& ec) const; - - // The implementation used for initiating asynchronous operations. - win_iocp_handle_service handle_service_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_iocp_serial_port_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) && defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_accept_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_accept_op.hpp deleted file mode 100644 index 18e7335..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_accept_op.hpp +++ /dev/null @@ -1,297 +0,0 @@ -// -// detail/win_iocp_socket_accept_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_SOCKET_ACCEPT_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_ACCEPT_OP_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_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/win_iocp_socket_service_base.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_accept_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_accept_op); - - win_iocp_socket_accept_op(win_iocp_socket_service_base& socket_service, - socket_type socket, Socket& peer, const Protocol& protocol, - typename Protocol::endpoint* peer_endpoint, - bool enable_connection_aborted, Handler& handler) - : operation(&win_iocp_socket_accept_op::do_complete), - socket_service_(socket_service), - socket_(socket), - peer_(peer), - protocol_(protocol), - peer_endpoint_(peer_endpoint), - enable_connection_aborted_(enable_connection_aborted), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - socket_holder& new_socket() - { - return new_socket_; - } - - void* output_buffer() - { - return output_buffer_; - } - - DWORD address_length() - { - return sizeof(sockaddr_storage_type) + 16; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t /*bytes_transferred*/) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_accept_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - if (owner) - { - typename Protocol::endpoint peer_endpoint; - std::size_t addr_len = peer_endpoint.capacity(); - socket_ops::complete_iocp_accept(o->socket_, - o->output_buffer(), o->address_length(), - peer_endpoint.data(), &addr_len, - o->new_socket_.get(), ec); - - // Restart the accept operation if we got the connection_aborted error - // and the enable_connection_aborted socket option is not set. - if (ec == asio::error::connection_aborted - && !o->enable_connection_aborted_) - { - o->reset(); - o->socket_service_.restart_accept_op(o->socket_, - o->new_socket_, o->protocol_.family(), - o->protocol_.type(), o->protocol_.protocol(), - o->output_buffer(), o->address_length(), o); - p.v = p.p = 0; - return; - } - - // If the socket was successfully accepted, transfer ownership of the - // socket to the peer object. - if (!ec) - { - o->peer_.assign(o->protocol_, - typename Socket::native_handle_type( - o->new_socket_.get(), peer_endpoint), ec); - if (!ec) - o->new_socket_.release(); - } - - // Pass endpoint back to caller. - if (o->peer_endpoint_) - *o->peer_endpoint_ = peer_endpoint; - } - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, ec); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - win_iocp_socket_service_base& socket_service_; - socket_type socket_; - socket_holder new_socket_; - Socket& peer_; - Protocol protocol_; - typename Protocol::endpoint* peer_endpoint_; - unsigned char output_buffer_[(sizeof(sockaddr_storage_type) + 16) * 2]; - bool enable_connection_aborted_; - Handler handler_; -}; - -#if defined(ASIO_HAS_MOVE) - -template -class win_iocp_socket_move_accept_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_move_accept_op); - - win_iocp_socket_move_accept_op( - win_iocp_socket_service_base& socket_service, socket_type socket, - const Protocol& protocol, asio::io_context& peer_io_context, - typename Protocol::endpoint* peer_endpoint, - bool enable_connection_aborted, Handler& handler) - : operation(&win_iocp_socket_move_accept_op::do_complete), - socket_service_(socket_service), - socket_(socket), - peer_(peer_io_context), - protocol_(protocol), - peer_endpoint_(peer_endpoint), - enable_connection_aborted_(enable_connection_aborted), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - socket_holder& new_socket() - { - return new_socket_; - } - - void* output_buffer() - { - return output_buffer_; - } - - DWORD address_length() - { - return sizeof(sockaddr_storage_type) + 16; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t /*bytes_transferred*/) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_move_accept_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - if (owner) - { - typename Protocol::endpoint peer_endpoint; - std::size_t addr_len = peer_endpoint.capacity(); - socket_ops::complete_iocp_accept(o->socket_, - o->output_buffer(), o->address_length(), - peer_endpoint.data(), &addr_len, - o->new_socket_.get(), ec); - - // Restart the accept operation if we got the connection_aborted error - // and the enable_connection_aborted socket option is not set. - if (ec == asio::error::connection_aborted - && !o->enable_connection_aborted_) - { - o->reset(); - o->socket_service_.restart_accept_op(o->socket_, - o->new_socket_, o->protocol_.family(), - o->protocol_.type(), o->protocol_.protocol(), - o->output_buffer(), o->address_length(), o); - p.v = p.p = 0; - return; - } - - // If the socket was successfully accepted, transfer ownership of the - // socket to the peer object. - if (!ec) - { - o->peer_.assign(o->protocol_, - typename Protocol::socket::native_handle_type( - o->new_socket_.get(), peer_endpoint), ec); - if (!ec) - o->new_socket_.release(); - } - - // Pass endpoint back to caller. - if (o->peer_endpoint_) - *o->peer_endpoint_ = peer_endpoint; - } - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::move_binder2 - handler(0, ASIO_MOVE_CAST(Handler)(o->handler_), ec, - ASIO_MOVE_CAST(typename Protocol::socket)(o->peer_)); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - win_iocp_socket_service_base& socket_service_; - socket_type socket_; - socket_holder new_socket_; - typename Protocol::socket peer_; - Protocol protocol_; - typename Protocol::endpoint* peer_endpoint_; - unsigned char output_buffer_[(sizeof(sockaddr_storage_type) + 16) * 2]; - bool enable_connection_aborted_; - Handler handler_; -}; - -#endif // defined(ASIO_HAS_MOVE) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_ACCEPT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_connect_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_connect_op.hpp deleted file mode 100644 index e0c52dc..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_connect_op.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// -// detail/win_iocp_socket_connect_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_SOCKET_CONNECT_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_CONNECT_OP_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_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_socket_connect_op_base : public reactor_op -{ -public: - win_iocp_socket_connect_op_base(socket_type socket, func_type complete_func) - : reactor_op(&win_iocp_socket_connect_op_base::do_perform, complete_func), - socket_(socket), - connect_ex_(false) - { - } - - static status do_perform(reactor_op* base) - { - win_iocp_socket_connect_op_base* o( - static_cast(base)); - - return socket_ops::non_blocking_connect( - o->socket_, o->ec_) ? done : not_done; - } - - socket_type socket_; - bool connect_ex_; -}; - -template -class win_iocp_socket_connect_op : public win_iocp_socket_connect_op_base -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_connect_op); - - win_iocp_socket_connect_op(socket_type socket, Handler& handler) - : win_iocp_socket_connect_op_base(socket, - &win_iocp_socket_connect_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t /*bytes_transferred*/) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_connect_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - if (owner) - { - if (o->connect_ex_) - socket_ops::complete_iocp_connect(o->socket_, ec); - else - ec = o->ec_; - } - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, ec); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_CONNECT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recv_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recv_op.hpp deleted file mode 100644 index 4159540..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// detail/win_iocp_socket_recv_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_SOCKET_RECV_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_RECV_OP_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_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_recv_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_recv_op); - - win_iocp_socket_recv_op(socket_ops::state_type state, - socket_ops::weak_cancel_token_type cancel_token, - const MutableBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_socket_recv_op::do_complete), - state_(state), - cancel_token_(cancel_token), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_recv_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - socket_ops::complete_iocp_recv(o->state_, o->cancel_token_, - buffer_sequence_adapter::all_empty(o->buffers_), - ec, bytes_transferred); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::state_type state_; - socket_ops::weak_cancel_token_type cancel_token_; - MutableBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_RECV_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp deleted file mode 100644 index 843ce5b..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvfrom_op.hpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// detail/win_iocp_socket_recvfrom_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_SOCKET_RECVFROM_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_RECVFROM_OP_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_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_recvfrom_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_recvfrom_op); - - win_iocp_socket_recvfrom_op(Endpoint& endpoint, - socket_ops::weak_cancel_token_type cancel_token, - const MutableBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_socket_recvfrom_op::do_complete), - endpoint_(endpoint), - endpoint_size_(static_cast(endpoint.capacity())), - cancel_token_(cancel_token), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - int& endpoint_size() - { - return endpoint_size_; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_recvfrom_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - socket_ops::complete_iocp_recvfrom(o->cancel_token_, ec); - - // Record the size of the endpoint returned by the operation. - o->endpoint_.resize(o->endpoint_size_); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Endpoint& endpoint_; - int endpoint_size_; - socket_ops::weak_cancel_token_type cancel_token_; - MutableBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_RECVFROM_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp deleted file mode 100644 index 78f36b7..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_recvmsg_op.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/win_iocp_socket_recvmsg_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_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_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" -#include "asio/socket_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_recvmsg_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_recvmsg_op); - - win_iocp_socket_recvmsg_op( - socket_ops::weak_cancel_token_type cancel_token, - const MutableBufferSequence& buffers, - socket_base::message_flags& out_flags, Handler& handler) - : operation(&win_iocp_socket_recvmsg_op::do_complete), - cancel_token_(cancel_token), - buffers_(buffers), - out_flags_(out_flags), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_recvmsg_op* o( - static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - socket_ops::complete_iocp_recvmsg(o->cancel_token_, ec); - o->out_flags_ = 0; - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - MutableBufferSequence buffers_; - socket_base::message_flags& out_flags_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_RECVMSG_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_send_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_send_op.hpp deleted file mode 100644 index e1c7ab9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_send_op.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// detail/win_iocp_socket_send_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_SOCKET_SEND_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_SEND_OP_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_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_send_op : public operation -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_socket_send_op); - - win_iocp_socket_send_op(socket_ops::weak_cancel_token_type cancel_token, - const ConstBufferSequence& buffers, Handler& handler) - : operation(&win_iocp_socket_send_op::do_complete), - cancel_token_(cancel_token), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t bytes_transferred) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_socket_send_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - socket_ops::complete_iocp_send(o->cancel_token_, ec); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, ec, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - ConstBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_SEND_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service.hpp deleted file mode 100644 index 3f01b4d..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service.hpp +++ /dev/null @@ -1,599 +0,0 @@ -// -// detail/win_iocp_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_SOCKET_SERVICE_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_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_IOCP) - -#include -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/select_reactor.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/win_iocp_io_context.hpp" -#include "asio/detail/win_iocp_null_buffers_op.hpp" -#include "asio/detail/win_iocp_socket_accept_op.hpp" -#include "asio/detail/win_iocp_socket_connect_op.hpp" -#include "asio/detail/win_iocp_socket_recvfrom_op.hpp" -#include "asio/detail/win_iocp_socket_send_op.hpp" -#include "asio/detail/win_iocp_socket_service_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_socket_service : - public service_base >, - public win_iocp_socket_service_base -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - class native_handle_type - { - public: - native_handle_type(socket_type s) - : socket_(s), - have_remote_endpoint_(false) - { - } - - native_handle_type(socket_type s, const endpoint_type& ep) - : socket_(s), - have_remote_endpoint_(true), - remote_endpoint_(ep) - { - } - - void operator=(socket_type s) - { - socket_ = s; - have_remote_endpoint_ = false; - remote_endpoint_ = endpoint_type(); - } - - operator socket_type() const - { - return socket_; - } - - bool have_remote_endpoint() const - { - return have_remote_endpoint_; - } - - endpoint_type remote_endpoint() const - { - return remote_endpoint_; - } - - private: - socket_type socket_; - bool have_remote_endpoint_; - endpoint_type remote_endpoint_; - }; - - // The implementation type of the socket. - struct implementation_type : - win_iocp_socket_service_base::base_implementation_type - { - // Default constructor. - implementation_type() - : protocol_(endpoint_type().protocol()), - have_remote_endpoint_(false), - remote_endpoint_() - { - } - - // The protocol associated with the socket. - protocol_type protocol_; - - // Whether we have a cached remote endpoint. - bool have_remote_endpoint_; - - // A cached remote endpoint. - endpoint_type remote_endpoint_; - }; - - // Constructor. - win_iocp_socket_service(asio::io_context& io_context) - : service_base >(io_context), - win_iocp_socket_service_base(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - this->base_shutdown(); - } - - // Move-construct a new socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - - impl.have_remote_endpoint_ = other_impl.have_remote_endpoint_; - other_impl.have_remote_endpoint_ = false; - - impl.remote_endpoint_ = other_impl.remote_endpoint_; - other_impl.remote_endpoint_ = endpoint_type(); - } - - // Move-assign from another socket implementation. - void move_assign(implementation_type& impl, - win_iocp_socket_service_base& other_service, - implementation_type& other_impl) - { - this->base_move_assign(impl, other_service, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - - impl.have_remote_endpoint_ = other_impl.have_remote_endpoint_; - other_impl.have_remote_endpoint_ = false; - - impl.remote_endpoint_ = other_impl.remote_endpoint_; - other_impl.remote_endpoint_ = endpoint_type(); - } - - // Move-construct a new socket implementation from another protocol type. - template - void converting_move_construct(implementation_type& impl, - win_iocp_socket_service&, - typename win_iocp_socket_service< - Protocol1>::implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = protocol_type(other_impl.protocol_); - other_impl.protocol_ = typename Protocol1::endpoint().protocol(); - - impl.have_remote_endpoint_ = other_impl.have_remote_endpoint_; - other_impl.have_remote_endpoint_ = false; - - impl.remote_endpoint_ = other_impl.remote_endpoint_; - other_impl.remote_endpoint_ = typename Protocol1::endpoint(); - } - - // Open a new socket implementation. - asio::error_code open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (!do_open(impl, protocol.family(), - protocol.type(), protocol.protocol(), ec)) - { - impl.protocol_ = protocol; - impl.have_remote_endpoint_ = false; - impl.remote_endpoint_ = endpoint_type(); - } - return ec; - } - - // Assign a native socket to a socket implementation. - asio::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - if (!do_assign(impl, protocol.type(), native_socket, ec)) - { - impl.protocol_ = protocol; - impl.have_remote_endpoint_ = native_socket.have_remote_endpoint(); - impl.remote_endpoint_ = native_socket.remote_endpoint(); - } - return ec; - } - - // Get the native socket representation. - native_handle_type native_handle(implementation_type& impl) - { - if (impl.have_remote_endpoint_) - return native_handle_type(impl.socket_, impl.remote_endpoint_); - return native_handle_type(impl.socket_); - } - - // Bind the socket to the specified local endpoint. - asio::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - socket_ops::bind(impl.socket_, endpoint.data(), endpoint.size(), ec); - return ec; - } - - // Set a socket option. - template - asio::error_code set_option(implementation_type& impl, - const Option& option, asio::error_code& ec) - { - socket_ops::setsockopt(impl.socket_, impl.state_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), option.size(impl.protocol_), ec); - return ec; - } - - // Set a socket option. - template - asio::error_code get_option(const implementation_type& impl, - Option& option, asio::error_code& ec) const - { - std::size_t size = option.size(impl.protocol_); - socket_ops::getsockopt(impl.socket_, impl.state_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), &size, ec); - if (!ec) - option.resize(impl.protocol_, size); - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getsockname(impl.socket_, endpoint.data(), &addr_len, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint = impl.remote_endpoint_; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getpeername(impl.socket_, endpoint.data(), - &addr_len, impl.have_remote_endpoint_, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Disable sends or receives on the socket. - asio::error_code shutdown(base_implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - socket_ops::shutdown(impl.socket_, what, ec); - return ec; - } - - // Send a datagram to the specified endpoint. Returns the number of bytes - // sent. - template - size_t send_to(implementation_type& impl, const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_sendto(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, - destination.data(), destination.size(), ec); - } - - // Wait until data can be sent without blocking. - size_t send_to(implementation_type& impl, const null_buffers&, - const endpoint_type&, socket_base::message_flags, - asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_send_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, buffers, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_send_to")); - - buffer_sequence_adapter bufs(buffers); - - start_send_to_op(impl, bufs.buffers(), bufs.count(), - destination.data(), static_cast(destination.size()), - flags, p.p); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send_to(implementation_type& impl, const null_buffers&, - const endpoint_type&, socket_base::message_flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_send_to(null_buffers)")); - - start_reactor_op(impl, select_reactor::write_op, p.p); - p.v = p.p = 0; - } - - // Receive a datagram with the endpoint of the sender. Returns the number of - // bytes received. - template - size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - std::size_t addr_len = sender_endpoint.capacity(); - std::size_t bytes_recvd = socket_ops::sync_recvfrom( - impl.socket_, impl.state_, bufs.buffers(), bufs.count(), - flags, sender_endpoint.data(), &addr_len, ec); - - if (!ec) - sender_endpoint.resize(addr_len); - - return bytes_recvd; - } - - // Wait until data can be received without blocking. - size_t receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received and - // the sender_endpoint object must both be valid for the lifetime of the - // asynchronous operation. - template - void async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endp, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_recvfrom_op< - MutableBufferSequence, endpoint_type, Handler> op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(sender_endp, impl.cancel_token_, buffers, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive_from")); - - buffer_sequence_adapter bufs(buffers); - - start_receive_from_op(impl, bufs.buffers(), bufs.count(), - sender_endp.data(), flags, &p.p->endpoint_size(), p.p); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive_from(null_buffers)")); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - start_null_buffers_receive_op(impl, flags, p.p); - p.v = p.p = 0; - } - - // Accept a new connection. - template - asio::error_code accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, asio::error_code& ec) - { - // We cannot accept a socket that is already open. - if (peer.is_open()) - { - ec = asio::error::already_open; - return ec; - } - - std::size_t addr_len = peer_endpoint ? peer_endpoint->capacity() : 0; - socket_holder new_socket(socket_ops::sync_accept(impl.socket_, - impl.state_, peer_endpoint ? peer_endpoint->data() : 0, - peer_endpoint ? &addr_len : 0, ec)); - - // On success, assign new connection to peer socket object. - if (new_socket.get() != invalid_socket) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return ec; - } - -#if defined(ASIO_HAS_MOVE) - // Accept a new connection. - typename Protocol::socket accept(implementation_type& impl, - io_context* peer_io_context, endpoint_type* peer_endpoint, - asio::error_code& ec) - { - typename Protocol::socket peer( - peer_io_context ? *peer_io_context : io_context_); - - std::size_t addr_len = peer_endpoint ? peer_endpoint->capacity() : 0; - socket_holder new_socket(socket_ops::sync_accept(impl.socket_, - impl.state_, peer_endpoint ? peer_endpoint->data() : 0, - peer_endpoint ? &addr_len : 0, ec)); - - // On success, assign new connection to peer socket object. - if (new_socket.get() != invalid_socket) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return peer; - } -#endif // defined(ASIO_HAS_MOVE) - - // Start an asynchronous accept. The peer and peer_endpoint objects - // must be valid until the accept's handler is invoked. - template - void async_accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_accept_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - bool enable_connection_aborted = - (impl.state_ & socket_ops::enable_connection_aborted) != 0; - p.p = new (p.v) op(*this, impl.socket_, peer, impl.protocol_, - peer_endpoint, enable_connection_aborted, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_accept")); - - start_accept_op(impl, peer.is_open(), p.p->new_socket(), - impl.protocol_.family(), impl.protocol_.type(), - impl.protocol_.protocol(), p.p->output_buffer(), - p.p->address_length(), p.p); - p.v = p.p = 0; - } - -#if defined(ASIO_HAS_MOVE) - // Start an asynchronous accept. The peer and peer_endpoint objects - // must be valid until the accept's handler is invoked. - template - void async_accept(implementation_type& impl, - asio::io_context* peer_io_context, - endpoint_type* peer_endpoint, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_move_accept_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - bool enable_connection_aborted = - (impl.state_ & socket_ops::enable_connection_aborted) != 0; - p.p = new (p.v) op(*this, impl.socket_, impl.protocol_, - peer_io_context ? *peer_io_context : io_context_, - peer_endpoint, enable_connection_aborted, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_accept")); - - start_accept_op(impl, false, p.p->new_socket(), - impl.protocol_.family(), impl.protocol_.type(), - impl.protocol_.protocol(), p.p->output_buffer(), - p.p->address_length(), p.p); - p.v = p.p = 0; - } -#endif // defined(ASIO_HAS_MOVE) - - // Connect the socket to the specified endpoint. - asio::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - socket_ops::sync_connect(impl.socket_, - peer_endpoint.data(), peer_endpoint.size(), ec); - return ec; - } - - // Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_connect_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.socket_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_connect")); - - start_connect_op(impl, impl.protocol_.family(), impl.protocol_.type(), - peer_endpoint.data(), static_cast(peer_endpoint.size()), p.p); - p.v = p.p = 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service_base.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service_base.hpp deleted file mode 100644 index ef1d718..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_socket_service_base.hpp +++ /dev/null @@ -1,591 +0,0 @@ -// -// detail/win_iocp_socket_service_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_SOCKET_SERVICE_BASE_HPP -#define ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_BASE_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_IOCP) - -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/operation.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/select_reactor.hpp" -#include "asio/detail/socket_holder.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/win_iocp_io_context.hpp" -#include "asio/detail/win_iocp_null_buffers_op.hpp" -#include "asio/detail/win_iocp_socket_connect_op.hpp" -#include "asio/detail/win_iocp_socket_send_op.hpp" -#include "asio/detail/win_iocp_socket_recv_op.hpp" -#include "asio/detail/win_iocp_socket_recvmsg_op.hpp" -#include "asio/detail/win_iocp_wait_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_iocp_socket_service_base -{ -public: - // The implementation type of the socket. - struct base_implementation_type - { - // The native socket representation. - socket_type socket_; - - // The current state of the socket. - socket_ops::state_type state_; - - // We use a shared pointer as a cancellation token here to work around the - // broken Windows support for cancellation. MSDN says that when you call - // closesocket any outstanding WSARecv or WSASend operations will complete - // with the error ERROR_OPERATION_ABORTED. In practice they complete with - // ERROR_NETNAME_DELETED, which means you can't tell the difference between - // a local cancellation and the socket being hard-closed by the peer. - socket_ops::shared_cancel_token_type cancel_token_; - - // Per-descriptor data used by the reactor. - select_reactor::per_descriptor_data reactor_data_; - -#if defined(ASIO_ENABLE_CANCELIO) - // The ID of the thread from which it is safe to cancel asynchronous - // operations. 0 means no asynchronous operations have been started yet. - // ~0 means asynchronous operations have been started from more than one - // thread, and cancellation is not supported for the socket. - DWORD safe_cancellation_thread_id_; -#endif // defined(ASIO_ENABLE_CANCELIO) - - // Pointers to adjacent socket implementations in linked list. - base_implementation_type* next_; - base_implementation_type* prev_; - }; - - // Constructor. - ASIO_DECL win_iocp_socket_service_base( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void base_shutdown(); - - // Construct a new socket implementation. - ASIO_DECL void construct(base_implementation_type& impl); - - // Move-construct a new socket implementation. - ASIO_DECL void base_move_construct(base_implementation_type& impl, - base_implementation_type& other_impl); - - // Move-assign from another socket implementation. - ASIO_DECL void base_move_assign(base_implementation_type& impl, - win_iocp_socket_service_base& other_service, - base_implementation_type& other_impl); - - // Destroy a socket implementation. - ASIO_DECL void destroy(base_implementation_type& impl); - - // Determine whether the socket is open. - bool is_open(const base_implementation_type& impl) const - { - return impl.socket_ != invalid_socket; - } - - // Destroy a socket implementation. - ASIO_DECL asio::error_code close( - base_implementation_type& impl, asio::error_code& ec); - - // Release ownership of the socket. - ASIO_DECL socket_type release( - base_implementation_type& impl, asio::error_code& ec); - - // Cancel all operations associated with the socket. - ASIO_DECL asio::error_code cancel( - base_implementation_type& impl, asio::error_code& ec); - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const base_implementation_type& impl, - asio::error_code& ec) const - { - return socket_ops::sockatmark(impl.socket_, ec); - } - - // Determine the number of bytes available for reading. - std::size_t available(const base_implementation_type& impl, - asio::error_code& ec) const - { - return socket_ops::available(impl.socket_, ec); - } - - // Place the socket into the state where it will listen for new connections. - asio::error_code listen(base_implementation_type& impl, - int backlog, asio::error_code& ec) - { - socket_ops::listen(impl.socket_, backlog, ec); - return ec; - } - - // Perform an IO control command on the socket. - template - asio::error_code io_control(base_implementation_type& impl, - IO_Control_Command& command, asio::error_code& ec) - { - socket_ops::ioctl(impl.socket_, impl.state_, command.name(), - static_cast(command.data()), ec); - return ec; - } - - // Gets the non-blocking mode of the socket. - bool non_blocking(const base_implementation_type& impl) const - { - return (impl.state_ & socket_ops::user_set_non_blocking) != 0; - } - - // Sets the non-blocking mode of the socket. - asio::error_code non_blocking(base_implementation_type& impl, - bool mode, asio::error_code& ec) - { - socket_ops::set_user_non_blocking(impl.socket_, impl.state_, mode, ec); - return ec; - } - - // Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const base_implementation_type& impl) const - { - return (impl.state_ & socket_ops::internal_non_blocking) != 0; - } - - // Sets the non-blocking mode of the native socket implementation. - asio::error_code native_non_blocking(base_implementation_type& impl, - bool mode, asio::error_code& ec) - { - socket_ops::set_internal_non_blocking(impl.socket_, impl.state_, mode, ec); - return ec; - } - - // Wait for the socket to become ready to read, ready to write, or to have - // pending error conditions. - asio::error_code wait(base_implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - switch (w) - { - case socket_base::wait_read: - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - break; - case socket_base::wait_write: - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - break; - case socket_base::wait_error: - socket_ops::poll_error(impl.socket_, impl.state_, -1, ec); - break; - default: - ec = asio::error::invalid_argument; - break; - } - - return ec; - } - - // Asynchronously wait for the socket to become ready to read, ready to - // write, or to have pending error conditions. - template - void async_wait(base_implementation_type& impl, - socket_base::wait_type w, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_wait_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_wait")); - - switch (w) - { - case socket_base::wait_read: - start_null_buffers_receive_op(impl, 0, p.p); - break; - case socket_base::wait_write: - start_reactor_op(impl, select_reactor::write_op, p.p); - break; - case socket_base::wait_error: - start_reactor_op(impl, select_reactor::except_op, p.p); - break; - default: - p.p->ec_ = asio::error::invalid_argument; - iocp_service_.post_immediate_completion(p.p, is_continuation); - break; - } - - p.v = p.p = 0; - } - - // Send the given data to the peer. Returns the number of bytes sent. - template - size_t send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_send(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, bufs.all_empty(), ec); - } - - // Wait until data can be sent without blocking. - size_t send(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_send_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, buffers, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_send")); - - buffer_sequence_adapter bufs(buffers); - - start_send_op(impl, bufs.buffers(), bufs.count(), flags, - (impl.state_ & socket_ops::stream_oriented) != 0 && bufs.all_empty(), - p.p); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_send(null_buffers)")); - - start_reactor_op(impl, select_reactor::write_op, p.p); - p.v = p.p = 0; - } - - // Receive some data from the peer. Returns the number of bytes received. - template - size_t receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_recv(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), flags, bufs.all_empty(), ec); - } - - // Wait until data can be received without blocking. - size_t receive(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_recv_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.state_, impl.cancel_token_, buffers, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive")); - - buffer_sequence_adapter bufs(buffers); - - start_receive_op(impl, bufs.buffers(), bufs.count(), flags, - (impl.state_ & socket_ops::stream_oriented) != 0 && bufs.all_empty(), - p.p); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive(base_implementation_type& impl, const null_buffers&, - socket_base::message_flags flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive(null_buffers)")); - - start_null_buffers_receive_op(impl, flags, p.p); - p.v = p.p = 0; - } - - // Receive some data with associated flags. Returns the number of bytes - // received. - template - size_t receive_with_flags(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - buffer_sequence_adapter bufs(buffers); - - return socket_ops::sync_recvmsg(impl.socket_, impl.state_, - bufs.buffers(), bufs.count(), in_flags, out_flags, ec); - } - - // Wait until data can be received without blocking. - size_t receive_with_flags(base_implementation_type& impl, - const null_buffers&, socket_base::message_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, impl.state_, -1, ec); - - // Clear out_flags, since we cannot give it any other sensible value when - // performing a null_buffers operation. - out_flags = 0; - - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive_with_flags(base_implementation_type& impl, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_socket_recvmsg_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, buffers, out_flags, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive_with_flags")); - - buffer_sequence_adapter bufs(buffers); - - start_receive_op(impl, bufs.buffers(), bufs.count(), in_flags, false, p.p); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive_with_flags(base_implementation_type& impl, - const null_buffers&, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef win_iocp_null_buffers_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(impl.cancel_token_, handler); - - ASIO_HANDLER_CREATION((io_context_, *p.p, "socket", - &impl, impl.socket_, "async_receive_with_flags(null_buffers)")); - - // Reset out_flags since it can be given no sensible value at this time. - out_flags = 0; - - start_null_buffers_receive_op(impl, in_flags, p.p); - p.v = p.p = 0; - } - - // Helper function to restart an asynchronous accept operation. - ASIO_DECL void restart_accept_op(socket_type s, - socket_holder& new_socket, int family, int type, int protocol, - void* output_buffer, DWORD address_length, operation* op); - -protected: - // Open a new socket implementation. - ASIO_DECL asio::error_code do_open( - base_implementation_type& impl, int family, int type, - int protocol, asio::error_code& ec); - - // Assign a native socket to a socket implementation. - ASIO_DECL asio::error_code do_assign( - base_implementation_type& impl, int type, - socket_type native_socket, asio::error_code& ec); - - // Helper function to start an asynchronous send operation. - ASIO_DECL void start_send_op(base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - socket_base::message_flags flags, bool noop, operation* op); - - // Helper function to start an asynchronous send_to operation. - ASIO_DECL void start_send_to_op(base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - const socket_addr_type* addr, int addrlen, - socket_base::message_flags flags, operation* op); - - // Helper function to start an asynchronous receive operation. - ASIO_DECL void start_receive_op(base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, - socket_base::message_flags flags, bool noop, operation* op); - - // Helper function to start an asynchronous null_buffers receive operation. - ASIO_DECL void start_null_buffers_receive_op( - base_implementation_type& impl, - socket_base::message_flags flags, reactor_op* op); - - // Helper function to start an asynchronous receive_from operation. - ASIO_DECL void start_receive_from_op(base_implementation_type& impl, - WSABUF* buffers, std::size_t buffer_count, socket_addr_type* addr, - socket_base::message_flags flags, int* addrlen, operation* op); - - // Helper function to start an asynchronous accept operation. - ASIO_DECL void start_accept_op(base_implementation_type& impl, - bool peer_is_open, socket_holder& new_socket, int family, int type, - int protocol, void* output_buffer, DWORD address_length, operation* op); - - // Start an asynchronous read or write operation using the reactor. - ASIO_DECL void start_reactor_op(base_implementation_type& impl, - int op_type, reactor_op* op); - - // Start the asynchronous connect operation using the reactor. - ASIO_DECL void start_connect_op(base_implementation_type& impl, - int family, int type, const socket_addr_type* remote_addr, - std::size_t remote_addrlen, win_iocp_socket_connect_op_base* op); - - // Helper function to close a socket when the associated object is being - // destroyed. - ASIO_DECL void close_for_destruction(base_implementation_type& impl); - - // Update the ID of the thread from which cancellation is safe. - ASIO_DECL void update_cancellation_thread_id( - base_implementation_type& impl); - - // Helper function to get the reactor. If no reactor has been created yet, a - // new one is obtained from the io_context and a pointer to it is cached in - // this service. - ASIO_DECL select_reactor& get_reactor(); - - // The type of a ConnectEx function pointer, as old SDKs may not provide it. - typedef BOOL (PASCAL *connect_ex_fn)(SOCKET, - const socket_addr_type*, int, void*, DWORD, DWORD*, OVERLAPPED*); - - // Helper function to get the ConnectEx pointer. If no ConnectEx pointer has - // been obtained yet, one is obtained using WSAIoctl and the pointer is - // cached. Returns a null pointer if ConnectEx is not available. - ASIO_DECL connect_ex_fn get_connect_ex( - base_implementation_type& impl, int type); - - // The type of a NtSetInformationFile function pointer. - typedef LONG (NTAPI *nt_set_info_fn)(HANDLE, ULONG_PTR*, void*, ULONG, ULONG); - - // Helper function to get the NtSetInformationFile function pointer. If no - // NtSetInformationFile pointer has been obtained yet, one is obtained using - // GetProcAddress and the pointer is cached. Returns a null pointer if - // NtSetInformationFile is not available. - ASIO_DECL nt_set_info_fn get_nt_set_info(); - - // Helper function to emulate InterlockedCompareExchangePointer functionality - // for: - // - very old Platform SDKs; and - // - platform SDKs where MSVC's /Wp64 option causes spurious warnings. - ASIO_DECL void* interlocked_compare_exchange_pointer( - void** dest, void* exch, void* cmp); - - // Helper function to emulate InterlockedExchangePointer functionality for: - // - very old Platform SDKs; and - // - platform SDKs where MSVC's /Wp64 option causes spurious warnings. - ASIO_DECL void* interlocked_exchange_pointer(void** dest, void* val); - - // The io_context used to obtain the reactor, if required. - asio::io_context& io_context_; - - // The IOCP service used for running asynchronous operations and dispatching - // handlers. - win_iocp_io_context& iocp_service_; - - // The reactor used for performing connect operations. This object is created - // only if needed. - select_reactor* reactor_; - - // Pointer to ConnectEx implementation. - void* connect_ex_; - - // Pointer to NtSetInformationFile implementation. - void* nt_set_info_; - - // Mutex to protect access to the linked list of implementations. - asio::detail::mutex mutex_; - - // The head of a linked list of all implementations. - base_implementation_type* impl_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_iocp_socket_service_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_thread_info.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_thread_info.hpp deleted file mode 100644 index 13181e2..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_thread_info.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// detail/win_iocp_thread_info.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_THREAD_INFO_HPP -#define ASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/thread_info_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct win_iocp_thread_info : public thread_info_base -{ -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WIN_IOCP_THREAD_INFO_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_iocp_wait_op.hpp b/Sources/Vendor/asio/include/asio/detail/win_iocp_wait_op.hpp deleted file mode 100644 index 472eea3..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_iocp_wait_op.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// detail/win_iocp_wait_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_IOCP_WAIT_OP_HPP -#define ASIO_DETAIL_WIN_IOCP_WAIT_OP_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_IOCP) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/reactor_op.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class win_iocp_wait_op : public reactor_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(win_iocp_wait_op); - - win_iocp_wait_op(socket_ops::weak_cancel_token_type cancel_token, - Handler& handler) - : reactor_op(&win_iocp_wait_op::do_perform, - &win_iocp_wait_op::do_complete), - cancel_token_(cancel_token), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static status do_perform(reactor_op*) - { - return done; - } - - static void do_complete(void* owner, operation* base, - const asio::error_code& result_ec, - std::size_t /*bytes_transferred*/) - { - asio::error_code ec(result_ec); - - // Take ownership of the operation object. - win_iocp_wait_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // The reactor may have stored a result in the operation object. - if (o->ec_) - ec = o->ec_; - - // Map non-portable errors to their portable counterparts. - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (o->cancel_token_.expired()) - ec = asio::error::operation_aborted; - else - ec = asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = asio::error::connection_refused; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, ec); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - socket_ops::weak_cancel_token_type cancel_token_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_IOCP) - -#endif // ASIO_DETAIL_WIN_IOCP_WAIT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/win_mutex.hpp deleted file mode 100644 index ce52a2f..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_mutex.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// detail/win_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_MUTEX_HPP -#define ASIO_DETAIL_WIN_MUTEX_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_WINDOWS) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_lock.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_mutex - : private noncopyable -{ -public: - typedef asio::detail::scoped_lock scoped_lock; - - // Constructor. - ASIO_DECL win_mutex(); - - // Destructor. - ~win_mutex() - { - ::DeleteCriticalSection(&crit_section_); - } - - // Lock the mutex. - void lock() - { - ::EnterCriticalSection(&crit_section_); - } - - // Unlock the mutex. - void unlock() - { - ::LeaveCriticalSection(&crit_section_); - } - -private: - // Initialisation must be performed in a separate function to the constructor - // since the compiler does not support the use of structured exceptions and - // C++ exceptions in the same function. - ASIO_DECL int do_init(); - - ::CRITICAL_SECTION crit_section_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_mutex.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_WIN_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_object_handle_service.hpp b/Sources/Vendor/asio/include/asio/detail/win_object_handle_service.hpp deleted file mode 100644 index 1d8abc9..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_object_handle_service.hpp +++ /dev/null @@ -1,184 +0,0 @@ -// -// detail/win_object_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// 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_DETAIL_WIN_OBJECT_HANDLE_SERVICE_HPP -#define ASIO_DETAIL_WIN_OBJECT_HANDLE_SERVICE_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_WINDOWS_OBJECT_HANDLE) - -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/wait_handler.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class win_object_handle_service : - public service_base -{ -public: - // The native type of an object handle. - typedef HANDLE native_handle_type; - - // The implementation type of the object handle. - class implementation_type - { - public: - // Default constructor. - implementation_type() - : handle_(INVALID_HANDLE_VALUE), - wait_handle_(INVALID_HANDLE_VALUE), - owner_(0), - next_(0), - prev_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class win_object_handle_service; - - // The native object handle representation. May be accessed or modified - // without locking the mutex. - native_handle_type handle_; - - // The handle used to unregister the wait operation. The mutex must be - // locked when accessing or modifying this member. - HANDLE wait_handle_; - - // The operations waiting on the object handle. If there is a registered - // wait then the mutex must be locked when accessing or modifying this - // member - op_queue op_queue_; - - // The service instance that owns the object handle implementation. - win_object_handle_service* owner_; - - // Pointers to adjacent handle implementations in linked list. The mutex - // must be locked when accessing or modifying these members. - implementation_type* next_; - implementation_type* prev_; - }; - - // Constructor. - ASIO_DECL win_object_handle_service( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Construct a new handle implementation. - ASIO_DECL void construct(implementation_type& impl); - - // Move-construct a new handle implementation. - ASIO_DECL void move_construct(implementation_type& impl, - implementation_type& other_impl); - - // Move-assign from another handle implementation. - ASIO_DECL void move_assign(implementation_type& impl, - win_object_handle_service& other_service, - implementation_type& other_impl); - - // Destroy a handle implementation. - ASIO_DECL void destroy(implementation_type& impl); - - // Assign a native handle to a handle implementation. - ASIO_DECL asio::error_code assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec); - - // Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return impl.handle_ != INVALID_HANDLE_VALUE && impl.handle_ != 0; - } - - // Destroy a handle implementation. - ASIO_DECL asio::error_code close(implementation_type& impl, - asio::error_code& ec); - - // Get the native handle representation. - native_handle_type native_handle(const implementation_type& impl) const - { - return impl.handle_; - } - - // Cancel all operations associated with the handle. - ASIO_DECL asio::error_code cancel(implementation_type& impl, - asio::error_code& ec); - - // Perform a synchronous wait for the object to enter a signalled state. - ASIO_DECL void wait(implementation_type& impl, - asio::error_code& ec); - - /// Start an asynchronous wait. - template - void async_wait(implementation_type& impl, Handler& handler) - { - // Allocate and construct an operation to wrap the handler. - typedef wait_handler op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((io_context_.context(), *p.p, "object_handle", - &impl, reinterpret_cast(impl.wait_handle_), "async_wait")); - - start_wait_op(impl, p.p); - p.v = p.p = 0; - } - -private: - // Helper function to start an asynchronous wait operation. - ASIO_DECL void start_wait_op(implementation_type& impl, wait_op* op); - - // Helper function to register a wait operation. - ASIO_DECL void register_wait_callback( - implementation_type& impl, mutex::scoped_lock& lock); - - // Callback function invoked when the registered wait completes. - static ASIO_DECL VOID CALLBACK wait_callback( - PVOID param, BOOLEAN timeout); - - // The io_context implementation used to post completions. - io_context_impl& io_context_; - - // Mutex to protect access to internal state. - mutex mutex_; - - // The head of a linked list of all implementations. - implementation_type* impl_list_; - - // Flag to indicate that the dispatcher has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_object_handle_service.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - -#endif // ASIO_DETAIL_WIN_OBJECT_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_static_mutex.hpp b/Sources/Vendor/asio/include/asio/detail/win_static_mutex.hpp deleted file mode 100644 index b169688..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_static_mutex.hpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// detail/win_static_mutex.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_STATIC_MUTEX_HPP -#define ASIO_DETAIL_WIN_STATIC_MUTEX_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_WINDOWS) - -#include "asio/detail/scoped_lock.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct win_static_mutex -{ - typedef asio::detail::scoped_lock scoped_lock; - - // Initialise the mutex. - ASIO_DECL void init(); - - // Initialisation must be performed in a separate function to the "public" - // init() function since the compiler does not support the use of structured - // exceptions and C++ exceptions in the same function. - ASIO_DECL int do_init(); - - // Lock the mutex. - void lock() - { - ::EnterCriticalSection(&crit_section_); - } - - // Unlock the mutex. - void unlock() - { - ::LeaveCriticalSection(&crit_section_); - } - - bool initialised_; - ::CRITICAL_SECTION crit_section_; -}; - -#if defined(UNDER_CE) -# define ASIO_WIN_STATIC_MUTEX_INIT { false, { 0, 0, 0, 0, 0 } } -#else // defined(UNDER_CE) -# define ASIO_WIN_STATIC_MUTEX_INIT { false, { 0, 0, 0, 0, 0, 0 } } -#endif // defined(UNDER_CE) - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_static_mutex.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_WIN_STATIC_MUTEX_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_thread.hpp b/Sources/Vendor/asio/include/asio/detail/win_thread.hpp deleted file mode 100644 index 8b28a90..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_thread.hpp +++ /dev/null @@ -1,147 +0,0 @@ -// -// detail/win_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_THREAD_HPP -#define ASIO_DETAIL_WIN_THREAD_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_WINDOWS) \ - && !defined(ASIO_WINDOWS_APP) \ - && !defined(UNDER_CE) - -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -ASIO_DECL unsigned int __stdcall win_thread_function(void* arg); - -#if defined(WINVER) && (WINVER < 0x0500) -ASIO_DECL void __stdcall apc_function(ULONG data); -#else -ASIO_DECL void __stdcall apc_function(ULONG_PTR data); -#endif - -template -class win_thread_base -{ -public: - static bool terminate_threads() - { - return ::InterlockedExchangeAdd(&terminate_threads_, 0) != 0; - } - - static void set_terminate_threads(bool b) - { - ::InterlockedExchange(&terminate_threads_, b ? 1 : 0); - } - -private: - static long terminate_threads_; -}; - -template -long win_thread_base::terminate_threads_ = 0; - -class win_thread - : private noncopyable, - public win_thread_base -{ -public: - // Constructor. - template - win_thread(Function f, unsigned int stack_size = 0) - : thread_(0), - exit_event_(0) - { - start_thread(new func(f), stack_size); - } - - // Destructor. - ASIO_DECL ~win_thread(); - - // Wait for the thread to exit. - ASIO_DECL void join(); - - // Get number of CPUs. - ASIO_DECL static std::size_t hardware_concurrency(); - -private: - friend ASIO_DECL unsigned int __stdcall win_thread_function(void* arg); - -#if defined(WINVER) && (WINVER < 0x0500) - friend ASIO_DECL void __stdcall apc_function(ULONG); -#else - friend ASIO_DECL void __stdcall apc_function(ULONG_PTR); -#endif - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - ::HANDLE entry_event_; - ::HANDLE exit_event_; - }; - - struct auto_func_base_ptr - { - func_base* ptr; - ~auto_func_base_ptr() { delete ptr; } - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ASIO_DECL void start_thread(func_base* arg, unsigned int stack_size); - - ::HANDLE thread_; - ::HANDLE exit_event_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_thread.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - // && !defined(ASIO_WINDOWS_APP) - // && !defined(UNDER_CE) - -#endif // ASIO_DETAIL_WIN_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/win_tss_ptr.hpp b/Sources/Vendor/asio/include/asio/detail/win_tss_ptr.hpp deleted file mode 100644 index 4207108..0000000 --- a/Sources/Vendor/asio/include/asio/detail/win_tss_ptr.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// detail/win_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WIN_TSS_PTR_HPP -#define ASIO_DETAIL_WIN_TSS_PTR_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_WINDOWS) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -// Helper function to create thread-specific storage. -ASIO_DECL DWORD win_tss_ptr_create(); - -template -class win_tss_ptr - : private noncopyable -{ -public: - // Constructor. - win_tss_ptr() - : tss_key_(win_tss_ptr_create()) - { - } - - // Destructor. - ~win_tss_ptr() - { - ::TlsFree(tss_key_); - } - - // Get the value. - operator T*() const - { - return static_cast(::TlsGetValue(tss_key_)); - } - - // Set the value. - void operator=(T* value) - { - ::TlsSetValue(tss_key_, value); - } - -private: - // Thread-specific storage to allow unlocked access to determine whether a - // thread is a member of the pool. - DWORD tss_key_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/win_tss_ptr.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) - -#endif // ASIO_DETAIL_WIN_TSS_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winapp_thread.hpp b/Sources/Vendor/asio/include/asio/detail/winapp_thread.hpp deleted file mode 100644 index 69dcf08..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winapp_thread.hpp +++ /dev/null @@ -1,124 +0,0 @@ -// -// detail/winapp_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINAPP_THREAD_HPP -#define ASIO_DETAIL_WINAPP_THREAD_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_WINDOWS) && defined(ASIO_WINDOWS_APP) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -DWORD WINAPI winapp_thread_function(LPVOID arg); - -class winapp_thread - : private noncopyable -{ -public: - // Constructor. - template - winapp_thread(Function f, unsigned int = 0) - { - scoped_ptr arg(new func(f)); - DWORD thread_id = 0; - thread_ = ::CreateThread(0, 0, winapp_thread_function, - arg.get(), 0, &thread_id); - if (!thread_) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread"); - } - arg.release(); - } - - // Destructor. - ~winapp_thread() - { - ::CloseHandle(thread_); - } - - // Wait for the thread to exit. - void join() - { - ::WaitForSingleObjectEx(thread_, INFINITE, false); - } - - // Get number of CPUs. - static std::size_t hardware_concurrency() - { - SYSTEM_INFO system_info; - ::GetNativeSystemInfo(&system_info); - return system_info.dwNumberOfProcessors; - } - -private: - friend DWORD WINAPI winapp_thread_function(LPVOID arg); - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ::HANDLE thread_; -}; - -inline DWORD WINAPI winapp_thread_function(LPVOID arg) -{ - scoped_ptr func( - static_cast(arg)); - func->run(); - return 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) && defined(ASIO_WINDOWS_APP) - -#endif // ASIO_DETAIL_WINAPP_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/wince_thread.hpp b/Sources/Vendor/asio/include/asio/detail/wince_thread.hpp deleted file mode 100644 index a2863f6..0000000 --- a/Sources/Vendor/asio/include/asio/detail/wince_thread.hpp +++ /dev/null @@ -1,124 +0,0 @@ -// -// detail/wince_thread.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINCE_THREAD_HPP -#define ASIO_DETAIL_WINCE_THREAD_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_WINDOWS) && defined(UNDER_CE) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -DWORD WINAPI wince_thread_function(LPVOID arg); - -class wince_thread - : private noncopyable -{ -public: - // Constructor. - template - wince_thread(Function f, unsigned int = 0) - { - scoped_ptr arg(new func(f)); - DWORD thread_id = 0; - thread_ = ::CreateThread(0, 0, wince_thread_function, - arg.get(), 0, &thread_id); - if (!thread_) - { - DWORD last_error = ::GetLastError(); - asio::error_code ec(last_error, - asio::error::get_system_category()); - asio::detail::throw_error(ec, "thread"); - } - arg.release(); - } - - // Destructor. - ~wince_thread() - { - ::CloseHandle(thread_); - } - - // Wait for the thread to exit. - void join() - { - ::WaitForSingleObject(thread_, INFINITE); - } - - // Get number of CPUs. - static std::size_t hardware_concurrency() - { - SYSTEM_INFO system_info; - ::GetSystemInfo(&system_info); - return system_info.dwNumberOfProcessors; - } - -private: - friend DWORD WINAPI wince_thread_function(LPVOID arg); - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ::HANDLE thread_; -}; - -inline DWORD WINAPI wince_thread_function(LPVOID arg) -{ - scoped_ptr func( - static_cast(arg)); - func->run(); - return 0; -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS) && defined(UNDER_CE) - -#endif // ASIO_DETAIL_WINCE_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_async_manager.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_async_manager.hpp deleted file mode 100644 index e22ad52..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_async_manager.hpp +++ /dev/null @@ -1,294 +0,0 @@ -// -// detail/winrt_async_manager.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_ASYNC_MANAGER_HPP -#define ASIO_DETAIL_WINRT_ASYNC_MANAGER_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_WINDOWS_RUNTIME) - -#include -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winrt_async_manager - : public asio::detail::service_base -{ -public: - // Constructor. - winrt_async_manager(asio::io_context& io_context) - : asio::detail::service_base(io_context), - io_context_(use_service(io_context)), - outstanding_ops_(1) - { - } - - // Destructor. - ~winrt_async_manager() - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - if (--outstanding_ops_ > 0) - { - // Block until last operation is complete. - std::future f = promise_.get_future(); - f.wait(); - } - } - - void sync(Windows::Foundation::IAsyncAction^ action, - asio::error_code& ec) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto promise = std::make_shared>(); - auto future = promise->get_future(); - - action->Completed = ref new AsyncActionCompletedHandler( - [promise](IAsyncAction^ action, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - promise->set_value(asio::error::operation_aborted); - break; - case AsyncStatus::Error: - case AsyncStatus::Completed: - default: - asio::error_code ec( - action->ErrorCode.Value, - asio::system_category()); - promise->set_value(ec); - break; - } - }); - - ec = future.get(); - } - - template - TResult sync(Windows::Foundation::IAsyncOperation^ operation, - asio::error_code& ec) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto promise = std::make_shared>(); - auto future = promise->get_future(); - - operation->Completed = ref new AsyncOperationCompletedHandler( - [promise](IAsyncOperation^ operation, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - promise->set_value(asio::error::operation_aborted); - break; - case AsyncStatus::Error: - case AsyncStatus::Completed: - default: - asio::error_code ec( - operation->ErrorCode.Value, - asio::system_category()); - promise->set_value(ec); - break; - } - }); - - ec = future.get(); - return operation->GetResults(); - } - - template - TResult sync( - Windows::Foundation::IAsyncOperationWithProgress< - TResult, TProgress>^ operation, - asio::error_code& ec) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto promise = std::make_shared>(); - auto future = promise->get_future(); - - operation->Completed - = ref new AsyncOperationWithProgressCompletedHandler( - [promise](IAsyncOperationWithProgress^ operation, - AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - promise->set_value(asio::error::operation_aborted); - break; - case AsyncStatus::Started: - break; - case AsyncStatus::Error: - case AsyncStatus::Completed: - default: - asio::error_code ec( - operation->ErrorCode.Value, - asio::system_category()); - promise->set_value(ec); - break; - } - }); - - ec = future.get(); - return operation->GetResults(); - } - - void async(Windows::Foundation::IAsyncAction^ action, - winrt_async_op* handler) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto on_completed = ref new AsyncActionCompletedHandler( - [this, handler](IAsyncAction^ action, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - handler->ec_ = asio::error::operation_aborted; - break; - case AsyncStatus::Started: - return; - case AsyncStatus::Completed: - case AsyncStatus::Error: - default: - handler->ec_ = asio::error_code( - action->ErrorCode.Value, - asio::system_category()); - break; - } - io_context_.post_deferred_completion(handler); - if (--outstanding_ops_ == 0) - promise_.set_value(); - }); - - io_context_.work_started(); - ++outstanding_ops_; - action->Completed = on_completed; - } - - template - void async(Windows::Foundation::IAsyncOperation^ operation, - winrt_async_op* handler) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto on_completed = ref new AsyncOperationCompletedHandler( - [this, handler](IAsyncOperation^ operation, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - handler->ec_ = asio::error::operation_aborted; - break; - case AsyncStatus::Started: - return; - case AsyncStatus::Completed: - handler->result_ = operation->GetResults(); - // Fall through. - case AsyncStatus::Error: - default: - handler->ec_ = asio::error_code( - operation->ErrorCode.Value, - asio::system_category()); - break; - } - io_context_.post_deferred_completion(handler); - if (--outstanding_ops_ == 0) - promise_.set_value(); - }); - - io_context_.work_started(); - ++outstanding_ops_; - operation->Completed = on_completed; - } - - template - void async( - Windows::Foundation::IAsyncOperationWithProgress< - TResult, TProgress>^ operation, - winrt_async_op* handler) - { - using namespace Windows::Foundation; - using Windows::Foundation::AsyncStatus; - - auto on_completed - = ref new AsyncOperationWithProgressCompletedHandler( - [this, handler](IAsyncOperationWithProgress< - TResult, TProgress>^ operation, AsyncStatus status) - { - switch (status) - { - case AsyncStatus::Canceled: - handler->ec_ = asio::error::operation_aborted; - break; - case AsyncStatus::Started: - return; - case AsyncStatus::Completed: - handler->result_ = operation->GetResults(); - // Fall through. - case AsyncStatus::Error: - default: - handler->ec_ = asio::error_code( - operation->ErrorCode.Value, - asio::system_category()); - break; - } - io_context_.post_deferred_completion(handler); - if (--outstanding_ops_ == 0) - promise_.set_value(); - }); - - io_context_.work_started(); - ++outstanding_ops_; - operation->Completed = on_completed; - } - -private: - // The io_context implementation used to post completed handlers. - io_context_impl& io_context_; - - // Count of outstanding operations. - atomic_count outstanding_ops_; - - // Used to keep wait for outstanding operations to complete. - std::promise promise_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_ASYNC_MANAGER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_async_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_async_op.hpp deleted file mode 100644 index 75891a4..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_async_op.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// detail/winrt_async_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_ASYNC_OP_HPP -#define ASIO_DETAIL_WINRT_ASYNC_OP_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/operation.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_async_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - - // The result of the operation, to be passed to the completion handler. - TResult result_; - -protected: - winrt_async_op(func_type complete_func) - : operation(complete_func), - result_() - { - } -}; - -template <> -class winrt_async_op - : public operation -{ -public: - // The error code to be passed to the completion handler. - asio::error_code ec_; - -protected: - winrt_async_op(func_type complete_func) - : operation(complete_func) - { - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WINRT_ASYNC_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_resolve_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_resolve_op.hpp deleted file mode 100644 index 07efd29..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_resolve_op.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// detail/winrt_resolve_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_RESOLVE_OP_HPP -#define ASIO_DETAIL_WINRT_RESOLVE_OP_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_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_resolve_op : - public winrt_async_op< - Windows::Foundation::Collections::IVectorView< - Windows::Networking::EndpointPair^>^> -{ -public: - ASIO_DEFINE_HANDLER_PTR(winrt_resolve_op); - - typedef typename Protocol::endpoint endpoint_type; - typedef asio::ip::basic_resolver_query query_type; - typedef asio::ip::basic_resolver_results results_type; - - winrt_resolve_op(const query_type& query, Handler& handler) - : winrt_async_op< - Windows::Foundation::Collections::IVectorView< - Windows::Networking::EndpointPair^>^>( - &winrt_resolve_op::do_complete), - query_(query), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code&, std::size_t) - { - // Take ownership of the operation object. - winrt_resolve_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - results_type results = results_type(); - if (!o->ec_) - { - try - { - results = results_type::create(o->result_, o->query_.hints(), - o->query_.host_name(), o->query_.service_name()); - } - catch (Platform::Exception^ e) - { - o->ec_ = asio::error_code(e->HResult, - asio::system_category()); - } - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, results); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, "...")); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - query_type query_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_RESOLVE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_resolver_service.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_resolver_service.hpp deleted file mode 100644 index aeb4448..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_resolver_service.hpp +++ /dev/null @@ -1,198 +0,0 @@ -// -// detail/winrt_resolver_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_RESOLVER_SERVICE_HPP -#define ASIO_DETAIL_WINRT_RESOLVER_SERVICE_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_WINDOWS_RUNTIME) - -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/winrt_async_manager.hpp" -#include "asio/detail/winrt_resolve_op.hpp" -#include "asio/detail/winrt_utils.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_resolver_service : - public service_base > -{ -public: - // The implementation type of the resolver. A cancellation token is used to - // indicate to the asynchronous operation that the operation has been - // cancelled. - typedef socket_ops::shared_cancel_token_type implementation_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The query type. - typedef asio::ip::basic_resolver_query query_type; - - // The results type. - typedef asio::ip::basic_resolver_results results_type; - - // Constructor. - winrt_resolver_service(asio::io_context& io_context) - : service_base >(io_context), - io_context_(use_service(io_context)), - async_manager_(use_service(io_context)) - { - } - - // Destructor. - ~winrt_resolver_service() - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - } - - // Perform any fork-related housekeeping. - void notify_fork(asio::io_context::fork_event) - { - } - - // Construct a new resolver implementation. - void construct(implementation_type&) - { - } - - // Move-construct a new resolver implementation. - void move_construct(implementation_type&, - implementation_type&) - { - } - - // Move-assign from another resolver implementation. - void move_assign(implementation_type&, - winrt_resolver_service&, implementation_type&) - { - } - - // Destroy a resolver implementation. - void destroy(implementation_type&) - { - } - - // Cancel pending asynchronous operations. - void cancel(implementation_type&) - { - } - - // Resolve a query to a list of entries. - results_type resolve(implementation_type&, - const query_type& query, asio::error_code& ec) - { - try - { - using namespace Windows::Networking::Sockets; - auto endpoint_pairs = async_manager_.sync( - DatagramSocket::GetEndpointPairsAsync( - winrt_utils::host_name(query.host_name()), - winrt_utils::string(query.service_name())), ec); - - if (ec) - return results_type(); - - return results_type::create( - endpoint_pairs, query.hints(), - query.host_name(), query.service_name()); - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - return results_type(); - } - } - - // Asynchronously resolve a query to a list of entries. - template - void async_resolve(implementation_type& impl, - const query_type& query, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef winrt_resolve_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(query, handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "resolver", &impl, 0, "async_resolve")); - (void)impl; - - try - { - using namespace Windows::Networking::Sockets; - async_manager_.async(DatagramSocket::GetEndpointPairsAsync( - winrt_utils::host_name(query.host_name()), - winrt_utils::string(query.service_name())), p.p); - p.v = p.p = 0; - } - catch (Platform::Exception^ e) - { - p.p->ec_ = asio::error_code( - e->HResult, asio::system_category()); - io_context_.post_immediate_completion(p.p, is_continuation); - p.v = p.p = 0; - } - } - - // Resolve an endpoint to a list of entries. - results_type resolve(implementation_type&, - const endpoint_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return results_type(); - } - - // Asynchronously resolve an endpoint to a list of entries. - template - void async_resolve(implementation_type&, - const endpoint_type&, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const results_type results; - io_context_.get_io_context().post( - detail::bind_handler(handler, ec, results)); - } - -private: - io_context_impl& io_context_; - winrt_async_manager& async_manager_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_RESOLVER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_socket_connect_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_socket_connect_op.hpp deleted file mode 100644 index f18b445..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_socket_connect_op.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// detail/winrt_socket_connect_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_SOCKET_CONNECT_OP_HPP -#define ASIO_DETAIL_WINRT_SOCKET_CONNECT_OP_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_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_socket_connect_op : - public winrt_async_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(winrt_socket_connect_op); - - winrt_socket_connect_op(Handler& handler) - : winrt_async_op(&winrt_socket_connect_op::do_complete), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code&, std::size_t) - { - // Take ownership of the operation object. - winrt_socket_connect_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder1 - handler(o->handler_, o->ec_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SOCKET_CONNECT_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_socket_recv_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_socket_recv_op.hpp deleted file mode 100644 index 8f1fcf5..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_socket_recv_op.hpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// detail/winrt_socket_recv_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_SOCKET_RECV_OP_HPP -#define ASIO_DETAIL_WINRT_SOCKET_RECV_OP_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_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_socket_recv_op : - public winrt_async_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(winrt_socket_recv_op); - - winrt_socket_recv_op(const MutableBufferSequence& buffers, Handler& handler) - : winrt_async_op( - &winrt_socket_recv_op::do_complete), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code&, std::size_t) - { - // Take ownership of the operation object. - winrt_socket_recv_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - std::size_t bytes_transferred = o->result_ ? o->result_->Length : 0; - if (bytes_transferred == 0 && !o->ec_ && - !buffer_sequence_adapter::all_empty(o->buffers_)) - { - o->ec_ = asio::error::eof; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, bytes_transferred); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - MutableBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SOCKET_RECV_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_socket_send_op.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_socket_send_op.hpp deleted file mode 100644 index 1148c24..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_socket_send_op.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// detail/winrt_socket_send_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_SOCKET_SEND_OP_HPP -#define ASIO_DETAIL_WINRT_SOCKET_SEND_OP_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_WINDOWS_RUNTIME) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_async_op.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_socket_send_op : - public winrt_async_op -{ -public: - ASIO_DEFINE_HANDLER_PTR(winrt_socket_send_op); - - winrt_socket_send_op(const ConstBufferSequence& buffers, Handler& handler) - : winrt_async_op(&winrt_socket_send_op::do_complete), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - handler_work::start(handler_); - } - - static void do_complete(void* owner, operation* base, - const asio::error_code&, std::size_t) - { - // Take ownership of the operation object. - winrt_socket_send_op* o(static_cast(base)); - ptr p = { asio::detail::addressof(o->handler_), o, o }; - handler_work w(o->handler_); - - ASIO_HANDLER_COMPLETION((*o)); - -#if defined(ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - if (owner) - { - buffer_sequence_adapter::validate(o->buffers_); - } -#endif // defined(ASIO_ENABLE_BUFFER_DEBUGGING) - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. Even if we're not about to make an upcall, a - // sub-object of the handler may be the true owner of the memory associated - // with the handler. Consequently, a local copy of the handler is required - // to ensure that any owning sub-object remains valid until after we have - // deallocated the memory here. - detail::binder2 - handler(o->handler_, o->ec_, o->result_); - p.h = asio::detail::addressof(handler.handler_); - p.reset(); - - // Make the upcall if required. - if (owner) - { - fenced_block b(fenced_block::half); - ASIO_HANDLER_INVOCATION_BEGIN((handler.arg1_, handler.arg2_)); - w.complete(handler, handler.handler_); - ASIO_HANDLER_INVOCATION_END; - } - } - -private: - ConstBufferSequence buffers_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SOCKET_SEND_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service.hpp deleted file mode 100644 index 603724a..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service.hpp +++ /dev/null @@ -1,241 +0,0 @@ -// -// detail/winrt_ssocket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_SSOCKET_SERVICE_HPP -#define ASIO_DETAIL_WINRT_SSOCKET_SERVICE_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_WINDOWS_RUNTIME) - -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/winrt_socket_connect_op.hpp" -#include "asio/detail/winrt_ssocket_service_base.hpp" -#include "asio/detail/winrt_utils.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class winrt_ssocket_service : - public service_base >, - public winrt_ssocket_service_base -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - typedef Windows::Networking::Sockets::StreamSocket^ native_handle_type; - - // The implementation type of the socket. - struct implementation_type : base_implementation_type - { - // Default constructor. - implementation_type() - : base_implementation_type(), - protocol_(endpoint_type().protocol()) - { - } - - // The protocol associated with the socket. - protocol_type protocol_; - }; - - // Constructor. - winrt_ssocket_service(asio::io_context& io_context) - : service_base >(io_context), - winrt_ssocket_service_base(io_context) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - this->base_shutdown(); - } - - // Move-construct a new socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - } - - // Move-assign from another socket implementation. - void move_assign(implementation_type& impl, - winrt_ssocket_service& other_service, - implementation_type& other_impl) - { - this->base_move_assign(impl, other_service, other_impl); - - impl.protocol_ = other_impl.protocol_; - other_impl.protocol_ = endpoint_type().protocol(); - } - - // Move-construct a new socket implementation from another protocol type. - template - void converting_move_construct(implementation_type& impl, - winrt_ssocket_service&, - typename winrt_ssocket_service< - Protocol1>::implementation_type& other_impl) - { - this->base_move_construct(impl, other_impl); - - impl.protocol_ = protocol_type(other_impl.protocol_); - other_impl.protocol_ = typename Protocol1::endpoint().protocol(); - } - - // Open a new socket implementation. - asio::error_code open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - try - { - impl.socket_ = ref new Windows::Networking::Sockets::StreamSocket; - impl.protocol_ = protocol; - ec = asio::error_code(); - } - catch (Platform::Exception^ e) - { - ec = asio::error_code(e->HResult, - asio::system_category()); - } - - return ec; - } - - // Assign a native socket to a socket implementation. - asio::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - if (is_open(impl)) - { - ec = asio::error::already_open; - return ec; - } - - impl.socket_ = native_socket; - impl.protocol_ = protocol; - ec = asio::error_code(); - - return ec; - } - - // Bind the socket to the specified local endpoint. - asio::error_code bind(implementation_type&, - const endpoint_type&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - endpoint.resize(do_get_endpoint(impl, true, - endpoint.data(), endpoint.size(), ec)); - return endpoint; - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - endpoint_type endpoint; - endpoint.resize(do_get_endpoint(impl, false, - endpoint.data(), endpoint.size(), ec)); - return endpoint; - } - - // Set a socket option. - template - asio::error_code set_option(implementation_type& impl, - const Option& option, asio::error_code& ec) - { - return do_set_option(impl, option.level(impl.protocol_), - option.name(impl.protocol_), option.data(impl.protocol_), - option.size(impl.protocol_), ec); - } - - // Get a socket option. - template - asio::error_code get_option(const implementation_type& impl, - Option& option, asio::error_code& ec) const - { - std::size_t size = option.size(impl.protocol_); - do_get_option(impl, option.level(impl.protocol_), - option.name(impl.protocol_), - option.data(impl.protocol_), &size, ec); - if (!ec) - option.resize(impl.protocol_, size); - return ec; - } - - // Connect the socket to the specified endpoint. - asio::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - return do_connect(impl, peer_endpoint.data(), ec); - } - - // Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef winrt_socket_connect_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "socket", &impl, 0, "async_connect")); - - start_connect_op(impl, peer_endpoint.data(), p.p, is_continuation); - p.v = p.p = 0; - } -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SSOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service_base.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service_base.hpp deleted file mode 100644 index 61328d0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_ssocket_service_base.hpp +++ /dev/null @@ -1,359 +0,0 @@ -// -// detail/winrt_ssocket_service_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_SSOCKET_SERVICE_BASE_HPP -#define ASIO_DETAIL_WINRT_SSOCKET_SERVICE_BASE_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_WINDOWS_RUNTIME) - -#include "asio/buffer.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/socket_base.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/winrt_async_manager.hpp" -#include "asio/detail/winrt_socket_recv_op.hpp" -#include "asio/detail/winrt_socket_send_op.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winrt_ssocket_service_base -{ -public: - // The native type of a socket. - typedef Windows::Networking::Sockets::StreamSocket^ native_handle_type; - - // The implementation type of the socket. - struct base_implementation_type - { - // Default constructor. - base_implementation_type() - : socket_(nullptr), - next_(0), - prev_(0) - { - } - - // The underlying native socket. - native_handle_type socket_; - - // Pointers to adjacent socket implementations in linked list. - base_implementation_type* next_; - base_implementation_type* prev_; - }; - - // Constructor. - ASIO_DECL winrt_ssocket_service_base( - asio::io_context& io_context); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void base_shutdown(); - - // Construct a new socket implementation. - ASIO_DECL void construct(base_implementation_type&); - - // Move-construct a new socket implementation. - ASIO_DECL void base_move_construct(base_implementation_type& impl, - base_implementation_type& other_impl); - - // Move-assign from another socket implementation. - ASIO_DECL void base_move_assign(base_implementation_type& impl, - winrt_ssocket_service_base& other_service, - base_implementation_type& other_impl); - - // Destroy a socket implementation. - ASIO_DECL void destroy(base_implementation_type& impl); - - // Determine whether the socket is open. - bool is_open(const base_implementation_type& impl) const - { - return impl.socket_ != nullptr; - } - - // Destroy a socket implementation. - ASIO_DECL asio::error_code close( - base_implementation_type& impl, asio::error_code& ec); - - // Release ownership of the socket. - ASIO_DECL native_handle_type release( - base_implementation_type& impl, asio::error_code& ec); - - // Get the native socket representation. - native_handle_type native_handle(base_implementation_type& impl) - { - return impl.socket_; - } - - // Cancel all operations associated with the socket. - asio::error_code cancel(base_implementation_type&, - asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const base_implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return false; - } - - // Determine the number of bytes available for reading. - std::size_t available(const base_implementation_type&, - asio::error_code& ec) const - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Perform an IO control command on the socket. - template - asio::error_code io_control(base_implementation_type&, - IO_Control_Command&, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Gets the non-blocking mode of the socket. - bool non_blocking(const base_implementation_type&) const - { - return false; - } - - // Sets the non-blocking mode of the socket. - asio::error_code non_blocking(base_implementation_type&, - bool, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const base_implementation_type&) const - { - return false; - } - - // Sets the non-blocking mode of the native socket implementation. - asio::error_code native_non_blocking(base_implementation_type&, - bool, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Disable sends or receives on the socket. - asio::error_code shutdown(base_implementation_type&, - socket_base::shutdown_type, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return ec; - } - - // Send the given data to the peer. - template - std::size_t send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return do_send(impl, - buffer_sequence_adapter::first(buffers), flags, ec); - } - - // Wait until data can be sent without blocking. - std::size_t send(base_implementation_type&, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(base_implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef winrt_socket_send_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "socket", &impl, 0, "async_send")); - - start_send_op(impl, - buffer_sequence_adapter::first(buffers), - flags, p.p, is_continuation); - p.v = p.p = 0; - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(base_implementation_type&, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.get_io_context().post( - detail::bind_handler(handler, ec, bytes_transferred)); - } - - // Receive some data from the peer. Returns the number of bytes received. - template - std::size_t receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return do_receive(impl, - buffer_sequence_adapter::first(buffers), flags, ec); - } - - // Wait until data can be received without blocking. - std::size_t receive(base_implementation_type&, const null_buffers&, - socket_base::message_flags, asio::error_code& ec) - { - ec = asio::error::operation_not_supported; - return 0; - } - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(base_implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler& handler) - { - bool is_continuation = - asio_handler_cont_helpers::is_continuation(handler); - - // Allocate and construct an operation to wrap the handler. - typedef winrt_socket_recv_op op; - typename op::ptr p = { asio::detail::addressof(handler), - op::ptr::allocate(handler), 0 }; - p.p = new (p.v) op(buffers, handler); - - ASIO_HANDLER_CREATION((io_context_.context(), - *p.p, "socket", &impl, 0, "async_receive")); - - start_receive_op(impl, - buffer_sequence_adapter::first(buffers), - flags, p.p, is_continuation); - p.v = p.p = 0; - } - - // Wait until data can be received without blocking. - template - void async_receive(base_implementation_type&, const null_buffers&, - socket_base::message_flags, Handler& handler) - { - asio::error_code ec = asio::error::operation_not_supported; - const std::size_t bytes_transferred = 0; - io_context_.get_io_context().post( - detail::bind_handler(handler, ec, bytes_transferred)); - } - -protected: - // Helper function to obtain endpoints associated with the connection. - ASIO_DECL std::size_t do_get_endpoint( - const base_implementation_type& impl, bool local, - void* addr, std::size_t addr_len, asio::error_code& ec) const; - - // Helper function to set a socket option. - ASIO_DECL asio::error_code do_set_option( - base_implementation_type& impl, - int level, int optname, const void* optval, - std::size_t optlen, asio::error_code& ec); - - // Helper function to get a socket option. - ASIO_DECL void do_get_option( - const base_implementation_type& impl, - int level, int optname, void* optval, - std::size_t* optlen, asio::error_code& ec) const; - - // Helper function to perform a synchronous connect. - ASIO_DECL asio::error_code do_connect( - base_implementation_type& impl, - const void* addr, asio::error_code& ec); - - // Helper function to start an asynchronous connect. - ASIO_DECL void start_connect_op( - base_implementation_type& impl, const void* addr, - winrt_async_op* op, bool is_continuation); - - // Helper function to perform a synchronous send. - ASIO_DECL std::size_t do_send( - base_implementation_type& impl, const asio::const_buffer& data, - socket_base::message_flags flags, asio::error_code& ec); - - // Helper function to start an asynchronous send. - ASIO_DECL void start_send_op(base_implementation_type& impl, - const asio::const_buffer& data, socket_base::message_flags flags, - winrt_async_op* op, bool is_continuation); - - // Helper function to perform a synchronous receive. - ASIO_DECL std::size_t do_receive( - base_implementation_type& impl, const asio::mutable_buffer& data, - socket_base::message_flags flags, asio::error_code& ec); - - // Helper function to start an asynchronous receive. - ASIO_DECL void start_receive_op(base_implementation_type& impl, - const asio::mutable_buffer& data, socket_base::message_flags flags, - winrt_async_op* op, - bool is_continuation); - - // The io_context implementation used for delivering completions. - io_context_impl& io_context_; - - // The manager that keeps track of outstanding operations. - winrt_async_manager& async_manager_; - - // Mutex to protect access to the linked list of implementations. - asio::detail::mutex mutex_; - - // The head of a linked list of all implementations. - base_implementation_type* impl_list_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/winrt_ssocket_service_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_SSOCKET_SERVICE_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_timer_scheduler.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_timer_scheduler.hpp deleted file mode 100644 index 5dec7c0..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_timer_scheduler.hpp +++ /dev/null @@ -1,137 +0,0 @@ -// -// detail/winrt_timer_scheduler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_TIMER_SCHEDULER_HPP -#define ASIO_DETAIL_WINRT_TIMER_SCHEDULER_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_WINDOWS_RUNTIME) - -#include -#include "asio/detail/event.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/op_queue.hpp" -#include "asio/detail/thread.hpp" -#include "asio/detail/timer_queue_base.hpp" -#include "asio/detail/timer_queue_set.hpp" -#include "asio/detail/wait_op.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/thread.hpp" -#endif // defined(ASIO_HAS_IOCP) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winrt_timer_scheduler - : public asio::detail::service_base -{ -public: - // Constructor. - ASIO_DECL winrt_timer_scheduler(asio::io_context& io_context); - - // Destructor. - ASIO_DECL ~winrt_timer_scheduler(); - - // Destroy all user-defined handler objects owned by the service. - ASIO_DECL void shutdown(); - - // Recreate internal descriptors following a fork. - ASIO_DECL void notify_fork( - asio::io_context::fork_event fork_ev); - - // Initialise the task. No effect as this class uses its own thread. - ASIO_DECL void init_task(); - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& queue); - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& queue); - - // Schedule a new operation in the given timer queue to expire at the - // specified absolute time. - template - void schedule_timer(timer_queue& queue, - const typename Time_Traits::time_type& time, - typename timer_queue::per_timer_data& timer, wait_op* op); - - // Cancel the timer operations associated with the given token. Returns the - // number of operations that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& queue, - typename timer_queue::per_timer_data& timer, - std::size_t max_cancelled = (std::numeric_limits::max)()); - - // Move the timer operations associated with the given timer. - template - void move_timer(timer_queue& queue, - typename timer_queue::per_timer_data& to, - typename timer_queue::per_timer_data& from); - -private: - // Run the select loop in the thread. - ASIO_DECL void run_thread(); - - // Entry point for the select loop thread. - ASIO_DECL static void call_run_thread(winrt_timer_scheduler* reactor); - - // Helper function to add a new timer queue. - ASIO_DECL void do_add_timer_queue(timer_queue_base& queue); - - // Helper function to remove a timer queue. - ASIO_DECL void do_remove_timer_queue(timer_queue_base& queue); - - // The io_context implementation used to post completions. - io_context_impl& io_context_; - - // Mutex used to protect internal variables. - asio::detail::mutex mutex_; - - // Event used to wake up background thread. - asio::detail::event event_; - - // The timer queues. - timer_queue_set timer_queues_; - - // The background thread that is waiting for timers to expire. - asio::detail::thread* thread_; - - // Does the background thread need to stop. - bool stop_thread_; - - // Whether the service has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/detail/impl/winrt_timer_scheduler.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/winrt_timer_scheduler.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_TIMER_SCHEDULER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winrt_utils.hpp b/Sources/Vendor/asio/include/asio/detail/winrt_utils.hpp deleted file mode 100644 index 22a2489..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winrt_utils.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// detail/winrt_utils.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINRT_UTILS_HPP -#define ASIO_DETAIL_WINRT_UTILS_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_WINDOWS_RUNTIME) - -#include -#include -#include -#include -#include -#include -#include -#include "asio/buffer.hpp" -#include "asio/error_code.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_ops.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { -namespace winrt_utils { - -inline Platform::String^ string(const char* from) -{ - std::wstring tmp(from, from + std::strlen(from)); - return ref new Platform::String(tmp.c_str()); -} - -inline Platform::String^ string(const std::string& from) -{ - std::wstring tmp(from.begin(), from.end()); - return ref new Platform::String(tmp.c_str()); -} - -inline std::string string(Platform::String^ from) -{ - std::wstring_convert> converter; - return converter.to_bytes(from->Data()); -} - -inline Platform::String^ string(unsigned short from) -{ - return string(std::to_string(from)); -} - -template -inline Platform::String^ string(const T& from) -{ - return string(from.to_string()); -} - -inline int integer(Platform::String^ from) -{ - return _wtoi(from->Data()); -} - -template -inline Windows::Networking::HostName^ host_name(const T& from) -{ - return ref new Windows::Networking::HostName((string)(from)); -} - -template -inline Windows::Storage::Streams::IBuffer^ buffer_dup( - const ConstBufferSequence& buffers) -{ - using Microsoft::WRL::ComPtr; - using asio::buffer_size; - std::size_t size = buffer_size(buffers); - auto b = ref new Windows::Storage::Streams::Buffer(size); - ComPtr insp = reinterpret_cast(b); - ComPtr bacc; - insp.As(&bacc); - byte* bytes = nullptr; - bacc->Buffer(&bytes); - asio::buffer_copy(asio::buffer(bytes, size), buffers); - b->Length = size; - return b; -} - -} // namespace winrt_utils -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#endif // ASIO_DETAIL_WINRT_UTILS_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/winsock_init.hpp b/Sources/Vendor/asio/include/asio/detail/winsock_init.hpp deleted file mode 100644 index 9094363..0000000 --- a/Sources/Vendor/asio/include/asio/detail/winsock_init.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// -// detail/winsock_init.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WINSOCK_INIT_HPP -#define ASIO_DETAIL_WINSOCK_INIT_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_WINDOWS) || defined(__CYGWIN__) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class winsock_init_base -{ -protected: - // Structure to track result of initialisation and number of uses. POD is used - // to ensure that the values are zero-initialised prior to any code being run. - struct data - { - long init_count_; - long result_; - }; - - ASIO_DECL static void startup(data& d, - unsigned char major, unsigned char minor); - - ASIO_DECL static void manual_startup(data& d); - - ASIO_DECL static void cleanup(data& d); - - ASIO_DECL static void manual_cleanup(data& d); - - ASIO_DECL static void throw_on_error(data& d); -}; - -template -class winsock_init : private winsock_init_base -{ -public: - winsock_init(bool allow_throw = true) - { - startup(data_, Major, Minor); - if (allow_throw) - throw_on_error(data_); - } - - winsock_init(const winsock_init&) - { - startup(data_, Major, Minor); - throw_on_error(data_); - } - - ~winsock_init() - { - cleanup(data_); - } - - // This class may be used to indicate that user code will manage Winsock - // initialisation and cleanup. This may be required in the case of a DLL, for - // example, where it is not safe to initialise Winsock from global object - // constructors. - // - // To prevent asio from initialising Winsock, the object must be constructed - // before any Asio's own global objects. With MSVC, this may be accomplished - // by adding the following code to the DLL: - // - // #pragma warning(push) - // #pragma warning(disable:4073) - // #pragma init_seg(lib) - // asio::detail::winsock_init<>::manual manual_winsock_init; - // #pragma warning(pop) - class manual - { - public: - manual() - { - manual_startup(data_); - } - - manual(const manual&) - { - manual_startup(data_); - } - - ~manual() - { - manual_cleanup(data_); - } - }; - -private: - friend class manual; - static data data_; -}; - -template -winsock_init_base::data winsock_init::data_; - -// Static variable to ensure that winsock is initialised before main, and -// therefore before any other threads can get started. -static const winsock_init<>& winsock_init_instance = winsock_init<>(false); - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/detail/impl/winsock_init.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - -#endif // ASIO_DETAIL_WINSOCK_INIT_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/work_dispatcher.hpp b/Sources/Vendor/asio/include/asio/detail/work_dispatcher.hpp deleted file mode 100644 index 7abce49..0000000 --- a/Sources/Vendor/asio/include/asio/detail/work_dispatcher.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// -// detail/work_dispatcher.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WORK_DISPATCHER_HPP -#define ASIO_DETAIL_WORK_DISPATCHER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_executor.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/executor_work_guard.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class work_dispatcher -{ -public: - work_dispatcher(Handler& handler) - : work_((get_associated_executor)(handler)), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - work_dispatcher(const work_dispatcher& other) - : work_(other.work_), - handler_(other.handler_) - { - } - - work_dispatcher(work_dispatcher&& other) - : work_(ASIO_MOVE_CAST(executor_work_guard< - typename associated_executor::type>)(other.work_)), - handler_(ASIO_MOVE_CAST(Handler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - typename associated_allocator::type alloc( - (get_associated_allocator)(handler_)); - work_.get_executor().dispatch( - ASIO_MOVE_CAST(Handler)(handler_), alloc); - work_.reset(); - } - -private: - executor_work_guard::type> work_; - Handler handler_; -}; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WORK_DISPATCHER_HPP diff --git a/Sources/Vendor/asio/include/asio/detail/wrapped_handler.hpp b/Sources/Vendor/asio/include/asio/detail/wrapped_handler.hpp deleted file mode 100644 index 751f0ea..0000000 --- a/Sources/Vendor/asio/include/asio/detail/wrapped_handler.hpp +++ /dev/null @@ -1,291 +0,0 @@ -// -// detail/wrapped_handler.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DETAIL_WRAPPED_HANDLER_HPP -#define ASIO_DETAIL_WRAPPED_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -struct is_continuation_delegated -{ - template - bool operator()(Dispatcher&, Handler& handler) const - { - return asio_handler_cont_helpers::is_continuation(handler); - } -}; - -struct is_continuation_if_running -{ - template - bool operator()(Dispatcher& dispatcher, Handler&) const - { - return dispatcher.running_in_this_thread(); - } -}; - -template -class wrapped_handler -{ -public: - typedef void result_type; - - wrapped_handler(Dispatcher dispatcher, Handler& handler) - : dispatcher_(dispatcher), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - wrapped_handler(const wrapped_handler& other) - : dispatcher_(other.dispatcher_), - handler_(other.handler_) - { - } - - wrapped_handler(wrapped_handler&& other) - : dispatcher_(other.dispatcher_), - handler_(ASIO_MOVE_CAST(Handler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - dispatcher_.dispatch(ASIO_MOVE_CAST(Handler)(handler_)); - } - - void operator()() const - { - dispatcher_.dispatch(handler_); - } - - template - void operator()(const Arg1& arg1) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1)); - } - - template - void operator()(const Arg1& arg1) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2, arg3)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2, arg3)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4) - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4) const - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4, const Arg5& arg5) - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4, arg5)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4, const Arg5& arg5) const - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4, arg5)); - } - -//private: - Dispatcher dispatcher_; - Handler handler_; -}; - -template -class rewrapped_handler -{ -public: - explicit rewrapped_handler(Handler& handler, const Context& context) - : context_(context), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - } - - explicit rewrapped_handler(const Handler& handler, const Context& context) - : context_(context), - handler_(handler) - { - } - -#if defined(ASIO_HAS_MOVE) - rewrapped_handler(const rewrapped_handler& other) - : context_(other.context_), - handler_(other.handler_) - { - } - - rewrapped_handler(rewrapped_handler&& other) - : context_(ASIO_MOVE_CAST(Context)(other.context_)), - handler_(ASIO_MOVE_CAST(Handler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()() - { - handler_(); - } - - void operator()() const - { - handler_(); - } - -//private: - Context context_; - Handler handler_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - wrapped_handler* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - wrapped_handler* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - wrapped_handler* this_handler) -{ - return IsContinuation()(this_handler->dispatcher_, this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - wrapped_handler* this_handler) -{ - this_handler->dispatcher_.dispatch( - rewrapped_handler( - function, this_handler->handler_)); -} - -template -inline void asio_handler_invoke(const Function& function, - wrapped_handler* this_handler) -{ - this_handler->dispatcher_.dispatch( - rewrapped_handler( - function, this_handler->handler_)); -} - -template -inline void* asio_handler_allocate(std::size_t size, - rewrapped_handler* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->context_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - rewrapped_handler* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->context_); -} - -template -inline bool asio_handler_is_continuation( - rewrapped_handler* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->context_); -} - -template -inline void asio_handler_invoke(Function& function, - rewrapped_handler* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->context_); -} - -template -inline void asio_handler_invoke(const Function& function, - rewrapped_handler* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->context_); -} - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_DETAIL_WRAPPED_HANDLER_HPP diff --git a/Sources/Vendor/asio/include/asio/dispatch.hpp b/Sources/Vendor/asio/include/asio/dispatch.hpp deleted file mode 100644 index b8dfd69..0000000 --- a/Sources/Vendor/asio/include/asio/dispatch.hpp +++ /dev/null @@ -1,108 +0,0 @@ -// -// dispatch.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_DISPATCH_HPP -#define ASIO_DISPATCH_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the object's associated - * executor. The function object is queued for execution, and is never called - * from the current thread prior to returning from dispatch(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex by performing - * get_associated_executor(handler). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Performs ex.dispatch(std::move(handler), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - ASIO_MOVE_ARG(CompletionToken) token); - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the specified executor. - * The function object is queued for execution, and is never called from the - * current thread prior to returning from dispatch(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex1 by performing - * get_associated_executor(handler). - * - * @li Creates a work object @c w by performing make_work(ex1). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Constructs a function object @c f with a function call operator that - * performs ex1.dispatch(std::move(handler), alloc) followed by - * w.reset(). - * - * @li Performs Executor(ex).dispatch(std::move(f), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -/// Submits a completion token or function object for execution. -/** - * @returns dispatch(ctx.get_executor(), - * forward(token)). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/dispatch.hpp" - -#endif // ASIO_DISPATCH_HPP diff --git a/Sources/Vendor/asio/include/asio/error.hpp b/Sources/Vendor/asio/include/asio/error.hpp deleted file mode 100644 index 2be9bde..0000000 --- a/Sources/Vendor/asio/include/asio/error.hpp +++ /dev/null @@ -1,356 +0,0 @@ -// -// error.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_ERROR_HPP -#define ASIO_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error_code.hpp" -#include "asio/system_error.hpp" -#if defined(ASIO_WINDOWS) \ - || defined(__CYGWIN__) \ - || defined(ASIO_WINDOWS_RUNTIME) -# include -#else -# include -# include -#endif - -#if defined(GENERATING_DOCUMENTATION) -/// INTERNAL ONLY. -# define ASIO_NATIVE_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define ASIO_SOCKET_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define ASIO_NETDB_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define ASIO_GETADDRINFO_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define ASIO_WIN_OR_POSIX(e_win, e_posix) implementation_defined -#elif defined(ASIO_WINDOWS_RUNTIME) -# define ASIO_NATIVE_ERROR(e) __HRESULT_FROM_WIN32(e) -# define ASIO_SOCKET_ERROR(e) __HRESULT_FROM_WIN32(WSA ## e) -# define ASIO_NETDB_ERROR(e) __HRESULT_FROM_WIN32(WSA ## e) -# define ASIO_GETADDRINFO_ERROR(e) __HRESULT_FROM_WIN32(WSA ## e) -# define ASIO_WIN_OR_POSIX(e_win, e_posix) e_win -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# define ASIO_NATIVE_ERROR(e) e -# define ASIO_SOCKET_ERROR(e) WSA ## e -# define ASIO_NETDB_ERROR(e) WSA ## e -# define ASIO_GETADDRINFO_ERROR(e) WSA ## e -# define ASIO_WIN_OR_POSIX(e_win, e_posix) e_win -#else -# define ASIO_NATIVE_ERROR(e) e -# define ASIO_SOCKET_ERROR(e) e -# define ASIO_NETDB_ERROR(e) e -# define ASIO_GETADDRINFO_ERROR(e) e -# define ASIO_WIN_OR_POSIX(e_win, e_posix) e_posix -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace error { - -enum basic_errors -{ - /// Permission denied. - access_denied = ASIO_SOCKET_ERROR(EACCES), - - /// Address family not supported by protocol. - address_family_not_supported = ASIO_SOCKET_ERROR(EAFNOSUPPORT), - - /// Address already in use. - address_in_use = ASIO_SOCKET_ERROR(EADDRINUSE), - - /// Transport endpoint is already connected. - already_connected = ASIO_SOCKET_ERROR(EISCONN), - - /// Operation already in progress. - already_started = ASIO_SOCKET_ERROR(EALREADY), - - /// Broken pipe. - broken_pipe = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_BROKEN_PIPE), - ASIO_NATIVE_ERROR(EPIPE)), - - /// A connection has been aborted. - connection_aborted = ASIO_SOCKET_ERROR(ECONNABORTED), - - /// Connection refused. - connection_refused = ASIO_SOCKET_ERROR(ECONNREFUSED), - - /// Connection reset by peer. - connection_reset = ASIO_SOCKET_ERROR(ECONNRESET), - - /// Bad file descriptor. - bad_descriptor = ASIO_SOCKET_ERROR(EBADF), - - /// Bad address. - fault = ASIO_SOCKET_ERROR(EFAULT), - - /// No route to host. - host_unreachable = ASIO_SOCKET_ERROR(EHOSTUNREACH), - - /// Operation now in progress. - in_progress = ASIO_SOCKET_ERROR(EINPROGRESS), - - /// Interrupted system call. - interrupted = ASIO_SOCKET_ERROR(EINTR), - - /// Invalid argument. - invalid_argument = ASIO_SOCKET_ERROR(EINVAL), - - /// Message too long. - message_size = ASIO_SOCKET_ERROR(EMSGSIZE), - - /// The name was too long. - name_too_long = ASIO_SOCKET_ERROR(ENAMETOOLONG), - - /// Network is down. - network_down = ASIO_SOCKET_ERROR(ENETDOWN), - - /// Network dropped connection on reset. - network_reset = ASIO_SOCKET_ERROR(ENETRESET), - - /// Network is unreachable. - network_unreachable = ASIO_SOCKET_ERROR(ENETUNREACH), - - /// Too many open files. - no_descriptors = ASIO_SOCKET_ERROR(EMFILE), - - /// No buffer space available. - no_buffer_space = ASIO_SOCKET_ERROR(ENOBUFS), - - /// Cannot allocate memory. - no_memory = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_OUTOFMEMORY), - ASIO_NATIVE_ERROR(ENOMEM)), - - /// Operation not permitted. - no_permission = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_ACCESS_DENIED), - ASIO_NATIVE_ERROR(EPERM)), - - /// Protocol not available. - no_protocol_option = ASIO_SOCKET_ERROR(ENOPROTOOPT), - - /// No such device. - no_such_device = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_BAD_UNIT), - ASIO_NATIVE_ERROR(ENODEV)), - - /// Transport endpoint is not connected. - not_connected = ASIO_SOCKET_ERROR(ENOTCONN), - - /// Socket operation on non-socket. - not_socket = ASIO_SOCKET_ERROR(ENOTSOCK), - - /// Operation cancelled. - operation_aborted = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_OPERATION_ABORTED), - ASIO_NATIVE_ERROR(ECANCELED)), - - /// Operation not supported. - operation_not_supported = ASIO_SOCKET_ERROR(EOPNOTSUPP), - - /// Cannot send after transport endpoint shutdown. - shut_down = ASIO_SOCKET_ERROR(ESHUTDOWN), - - /// Connection timed out. - timed_out = ASIO_SOCKET_ERROR(ETIMEDOUT), - - /// Resource temporarily unavailable. - try_again = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(ERROR_RETRY), - ASIO_NATIVE_ERROR(EAGAIN)), - - /// The socket is marked non-blocking and the requested operation would block. - would_block = ASIO_SOCKET_ERROR(EWOULDBLOCK) -}; - -enum netdb_errors -{ - /// Host not found (authoritative). - host_not_found = ASIO_NETDB_ERROR(HOST_NOT_FOUND), - - /// Host not found (non-authoritative). - host_not_found_try_again = ASIO_NETDB_ERROR(TRY_AGAIN), - - /// The query is valid but does not have associated address data. - no_data = ASIO_NETDB_ERROR(NO_DATA), - - /// A non-recoverable error occurred. - no_recovery = ASIO_NETDB_ERROR(NO_RECOVERY) -}; - -enum addrinfo_errors -{ - /// The service is not supported for the given socket type. - service_not_found = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(WSATYPE_NOT_FOUND), - ASIO_GETADDRINFO_ERROR(EAI_SERVICE)), - - /// The socket type is not supported. - socket_type_not_supported = ASIO_WIN_OR_POSIX( - ASIO_NATIVE_ERROR(WSAESOCKTNOSUPPORT), - ASIO_GETADDRINFO_ERROR(EAI_SOCKTYPE)) -}; - -enum misc_errors -{ - /// Already open. - already_open = 1, - - /// End of file or stream. - eof, - - /// Element not found. - not_found, - - /// The descriptor cannot fit into the select system call's fd_set. - fd_set_failure -}; - -inline const asio::error_category& get_system_category() -{ - return asio::system_category(); -} - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -extern ASIO_DECL -const asio::error_category& get_netdb_category(); - -extern ASIO_DECL -const asio::error_category& get_addrinfo_category(); - -#else // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -inline const asio::error_category& get_netdb_category() -{ - return get_system_category(); -} - -inline const asio::error_category& get_addrinfo_category() -{ - return get_system_category(); -} - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -extern ASIO_DECL -const asio::error_category& get_misc_category(); - -static const asio::error_category& - system_category ASIO_UNUSED_VARIABLE - = asio::error::get_system_category(); -static const asio::error_category& - netdb_category ASIO_UNUSED_VARIABLE - = asio::error::get_netdb_category(); -static const asio::error_category& - addrinfo_category ASIO_UNUSED_VARIABLE - = asio::error::get_addrinfo_category(); -static const asio::error_category& - misc_category ASIO_UNUSED_VARIABLE - = asio::error::get_misc_category(); - -} // namespace error -} // namespace asio - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) -namespace std { - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -} // namespace std -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -namespace asio { -namespace error { - -inline asio::error_code make_error_code(basic_errors e) -{ - return asio::error_code( - static_cast(e), get_system_category()); -} - -inline asio::error_code make_error_code(netdb_errors e) -{ - return asio::error_code( - static_cast(e), get_netdb_category()); -} - -inline asio::error_code make_error_code(addrinfo_errors e) -{ - return asio::error_code( - static_cast(e), get_addrinfo_category()); -} - -inline asio::error_code make_error_code(misc_errors e) -{ - return asio::error_code( - static_cast(e), get_misc_category()); -} - -} // namespace error -namespace stream_errc { - // Simulates the proposed stream_errc scoped enum. - using error::eof; - using error::not_found; -} // namespace stream_errc -namespace socket_errc { - // Simulates the proposed socket_errc scoped enum. - using error::already_open; - using error::not_found; -} // namespace socket_errc -namespace resolver_errc { - // Simulates the proposed resolver_errc scoped enum. - using error::host_not_found; - const error::netdb_errors try_again = error::host_not_found_try_again; - using error::service_not_found; -} // namespace resolver_errc -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_NATIVE_ERROR -#undef ASIO_SOCKET_ERROR -#undef ASIO_NETDB_ERROR -#undef ASIO_GETADDRINFO_ERROR -#undef ASIO_WIN_OR_POSIX - -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/error.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/error_code.hpp b/Sources/Vendor/asio/include/asio/error_code.hpp deleted file mode 100644 index 7c239e2..0000000 --- a/Sources/Vendor/asio/include/asio/error_code.hpp +++ /dev/null @@ -1,202 +0,0 @@ -// -// error_code.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_ERROR_CODE_HPP -#define ASIO_ERROR_CODE_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_SYSTEM_ERROR) -# include -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) -# include -# include "asio/detail/noncopyable.hpp" -# if !defined(ASIO_NO_IOSTREAM) -# include -# endif // !defined(ASIO_NO_IOSTREAM) -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) - -typedef std::error_category error_category; - -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -/// Base class for all error categories. -class error_category : private noncopyable -{ -public: - /// Destructor. - virtual ~error_category() - { - } - - /// Returns a string naming the error gategory. - virtual const char* name() const = 0; - - /// Returns a string describing the error denoted by @c value. - virtual std::string message(int value) const = 0; - - /// Equality operator to compare two error categories. - bool operator==(const error_category& rhs) const - { - return this == &rhs; - } - - /// Inequality operator to compare two error categories. - bool operator!=(const error_category& rhs) const - { - return !(*this == rhs); - } -}; - -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -/// Returns the error category used for the system errors produced by asio. -extern ASIO_DECL const error_category& system_category(); - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) - -typedef std::error_code error_code; - -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -/// Class to represent an error code value. -class error_code -{ -public: - /// Default constructor. - error_code() - : value_(0), - category_(&system_category()) - { - } - - /// Construct with specific error code and category. - error_code(int v, const error_category& c) - : value_(v), - category_(&c) - { - } - - /// Construct from an error code enum. - template - error_code(ErrorEnum e) - { - *this = make_error_code(e); - } - - /// Clear the error value to the default. - void clear() - { - value_ = 0; - category_ = &system_category(); - } - - /// Assign a new error value. - void assign(int v, const error_category& c) - { - value_ = v; - category_ = &c; - } - - /// Get the error value. - int value() const - { - return value_; - } - - /// Get the error category. - const error_category& category() const - { - return *category_; - } - - /// Get the message associated with the error. - std::string message() const - { - return category_->message(value_); - } - - struct unspecified_bool_type_t - { - }; - - typedef void (*unspecified_bool_type)(unspecified_bool_type_t); - - static void unspecified_bool_true(unspecified_bool_type_t) {} - - /// Operator returns non-null if there is a non-success error code. - operator unspecified_bool_type() const - { - if (value_ == 0) - return 0; - else - return &error_code::unspecified_bool_true; - } - - /// Operator to test if the error represents success. - bool operator!() const - { - return value_ == 0; - } - - /// Equality operator to compare two error objects. - friend bool operator==(const error_code& e1, const error_code& e2) - { - return e1.value_ == e2.value_ && e1.category_ == e2.category_; - } - - /// Inequality operator to compare two error objects. - friend bool operator!=(const error_code& e1, const error_code& e2) - { - return e1.value_ != e2.value_ || e1.category_ != e2.category_; - } - -private: - // The value associated with the error code. - int value_; - - // The category associated with the error code. - const error_category* category_; -}; - -# if !defined(ASIO_NO_IOSTREAM) - -/// Output an error code. -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const error_code& ec) -{ - os << ec.category().name() << ':' << ec.value(); - return os; -} - -# endif // !defined(ASIO_NO_IOSTREAM) - -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/error_code.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_ERROR_CODE_HPP diff --git a/Sources/Vendor/asio/include/asio/execution_context.hpp b/Sources/Vendor/asio/include/asio/execution_context.hpp deleted file mode 100644 index 1476d19..0000000 --- a/Sources/Vendor/asio/include/asio/execution_context.hpp +++ /dev/null @@ -1,411 +0,0 @@ -// -// execution_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXECUTION_CONTEXT_HPP -#define ASIO_EXECUTION_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/variadic_templates.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class execution_context; -class io_context; - -#if !defined(GENERATING_DOCUMENTATION) -template Service& use_service(execution_context&); -template Service& use_service(io_context&); -template void add_service(execution_context&, Service*); -template bool has_service(execution_context&); -#endif // !defined(GENERATING_DOCUMENTATION) - -namespace detail { class service_registry; } - -/// A context for function object execution. -/** - * An execution context represents a place where function objects will be - * executed. An @c io_context is an example of an execution context. - * - * @par The execution_context class and services - * - * Class execution_context implements an extensible, type-safe, polymorphic set - * of services, indexed by service type. - * - * Services exist to manage the resources that are shared across an execution - * context. For example, timers may be implemented in terms of a single timer - * queue, and this queue would be stored in a service. - * - * Access to the services of an execution_context is via three function - * templates, use_service(), add_service() and has_service(). - * - * In a call to @c use_service(), the type argument chooses a service, - * making available all members of the named type. If @c Service is not present - * in an execution_context, an object of type @c Service is created and added - * to the execution_context. A C++ program can check if an execution_context - * implements a particular service with the function template @c - * has_service(). - * - * Service objects may be explicitly added to an execution_context using the - * function template @c add_service(). If the @c Service is already - * present, the service_already_exists exception is thrown. If the owner of the - * service is not the same object as the execution_context parameter, the - * invalid_service_owner exception is thrown. - * - * Once a service reference is obtained from an execution_context object by - * calling use_service(), that reference remains usable as long as the owning - * execution_context object exists. - * - * All service implementations have execution_context::service as a public base - * class. Custom services may be implemented by deriving from this class and - * then added to an execution_context using the facilities described above. - * - * @par The execution_context as a base class - * - * Class execution_context may be used only as a base class for concrete - * execution context types. The @c io_context is an example of such a derived - * type. - * - * On destruction, a class that is derived from execution_context must perform - * execution_context::shutdown() followed by - * execution_context::destroy(). - * - * This destruction sequence permits programs to simplify their resource - * management by using @c shared_ptr<>. Where an object's lifetime is tied to - * the lifetime of a connection (or some other sequence of asynchronous - * operations), a @c shared_ptr to the object would be bound into the handlers - * for all asynchronous operations associated with it. This works as follows: - * - * @li When a single connection ends, all associated asynchronous operations - * complete. The corresponding handler objects are destroyed, and all @c - * shared_ptr references to the objects are destroyed. - * - * @li To shut down the whole program, the io_context function stop() is called - * to terminate any run() calls as soon as possible. The io_context destructor - * calls @c shutdown() and @c destroy() to destroy all pending handlers, - * causing all @c shared_ptr references to all connection objects to be - * destroyed. - */ -class execution_context - : private noncopyable -{ -public: - class id; - class service; - -protected: - /// Constructor. - ASIO_DECL execution_context(); - - /// Destructor. - ASIO_DECL ~execution_context(); - - /// Shuts down all services in the context. - /** - * This function is implemented as follows: - * - * @li For each service object @c svc in the execution_context set, in - * reverse order of the beginning of service object lifetime, performs @c - * svc->shutdown(). - */ - ASIO_DECL void shutdown(); - - /// Destroys all services in the context. - /** - * This function is implemented as follows: - * - * @li For each service object @c svc in the execution_context set, in - * reverse order * of the beginning of service object lifetime, performs - * delete static_cast(svc). - */ - ASIO_DECL void destroy(); - -public: - /// Fork-related event notifications. - enum fork_event - { - /// Notify the context that the process is about to fork. - fork_prepare, - - /// Notify the context that the process has forked and is the parent. - fork_parent, - - /// Notify the context that the process has forked and is the child. - fork_child - }; - - /// Notify the execution_context of a fork-related event. - /** - * This function is used to inform the execution_context that the process is - * about to fork, or has just forked. This allows the execution_context, and - * the services it contains, to perform any necessary housekeeping to ensure - * correct operation following a fork. - * - * This function must not be called while any other execution_context - * function, or any function associated with the execution_context's derived - * class, is being called in another thread. It is, however, safe to call - * this function from within a completion handler, provided no other thread - * is accessing the execution_context or its derived class. - * - * @param event A fork-related event. - * - * @throws asio::system_error Thrown on failure. If the notification - * fails the execution_context object should no longer be used and should be - * destroyed. - * - * @par Example - * The following code illustrates how to incorporate the notify_fork() - * function: - * @code my_execution_context.notify_fork(execution_context::fork_prepare); - * if (fork() == 0) - * { - * // This is the child process. - * my_execution_context.notify_fork(execution_context::fork_child); - * } - * else - * { - * // This is the parent process. - * my_execution_context.notify_fork(execution_context::fork_parent); - * } @endcode - * - * @note For each service object @c svc in the execution_context set, - * performs svc->notify_fork();. When processing the fork_prepare - * event, services are visited in reverse order of the beginning of service - * object lifetime. Otherwise, services are visited in order of the beginning - * of service object lifetime. - */ - ASIO_DECL void notify_fork(fork_event event); - - /// Obtain the service object corresponding to the given type. - /** - * This function is used to locate a service object that corresponds to the - * given service type. If there is no existing implementation of the service, - * then the execution_context will create a new instance of the service. - * - * @param e The execution_context object that owns the service. - * - * @return The service interface implementing the specified service type. - * Ownership of the service interface is not transferred to the caller. - */ - template - friend Service& use_service(execution_context& e); - - /// Obtain the service object corresponding to the given type. - /** - * This function is used to locate a service object that corresponds to the - * given service type. If there is no existing implementation of the service, - * then the io_context will create a new instance of the service. - * - * @param ioc The io_context object that owns the service. - * - * @return The service interface implementing the specified service type. - * Ownership of the service interface is not transferred to the caller. - * - * @note This overload is preserved for backwards compatibility with services - * that inherit from io_context::service. - */ - template - friend Service& use_service(io_context& ioc); - -#if defined(GENERATING_DOCUMENTATION) - - /// Creates a service object and adds it to the execution_context. - /** - * This function is used to add a service to the execution_context. - * - * @param e The execution_context object that owns the service. - * - * @param args Zero or more arguments to be passed to the service - * constructor. - * - * @throws asio::service_already_exists Thrown if a service of the - * given type is already present in the execution_context. - */ - template - friend Service& make_service(execution_context& e, Args&&... args); - -#elif defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - friend Service& make_service(execution_context& e, - ASIO_MOVE_ARG(Args)... args); - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - friend Service& make_service(execution_context& e); - -#define ASIO_PRIVATE_MAKE_SERVICE_DEF(n) \ - template \ - friend Service& make_service(execution_context& e, \ - ASIO_VARIADIC_MOVE_PARAMS(n)); \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_MAKE_SERVICE_DEF) -#undef ASIO_PRIVATE_MAKE_SERVICE_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - /// (Deprecated: Use make_service().) Add a service object to the - /// execution_context. - /** - * This function is used to add a service to the execution_context. - * - * @param e The execution_context object that owns the service. - * - * @param svc The service object. On success, ownership of the service object - * is transferred to the execution_context. When the execution_context object - * is destroyed, it will destroy the service object by performing: @code - * delete static_cast(svc) @endcode - * - * @throws asio::service_already_exists Thrown if a service of the - * given type is already present in the execution_context. - * - * @throws asio::invalid_service_owner Thrown if the service's owning - * execution_context is not the execution_context object specified by the - * @c e parameter. - */ - template - friend void add_service(execution_context& e, Service* svc); - - /// Determine if an execution_context contains a specified service type. - /** - * This function is used to determine whether the execution_context contains a - * service object corresponding to the given service type. - * - * @param e The execution_context object that owns the service. - * - * @return A boolean indicating whether the execution_context contains the - * service. - */ - template - friend bool has_service(execution_context& e); - -private: - // The service registry. - asio::detail::service_registry* service_registry_; -}; - -/// Class used to uniquely identify a service. -class execution_context::id - : private noncopyable -{ -public: - /// Constructor. - id() {} -}; - -/// Base class for all io_context services. -class execution_context::service - : private noncopyable -{ -public: - /// Get the context object that owns the service. - execution_context& context(); - -protected: - /// Constructor. - /** - * @param owner The execution_context object that owns the service. - */ - ASIO_DECL service(execution_context& owner); - - /// Destructor. - ASIO_DECL virtual ~service(); - -private: - /// Destroy all user-defined handler objects owned by the service. - virtual void shutdown() = 0; - - /// Handle notification of a fork-related event to perform any necessary - /// housekeeping. - /** - * This function is not a pure virtual so that services only have to - * implement it if necessary. The default implementation does nothing. - */ - ASIO_DECL virtual void notify_fork( - execution_context::fork_event event); - - friend class asio::detail::service_registry; - struct key - { - key() : type_info_(0), id_(0) {} - const std::type_info* type_info_; - const execution_context::id* id_; - } key_; - - execution_context& owner_; - service* next_; -}; - -/// Exception thrown when trying to add a duplicate service to an -/// execution_context. -class service_already_exists - : public std::logic_error -{ -public: - ASIO_DECL service_already_exists(); -}; - -/// Exception thrown when trying to add a service object to an -/// execution_context where the service has a different owner. -class invalid_service_owner - : public std::logic_error -{ -public: - ASIO_DECL invalid_service_owner(); -}; - -namespace detail { - -// Special derived service id type to keep classes header-file only. -template -class service_id - : public execution_context::id -{ -}; - -// Special service base class to keep classes header-file only. -template -class execution_context_service_base - : public execution_context::service -{ -public: - static service_id id; - - // Constructor. - execution_context_service_base(execution_context& e) - : execution_context::service(e) - { - } -}; - -template -service_id execution_context_service_base::id; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/execution_context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/execution_context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_EXECUTION_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/executor.hpp b/Sources/Vendor/asio/include/asio/executor.hpp deleted file mode 100644 index e552cfb..0000000 --- a/Sources/Vendor/asio/include/asio/executor.hpp +++ /dev/null @@ -1,341 +0,0 @@ -// -// executor.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXECUTOR_HPP -#define ASIO_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/cstddef.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Exception thrown when trying to access an empty polymorphic executor. -class bad_executor - : public std::exception -{ -public: - /// Constructor. - ASIO_DECL bad_executor() ASIO_NOEXCEPT; - - /// Obtain message associated with exception. - ASIO_DECL virtual const char* what() const - ASIO_NOEXCEPT_OR_NOTHROW; -}; - -/// Polymorphic wrapper for executors. -class executor -{ -public: - /// Default constructor. - executor() ASIO_NOEXCEPT - : impl_(0) - { - } - - /// Construct from nullptr. - executor(nullptr_t) ASIO_NOEXCEPT - : impl_(0) - { - } - - /// Copy constructor. - executor(const executor& other) ASIO_NOEXCEPT - : impl_(other.clone()) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - executor(executor&& other) ASIO_NOEXCEPT - : impl_(other.impl_) - { - other.impl_ = 0; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Construct a polymorphic wrapper for the specified executor. - template - executor(Executor e); - - /// Allocator-aware constructor to create a polymorphic wrapper for the - /// specified executor. - template - executor(allocator_arg_t, const Allocator& a, Executor e); - - /// Destructor. - ~executor() - { - destroy(); - } - - /// Assignment operator. - executor& operator=(const executor& other) ASIO_NOEXCEPT - { - destroy(); - impl_ = other.clone(); - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - // Move assignment operator. - executor& operator=(executor&& other) ASIO_NOEXCEPT - { - destroy(); - impl_ = other.impl_; - other.impl_ = 0; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Assignment operator for nullptr_t. - executor& operator=(nullptr_t) ASIO_NOEXCEPT - { - destroy(); - impl_ = 0; - return *this; - } - - /// Assignment operator to create a polymorphic wrapper for the specified - /// executor. - template - executor& operator=(ASIO_MOVE_ARG(Executor) e) ASIO_NOEXCEPT - { - executor tmp(ASIO_MOVE_CAST(Executor)(e)); - destroy(); - impl_ = tmp.impl_; - tmp.impl_ = 0; - return *this; - } - - /// Obtain the underlying execution context. - execution_context& context() const ASIO_NOEXCEPT - { - return get_impl()->context(); - } - - /// Inform the executor that it has some outstanding work to do. - void on_work_started() const ASIO_NOEXCEPT - { - get_impl()->on_work_started(); - } - - /// Inform the executor that some work is no longer outstanding. - void on_work_finished() const ASIO_NOEXCEPT - { - get_impl()->on_work_finished(); - } - - /// Request the executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object is executed according to the rules of the - * target executor object. - * - * @param f The function object to be called. The executor will make a copy - * of the handler object as required. The function signature of the function - * object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object is executed according to the rules of the - * target executor object. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object is executed according to the rules of the - * target executor object. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - struct unspecified_bool_type_t {}; - typedef void (*unspecified_bool_type)(unspecified_bool_type_t); - static void unspecified_bool_true(unspecified_bool_type_t) {} - - /// Operator to test if the executor contains a valid target. - operator unspecified_bool_type() const ASIO_NOEXCEPT - { - return impl_ ? &executor::unspecified_bool_true : 0; - } - - /// Obtain type information for the target executor object. - /** - * @returns If @c *this has a target type of type @c T, typeid(T); - * otherwise, typeid(void). - */ -#if !defined(ASIO_NO_TYPEID) || defined(GENERATING_DOCUMENTATION) - const std::type_info& target_type() const ASIO_NOEXCEPT - { - return impl_ ? impl_->target_type() : typeid(void); - } -#else // !defined(ASIO_NO_TYPEID) || defined(GENERATING_DOCUMENTATION) - const void* target_type() const ASIO_NOEXCEPT - { - return impl_ ? impl_->target_type() : 0; - } -#endif // !defined(ASIO_NO_TYPEID) || defined(GENERATING_DOCUMENTATION) - - /// Obtain a pointer to the target executor object. - /** - * @returns If target_type() == typeid(T), a pointer to the stored - * executor target; otherwise, a null pointer. - */ - template - Executor* target() ASIO_NOEXCEPT; - - /// Obtain a pointer to the target executor object. - /** - * @returns If target_type() == typeid(T), a pointer to the stored - * executor target; otherwise, a null pointer. - */ - template - const Executor* target() const ASIO_NOEXCEPT; - - /// Compare two executors for equality. - friend bool operator==(const executor& a, - const executor& b) ASIO_NOEXCEPT - { - if (a.impl_ == b.impl_) - return true; - if (!a.impl_ || !b.impl_) - return false; - return a.impl_->equals(b.impl_); - } - - /// Compare two executors for inequality. - friend bool operator!=(const executor& a, - const executor& b) ASIO_NOEXCEPT - { - return !(a == b); - } - -private: -#if !defined(GENERATING_DOCUMENTATION) - class function; - template class impl; - -#if !defined(ASIO_NO_TYPEID) - typedef const std::type_info& type_id_result_type; -#else // !defined(ASIO_NO_TYPEID) - typedef const void* type_id_result_type; -#endif // !defined(ASIO_NO_TYPEID) - - template - static type_id_result_type type_id() - { -#if !defined(ASIO_NO_TYPEID) - return typeid(T); -#else // !defined(ASIO_NO_TYPEID) - static int unique_id; - return &unique_id; -#endif // !defined(ASIO_NO_TYPEID) - } - - // Base class for all polymorphic executor implementations. - class impl_base - { - public: - virtual impl_base* clone() const ASIO_NOEXCEPT = 0; - virtual void destroy() ASIO_NOEXCEPT = 0; - virtual execution_context& context() ASIO_NOEXCEPT = 0; - virtual void on_work_started() ASIO_NOEXCEPT = 0; - virtual void on_work_finished() ASIO_NOEXCEPT = 0; - virtual void dispatch(ASIO_MOVE_ARG(function)) = 0; - virtual void post(ASIO_MOVE_ARG(function)) = 0; - virtual void defer(ASIO_MOVE_ARG(function)) = 0; - virtual type_id_result_type target_type() const ASIO_NOEXCEPT = 0; - virtual void* target() ASIO_NOEXCEPT = 0; - virtual const void* target() const ASIO_NOEXCEPT = 0; - virtual bool equals(const impl_base* e) const ASIO_NOEXCEPT = 0; - - protected: - impl_base(bool fast_dispatch) : fast_dispatch_(fast_dispatch) {} - virtual ~impl_base() {} - - private: - friend class executor; - const bool fast_dispatch_; - }; - - // Helper function to check and return the implementation pointer. - impl_base* get_impl() const - { - if (!impl_) - { - bad_executor ex; - asio::detail::throw_exception(ex); - } - return impl_; - } - - // Helper function to clone another implementation. - impl_base* clone() const ASIO_NOEXCEPT - { - return impl_ ? impl_->clone() : 0; - } - - // Helper function to destroy an implementation. - void destroy() ASIO_NOEXCEPT - { - if (impl_) - impl_->destroy(); - } - - impl_base* impl_; -#endif // !defined(GENERATING_DOCUMENTATION) -}; - -} // namespace asio - -ASIO_USES_ALLOCATOR(asio::executor) - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/executor.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/executor.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/executor_work_guard.hpp b/Sources/Vendor/asio/include/asio/executor_work_guard.hpp deleted file mode 100644 index 1875f54..0000000 --- a/Sources/Vendor/asio/include/asio/executor_work_guard.hpp +++ /dev/null @@ -1,170 +0,0 @@ -// -// executor_work_guard.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXECUTOR_WORK_GUARD_HPP -#define ASIO_EXECUTOR_WORK_GUARD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// An object of type @c executor_work_guard controls ownership of executor work -/// within a scope. -template -class executor_work_guard -{ -public: - /// The underlying executor type. - typedef Executor executor_type; - - /// Constructs a @c executor_work_guard object for the specified executor. - /** - * Stores a copy of @c e and calls on_work_started() on it. - */ - explicit executor_work_guard(const executor_type& e) ASIO_NOEXCEPT - : executor_(e), - owns_(true) - { - executor_.on_work_started(); - } - - /// Copy constructor. - executor_work_guard(const executor_work_guard& other) ASIO_NOEXCEPT - : executor_(other.executor_), - owns_(other.owns_) - { - if (owns_) - executor_.on_work_started(); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - executor_work_guard(executor_work_guard&& other) - : executor_(ASIO_MOVE_CAST(Executor)(other.executor_)), - owns_(other.owns_) - { - other.owns_ = false; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - /** - * Unless the object has already been reset, or is in a moved-from state, - * calls on_work_finished() on the stored executor. - */ - ~executor_work_guard() - { - if (owns_) - executor_.on_work_finished(); - } - - /// Obtain the associated executor. - executor_type get_executor() const ASIO_NOEXCEPT - { - return executor_; - } - - /// Whether the executor_work_guard object owns some outstanding work. - bool owns_work() const ASIO_NOEXCEPT - { - return owns_; - } - - /// Indicate that the work is no longer outstanding. - /* - * Unless the object has already been reset, or is in a moved-from state, - * calls on_work_finished() on the stored executor. - */ - void reset() ASIO_NOEXCEPT - { - if (owns_) - { - executor_.on_work_finished(); - owns_ = false; - } - } - -private: - // Disallow assignment. - executor_work_guard& operator=(const executor_work_guard&); - - executor_type executor_; - bool owns_; -}; - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard make_work_guard(const Executor& ex, - typename enable_if::value>::type* = 0) -{ - return executor_work_guard(ex); -} - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard -make_work_guard(ExecutionContext& ctx, - typename enable_if< - is_convertible::value>::type* = 0) -{ - return executor_work_guard( - ctx.get_executor()); -} - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard::type> -make_work_guard(const T& t, - typename enable_if::value && - !is_convertible::value>::type* = 0) -{ - return executor_work_guard::type>( - associated_executor::get(t)); -} - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard::type> -make_work_guard(const T& t, const Executor& ex, - typename enable_if::value>::type* = 0) -{ - return executor_work_guard::type>( - associated_executor::get(t, ex)); -} - -/// Create an @ref executor_work_guard object. -template -inline executor_work_guard::type> -make_work_guard(const T& t, ExecutionContext& ctx, - typename enable_if::value && - !is_convertible::value && - is_convertible::value>::type* = 0) -{ - return executor_work_guard::type>( - associated_executor::get( - t, ctx.get_executor())); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_EXECUTOR_WORK_GUARD_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental.hpp b/Sources/Vendor/asio/include/asio/experimental.hpp deleted file mode 100644 index 5765c37..0000000 --- a/Sources/Vendor/asio/include/asio/experimental.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// -// experimental.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2017 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_EXPERIMENTAL_HPP -#define ASIO_EXPERIMENTAL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/experimental/co_spawn.hpp" -#include "asio/experimental/detached.hpp" -#include "asio/experimental/redirect_error.hpp" - -#endif // ASIO_EXPERIMENTAL_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/co_spawn.hpp b/Sources/Vendor/asio/include/asio/experimental/co_spawn.hpp deleted file mode 100644 index cbf5bc5..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/co_spawn.hpp +++ /dev/null @@ -1,226 +0,0 @@ -// -// experimental/co_spawn.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXPERIMENTAL_CO_SPAWN_HPP -#define ASIO_EXPERIMENTAL_CO_SPAWN_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_CO_AWAIT) || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/executor.hpp" -#include "asio/strand.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { -namespace detail { - -using std::experimental::coroutine_handle; - -template class awaiter; -template class awaitee_base; -template class awaitee; -template class await_handler_base; -template -auto co_spawn(const Executor& ex, F&& f, CompletionToken&& token); - -} // namespace detail - -namespace this_coro { - -/// Awaitable type that returns a completion token for the current coroutine. -struct token_t {}; - -/// Awaitable object that returns a completion token for the current coroutine. -constexpr inline token_t token() { return {}; } - -/// Awaitable type that returns the executor of the current coroutine. -struct executor_t {}; - -/// Awaitable object that returns the executor of the current coroutine. -constexpr inline executor_t executor() { return {}; } - -} // namespace this_coro - -/// A completion token that represents the currently executing coroutine. -/** - * The await_token class is used to represent the currently executing - * coroutine. An await_token may be passed as a handler to an asynchronous - * operation. For example: - * - * @code awaitable my_coroutine() - * { - * await_token token = co_await this_coro::token(); - * ... - * std::size_t n = co_await my_socket.async_read_some(buffer, token); - * ... - * } @endcode - * - * The initiating function (async_read_some in the above example) suspends the - * current coroutine. The coroutine is resumed when the asynchronous operation - * completes, and the result of the operation is returned. - */ -template -class await_token -{ -public: - /// The associated executor type. - typedef Executor executor_type; - - /// Copy constructor. - await_token(const await_token& other) noexcept - : awaiter_(other.awaiter_) - { - } - - /// Move constructor. - await_token(await_token&& other) noexcept - : awaiter_(std::exchange(other.awaiter_, nullptr)) - { - } - - /// Get the associated executor. - executor_type get_executor() const noexcept - { - return awaiter_->get_executor(); - } - -private: - // No assignment allowed. - await_token& operator=(const await_token&) = delete; - - template friend class detail::awaitee_base; - template friend class detail::await_handler_base; - - // Private constructor used by awaitee_base. - explicit await_token(detail::awaiter* a) - : awaiter_(a) - { - } - - detail::awaiter* awaiter_; -}; - -/// The return type of a coroutine or asynchronous operation. -template > -class awaitable -{ -public: - /// The type of the awaited value. - typedef T value_type; - - /// The executor type that will be used for the coroutine. - typedef Executor executor_type; - - /// Move constructor. - awaitable(awaitable&& other) noexcept - : awaitee_(std::exchange(other.awaitee_, nullptr)) - { - } - - /// Destructor - ~awaitable() - { - if (awaitee_) - { - detail::coroutine_handle< - detail::awaitee>::from_promise( - *awaitee_).destroy(); - } - } - -#if !defined(GENERATING_DOCUMENTATION) - - // Support for co_await keyword. - bool await_ready() const noexcept - { - return awaitee_->ready(); - } - - // Support for co_await keyword. - void await_suspend(detail::coroutine_handle> h) - { - awaitee_->attach_caller(h); - } - - // Support for co_await keyword. - template - void await_suspend(detail::coroutine_handle> h) - { - awaitee_->attach_caller(h); - } - - // Support for co_await keyword. - T await_resume() - { - return awaitee_->get(); - } - -#endif // !defined(GENERATING_DOCUMENTATION) - -private: - template friend class detail::awaitee; - template friend class detail::await_handler_base; - - // Not copy constructible or copy assignable. - awaitable(const awaitable&) = delete; - awaitable& operator=(const awaitable&) = delete; - - // Construct the awaitable from a coroutine's promise object. - explicit awaitable(detail::awaitee* a) : awaitee_(a) {} - - detail::awaitee* awaitee_; -}; - -/// Spawn a new thread of execution. -template ::value>::type> -inline auto co_spawn(const Executor& ex, F&& f, CompletionToken&& token) -{ - return detail::co_spawn(ex, std::forward(f), - std::forward(token)); -} - -/// Spawn a new thread of execution. -template ::value>::type> -inline auto co_spawn(ExecutionContext& ctx, F&& f, CompletionToken&& token) -{ - return detail::co_spawn(ctx.get_executor(), std::forward(f), - std::forward(token)); -} - -/// Spawn a new thread of execution. -template -inline auto co_spawn(const await_token& parent, - F&& f, CompletionToken&& token) -{ - return detail::co_spawn(parent.get_executor(), std::forward(f), - std::forward(token)); -} - -} // namespace experimental -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/experimental/impl/co_spawn.hpp" - -#endif // defined(ASIO_HAS_CO_AWAIT) || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_EXPERIMENTAL_CO_SPAWN_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/detached.hpp b/Sources/Vendor/asio/include/asio/experimental/detached.hpp deleted file mode 100644 index d484f18..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/detached.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// experimental/detached.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXPERIMENTAL_DETACHED_HPP -#define ASIO_EXPERIMENTAL_DETACHED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { - -/// Class used to specify that an asynchronous operation is detached. -/** - - * The detached_t class is used to indicate that an asynchronous operation is - * detached. That is, there is no completion handler waiting for the - * operation's result. A detached_t object may be passed as a handler to an - * asynchronous operation, typically using the special value - * @c asio::experimental::detached. For example: - - * @code my_socket.async_send(my_buffer, asio::experimental::detached); - * @endcode - */ -class detached_t -{ -public: - /// Constructor. - ASIO_CONSTEXPR detached_t() - { - } -}; - -/// A special value, similar to std::nothrow. -/** - * See the documentation for asio::experimental::detached_t for a usage - * example. - */ -#if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION) -constexpr detached_t detached; -#elif defined(ASIO_MSVC) -__declspec(selectany) detached_t detached; -#endif - -} // namespace experimental -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/experimental/impl/detached.hpp" - -#endif // ASIO_EXPERIMENTAL_DETACHED_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/impl/co_spawn.hpp b/Sources/Vendor/asio/include/asio/experimental/impl/co_spawn.hpp deleted file mode 100644 index 8263eff..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/impl/co_spawn.hpp +++ /dev/null @@ -1,876 +0,0 @@ -// -// experimental/impl/co_spawn.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXPERIMENTAL_IMPL_CO_SPAWN_HPP -#define ASIO_EXPERIMENTAL_IMPL_CO_SPAWN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include -#include -#include "asio/async_result.hpp" -#include "asio/detail/thread_context.hpp" -#include "asio/detail/thread_info_base.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/dispatch.hpp" -#include "asio/post.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { -namespace detail { - -// Promise object for coroutine at top of thread-of-execution "stack". -template -class awaiter -{ -public: - struct deleter - { - void operator()(awaiter* a) - { - if (a) - a->release(); - } - }; - - typedef std::unique_ptr ptr; - - typedef Executor executor_type; - - ~awaiter() - { - if (has_executor_) - static_cast(static_cast(executor_))->~Executor(); - } - - void set_executor(const Executor& ex) - { - new (&executor_) Executor(ex); - has_executor_ = true; - } - - executor_type get_executor() const noexcept - { - return *static_cast(static_cast(executor_)); - } - - awaiter* get_return_object() - { - return this; - } - - auto initial_suspend() - { - return std::experimental::suspend_always(); - } - - auto final_suspend() - { - return std::experimental::suspend_always(); - } - - void return_void() - { - } - - awaiter* add_ref() - { - ++ref_count_; - return this; - } - - void release() - { - if (--ref_count_ == 0) - coroutine_handle::from_promise(*this).destroy(); - } - - void unhandled_exception() - { - pending_exception_ = std::current_exception(); - } - - void rethrow_unhandled_exception() - { - if (pending_exception_) - { - std::exception_ptr ex = std::exchange(pending_exception_, nullptr); - std::rethrow_exception(ex); - } - } - -private: - std::size_t ref_count_ = 0; - std::exception_ptr pending_exception_ = nullptr; - alignas(Executor) unsigned char executor_[sizeof(Executor)]; - bool has_executor_ = false; -}; - -// Base promise for coroutines further down the thread-of-execution "stack". -template -class awaitee_base -{ -public: -#if !defined(ASIO_DISABLE_AWAITEE_RECYCLING) - void* operator new(std::size_t size) - { - return asio::detail::thread_info_base::allocate( - asio::detail::thread_info_base::awaitee_tag(), - asio::detail::thread_context::thread_call_stack::top(), - size); - } - - void operator delete(void* pointer, std::size_t size) - { - asio::detail::thread_info_base::deallocate( - asio::detail::thread_info_base::awaitee_tag(), - asio::detail::thread_context::thread_call_stack::top(), - pointer, size); - } -#endif // !defined(ASIO_DISABLE_AWAITEE_RECYCLING) - - auto initial_suspend() - { - return std::experimental::suspend_never(); - } - - struct final_suspender - { - awaitee_base* this_; - - bool await_ready() const noexcept - { - return false; - } - - void await_suspend(coroutine_handle) - { - this_->wake_caller(); - } - - void await_resume() const noexcept - { - } - }; - - auto final_suspend() - { - return final_suspender{this}; - } - - void set_except(std::exception_ptr e) - { - pending_exception_ = e; - } - - void unhandled_exception() - { - set_except(std::current_exception()); - } - - void rethrow_exception() - { - if (pending_exception_) - { - std::exception_ptr ex = std::exchange(pending_exception_, nullptr); - std::rethrow_exception(ex); - } - } - - awaiter* top() - { - return awaiter_; - } - - coroutine_handle caller() - { - return caller_; - } - - bool ready() const - { - return ready_; - } - - void wake_caller() - { - if (caller_) - caller_.resume(); - else - ready_ = true; - } - - class awaitable_executor - { - public: - explicit awaitable_executor(awaitee_base* a) - : this_(a) - { - } - - bool await_ready() const noexcept - { - return this_->awaiter_ != nullptr; - } - - template - void await_suspend(coroutine_handle> h) noexcept - { - this_->resume_on_attach_ = h; - } - - Executor await_resume() - { - return this_->awaiter_->get_executor(); - } - - private: - awaitee_base* this_; - }; - - awaitable_executor await_transform(this_coro::executor_t) noexcept - { - return awaitable_executor(this); - } - - class awaitable_token - { - public: - explicit awaitable_token(awaitee_base* a) - : this_(a) - { - } - - bool await_ready() const noexcept - { - return this_->awaiter_ != nullptr; - } - - template - void await_suspend(coroutine_handle> h) noexcept - { - this_->resume_on_attach_ = h; - } - - await_token await_resume() - { - return await_token(this_->awaiter_); - } - - private: - awaitee_base* this_; - }; - - awaitable_token await_transform(this_coro::token_t) noexcept - { - return awaitable_token(this); - } - - template - awaitable await_transform(awaitable& t) const - { - return std::move(t); - } - - template - awaitable await_transform(awaitable&& t) const - { - return std::move(t); - } - - std::experimental::suspend_always await_transform( - std::experimental::suspend_always) const - { - return std::experimental::suspend_always(); - } - - void attach_caller(coroutine_handle> h) - { - this->caller_ = h; - this->attach_callees(&h.promise()); - } - - template - void attach_caller(coroutine_handle> h) - { - this->caller_ = h; - if (h.promise().awaiter_) - this->attach_callees(h.promise().awaiter_); - else - h.promise().unattached_callee_ = this; - } - - void attach_callees(awaiter* a) - { - for (awaitee_base* curr = this; curr != nullptr; - curr = std::exchange(curr->unattached_callee_, nullptr)) - { - curr->awaiter_ = a; - if (curr->resume_on_attach_) - return std::exchange(curr->resume_on_attach_, nullptr).resume(); - } - } - -protected: - awaiter* awaiter_ = nullptr; - coroutine_handle caller_ = nullptr; - awaitee_base* unattached_callee_ = nullptr; - std::exception_ptr pending_exception_ = nullptr; - coroutine_handle resume_on_attach_ = nullptr; - bool ready_ = false; -}; - -// Promise object for coroutines further down the thread-of-execution "stack". -template -class awaitee - : public awaitee_base -{ -public: - awaitee() - { - } - - awaitee(awaitee&& other) noexcept - : awaitee_base(std::move(other)) - { - } - - ~awaitee() - { - if (has_result_) - static_cast(static_cast(result_))->~T(); - } - - awaitable get_return_object() - { - return awaitable(this); - }; - - template - void return_value(U&& u) - { - new (&result_) T(std::forward(u)); - has_result_ = true; - } - - T get() - { - this->caller_ = nullptr; - this->rethrow_exception(); - return std::move(*static_cast(static_cast(result_))); - } - -private: - alignas(T) unsigned char result_[sizeof(T)]; - bool has_result_ = false; -}; - -// Promise object for coroutines further down the thread-of-execution "stack". -template -class awaitee - : public awaitee_base -{ -public: - awaitable get_return_object() - { - return awaitable(this); - }; - - void return_void() - { - } - - void get() - { - this->caller_ = nullptr; - this->rethrow_exception(); - } -}; - -template -class awaiter_task -{ -public: - typedef Executor executor_type; - - awaiter_task(awaiter* a) - : awaiter_(a->add_ref()) - { - } - - awaiter_task(awaiter_task&& other) noexcept - : awaiter_(std::exchange(other.awaiter_, nullptr)) - { - } - - ~awaiter_task() - { - if (awaiter_) - { - // Coroutine "stack unwinding" must be performed through the executor. - executor_type ex(awaiter_->get_executor()); - (post)(ex, - [a = std::move(awaiter_)]() mutable - { - typename awaiter::ptr(std::move(a)); - }); - } - } - - executor_type get_executor() const noexcept - { - return awaiter_->get_executor(); - } - -protected: - typename awaiter::ptr awaiter_; -}; - -template -class co_spawn_handler : public awaiter_task -{ -public: - using awaiter_task::awaiter_task; - - void operator()() - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - coroutine_handle>::from_promise(*ptr.get()).resume(); - } -}; - -template -class await_handler_base : public awaiter_task -{ -public: - typedef awaitable awaitable_type; - - await_handler_base(await_token token) - : awaiter_task(token.awaiter_), - awaitee_(nullptr) - { - } - - await_handler_base(await_handler_base&& other) noexcept - : awaiter_task(std::move(other)), - awaitee_(std::exchange(other.awaitee_, nullptr)) - { - } - - void attach_awaitee(const awaitable& a) - { - awaitee_ = a.awaitee_; - } - -protected: - awaitee* awaitee_; -}; - -template class await_handler; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - void operator()() - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - this->awaitee_->return_void(); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - typedef void return_type; - - using await_handler_base::await_handler_base; - - void operator()(const asio::error_code& ec) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ec) - { - this->awaitee_->set_except( - std::make_exception_ptr(asio::system_error(ec))); - } - else - this->awaitee_->return_void(); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - void operator()(std::exception_ptr ex) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ex) - this->awaitee_->set_except(ex); - else - this->awaitee_->return_void(); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - template - void operator()(Arg&& arg) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - this->awaitee_->return_value(std::forward(arg)); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - template - void operator()(const asio::error_code& ec, Arg&& arg) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ec) - { - this->awaitee_->set_except( - std::make_exception_ptr(asio::system_error(ec))); - } - else - this->awaitee_->return_value(std::forward(arg)); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base -{ -public: - using await_handler_base::await_handler_base; - - template - void operator()(std::exception_ptr ex, Arg&& arg) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ex) - this->awaitee_->set_except(ex); - else - this->awaitee_->return_value(std::forward(arg)); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base> -{ -public: - using await_handler_base>::await_handler_base; - - template - void operator()(Args&&... args) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - this->awaitee_->return_value( - std::forward_as_tuple(std::forward(args)...)); - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base> -{ -public: - using await_handler_base>::await_handler_base; - - template - void operator()(const asio::error_code& ec, Args&&... args) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ec) - { - this->awaitee_->set_except( - std::make_exception_ptr(asio::system_error(ec))); - } - else - { - this->awaitee_->return_value( - std::forward_as_tuple(std::forward(args)...)); - } - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -class await_handler - : public await_handler_base> -{ -public: - using await_handler_base>::await_handler_base; - - template - void operator()(std::exception_ptr ex, Args&&... args) - { - typename awaiter::ptr ptr(std::move(this->awaiter_)); - if (ex) - this->awaitee_->set_except(ex); - else - { - this->awaitee_->return_value( - std::forward_as_tuple(std::forward(args)...)); - } - this->awaitee_->wake_caller(); - ptr->rethrow_unhandled_exception(); - } -}; - -template -struct awaitable_signature; - -template -struct awaitable_signature> -{ - typedef void type(std::exception_ptr, T); -}; - -template -struct awaitable_signature> -{ - typedef void type(std::exception_ptr); -}; - -template -awaiter* co_spawn_entry_point(awaitable*, - executor_work_guard work_guard, F f, Handler handler) -{ - bool done = false; - - try - { - T t = co_await f(); - - done = true; - - (dispatch)(work_guard.get_executor(), - [handler = std::move(handler), t = std::move(t)]() mutable - { - handler(std::exception_ptr(), std::move(t)); - }); - } - catch (...) - { - if (done) - throw; - - (dispatch)(work_guard.get_executor(), - [handler = std::move(handler), e = std::current_exception()]() mutable - { - handler(e, T()); - }); - } -} - -template -awaiter* co_spawn_entry_point(awaitable*, - executor_work_guard work_guard, F f, Handler handler) -{ - std::exception_ptr e = nullptr; - - try - { - co_await f(); - } - catch (...) - { - e = std::current_exception(); - } - - (dispatch)(work_guard.get_executor(), - [handler = std::move(handler), e]() mutable - { - handler(e); - }); -} - -template -auto co_spawn(const Executor& ex, F&& f, CompletionToken&& token) -{ - typedef typename result_of::type awaitable_type; - typedef typename awaitable_type::executor_type executor_type; - typedef typename awaitable_signature::type signature_type; - - async_completion completion(token); - - executor_type ex2(ex); - auto work_guard = make_work_guard(completion.completion_handler, ex2); - - auto* a = (co_spawn_entry_point)( - static_cast(nullptr), std::move(work_guard), - std::forward(f), std::move(completion.completion_handler)); - - a->set_executor(ex2); - (post)(co_spawn_handler(a)); - - return completion.result.get(); -} - -#if defined(_MSC_VER) -# pragma warning(push) -# pragma warning(disable:4033) -#endif // defined(_MSC_VER) - -#if defined(_MSC_VER) -template T dummy_return() -{ - return std::move(*static_cast(nullptr)); -} - -template <> -inline void dummy_return() -{ -} -#endif // defined(_MSC_VER) - -template -inline Awaitable make_dummy_awaitable() -{ - for (;;) co_await std::experimental::suspend_always(); -#if defined(_MSC_VER) - co_return dummy_return(); -#endif // defined(_MSC_VER) -} - -#if defined(_MSC_VER) -# pragma warning(pop) -#endif // defined(_MSC_VER) - -} // namespace detail -} // namespace experimental - -template -class async_result, R(Args...)> -{ -public: - typedef experimental::detail::await_handler< - Executor, typename decay::type...> completion_handler_type; - - typedef typename experimental::detail::await_handler< - Executor, Args...>::awaitable_type return_type; - - async_result(completion_handler_type& h) - : awaitable_(experimental::detail::make_dummy_awaitable()) - { - h.attach_awaitee(awaitable_); - } - - return_type get() - { - return std::move(awaitable_); - } - -private: - return_type awaitable_; -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, R(Args...)> -{ - typedef experimental::detail::await_handler< - Executor, typename decay::type...> type; -}; - -template -class async_result> -{ -public: - typedef typename experimental::detail::await_handler< - Executor, Args...>::awaitable_type type; - - async_result(experimental::detail::await_handler& h) - : awaitable_(experimental::detail::make_dummy_awaitable()) - { - h.attach_awaitee(awaitable_); - } - - type get() - { - return std::move(awaitable_); - } - -private: - type awaitable_; -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -} // namespace asio - -namespace std { namespace experimental { - -template -struct coroutine_traits< - asio::experimental::detail::awaiter*, Args...> -{ - typedef asio::experimental::detail::awaiter promise_type; -}; - -template -struct coroutine_traits< - asio::experimental::awaitable, Args...> -{ - typedef asio::experimental::detail::awaitee promise_type; -}; - -}} // namespace std::experimental - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_EXPERIMENTAL_IMPL_CO_SPAWN_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/impl/detached.hpp b/Sources/Vendor/asio/include/asio/experimental/impl/detached.hpp deleted file mode 100644 index 6ce8887..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/impl/detached.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// experimental/impl/detached.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXPERIMENTAL_IMPL_DETACHED_HPP -#define ASIO_EXPERIMENTAL_IMPL_DETACHED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/variadic_templates.hpp" -#include "asio/handler_type.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { -namespace detail { - - // Class to adapt a detached_t as a completion handler. - class detached_handler - { - public: - detached_handler(detached_t) - { - } - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(Args...) - { - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - void operator()() - { - } - -#define ASIO_PRIVATE_DETACHED_DEF(n) \ - template \ - void operator()(ASIO_VARIADIC_BYVAL_PARAMS(n)) \ - { \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_DETACHED_DEF) -#undef ASIO_PRIVATE_DETACHED_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - }; - -} // namespace detail -} // namespace experimental - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct async_result -{ - typedef asio::experimental::detail::detached_handler - completion_handler_type; - - typedef void return_type; - - explicit async_result(completion_handler_type&) - { - } - - void get() - { - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_EXPERIMENTAL_IMPL_DETACHED_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/impl/redirect_error.hpp b/Sources/Vendor/asio/include/asio/experimental/impl/redirect_error.hpp deleted file mode 100644 index d3b97fa..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/impl/redirect_error.hpp +++ /dev/null @@ -1,294 +0,0 @@ -// -// experimental/impl/redirect_error.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXPERIMENTAL_IMPL_REDIRECT_ERROR_HPP -#define ASIO_EXPERIMENTAL_IMPL_REDIRECT_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_executor.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/detail/variadic_templates.hpp" -#include "asio/handler_type.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { -namespace detail { - -// Class to adapt a redirect_error_t as a completion handler. -template -class redirect_error_handler -{ -public: - template - redirect_error_handler(redirect_error_t e) - : ec_(e.ec_), - handler_(ASIO_MOVE_CAST(CompletionToken)(e.token_)) - { - } - - void operator()() - { - handler_(); - } - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - typename enable_if< - !is_same::type, asio::error_code>::value - >::type - operator()(ASIO_MOVE_ARG(Arg) arg, ASIO_MOVE_ARG(Args)... args) - { - handler_(ASIO_MOVE_CAST(Arg)(arg), - ASIO_MOVE_CAST(Args)(args)...); - } - - template - void operator()(const asio::error_code& ec, - ASIO_MOVE_ARG(Args)... args) - { - ec_ = ec; - handler_(ASIO_MOVE_CAST(Args)(args)...); - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - typename enable_if< - !is_same::type, asio::error_code>::value - >::type - operator()(ASIO_MOVE_ARG(Arg) arg) - { - handler_(ASIO_MOVE_CAST(Arg)(arg)); - } - - void operator()(const asio::error_code& ec) - { - ec_ = ec; - handler_(); - } - -#define ASIO_PRIVATE_REDIRECT_ERROR_DEF(n) \ - template \ - typename enable_if< \ - !is_same::type, asio::error_code>::value \ - >::type \ - operator()(ASIO_MOVE_ARG(Arg) arg, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - handler_(ASIO_MOVE_CAST(Arg)(arg), \ - ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - \ - template \ - void operator()(const asio::error_code& ec, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - ec_ = ec; \ - handler_(ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_REDIRECT_ERROR_DEF) -#undef ASIO_PRIVATE_REDIRECT_ERROR_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -//private: - asio::error_code& ec_; - Handler handler_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - redirect_error_handler* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - redirect_error_handler* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - redirect_error_handler* this_handler) -{ - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - redirect_error_handler* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - redirect_error_handler* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -struct redirect_error_signature -{ - typedef Signature type; -}; - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -struct redirect_error_signature -{ - typedef R type(Args...); -}; - -template -struct redirect_error_signature -{ - typedef R type(Args...); -}; - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -struct redirect_error_signature -{ - typedef R type(); -}; - -template -struct redirect_error_signature -{ - typedef R type(); -}; - -#define ASIO_PRIVATE_REDIRECT_ERROR_DEF(n) \ - template \ - struct redirect_error_signature< \ - R(asio::error_code, ASIO_VARIADIC_TARGS(n))> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - \ - template \ - struct redirect_error_signature< \ - R(const asio::error_code&, ASIO_VARIADIC_TARGS(n))> \ - { \ - typedef R type(ASIO_VARIADIC_TARGS(n)); \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_REDIRECT_ERROR_DEF) -#undef ASIO_PRIVATE_REDIRECT_ERROR_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -} // namespace detail -} // namespace experimental - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct async_result, Signature> - : async_result::type> -{ - typedef experimental::detail::redirect_error_handler< - typename async_result::type> - ::completion_handler_type> completion_handler_type; - - explicit async_result(completion_handler_type& h) - : async_result::type>(h.handler_) - { - } -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, Signature> -{ - typedef experimental::detail::redirect_error_handler< - typename async_result::type> - ::completion_handler_type> type; -}; - -template -struct async_result > - : async_result -{ - explicit async_result( - experimental::detail::redirect_error_handler& h) - : async_result(h.handler_) - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -struct associated_executor< - experimental::detail::redirect_error_handler, Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const experimental::detail::redirect_error_handler& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -template -struct associated_allocator< - experimental::detail::redirect_error_handler, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const experimental::detail::redirect_error_handler& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_EXPERIMENTAL_IMPL_REDIRECT_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/experimental/redirect_error.hpp b/Sources/Vendor/asio/include/asio/experimental/redirect_error.hpp deleted file mode 100644 index 30e81cf..0000000 --- a/Sources/Vendor/asio/include/asio/experimental/redirect_error.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// experimental/redirect_error.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_EXPERIMENTAL_REDIRECT_ERROR_HPP -#define ASIO_EXPERIMENTAL_REDIRECT_ERROR_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/type_traits.hpp" -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace experimental { - -/// Completion token type used to specify that an error produced by an -/// asynchronous operation is captured to an error_code variable. -/** - * The redirect_error_t class is used to indicate that any error_code produced - * by an asynchronous operation is captured to a specified variable. - */ -template -class redirect_error_t -{ -public: - /// Constructor. - template - redirect_error_t(ASIO_MOVE_ARG(T) completion_token, - asio::error_code& ec) - : token_(ASIO_MOVE_CAST(T)(completion_token)), - ec_(ec) - { - } - -//private: - CompletionToken token_; - asio::error_code& ec_; -}; - -/// Create a completion token to capture error_code values to a variable. -template -inline redirect_error_t::type> redirect_error( - CompletionToken&& completion_token, asio::error_code& ec) -{ - return redirect_error_t::type>( - ASIO_MOVE_CAST(CompletionToken)(completion_token), ec); -} - -} // namespace experimental -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/experimental/impl/redirect_error.hpp" - -#endif // ASIO_EXPERIMENTAL_REDIRECT_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/basic_endpoint.hpp b/Sources/Vendor/asio/include/asio/generic/basic_endpoint.hpp deleted file mode 100644 index 73aa151..0000000 --- a/Sources/Vendor/asio/include/asio/generic/basic_endpoint.hpp +++ /dev/null @@ -1,193 +0,0 @@ -// -// generic/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_GENERIC_BASIC_ENDPOINT_HPP -#define ASIO_GENERIC_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/generic/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Describes an endpoint for any socket type. -/** - * The asio::generic::basic_endpoint class template describes an endpoint - * that may be associated with any socket type. - * - * @note The socket types sockaddr type must be able to fit into a - * @c sockaddr_storage structure. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template -class basic_endpoint -{ -public: - /// The protocol type associated with the endpoint. - typedef Protocol protocol_type; - - /// The type of the endpoint structure. This type is dependent on the - /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined data_type; -#else - typedef asio::detail::socket_addr_type data_type; -#endif - - /// Default constructor. - basic_endpoint() - { - } - - /// Construct an endpoint from the specified socket address. - basic_endpoint(const void* socket_address, - std::size_t socket_address_size, int socket_protocol = 0) - : impl_(socket_address, socket_address_size, socket_protocol) - { - } - - /// Construct an endpoint from the specific endpoint type. - template - basic_endpoint(const Endpoint& endpoint) - : impl_(endpoint.data(), endpoint.size(), endpoint.protocol().protocol()) - { - } - - /// Copy constructor. - basic_endpoint(const basic_endpoint& other) - : impl_(other.impl_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_endpoint(basic_endpoint&& other) - : impl_(other.impl_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another endpoint. - basic_endpoint& operator=(const basic_endpoint& other) - { - impl_ = other.impl_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another endpoint. - basic_endpoint& operator=(basic_endpoint&& other) - { - impl_ = other.impl_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// The protocol associated with the endpoint. - protocol_type protocol() const - { - return protocol_type(impl_.family(), impl_.protocol()); - } - - /// Get the underlying endpoint in the native type. - data_type* data() - { - return impl_.data(); - } - - /// Get the underlying endpoint in the native type. - const data_type* data() const - { - return impl_.data(); - } - - /// Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return impl_.size(); - } - - /// Set the underlying size of the endpoint in the native type. - void resize(std::size_t new_size) - { - impl_.resize(new_size); - } - - /// Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return impl_.capacity(); - } - - /// Compare two endpoints for equality. - friend bool operator==(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ == e2.impl_; - } - - /// Compare two endpoints for inequality. - friend bool operator!=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1.impl_ == e2.impl_); - } - - /// Compare endpoints for ordering. - friend bool operator<(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ < e2.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator>(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e2.impl_ < e1.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator<=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e2 < e1); - } - - /// Compare endpoints for ordering. - friend bool operator>=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1 < e2); - } - -private: - // The underlying generic endpoint. - asio::generic::detail::endpoint impl_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_BASIC_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/datagram_protocol.hpp b/Sources/Vendor/asio/include/asio/generic/datagram_protocol.hpp deleted file mode 100644 index 8678ad8..0000000 --- a/Sources/Vendor/asio/include/asio/generic/datagram_protocol.hpp +++ /dev/null @@ -1,123 +0,0 @@ -// -// generic/datagram_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_GENERIC_DATAGRAM_PROTOCOL_HPP -#define ASIO_GENERIC_DATAGRAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/basic_datagram_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/generic/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Encapsulates the flags needed for a generic datagram-oriented socket. -/** - * The asio::generic::datagram_protocol class contains flags necessary - * for datagram-oriented sockets of any address family and protocol. - * - * @par Examples - * Constructing using a native address family and socket protocol: - * @code datagram_protocol p(AF_INET, IPPROTO_UDP); @endcode - * Constructing from a specific protocol type: - * @code datagram_protocol p(asio::ip::udp::v4()); @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class datagram_protocol -{ -public: - /// Construct a protocol object for a specific address family and protocol. - datagram_protocol(int address_family, int socket_protocol) - : family_(address_family), - protocol_(socket_protocol) - { - } - - /// Construct a generic protocol object from a specific protocol. - /** - * @throws @c bad_cast Thrown if the source protocol is not datagram-oriented. - */ - template - datagram_protocol(const Protocol& source_protocol) - : family_(source_protocol.family()), - protocol_(source_protocol.protocol()) - { - if (source_protocol.type() != type()) - { - std::bad_cast ex; - asio::detail::throw_exception(ex); - } - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_DGRAM); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// Compare two protocols for equality. - friend bool operator==(const datagram_protocol& p1, - const datagram_protocol& p2) - { - return p1.family_ == p2.family_ && p1.protocol_ == p2.protocol_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const datagram_protocol& p1, - const datagram_protocol& p2) - { - return !(p1 == p2); - } - - /// The type of an endpoint. - typedef basic_endpoint endpoint; - - /// The generic socket type. - typedef basic_datagram_socket socket; - -private: - int family_; - int protocol_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_DATAGRAM_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/detail/endpoint.hpp b/Sources/Vendor/asio/include/asio/generic/detail/endpoint.hpp deleted file mode 100644 index 190beb1..0000000 --- a/Sources/Vendor/asio/include/asio/generic/detail/endpoint.hpp +++ /dev/null @@ -1,133 +0,0 @@ -// -// generic/detail/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_GENERIC_DETAIL_ENDPOINT_HPP -#define ASIO_GENERIC_DETAIL_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { -namespace detail { - -// Helper class for implementing a generic socket endpoint. -class endpoint -{ -public: - // Default constructor. - ASIO_DECL endpoint(); - - // Construct an endpoint from the specified raw bytes. - ASIO_DECL endpoint(const void* sock_addr, - std::size_t sock_addr_size, int sock_protocol); - - // Copy constructor. - endpoint(const endpoint& other) - : data_(other.data_), - size_(other.size_), - protocol_(other.protocol_) - { - } - - // Assign from another endpoint. - endpoint& operator=(const endpoint& other) - { - data_ = other.data_; - size_ = other.size_; - protocol_ = other.protocol_; - return *this; - } - - // Get the address family associated with the endpoint. - int family() const - { - return data_.base.sa_family; - } - - // Get the socket protocol associated with the endpoint. - int protocol() const - { - return protocol_; - } - - // Get the underlying endpoint in the native type. - asio::detail::socket_addr_type* data() - { - return &data_.base; - } - - // Get the underlying endpoint in the native type. - const asio::detail::socket_addr_type* data() const - { - return &data_.base; - } - - // Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return size_; - } - - // Set the underlying size of the endpoint in the native type. - ASIO_DECL void resize(std::size_t size); - - // Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return sizeof(asio::detail::sockaddr_storage_type); - } - - // Compare two endpoints for equality. - ASIO_DECL friend bool operator==( - const endpoint& e1, const endpoint& e2); - - // Compare endpoints for ordering. - ASIO_DECL friend bool operator<( - const endpoint& e1, const endpoint& e2); - -private: - // The underlying socket address. - union data_union - { - asio::detail::socket_addr_type base; - asio::detail::sockaddr_storage_type generic; - } data_; - - // The length of the socket address stored in the endpoint. - std::size_t size_; - - // The socket protocol associated with the endpoint. - int protocol_; - - // Initialise with a specified memory. - ASIO_DECL void init(const void* sock_addr, - std::size_t sock_addr_size, int sock_protocol); -}; - -} // namespace detail -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/generic/detail/impl/endpoint.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_GENERIC_DETAIL_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/detail/impl/endpoint.ipp b/Sources/Vendor/asio/include/asio/generic/detail/impl/endpoint.ipp deleted file mode 100644 index 227ffe1..0000000 --- a/Sources/Vendor/asio/include/asio/generic/detail/impl/endpoint.ipp +++ /dev/null @@ -1,110 +0,0 @@ -// -// generic/detail/impl/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_GENERIC_DETAIL_IMPL_ENDPOINT_IPP -#define ASIO_GENERIC_DETAIL_IMPL_ENDPOINT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/error.hpp" -#include "asio/generic/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { -namespace detail { - -endpoint::endpoint() -{ - init(0, 0, 0); -} - -endpoint::endpoint(const void* sock_addr, - std::size_t sock_addr_size, int sock_protocol) -{ - init(sock_addr, sock_addr_size, sock_protocol); -} - -void endpoint::resize(std::size_t new_size) -{ - if (new_size > sizeof(asio::detail::sockaddr_storage_type)) - { - asio::error_code ec(asio::error::invalid_argument); - asio::detail::throw_error(ec); - } - else - { - size_ = new_size; - protocol_ = 0; - } -} - -bool operator==(const endpoint& e1, const endpoint& e2) -{ - using namespace std; // For memcmp. - return e1.size() == e2.size() && memcmp(e1.data(), e2.data(), e1.size()) == 0; -} - -bool operator<(const endpoint& e1, const endpoint& e2) -{ - if (e1.protocol() < e2.protocol()) - return true; - - if (e1.protocol() > e2.protocol()) - return false; - - using namespace std; // For memcmp. - std::size_t compare_size = e1.size() < e2.size() ? e1.size() : e2.size(); - int compare_result = memcmp(e1.data(), e2.data(), compare_size); - - if (compare_result < 0) - return true; - - if (compare_result > 0) - return false; - - return e1.size() < e2.size(); -} - -void endpoint::init(const void* sock_addr, - std::size_t sock_addr_size, int sock_protocol) -{ - if (sock_addr_size > sizeof(asio::detail::sockaddr_storage_type)) - { - asio::error_code ec(asio::error::invalid_argument); - asio::detail::throw_error(ec); - } - - using namespace std; // For memset and memcpy. - memset(&data_.generic, 0, sizeof(asio::detail::sockaddr_storage_type)); - if (sock_addr_size > 0) - memcpy(&data_.generic, sock_addr, sock_addr_size); - - size_ = sock_addr_size; - protocol_ = sock_protocol; -} - -} // namespace detail -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_DETAIL_IMPL_ENDPOINT_IPP diff --git a/Sources/Vendor/asio/include/asio/generic/raw_protocol.hpp b/Sources/Vendor/asio/include/asio/generic/raw_protocol.hpp deleted file mode 100644 index b83dca6..0000000 --- a/Sources/Vendor/asio/include/asio/generic/raw_protocol.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// generic/raw_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_GENERIC_RAW_PROTOCOL_HPP -#define ASIO_GENERIC_RAW_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/basic_raw_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/generic/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Encapsulates the flags needed for a generic raw socket. -/** - * The asio::generic::raw_protocol class contains flags necessary for - * raw sockets of any address family and protocol. - * - * @par Examples - * Constructing using a native address family and socket protocol: - * @code raw_protocol p(AF_INET, IPPROTO_ICMP); @endcode - * Constructing from a specific protocol type: - * @code raw_protocol p(asio::ip::icmp::v4()); @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class raw_protocol -{ -public: - /// Construct a protocol object for a specific address family and protocol. - raw_protocol(int address_family, int socket_protocol) - : family_(address_family), - protocol_(socket_protocol) - { - } - - /// Construct a generic protocol object from a specific protocol. - /** - * @throws @c bad_cast Thrown if the source protocol is not raw-oriented. - */ - template - raw_protocol(const Protocol& source_protocol) - : family_(source_protocol.family()), - protocol_(source_protocol.protocol()) - { - if (source_protocol.type() != type()) - { - std::bad_cast ex; - asio::detail::throw_exception(ex); - } - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_RAW); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// Compare two protocols for equality. - friend bool operator==(const raw_protocol& p1, const raw_protocol& p2) - { - return p1.family_ == p2.family_ && p1.protocol_ == p2.protocol_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const raw_protocol& p1, const raw_protocol& p2) - { - return !(p1 == p2); - } - - /// The type of an endpoint. - typedef basic_endpoint endpoint; - - /// The generic socket type. - typedef basic_raw_socket socket; - -private: - int family_; - int protocol_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_RAW_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/seq_packet_protocol.hpp b/Sources/Vendor/asio/include/asio/generic/seq_packet_protocol.hpp deleted file mode 100644 index f92a4c8..0000000 --- a/Sources/Vendor/asio/include/asio/generic/seq_packet_protocol.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// generic/seq_packet_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_GENERIC_SEQ_PACKET_PROTOCOL_HPP -#define ASIO_GENERIC_SEQ_PACKET_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/basic_seq_packet_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/generic/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Encapsulates the flags needed for a generic sequenced packet socket. -/** - * The asio::generic::seq_packet_protocol class contains flags necessary - * for seq_packet-oriented sockets of any address family and protocol. - * - * @par Examples - * Constructing using a native address family and socket protocol: - * @code seq_packet_protocol p(AF_INET, IPPROTO_SCTP); @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class seq_packet_protocol -{ -public: - /// Construct a protocol object for a specific address family and protocol. - seq_packet_protocol(int address_family, int socket_protocol) - : family_(address_family), - protocol_(socket_protocol) - { - } - - /// Construct a generic protocol object from a specific protocol. - /** - * @throws @c bad_cast Thrown if the source protocol is not based around - * sequenced packets. - */ - template - seq_packet_protocol(const Protocol& source_protocol) - : family_(source_protocol.family()), - protocol_(source_protocol.protocol()) - { - if (source_protocol.type() != type()) - { - std::bad_cast ex; - asio::detail::throw_exception(ex); - } - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_SEQPACKET); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// Compare two protocols for equality. - friend bool operator==(const seq_packet_protocol& p1, - const seq_packet_protocol& p2) - { - return p1.family_ == p2.family_ && p1.protocol_ == p2.protocol_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const seq_packet_protocol& p1, - const seq_packet_protocol& p2) - { - return !(p1 == p2); - } - - /// The type of an endpoint. - typedef basic_endpoint endpoint; - - /// The generic socket type. - typedef basic_seq_packet_socket socket; - -private: - int family_; - int protocol_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_SEQ_PACKET_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/generic/stream_protocol.hpp b/Sources/Vendor/asio/include/asio/generic/stream_protocol.hpp deleted file mode 100644 index 8349f25..0000000 --- a/Sources/Vendor/asio/include/asio/generic/stream_protocol.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// -// generic/stream_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_GENERIC_STREAM_PROTOCOL_HPP -#define ASIO_GENERIC_STREAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/generic/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace generic { - -/// Encapsulates the flags needed for a generic stream-oriented socket. -/** - * The asio::generic::stream_protocol class contains flags necessary for - * stream-oriented sockets of any address family and protocol. - * - * @par Examples - * Constructing using a native address family and socket protocol: - * @code stream_protocol p(AF_INET, IPPROTO_TCP); @endcode - * Constructing from a specific protocol type: - * @code stream_protocol p(asio::ip::tcp::v4()); @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class stream_protocol -{ -public: - /// Construct a protocol object for a specific address family and protocol. - stream_protocol(int address_family, int socket_protocol) - : family_(address_family), - protocol_(socket_protocol) - { - } - - /// Construct a generic protocol object from a specific protocol. - /** - * @throws @c bad_cast Thrown if the source protocol is not stream-oriented. - */ - template - stream_protocol(const Protocol& source_protocol) - : family_(source_protocol.family()), - protocol_(source_protocol.protocol()) - { - if (source_protocol.type() != type()) - { - std::bad_cast ex; - asio::detail::throw_exception(ex); - } - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_STREAM); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// Compare two protocols for equality. - friend bool operator==(const stream_protocol& p1, const stream_protocol& p2) - { - return p1.family_ == p2.family_ && p1.protocol_ == p2.protocol_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const stream_protocol& p1, const stream_protocol& p2) - { - return !(p1 == p2); - } - - /// The type of an endpoint. - typedef basic_endpoint endpoint; - - /// The generic socket type. - typedef basic_stream_socket socket; - -#if !defined(ASIO_NO_IOSTREAM) - /// The generic socket iostream type. - typedef basic_socket_iostream iostream; -#endif // !defined(ASIO_NO_IOSTREAM) - -private: - int family_; - int protocol_; -}; - -} // namespace generic -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_GENERIC_STREAM_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/handler_alloc_hook.hpp b/Sources/Vendor/asio/include/asio/handler_alloc_hook.hpp deleted file mode 100644 index d7fe2b0..0000000 --- a/Sources/Vendor/asio/include/asio/handler_alloc_hook.hpp +++ /dev/null @@ -1,81 +0,0 @@ -// -// handler_alloc_hook.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_HANDLER_ALLOC_HOOK_HPP -#define ASIO_HANDLER_ALLOC_HOOK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default allocation function for handlers. -/** - * Asynchronous operations may need to allocate temporary objects. Since - * asynchronous operations have a handler function object, these temporary - * objects can be said to be associated with the handler. - * - * Implement asio_handler_allocate and asio_handler_deallocate for your own - * handlers to provide custom allocation for these temporary objects. - * - * The default implementation of these allocation hooks uses ::operator - * new and ::operator delete. - * - * @note All temporary objects associated with a handler will be deallocated - * before the upcall to the handler is performed. This allows the same memory to - * be reused for a subsequent asynchronous operation initiated by the handler. - * - * @par Example - * @code - * class my_handler; - * - * void* asio_handler_allocate(std::size_t size, my_handler* context) - * { - * return ::operator new(size); - * } - * - * void asio_handler_deallocate(void* pointer, std::size_t size, - * my_handler* context) - * { - * ::operator delete(pointer); - * } - * @endcode - */ -ASIO_DECL void* asio_handler_allocate( - std::size_t size, ...); - -/// Default deallocation function for handlers. -/** - * Implement asio_handler_allocate and asio_handler_deallocate for your own - * handlers to provide custom allocation for the associated temporary objects. - * - * The default implementation of these allocation hooks uses ::operator - * new and ::operator delete. - * - * @sa asio_handler_allocate. - */ -ASIO_DECL void asio_handler_deallocate( - void* pointer, std::size_t size, ...); - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/handler_alloc_hook.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_HANDLER_ALLOC_HOOK_HPP diff --git a/Sources/Vendor/asio/include/asio/handler_continuation_hook.hpp b/Sources/Vendor/asio/include/asio/handler_continuation_hook.hpp deleted file mode 100644 index d41d105..0000000 --- a/Sources/Vendor/asio/include/asio/handler_continuation_hook.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// handler_continuation_hook.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_HANDLER_CONTINUATION_HOOK_HPP -#define ASIO_HANDLER_CONTINUATION_HOOK_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 { - -/// Default continuation function for handlers. -/** - * Asynchronous operations may represent a continuation of the asynchronous - * control flow associated with the current handler. The implementation can use - * this knowledge to optimise scheduling of the handler. - * - * Implement asio_handler_is_continuation for your own handlers to indicate - * when a handler represents a continuation. - * - * The default implementation of the continuation hook returns false. - * - * @par Example - * @code - * class my_handler; - * - * bool asio_handler_is_continuation(my_handler* context) - * { - * return true; - * } - * @endcode - */ -inline bool asio_handler_is_continuation(...) -{ - return false; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_HANDLER_CONTINUATION_HOOK_HPP diff --git a/Sources/Vendor/asio/include/asio/handler_invoke_hook.hpp b/Sources/Vendor/asio/include/asio/handler_invoke_hook.hpp deleted file mode 100644 index ee618e5..0000000 --- a/Sources/Vendor/asio/include/asio/handler_invoke_hook.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// handler_invoke_hook.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_HANDLER_INVOKE_HOOK_HPP -#define ASIO_HANDLER_INVOKE_HOOK_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 { - -/** @defgroup asio_handler_invoke asio::asio_handler_invoke - * - * @brief Default invoke function for handlers. - * - * Completion handlers for asynchronous operations are invoked by the - * io_context associated with the corresponding object (e.g. a socket or - * deadline_timer). Certain guarantees are made on when the handler may be - * invoked, in particular that a handler can only be invoked from a thread that - * is currently calling @c run() on the corresponding io_context object. - * Handlers may subsequently be invoked through other objects (such as - * io_context::strand objects) that provide additional guarantees. - * - * When asynchronous operations are composed from other asynchronous - * operations, all intermediate handlers should be invoked using the same - * method as the final handler. This is required to ensure that user-defined - * objects are not accessed in a way that may violate the guarantees. This - * hooking function ensures that the invoked method used for the final handler - * is accessible at each intermediate step. - * - * Implement asio_handler_invoke for your own handlers to specify a custom - * invocation strategy. - * - * This default implementation invokes the function object like so: - * @code function(); @endcode - * If necessary, the default implementation makes a copy of the function object - * so that the non-const operator() can be used. - * - * @par Example - * @code - * class my_handler; - * - * template - * void asio_handler_invoke(Function function, my_handler* context) - * { - * context->strand_.dispatch(function); - * } - * @endcode - */ -/*@{*/ - -/// Default handler invocation hook used for non-const function objects. -template -inline void asio_handler_invoke(Function& function, ...) -{ - function(); -} - -/// Default handler invocation hook used for const function objects. -template -inline void asio_handler_invoke(const Function& function, ...) -{ - Function tmp(function); - tmp(); -} - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_HANDLER_INVOKE_HOOK_HPP diff --git a/Sources/Vendor/asio/include/asio/handler_type.hpp b/Sources/Vendor/asio/include/asio/handler_type.hpp deleted file mode 100644 index bc0d305..0000000 --- a/Sources/Vendor/asio/include/asio/handler_type.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// -// handler_type.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_HANDLER_TYPE_HPP -#define ASIO_HANDLER_TYPE_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/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// (Deprecated: Use two-parameter version of async_result.) Default handler -/// type traits provided for all completion token types. -/** - * The handler_type traits class is used for determining the concrete handler - * type to be used for an asynchronous operation. It allows the handler type to - * be determined at the point where the specific completion handler signature - * is known. - * - * This template may be specialised for user-defined completion token types. - */ -template -struct handler_type -{ - /// The handler type for the specific signature. - typedef typename conditional< - is_same::type>::value, - decay, - handler_type::type, Signature> - >::type::type type; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_HANDLER_TYPE_HPP diff --git a/Sources/Vendor/asio/include/asio/high_resolution_timer.hpp b/Sources/Vendor/asio/include/asio/high_resolution_timer.hpp deleted file mode 100644 index 0549cc2..0000000 --- a/Sources/Vendor/asio/include/asio/high_resolution_timer.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// high_resolution_timer.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_HIGH_RESOLUTION_TIMER_HPP -#define ASIO_HIGH_RESOLUTION_TIMER_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_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_waitable_timer.hpp" -#include "asio/detail/chrono.hpp" - -namespace asio { - -/// Typedef for a timer based on the high resolution clock. -/** - * This typedef uses the C++11 @c <chrono> standard library facility, if - * available. Otherwise, it may use the Boost.Chrono library. To explicitly - * utilise Boost.Chrono, use the basic_waitable_timer template directly: - * @code - * typedef basic_waitable_timer timer; - * @endcode - */ -typedef basic_waitable_timer< - chrono::high_resolution_clock> - high_resolution_timer; - -} // namespace asio - -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_HIGH_RESOLUTION_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/buffered_read_stream.hpp b/Sources/Vendor/asio/include/asio/impl/buffered_read_stream.hpp deleted file mode 100644 index e0ed20e..0000000 --- a/Sources/Vendor/asio/include/asio/impl/buffered_read_stream.hpp +++ /dev/null @@ -1,429 +0,0 @@ -// -// impl/buffered_read_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_BUFFERED_READ_STREAM_HPP -#define ASIO_IMPL_BUFFERED_READ_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -std::size_t buffered_read_stream::fill() -{ - detail::buffer_resize_guard - resize_guard(storage_); - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - storage_.resize(previous_size + next_layer_.read_some(buffer( - storage_.data() + previous_size, - storage_.size() - previous_size))); - resize_guard.commit(); - return storage_.size() - previous_size; -} - -template -std::size_t buffered_read_stream::fill(asio::error_code& ec) -{ - detail::buffer_resize_guard - resize_guard(storage_); - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - storage_.resize(previous_size + next_layer_.read_some(buffer( - storage_.data() + previous_size, - storage_.size() - previous_size), - ec)); - resize_guard.commit(); - return storage_.size() - previous_size; -} - -namespace detail -{ - template - class buffered_fill_handler - { - public: - buffered_fill_handler(detail::buffered_stream_storage& storage, - std::size_t previous_size, ReadHandler& handler) - : storage_(storage), - previous_size_(previous_size), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - buffered_fill_handler(const buffered_fill_handler& other) - : storage_(other.storage_), - previous_size_(other.previous_size_), - handler_(other.handler_) - { - } - - buffered_fill_handler(buffered_fill_handler&& other) - : storage_(other.storage_), - previous_size_(other.previous_size_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - const std::size_t bytes_transferred) - { - storage_.resize(previous_size_ + bytes_transferred); - handler_(ec, bytes_transferred); - } - - //private: - detail::buffered_stream_storage& storage_; - std::size_t previous_size_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - buffered_fill_handler* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - buffered_fill_handler* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - buffered_fill_handler* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - buffered_fill_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - buffered_fill_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::buffered_fill_handler, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::buffered_fill_handler& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::buffered_fill_handler, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::buffered_fill_handler& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -buffered_read_stream::async_fill( - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - next_layer_.async_read_some( - buffer( - storage_.data() + previous_size, - storage_.size() - previous_size), - detail::buffered_fill_handler( - storage_, previous_size, init.completion_handler)); - - return init.result.get(); -} - -template -template -std::size_t buffered_read_stream::read_some( - const MutableBufferSequence& buffers) -{ - using asio::buffer_size; - if (buffer_size(buffers) == 0) - return 0; - - if (storage_.empty()) - this->fill(); - - return this->copy(buffers); -} - -template -template -std::size_t buffered_read_stream::read_some( - const MutableBufferSequence& buffers, asio::error_code& ec) -{ - ec = asio::error_code(); - - using asio::buffer_size; - if (buffer_size(buffers) == 0) - return 0; - - if (storage_.empty() && !this->fill(ec)) - return 0; - - return this->copy(buffers); -} - -namespace detail -{ - template - class buffered_read_some_handler - { - public: - buffered_read_some_handler(detail::buffered_stream_storage& storage, - const MutableBufferSequence& buffers, ReadHandler& handler) - : storage_(storage), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - buffered_read_some_handler(const buffered_read_some_handler& other) - : storage_(other.storage_), - buffers_(other.buffers_), - handler_(other.handler_) - { - } - - buffered_read_some_handler(buffered_read_some_handler&& other) - : storage_(other.storage_), - buffers_(other.buffers_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, std::size_t) - { - if (ec || storage_.empty()) - { - const std::size_t length = 0; - handler_(ec, length); - } - else - { - const std::size_t bytes_copied = asio::buffer_copy( - buffers_, storage_.data(), storage_.size()); - storage_.consume(bytes_copied); - handler_(ec, bytes_copied); - } - } - - //private: - detail::buffered_stream_storage& storage_; - MutableBufferSequence buffers_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - buffered_read_some_handler< - MutableBufferSequence, ReadHandler>* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::buffered_read_some_handler, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::buffered_read_some_handler< - MutableBufferSequence, ReadHandler>& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::buffered_read_some_handler, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::buffered_read_some_handler< - MutableBufferSequence, ReadHandler>& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -buffered_read_stream::async_read_some( - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - using asio::buffer_size; - if (buffer_size(buffers) == 0 || !storage_.empty()) - { - next_layer_.async_read_some(ASIO_MUTABLE_BUFFER(0, 0), - detail::buffered_read_some_handler< - MutableBufferSequence, ASIO_HANDLER_TYPE( - ReadHandler, void (asio::error_code, std::size_t))>( - storage_, buffers, init.completion_handler)); - } - else - { - this->async_fill(detail::buffered_read_some_handler< - MutableBufferSequence, ASIO_HANDLER_TYPE( - ReadHandler, void (asio::error_code, std::size_t))>( - storage_, buffers, init.completion_handler)); - } - - return init.result.get(); -} - -template -template -std::size_t buffered_read_stream::peek( - const MutableBufferSequence& buffers) -{ - if (storage_.empty()) - this->fill(); - return this->peek_copy(buffers); -} - -template -template -std::size_t buffered_read_stream::peek( - const MutableBufferSequence& buffers, asio::error_code& ec) -{ - ec = asio::error_code(); - if (storage_.empty() && !this->fill(ec)) - return 0; - return this->peek_copy(buffers); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_BUFFERED_READ_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/buffered_write_stream.hpp b/Sources/Vendor/asio/include/asio/impl/buffered_write_stream.hpp deleted file mode 100644 index bc2d823..0000000 --- a/Sources/Vendor/asio/include/asio/impl/buffered_write_stream.hpp +++ /dev/null @@ -1,411 +0,0 @@ -// -// impl/buffered_write_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_BUFFERED_WRITE_STREAM_HPP -#define ASIO_IMPL_BUFFERED_WRITE_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -std::size_t buffered_write_stream::flush() -{ - std::size_t bytes_written = write(next_layer_, - buffer(storage_.data(), storage_.size())); - storage_.consume(bytes_written); - return bytes_written; -} - -template -std::size_t buffered_write_stream::flush(asio::error_code& ec) -{ - std::size_t bytes_written = write(next_layer_, - buffer(storage_.data(), storage_.size()), - transfer_all(), ec); - storage_.consume(bytes_written); - return bytes_written; -} - -namespace detail -{ - template - class buffered_flush_handler - { - public: - buffered_flush_handler(detail::buffered_stream_storage& storage, - WriteHandler& handler) - : storage_(storage), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - buffered_flush_handler(const buffered_flush_handler& other) - : storage_(other.storage_), - handler_(other.handler_) - { - } - - buffered_flush_handler(buffered_flush_handler&& other) - : storage_(other.storage_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - const std::size_t bytes_written) - { - storage_.consume(bytes_written); - handler_(ec, bytes_written); - } - - //private: - detail::buffered_stream_storage& storage_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - buffered_flush_handler* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - buffered_flush_handler* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - buffered_flush_handler* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - buffered_flush_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - buffered_flush_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::buffered_flush_handler, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::buffered_flush_handler& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::buffered_flush_handler, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::buffered_flush_handler& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -buffered_write_stream::async_flush( - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - async_write(next_layer_, buffer(storage_.data(), storage_.size()), - detail::buffered_flush_handler( - storage_, init.completion_handler)); - - return init.result.get(); -} - -template -template -std::size_t buffered_write_stream::write_some( - const ConstBufferSequence& buffers) -{ - using asio::buffer_size; - if (buffer_size(buffers) == 0) - return 0; - - if (storage_.size() == storage_.capacity()) - this->flush(); - - return this->copy(buffers); -} - -template -template -std::size_t buffered_write_stream::write_some( - const ConstBufferSequence& buffers, asio::error_code& ec) -{ - ec = asio::error_code(); - - using asio::buffer_size; - if (buffer_size(buffers) == 0) - return 0; - - if (storage_.size() == storage_.capacity() && !flush(ec)) - return 0; - - return this->copy(buffers); -} - -namespace detail -{ - template - class buffered_write_some_handler - { - public: - buffered_write_some_handler(detail::buffered_stream_storage& storage, - const ConstBufferSequence& buffers, WriteHandler& handler) - : storage_(storage), - buffers_(buffers), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - buffered_write_some_handler(const buffered_write_some_handler& other) - : storage_(other.storage_), - buffers_(other.buffers_), - handler_(other.handler_) - { - } - - buffered_write_some_handler(buffered_write_some_handler&& other) - : storage_(other.storage_), - buffers_(other.buffers_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, std::size_t) - { - if (ec) - { - const std::size_t length = 0; - handler_(ec, length); - } - else - { - using asio::buffer_size; - std::size_t orig_size = storage_.size(); - std::size_t space_avail = storage_.capacity() - orig_size; - std::size_t bytes_avail = buffer_size(buffers_); - std::size_t length = bytes_avail < space_avail - ? bytes_avail : space_avail; - storage_.resize(orig_size + length); - const std::size_t bytes_copied = asio::buffer_copy( - storage_.data() + orig_size, buffers_, length); - handler_(ec, bytes_copied); - } - } - - //private: - detail::buffered_stream_storage& storage_; - ConstBufferSequence buffers_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - buffered_write_some_handler< - ConstBufferSequence, WriteHandler>* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::buffered_write_some_handler, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::buffered_write_some_handler< - ConstBufferSequence, WriteHandler>& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::buffered_write_some_handler, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::buffered_write_some_handler< - ConstBufferSequence, WriteHandler>& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -buffered_write_stream::async_write_some( - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - using asio::buffer_size; - if (buffer_size(buffers) == 0 - || storage_.size() < storage_.capacity()) - { - next_layer_.async_write_some(ASIO_CONST_BUFFER(0, 0), - detail::buffered_write_some_handler< - ConstBufferSequence, ASIO_HANDLER_TYPE( - WriteHandler, void (asio::error_code, std::size_t))>( - storage_, buffers, init.completion_handler)); - } - else - { - this->async_flush(detail::buffered_write_some_handler< - ConstBufferSequence, ASIO_HANDLER_TYPE( - WriteHandler, void (asio::error_code, std::size_t))>( - storage_, buffers, init.completion_handler)); - } - - return init.result.get(); -} - -template -template -std::size_t buffered_write_stream::copy( - const ConstBufferSequence& buffers) -{ - using asio::buffer_size; - std::size_t orig_size = storage_.size(); - std::size_t space_avail = storage_.capacity() - orig_size; - std::size_t bytes_avail = buffer_size(buffers); - std::size_t length = bytes_avail < space_avail ? bytes_avail : space_avail; - storage_.resize(orig_size + length); - return asio::buffer_copy( - storage_.data() + orig_size, buffers, length); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_BUFFERED_WRITE_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/connect.hpp b/Sources/Vendor/asio/include/asio/impl/connect.hpp deleted file mode 100644 index bff1913..0000000 --- a/Sources/Vendor/asio/include/asio/impl/connect.hpp +++ /dev/null @@ -1,860 +0,0 @@ -// -// impl/connect.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_CONNECT_HPP -#define ASIO_IMPL_CONNECT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/post.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - struct default_connect_condition - { - template - bool operator()(const asio::error_code&, const Endpoint&) - { - return true; - } - }; - - template - inline typename Protocol::endpoint deref_connect_result( - Iterator iter, asio::error_code& ec) - { - return ec ? typename Protocol::endpoint() : *iter; - } - - template - struct legacy_connect_condition_helper : T - { - typedef char (*fallback_func_type)(...); - operator fallback_func_type() const; - }; - - template - struct legacy_connect_condition_helper - { - R operator()(Arg1, Arg2) const; - char operator()(...) const; - }; - - template - struct is_legacy_connect_condition - { - static char asio_connect_condition_check(char); - static char (&asio_connect_condition_check(Iterator))[2]; - - static const bool value = - sizeof(asio_connect_condition_check( - (*static_cast*>(0))( - *static_cast(0), - *static_cast(0)))) != 1; - }; - - template - inline Iterator call_connect_condition(ConnectCondition& connect_condition, - const asio::error_code& ec, Iterator next, Iterator end, - typename enable_if::value>::type* = 0) - { - if (next != end) - return connect_condition(ec, next); - return end; - } - - template - inline Iterator call_connect_condition(ConnectCondition& connect_condition, - const asio::error_code& ec, Iterator next, Iterator end, - typename enable_if::value>::type* = 0) - { - for (;next != end; ++next) - if (connect_condition(ec, *next)) - return next; - return end; - } -} - -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, - typename enable_if::value>::type*) -{ - asio::error_code ec; - typename Protocol::endpoint result = connect(s, endpoints, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, asio::error_code& ec, - typename enable_if::value>::type*) -{ - return detail::deref_connect_result( - connect(s, endpoints.begin(), endpoints.end(), - detail::default_connect_condition(), ec), ec); -} - -#if !defined(ASIO_NO_DEPRECATED) -template -Iterator connect(basic_socket& s, Iterator begin, - typename enable_if::value>::type*) -{ - asio::error_code ec; - Iterator result = connect(s, begin, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -inline Iterator connect(basic_socket& s, - Iterator begin, asio::error_code& ec, - typename enable_if::value>::type*) -{ - return connect(s, begin, Iterator(), detail::default_connect_condition(), ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end) -{ - asio::error_code ec; - Iterator result = connect(s, begin, end, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -inline Iterator connect(basic_socket& s, - Iterator begin, Iterator end, asio::error_code& ec) -{ - return connect(s, begin, end, detail::default_connect_condition(), ec); -} - -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - typename enable_if::value>::type*) -{ - asio::error_code ec; - typename Protocol::endpoint result = connect( - s, endpoints, connect_condition, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -typename Protocol::endpoint connect( - basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - asio::error_code& ec, - typename enable_if::value>::type*) -{ - return detail::deref_connect_result( - connect(s, endpoints.begin(), endpoints.end(), - connect_condition, ec), ec); -} - -#if !defined(ASIO_NO_DEPRECATED) -template -Iterator connect(basic_socket& s, - Iterator begin, ConnectCondition connect_condition, - typename enable_if::value>::type*) -{ - asio::error_code ec; - Iterator result = connect(s, begin, connect_condition, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -inline Iterator connect(basic_socket& s, - Iterator begin, ConnectCondition connect_condition, - asio::error_code& ec, - typename enable_if::value>::type*) -{ - return connect(s, begin, Iterator(), connect_condition, ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition) -{ - asio::error_code ec; - Iterator result = connect(s, begin, end, connect_condition, ec); - asio::detail::throw_error(ec, "connect"); - return result; -} - -template -Iterator connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition, - asio::error_code& ec) -{ - ec = asio::error_code(); - - for (Iterator iter = begin; iter != end; ++iter) - { - iter = (detail::call_connect_condition(connect_condition, ec, iter, end)); - if (iter != end) - { - s.close(ec); - s.connect(*iter, ec); - if (!ec) - return iter; - } - else - break; - } - - if (!ec) - ec = asio::error::not_found; - - return end; -} - -namespace detail -{ - // Enable the empty base class optimisation for the connect condition. - template - class base_from_connect_condition - { - protected: - explicit base_from_connect_condition( - const ConnectCondition& connect_condition) - : connect_condition_(connect_condition) - { - } - - template - void check_condition(const asio::error_code& ec, - Iterator& iter, Iterator& end) - { - iter = detail::call_connect_condition(connect_condition_, ec, iter, end); - } - - private: - ConnectCondition connect_condition_; - }; - - // The default_connect_condition implementation is essentially a no-op. This - // template specialisation lets us eliminate all costs associated with it. - template <> - class base_from_connect_condition - { - protected: - explicit base_from_connect_condition(const default_connect_condition&) - { - } - - template - void check_condition(const asio::error_code&, Iterator&, Iterator&) - { - } - }; - - template - class range_connect_op : base_from_connect_condition - { - public: - range_connect_op(basic_socket& sock, - const EndpointSequence& endpoints, - const ConnectCondition& connect_condition, - RangeConnectHandler& handler) - : base_from_connect_condition(connect_condition), - socket_(sock), - endpoints_(endpoints), - index_(0), - start_(0), - handler_(ASIO_MOVE_CAST(RangeConnectHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - range_connect_op(const range_connect_op& other) - : base_from_connect_condition(other), - socket_(other.socket_), - endpoints_(other.endpoints_), - index_(other.index_), - start_(other.start_), - handler_(other.handler_) - { - } - - range_connect_op(range_connect_op&& other) - : base_from_connect_condition(other), - socket_(other.socket_), - endpoints_(other.endpoints_), - index_(other.index_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(RangeConnectHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(asio::error_code ec, int start = 0) - { - typename EndpointSequence::const_iterator begin = endpoints_.begin(); - typename EndpointSequence::const_iterator iter = begin; - std::advance(iter, index_); - typename EndpointSequence::const_iterator end = endpoints_.end(); - - switch (start_ = start) - { - case 1: - for (;;) - { - this->check_condition(ec, iter, end); - index_ = std::distance(begin, iter); - - if (iter != end) - { - socket_.close(ec); - socket_.async_connect(*iter, - ASIO_MOVE_CAST(range_connect_op)(*this)); - return; - } - - if (start) - { - ec = asio::error::not_found; - asio::post(socket_.get_executor(), - detail::bind_handler( - ASIO_MOVE_CAST(range_connect_op)(*this), ec)); - return; - } - - default: - - if (iter == end) - break; - - if (!socket_.is_open()) - { - ec = asio::error::operation_aborted; - break; - } - - if (!ec) - break; - - ++iter; - ++index_; - } - - handler_(static_cast(ec), - static_cast( - ec || iter == end ? typename Protocol::endpoint() : *iter)); - } - } - - //private: - basic_socket& socket_; - EndpointSequence endpoints_; - std::size_t index_; - int start_; - RangeConnectHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - range_connect_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - range_connect_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - range_connect_op* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - range_connect_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - range_connect_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - class iterator_connect_op : base_from_connect_condition - { - public: - iterator_connect_op(basic_socket& sock, - const Iterator& begin, const Iterator& end, - const ConnectCondition& connect_condition, - IteratorConnectHandler& handler) - : base_from_connect_condition(connect_condition), - socket_(sock), - iter_(begin), - end_(end), - start_(0), - handler_(ASIO_MOVE_CAST(IteratorConnectHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - iterator_connect_op(const iterator_connect_op& other) - : base_from_connect_condition(other), - socket_(other.socket_), - iter_(other.iter_), - end_(other.end_), - start_(other.start_), - handler_(other.handler_) - { - } - - iterator_connect_op(iterator_connect_op&& other) - : base_from_connect_condition(other), - socket_(other.socket_), - iter_(other.iter_), - end_(other.end_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(IteratorConnectHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(asio::error_code ec, int start = 0) - { - switch (start_ = start) - { - case 1: - for (;;) - { - this->check_condition(ec, iter_, end_); - - if (iter_ != end_) - { - socket_.close(ec); - socket_.async_connect(*iter_, - ASIO_MOVE_CAST(iterator_connect_op)(*this)); - return; - } - - if (start) - { - ec = asio::error::not_found; - asio::post(socket_.get_executor(), - detail::bind_handler( - ASIO_MOVE_CAST(iterator_connect_op)(*this), ec)); - return; - } - - default: - - if (iter_ == end_) - break; - - if (!socket_.is_open()) - { - ec = asio::error::operation_aborted; - break; - } - - if (!ec) - break; - - ++iter_; - } - - handler_(static_cast(ec), - static_cast(iter_)); - } - } - - //private: - basic_socket& socket_; - Iterator iter_; - Iterator end_; - int start_; - IteratorConnectHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - iterator_connect_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - iterator_connect_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - iterator_connect_op* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - iterator_connect_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - iterator_connect_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::range_connect_op, - Allocator> -{ - typedef typename associated_allocator< - RangeConnectHandler, Allocator>::type type; - - static type get( - const detail::range_connect_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::range_connect_op, - Executor> -{ - typedef typename associated_executor< - RangeConnectHandler, Executor>::type type; - - static type get( - const detail::range_connect_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -template -struct associated_allocator< - detail::iterator_connect_op, - Allocator> -{ - typedef typename associated_allocator< - IteratorConnectHandler, Allocator>::type type; - - static type get( - const detail::iterator_connect_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::iterator_connect_op, - Executor> -{ - typedef typename associated_executor< - IteratorConnectHandler, Executor>::type type; - - static type get( - const detail::iterator_connect_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(RangeConnectHandler, - void (asio::error_code, typename Protocol::endpoint)) -async_connect(basic_socket& s, - const EndpointSequence& endpoints, - ASIO_MOVE_ARG(RangeConnectHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a RangeConnectHandler. - ASIO_RANGE_CONNECT_HANDLER_CHECK( - RangeConnectHandler, handler, typename Protocol::endpoint) type_check; - - async_completion - init(handler); - - detail::range_connect_op(s, - endpoints, detail::default_connect_condition(), - init.completion_handler)(asio::error_code(), 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_DEPRECATED) -template -inline ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, ASIO_MOVE_ARG(IteratorConnectHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a IteratorConnectHandler. - ASIO_ITERATOR_CONNECT_HANDLER_CHECK( - IteratorConnectHandler, handler, Iterator) type_check; - - async_completion init(handler); - - detail::iterator_connect_op(s, - begin, Iterator(), detail::default_connect_condition(), - init.completion_handler)(asio::error_code(), 1); - - return init.result.get(); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -template -inline ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, Iterator end, - ASIO_MOVE_ARG(IteratorConnectHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a IteratorConnectHandler. - ASIO_ITERATOR_CONNECT_HANDLER_CHECK( - IteratorConnectHandler, handler, Iterator) type_check; - - async_completion init(handler); - - detail::iterator_connect_op(s, - begin, end, detail::default_connect_condition(), - init.completion_handler)(asio::error_code(), 1); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(RangeConnectHandler, - void (asio::error_code, typename Protocol::endpoint)) -async_connect(basic_socket& s, - const EndpointSequence& endpoints, ConnectCondition connect_condition, - ASIO_MOVE_ARG(RangeConnectHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a RangeConnectHandler. - ASIO_RANGE_CONNECT_HANDLER_CHECK( - RangeConnectHandler, handler, typename Protocol::endpoint) type_check; - - async_completion - init(handler); - - detail::range_connect_op(s, - endpoints, connect_condition, init.completion_handler)( - asio::error_code(), 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_DEPRECATED) -template -inline ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, ConnectCondition connect_condition, - ASIO_MOVE_ARG(IteratorConnectHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a IteratorConnectHandler. - ASIO_ITERATOR_CONNECT_HANDLER_CHECK( - IteratorConnectHandler, handler, Iterator) type_check; - - async_completion init(handler); - - detail::iterator_connect_op(s, - begin, Iterator(), connect_condition, init.completion_handler)( - asio::error_code(), 1); - - return init.result.get(); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -template -inline ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler, - void (asio::error_code, Iterator)) -async_connect(basic_socket& s, - Iterator begin, Iterator end, ConnectCondition connect_condition, - ASIO_MOVE_ARG(IteratorConnectHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a IteratorConnectHandler. - ASIO_ITERATOR_CONNECT_HANDLER_CHECK( - IteratorConnectHandler, handler, Iterator) type_check; - - async_completion init(handler); - - detail::iterator_connect_op(s, - begin, end, connect_condition, init.completion_handler)( - asio::error_code(), 1); - - return init.result.get(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_CONNECT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/defer.hpp b/Sources/Vendor/asio/include/asio/impl/defer.hpp deleted file mode 100644 index a27df0f..0000000 --- a/Sources/Vendor/asio/include/asio/impl/defer.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// impl/defer.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_DEFER_HPP -#define ASIO_IMPL_DEFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/work_dispatcher.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - ASIO_MOVE_ARG(CompletionToken) token) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_executor::type ex( - (get_associated_executor)(init.completion_handler)); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.defer(ASIO_MOVE_CAST(handler)(init.completion_handler), alloc); - - return init.result.get(); -} - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.defer(detail::work_dispatcher(init.completion_handler), alloc); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) defer( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - return (defer)(ctx.get_executor(), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_DEFER_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/dispatch.hpp b/Sources/Vendor/asio/include/asio/impl/dispatch.hpp deleted file mode 100644 index 4e11c6b..0000000 --- a/Sources/Vendor/asio/include/asio/impl/dispatch.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// impl/dispatch.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_DISPATCH_HPP -#define ASIO_IMPL_DISPATCH_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/work_dispatcher.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - ASIO_MOVE_ARG(CompletionToken) token) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_executor::type ex( - (get_associated_executor)(init.completion_handler)); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.dispatch(ASIO_MOVE_CAST(handler)(init.completion_handler), alloc); - - return init.result.get(); -} - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.dispatch(detail::work_dispatcher( - init.completion_handler), alloc); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) dispatch( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - return (dispatch)(ctx.get_executor(), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_DISPATCH_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/error.ipp b/Sources/Vendor/asio/include/asio/impl/error.ipp deleted file mode 100644 index 6b1f33a..0000000 --- a/Sources/Vendor/asio/include/asio/impl/error.ipp +++ /dev/null @@ -1,128 +0,0 @@ -// -// impl/error.ipp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_ERROR_IPP -#define ASIO_IMPL_ERROR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace error { - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -namespace detail { - -class netdb_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.netdb"; - } - - std::string message(int value) const - { - if (value == error::host_not_found) - return "Host not found (authoritative)"; - if (value == error::host_not_found_try_again) - return "Host not found (non-authoritative), try again later"; - if (value == error::no_data) - return "The query is valid, but it does not have associated data"; - if (value == error::no_recovery) - return "A non-recoverable error occurred during database lookup"; - return "asio.netdb error"; - } -}; - -} // namespace detail - -const asio::error_category& get_netdb_category() -{ - static detail::netdb_category instance; - return instance; -} - -namespace detail { - -class addrinfo_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.addrinfo"; - } - - std::string message(int value) const - { - if (value == error::service_not_found) - return "Service not found"; - if (value == error::socket_type_not_supported) - return "Socket type not supported"; - return "asio.addrinfo error"; - } -}; - -} // namespace detail - -const asio::error_category& get_addrinfo_category() -{ - static detail::addrinfo_category instance; - return instance; -} - -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -namespace detail { - -class misc_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.misc"; - } - - std::string message(int value) const - { - if (value == error::already_open) - return "Already open"; - if (value == error::eof) - return "End of file"; - if (value == error::not_found) - return "Element not found"; - if (value == error::fd_set_failure) - return "The descriptor does not fit into the select call's fd_set"; - return "asio.misc error"; - } -}; - -} // namespace detail - -const asio::error_category& get_misc_category() -{ - static detail::misc_category instance; - return instance; -} - -} // namespace error -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_ERROR_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/error_code.ipp b/Sources/Vendor/asio/include/asio/impl/error_code.ipp deleted file mode 100644 index 0c8a827..0000000 --- a/Sources/Vendor/asio/include/asio/impl/error_code.ipp +++ /dev/null @@ -1,206 +0,0 @@ -// -// impl/error_code.ipp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_ERROR_CODE_IPP -#define ASIO_IMPL_ERROR_CODE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# include -#elif defined(ASIO_WINDOWS_RUNTIME) -# include -#else -# include -# include -# include -#endif -#include "asio/detail/local_free_on_block_exit.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -class system_category : public error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.system"; - } - - std::string message(int value) const - { -#if defined(ASIO_WINDOWS_RUNTIME) || defined(ASIO_WINDOWS_APP) - std::wstring wmsg(128, wchar_t()); - for (;;) - { - DWORD wlength = ::FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_IGNORE_INSERTS, 0, value, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - &wmsg[0], static_cast(wmsg.size()), 0); - if (wlength == 0 && ::GetLastError() == ERROR_INSUFFICIENT_BUFFER) - { - wmsg.resize(wmsg.size() + wmsg.size() / 2); - continue; - } - if (wlength && wmsg[wlength - 1] == '\n') - --wlength; - if (wlength && wmsg[wlength - 1] == '\r') - --wlength; - if (wlength) - { - std::string msg(wlength * 2, char()); - int length = ::WideCharToMultiByte(CP_ACP, 0, - wmsg.c_str(), static_cast(wlength), - &msg[0], static_cast(wlength * 2), 0, 0); - if (length <= 0) - return "asio.system error"; - msg.resize(static_cast(length)); - return msg; - } - else - return "asio.system error"; - } -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) - char* msg = 0; - DWORD length = ::FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER - | FORMAT_MESSAGE_FROM_SYSTEM - | FORMAT_MESSAGE_IGNORE_INSERTS, 0, value, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (char*)&msg, 0, 0); - detail::local_free_on_block_exit local_free_obj(msg); - if (length && msg[length - 1] == '\n') - msg[--length] = '\0'; - if (length && msg[length - 1] == '\r') - msg[--length] = '\0'; - if (length) - return msg; - else - return "asio.system error"; -#else // defined(ASIO_WINDOWS_DESKTOP) || defined(__CYGWIN__) -#if !defined(__sun) - if (value == ECANCELED) - return "Operation aborted."; -#endif // !defined(__sun) -#if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__) - using namespace std; - return strerror(value); -#else - char buf[256] = ""; - using namespace std; - return strerror_result(strerror_r(value, buf, sizeof(buf)), buf); -#endif -#endif // defined(ASIO_WINDOWS_DESKTOP) || defined(__CYGWIN__) - } - -#if defined(ASIO_HAS_STD_ERROR_CODE) - std::error_condition default_error_condition( - int ev) const ASIO_ERROR_CATEGORY_NOEXCEPT - { - switch (ev) - { - case access_denied: - return std::errc::permission_denied; - case address_family_not_supported: - return std::errc::address_family_not_supported; - case address_in_use: - return std::errc::address_in_use; - case already_connected: - return std::errc::already_connected; - case already_started: - return std::errc::connection_already_in_progress; - case broken_pipe: - return std::errc::broken_pipe; - case connection_aborted: - return std::errc::connection_aborted; - case connection_refused: - return std::errc::connection_refused; - case connection_reset: - return std::errc::connection_reset; - case bad_descriptor: - return std::errc::bad_file_descriptor; - case fault: - return std::errc::bad_address; - case host_unreachable: - return std::errc::host_unreachable; - case in_progress: - return std::errc::operation_in_progress; - case interrupted: - return std::errc::interrupted; - case invalid_argument: - return std::errc::invalid_argument; - case message_size: - return std::errc::message_size; - case name_too_long: - return std::errc::filename_too_long; - case network_down: - return std::errc::network_down; - case network_reset: - return std::errc::network_reset; - case network_unreachable: - return std::errc::network_unreachable; - case no_descriptors: - return std::errc::too_many_files_open; - case no_buffer_space: - return std::errc::no_buffer_space; - case no_memory: - return std::errc::not_enough_memory; - case no_permission: - return std::errc::operation_not_permitted; - case no_protocol_option: - return std::errc::no_protocol_option; - case no_such_device: - return std::errc::no_such_device; - case not_connected: - return std::errc::not_connected; - case not_socket: - return std::errc::not_a_socket; - case operation_aborted: - return std::errc::operation_canceled; - case operation_not_supported: - return std::errc::operation_not_supported; - case shut_down: - return std::make_error_condition(ev, *this); - case timed_out: - return std::errc::timed_out; - case try_again: - return std::errc::resource_unavailable_try_again; - case would_block: - return std::errc::operation_would_block; - default: - return std::make_error_condition(ev, *this); - } -#endif // defined(ASIO_HAS_STD_ERROR_CODE) - -private: - // Helper function to adapt the result from glibc's variant of strerror_r. - static const char* strerror_result(int, const char* s) { return s; } - static const char* strerror_result(const char* s, const char*) { return s; } -}; - -} // namespace detail - -const error_category& system_category() -{ - static detail::system_category instance; - return instance; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_ERROR_CODE_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/execution_context.hpp b/Sources/Vendor/asio/include/asio/impl/execution_context.hpp deleted file mode 100644 index 3d1e457..0000000 --- a/Sources/Vendor/asio/include/asio/impl/execution_context.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// -// impl/execution_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_EXECUTION_CONTEXT_HPP -#define ASIO_IMPL_EXECUTION_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/service_registry.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -inline Service& use_service(execution_context& e) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - - return e.service_registry_->template use_service(); -} - -#if !defined(GENERATING_DOCUMENTATION) -# if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -Service& make_service(execution_context& e, ASIO_MOVE_ARG(Args)... args) -{ - detail::scoped_ptr svc( - new Service(e, ASIO_MOVE_CAST(Args)(args)...)); - e.service_registry_->template add_service(svc.get()); - Service& result = *svc; - svc.release(); - return result; -} - -# else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -Service& make_service(execution_context& e) -{ - detail::scoped_ptr svc(new Service(e)); - e.service_registry_->template add_service(svc.get()); - Service& result = *svc; - svc.release(); - return result; -} - -#define ASIO_PRIVATE_MAKE_SERVICE_DEF(n) \ - template \ - Service& make_service(execution_context& e, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - detail::scoped_ptr svc( \ - new Service(e, ASIO_VARIADIC_MOVE_ARGS(n))); \ - e.service_registry_->template add_service(svc.get()); \ - Service& result = *svc; \ - svc.release(); \ - return result; \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_MAKE_SERVICE_DEF) -#undef ASIO_PRIVATE_MAKE_SERVICE_DEF - -# endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline void add_service(execution_context& e, Service* svc) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - - e.service_registry_->template add_service(svc); -} - -template -inline bool has_service(execution_context& e) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - - return e.service_registry_->template has_service(); -} - -inline execution_context& execution_context::service::context() -{ - return owner_; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_EXECUTION_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/execution_context.ipp b/Sources/Vendor/asio/include/asio/impl/execution_context.ipp deleted file mode 100644 index c2b3b21..0000000 --- a/Sources/Vendor/asio/include/asio/impl/execution_context.ipp +++ /dev/null @@ -1,82 +0,0 @@ -// -// impl/execution_context.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_EXECUTION_CONTEXT_IPP -#define ASIO_IMPL_EXECUTION_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/execution_context.hpp" -#include "asio/detail/service_registry.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -execution_context::execution_context() - : service_registry_(new asio::detail::service_registry(*this)) -{ -} - -execution_context::~execution_context() -{ - shutdown(); - destroy(); - delete service_registry_; -} - -void execution_context::shutdown() -{ - service_registry_->shutdown_services(); -} - -void execution_context::destroy() -{ - service_registry_->destroy_services(); -} - -void execution_context::notify_fork( - asio::execution_context::fork_event event) -{ - service_registry_->notify_fork(event); -} - -execution_context::service::service(execution_context& owner) - : owner_(owner), - next_(0) -{ -} - -execution_context::service::~service() -{ -} - -void execution_context::service::notify_fork(execution_context::fork_event) -{ -} - -service_already_exists::service_already_exists() - : std::logic_error("Service already exists.") -{ -} - -invalid_service_owner::invalid_service_owner() - : std::logic_error("Invalid service owner.") -{ -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_EXECUTION_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/executor.hpp b/Sources/Vendor/asio/include/asio/impl/executor.hpp deleted file mode 100644 index 0fcf5f5..0000000 --- a/Sources/Vendor/asio/include/asio/impl/executor.hpp +++ /dev/null @@ -1,386 +0,0 @@ -// -// impl/executor.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_EXECUTOR_HPP -#define ASIO_IMPL_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/detail/atomic_count.hpp" -#include "asio/detail/executor_op.hpp" -#include "asio/detail/global.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/executor.hpp" -#include "asio/system_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if !defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_HAS_MOVE) - -// Lightweight, move-only function object wrapper. -class executor::function -{ -public: - template - explicit function(F f, const Alloc& a) - { - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - op_ = new (p.v) op(ASIO_MOVE_CAST(F)(f), a); - p.v = 0; - } - - function(function&& other) - : op_(other.op_) - { - other.op_ = 0; - } - - ~function() - { - if (op_) - op_->destroy(); - } - - void operator()() - { - if (op_) - { - detail::scheduler_operation* op = op_; - op_ = 0; - op->complete(this, asio::error_code(), 0); - } - } - -private: - detail::scheduler_operation* op_; -}; - -#else // defined(ASIO_HAS_MOVE) - -// Not so lightweight, copyable function object wrapper. -class executor::function -{ -public: - template - explicit function(const F& f, const Alloc&) - : impl_(new impl(f)) - { - } - - void operator()() - { - impl_->invoke_(impl_.get()); - } - -private: - // Base class for polymorphic function implementations. - struct impl_base - { - void (*invoke_)(impl_base*); - }; - - // Polymorphic function implementation. - template - struct impl : impl_base - { - impl(const F& f) - : function_(f) - { - invoke_ = &function::invoke; - } - - F function_; - }; - - // Helper to invoke a function. - template - static void invoke(impl_base* i) - { - static_cast*>(i)->function_(); - } - - detail::shared_ptr impl_; -}; - -#endif // defined(ASIO_HAS_MOVE) - -// Default polymorphic allocator implementation. -template -class executor::impl - : public executor::impl_base -{ -public: - typedef ASIO_REBIND_ALLOC(Allocator, impl) allocator_type; - - static impl_base* create(const Executor& e, Allocator a = Allocator()) - { - raw_mem mem(a); - impl* p = new (mem.ptr_) impl(e, a); - mem.ptr_ = 0; - return p; - } - - impl(const Executor& e, const Allocator& a) ASIO_NOEXCEPT - : impl_base(false), - ref_count_(1), - executor_(e), - allocator_(a) - { - } - - impl_base* clone() const ASIO_NOEXCEPT - { - ++ref_count_; - return const_cast(static_cast(this)); - } - - void destroy() ASIO_NOEXCEPT - { - if (--ref_count_ == 0) - { - allocator_type alloc(allocator_); - impl* p = this; - p->~impl(); - alloc.deallocate(p, 1); - } - } - - void on_work_started() ASIO_NOEXCEPT - { - executor_.on_work_started(); - } - - void on_work_finished() ASIO_NOEXCEPT - { - executor_.on_work_finished(); - } - - execution_context& context() ASIO_NOEXCEPT - { - return executor_.context(); - } - - void dispatch(ASIO_MOVE_ARG(function) f) - { - executor_.dispatch(ASIO_MOVE_CAST(function)(f), allocator_); - } - - void post(ASIO_MOVE_ARG(function) f) - { - executor_.post(ASIO_MOVE_CAST(function)(f), allocator_); - } - - void defer(ASIO_MOVE_ARG(function) f) - { - executor_.defer(ASIO_MOVE_CAST(function)(f), allocator_); - } - - type_id_result_type target_type() const ASIO_NOEXCEPT - { - return type_id(); - } - - void* target() ASIO_NOEXCEPT - { - return &executor_; - } - - const void* target() const ASIO_NOEXCEPT - { - return &executor_; - } - - bool equals(const impl_base* e) const ASIO_NOEXCEPT - { - if (this == e) - return true; - if (target_type() != e->target_type()) - return false; - return executor_ == *static_cast(e->target()); - } - -private: - mutable detail::atomic_count ref_count_; - Executor executor_; - Allocator allocator_; - - struct raw_mem - { - allocator_type allocator_; - impl* ptr_; - - explicit raw_mem(const Allocator& a) - : allocator_(a), - ptr_(allocator_.allocate(1)) - { - } - - ~raw_mem() - { - if (ptr_) - allocator_.deallocate(ptr_, 1); - } - - private: - // Disallow copying and assignment. - raw_mem(const raw_mem&); - raw_mem operator=(const raw_mem&); - }; -}; - -// Polymorphic allocator specialisation for system_executor. -template -class executor::impl - : public executor::impl_base -{ -public: - static impl_base* create(const system_executor&, - const Allocator& = Allocator()) - { - return &detail::global > >(); - } - - impl() - : impl_base(true) - { - } - - impl_base* clone() const ASIO_NOEXCEPT - { - return const_cast(static_cast(this)); - } - - void destroy() ASIO_NOEXCEPT - { - } - - void on_work_started() ASIO_NOEXCEPT - { - executor_.on_work_started(); - } - - void on_work_finished() ASIO_NOEXCEPT - { - executor_.on_work_finished(); - } - - execution_context& context() ASIO_NOEXCEPT - { - return executor_.context(); - } - - void dispatch(ASIO_MOVE_ARG(function) f) - { - executor_.dispatch(ASIO_MOVE_CAST(function)(f), allocator_); - } - - void post(ASIO_MOVE_ARG(function) f) - { - executor_.post(ASIO_MOVE_CAST(function)(f), allocator_); - } - - void defer(ASIO_MOVE_ARG(function) f) - { - executor_.defer(ASIO_MOVE_CAST(function)(f), allocator_); - } - - type_id_result_type target_type() const ASIO_NOEXCEPT - { - return type_id(); - } - - void* target() ASIO_NOEXCEPT - { - return &executor_; - } - - const void* target() const ASIO_NOEXCEPT - { - return &executor_; - } - - bool equals(const impl_base* e) const ASIO_NOEXCEPT - { - return this == e; - } - -private: - system_executor executor_; - Allocator allocator_; -}; - -template -executor::executor(Executor e) - : impl_(impl >::create(e)) -{ -} - -template -executor::executor(allocator_arg_t, const Allocator& a, Executor e) - : impl_(impl::create(e, a)) -{ -} - -template -void executor::dispatch(ASIO_MOVE_ARG(Function) f, - const Allocator& a) const -{ - impl_base* i = get_impl(); - if (i->fast_dispatch_) - system_executor().dispatch(ASIO_MOVE_CAST(Function)(f), a); - else - i->dispatch(function(ASIO_MOVE_CAST(Function)(f), a)); -} - -template -void executor::post(ASIO_MOVE_ARG(Function) f, - const Allocator& a) const -{ - get_impl()->post(function(ASIO_MOVE_CAST(Function)(f), a)); -} - -template -void executor::defer(ASIO_MOVE_ARG(Function) f, - const Allocator& a) const -{ - get_impl()->defer(function(ASIO_MOVE_CAST(Function)(f), a)); -} - -template -Executor* executor::target() ASIO_NOEXCEPT -{ - return impl_ && impl_->target_type() == type_id() - ? static_cast(impl_->target()) : 0; -} - -template -const Executor* executor::target() const ASIO_NOEXCEPT -{ - return impl_ && impl_->target_type() == type_id() - ? static_cast(impl_->target()) : 0; -} - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/executor.ipp b/Sources/Vendor/asio/include/asio/impl/executor.ipp deleted file mode 100644 index 4bd0dc5..0000000 --- a/Sources/Vendor/asio/include/asio/impl/executor.ipp +++ /dev/null @@ -1,38 +0,0 @@ -// -// impl/executor.ipp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_EXECUTOR_IPP -#define ASIO_IMPL_EXECUTOR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -bad_executor::bad_executor() ASIO_NOEXCEPT -{ -} - -const char* bad_executor::what() const ASIO_NOEXCEPT_OR_NOTHROW -{ - return "bad executor"; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_EXECUTOR_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/handler_alloc_hook.ipp b/Sources/Vendor/asio/include/asio/impl/handler_alloc_hook.ipp deleted file mode 100644 index 909ddac..0000000 --- a/Sources/Vendor/asio/include/asio/impl/handler_alloc_hook.ipp +++ /dev/null @@ -1,52 +0,0 @@ -// -// impl/handler_alloc_hook.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_HANDLER_ALLOC_HOOK_IPP -#define ASIO_IMPL_HANDLER_ALLOC_HOOK_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/thread_context.hpp" -#include "asio/detail/thread_info_base.hpp" -#include "asio/handler_alloc_hook.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -void* asio_handler_allocate(std::size_t size, ...) -{ -#if !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) - return detail::thread_info_base::allocate( - detail::thread_context::thread_call_stack::top(), size); -#else // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) - return ::operator new(size); -#endif // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) -} - -void asio_handler_deallocate(void* pointer, std::size_t size, ...) -{ -#if !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) - detail::thread_info_base::deallocate( - detail::thread_context::thread_call_stack::top(), pointer, size); -#else // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) - (void)size; - ::operator delete(pointer); -#endif // !defined(ASIO_DISABLE_SMALL_BLOCK_RECYCLING) -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_HANDLER_ALLOC_HOOK_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/io_context.hpp b/Sources/Vendor/asio/include/asio/impl/io_context.hpp deleted file mode 100644 index 5b6300f..0000000 --- a/Sources/Vendor/asio/include/asio/impl/io_context.hpp +++ /dev/null @@ -1,343 +0,0 @@ -// -// impl/io_context.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_IO_CONTEXT_HPP -#define ASIO_IMPL_IO_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/completion_handler.hpp" -#include "asio/detail/executor_op.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/detail/service_registry.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -inline Service& use_service(io_context& ioc) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - (void)static_cast(&Service::id); - - return ioc.service_registry_->template use_service(ioc); -} - -template <> -inline detail::io_context_impl& use_service( - io_context& ioc) -{ - return ioc.impl_; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_io_context.hpp" -#else -# include "asio/detail/scheduler.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline io_context::executor_type -io_context::get_executor() ASIO_NOEXCEPT -{ - return executor_type(*this); -} - -#if defined(ASIO_HAS_CHRONO) - -template -std::size_t io_context::run_for( - const chrono::duration& rel_time) -{ - return this->run_until(chrono::steady_clock::now() + rel_time); -} - -template -std::size_t io_context::run_until( - const chrono::time_point& abs_time) -{ - std::size_t n = 0; - while (this->run_one_until(abs_time)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; -} - -template -std::size_t io_context::run_one_for( - const chrono::duration& rel_time) -{ - return this->run_one_until(chrono::steady_clock::now() + rel_time); -} - -template -std::size_t io_context::run_one_until( - const chrono::time_point& abs_time) -{ - typename Clock::time_point now = Clock::now(); - while (now < abs_time) - { - typename Clock::duration rel_time = abs_time - now; - if (rel_time > chrono::seconds(1)) - rel_time = chrono::seconds(1); - - asio::error_code ec; - std::size_t s = impl_.wait_one( - static_cast(chrono::duration_cast< - chrono::microseconds>(rel_time).count()), ec); - asio::detail::throw_error(ec); - - if (s || impl_.stopped()) - return s; - - now = Clock::now(); - } - - return 0; -} - -#endif // defined(ASIO_HAS_CHRONO) - -#if !defined(ASIO_NO_DEPRECATED) - -inline void io_context::reset() -{ - restart(); -} - -template -ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) -io_context::dispatch(ASIO_MOVE_ARG(LegacyCompletionHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a LegacyCompletionHandler. - ASIO_LEGACY_COMPLETION_HANDLER_CHECK( - LegacyCompletionHandler, handler) type_check; - - async_completion init(handler); - - if (impl_.can_dispatch()) - { - detail::fenced_block b(detail::fenced_block::full); - asio_handler_invoke_helpers::invoke( - init.completion_handler, init.completion_handler); - } - else - { - // Allocate and construct an operation to wrap the handler. - typedef detail::completion_handler< - typename handler_type::type> op; - typename op::ptr p = { detail::addressof(init.completion_handler), - op::ptr::allocate(init.completion_handler), 0 }; - p.p = new (p.v) op(init.completion_handler); - - ASIO_HANDLER_CREATION((*this, *p.p, - "io_context", this, 0, "dispatch")); - - impl_.do_dispatch(p.p); - p.v = p.p = 0; - } - - return init.result.get(); -} - -template -ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) -io_context::post(ASIO_MOVE_ARG(LegacyCompletionHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a LegacyCompletionHandler. - ASIO_LEGACY_COMPLETION_HANDLER_CHECK( - LegacyCompletionHandler, handler) type_check; - - async_completion init(handler); - - bool is_continuation = - asio_handler_cont_helpers::is_continuation(init.completion_handler); - - // Allocate and construct an operation to wrap the handler. - typedef detail::completion_handler< - typename handler_type::type> op; - typename op::ptr p = { detail::addressof(init.completion_handler), - op::ptr::allocate(init.completion_handler), 0 }; - p.p = new (p.v) op(init.completion_handler); - - ASIO_HANDLER_CREATION((*this, *p.p, - "io_context", this, 0, "post")); - - impl_.post_immediate_completion(p.p, is_continuation); - p.v = p.p = 0; - - return init.result.get(); -} - -template -#if defined(GENERATING_DOCUMENTATION) -unspecified -#else -inline detail::wrapped_handler -#endif -io_context::wrap(Handler handler) -{ - return detail::wrapped_handler(*this, handler); -} - -#endif // !defined(ASIO_NO_DEPRECATED) - -inline io_context& -io_context::executor_type::context() const ASIO_NOEXCEPT -{ - return io_context_; -} - -inline void -io_context::executor_type::on_work_started() const ASIO_NOEXCEPT -{ - io_context_.impl_.work_started(); -} - -inline void -io_context::executor_type::on_work_finished() const ASIO_NOEXCEPT -{ - io_context_.impl_.work_finished(); -} - -template -void io_context::executor_type::dispatch( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Invoke immediately if we are already inside the thread pool. - if (io_context_.impl_.can_dispatch()) - { - // Make a local, non-const copy of the function. - function_type tmp(ASIO_MOVE_CAST(Function)(f)); - - detail::fenced_block b(detail::fenced_block::full); - asio_handler_invoke_helpers::invoke(tmp, tmp); - return; - } - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((this->context(), *p.p, - "io_context", &this->context(), 0, "dispatch")); - - io_context_.impl_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void io_context::executor_type::post( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((this->context(), *p.p, - "io_context", &this->context(), 0, "post")); - - io_context_.impl_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void io_context::executor_type::defer( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((this->context(), *p.p, - "io_context", &this->context(), 0, "defer")); - - io_context_.impl_.post_immediate_completion(p.p, true); - p.v = p.p = 0; -} - -inline bool -io_context::executor_type::running_in_this_thread() const ASIO_NOEXCEPT -{ - return io_context_.impl_.can_dispatch(); -} - -#if !defined(ASIO_NO_DEPRECATED) -inline io_context::work::work(asio::io_context& io_context) - : io_context_impl_(io_context.impl_) -{ - io_context_impl_.work_started(); -} - -inline io_context::work::work(const work& other) - : io_context_impl_(other.io_context_impl_) -{ - io_context_impl_.work_started(); -} - -inline io_context::work::~work() -{ - io_context_impl_.work_finished(); -} - -inline asio::io_context& io_context::work::get_io_context() -{ - return static_cast(io_context_impl_.context()); -} - -inline asio::io_context& io_context::work::get_io_service() -{ - return static_cast(io_context_impl_.context()); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -inline asio::io_context& io_context::service::get_io_context() -{ - return static_cast(context()); -} - -#if !defined(ASIO_NO_DEPRECATED) -inline asio::io_context& io_context::service::get_io_service() -{ - return static_cast(context()); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/io_context.ipp b/Sources/Vendor/asio/include/asio/impl/io_context.ipp deleted file mode 100644 index 7eb467d..0000000 --- a/Sources/Vendor/asio/include/asio/impl/io_context.ipp +++ /dev/null @@ -1,174 +0,0 @@ -// -// impl/io_context.ipp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_IO_CONTEXT_IPP -#define ASIO_IMPL_IO_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/concurrency_hint.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/scoped_ptr.hpp" -#include "asio/detail/service_registry.hpp" -#include "asio/detail/throw_error.hpp" - -#if defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_io_context.hpp" -#else -# include "asio/detail/scheduler.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -io_context::io_context() - : impl_(add_impl(new impl_type(*this, ASIO_CONCURRENCY_HINT_DEFAULT))) -{ -} - -io_context::io_context(int concurrency_hint) - : impl_(add_impl(new impl_type(*this, concurrency_hint == 1 - ? ASIO_CONCURRENCY_HINT_1 : concurrency_hint))) -{ -} - -io_context::impl_type& io_context::add_impl(io_context::impl_type* impl) -{ - asio::detail::scoped_ptr scoped_impl(impl); - asio::add_service(*this, scoped_impl.get()); - return *scoped_impl.release(); -} - -io_context::~io_context() -{ -} - -io_context::count_type io_context::run() -{ - asio::error_code ec; - count_type s = impl_.run(ec); - asio::detail::throw_error(ec); - return s; -} - -#if !defined(ASIO_NO_DEPRECATED) -io_context::count_type io_context::run(asio::error_code& ec) -{ - return impl_.run(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -io_context::count_type io_context::run_one() -{ - asio::error_code ec; - count_type s = impl_.run_one(ec); - asio::detail::throw_error(ec); - return s; -} - -#if !defined(ASIO_NO_DEPRECATED) -io_context::count_type io_context::run_one(asio::error_code& ec) -{ - return impl_.run_one(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -io_context::count_type io_context::poll() -{ - asio::error_code ec; - count_type s = impl_.poll(ec); - asio::detail::throw_error(ec); - return s; -} - -#if !defined(ASIO_NO_DEPRECATED) -io_context::count_type io_context::poll(asio::error_code& ec) -{ - return impl_.poll(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -io_context::count_type io_context::poll_one() -{ - asio::error_code ec; - count_type s = impl_.poll_one(ec); - asio::detail::throw_error(ec); - return s; -} - -#if !defined(ASIO_NO_DEPRECATED) -io_context::count_type io_context::poll_one(asio::error_code& ec) -{ - return impl_.poll_one(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -void io_context::stop() -{ - impl_.stop(); -} - -bool io_context::stopped() const -{ - return impl_.stopped(); -} - -void io_context::restart() -{ - impl_.restart(); -} - -io_context::service::service(asio::io_context& owner) - : execution_context::service(owner) -{ -} - -io_context::service::~service() -{ -} - -void io_context::service::shutdown() -{ -#if !defined(ASIO_NO_DEPRECATED) - shutdown_service(); -#endif // !defined(ASIO_NO_DEPRECATED) -} - -#if !defined(ASIO_NO_DEPRECATED) -void io_context::service::shutdown_service() -{ -} -#endif // !defined(ASIO_NO_DEPRECATED) - -void io_context::service::notify_fork(io_context::fork_event ev) -{ -#if !defined(ASIO_NO_DEPRECATED) - fork_service(ev); -#else // !defined(ASIO_NO_DEPRECATED) - (void)ev; -#endif // !defined(ASIO_NO_DEPRECATED) -} - -#if !defined(ASIO_NO_DEPRECATED) -void io_context::service::fork_service(io_context::fork_event) -{ -} -#endif // !defined(ASIO_NO_DEPRECATED) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_IO_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/post.hpp b/Sources/Vendor/asio/include/asio/impl/post.hpp deleted file mode 100644 index 5538953..0000000 --- a/Sources/Vendor/asio/include/asio/impl/post.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// impl/post.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_POST_HPP -#define ASIO_IMPL_POST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/detail/work_dispatcher.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - ASIO_MOVE_ARG(CompletionToken) token) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_executor::type ex( - (get_associated_executor)(init.completion_handler)); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.post(ASIO_MOVE_CAST(handler)(init.completion_handler), alloc); - - return init.result.get(); -} - -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - typedef ASIO_HANDLER_TYPE(CompletionToken, void()) handler; - - async_completion init(token); - - typename associated_allocator::type alloc( - (get_associated_allocator)(init.completion_handler)); - - ex.post(detail::work_dispatcher(init.completion_handler), alloc); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type*) -{ - return (post)(ctx.get_executor(), - ASIO_MOVE_CAST(CompletionToken)(token)); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_POST_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/read.hpp b/Sources/Vendor/asio/include/asio/impl/read.hpp deleted file mode 100644 index 603a7a9..0000000 --- a/Sources/Vendor/asio/include/asio/impl/read.hpp +++ /dev/null @@ -1,715 +0,0 @@ -// -// impl/read.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_READ_HPP -#define ASIO_IMPL_READ_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/base_from_completion_cond.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/consuming_buffers.hpp" -#include "asio/detail/dependent_type.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - std::size_t read_buffer_sequence(SyncReadStream& s, - const MutableBufferSequence& buffers, const MutableBufferIterator&, - CompletionCondition completion_condition, asio::error_code& ec) - { - ec = asio::error_code(); - asio::detail::consuming_buffers tmp(buffers); - while (!tmp.empty()) - { - if (std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, tmp.total_consumed()))) - tmp.consume(s.read_some(tmp.prepare(max_size), ec)); - else - break; - } - return tmp.total_consumed();; - } -} // namespace detail - -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - return detail::read_buffer_sequence(s, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, ec); -} - -template -inline std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read(s, buffers, transfer_all(), ec); - asio::detail::throw_error(ec, "read"); - return bytes_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - asio::error_code& ec, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - return read(s, buffers, transfer_all(), ec); -} - -template -inline std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read(s, buffers, completion_condition, ec); - asio::detail::throw_error(ec, "read"); - return bytes_transferred; -} - -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - ec = asio::error_code(); - std::size_t total_transferred = 0; - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - std::size_t bytes_available = std::min( - std::max(512, b.capacity() - b.size()), - std::min(max_size, b.max_size() - b.size())); - while (bytes_available > 0) - { - std::size_t bytes_transferred = s.read_some(b.prepare(bytes_available), ec); - b.commit(bytes_transferred); - total_transferred += bytes_transferred; - max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - bytes_available = std::min( - std::max(512, b.capacity() - b.size()), - std::min(max_size, b.max_size() - b.size())); - } - return total_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), transfer_all(), ec); - asio::detail::throw_error(ec, "read"); - return bytes_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - return read(s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ec); -} - -template -inline std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - completion_condition, ec); - asio::detail::throw_error(ec, "read"); - return bytes_transferred; -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -inline std::size_t read(SyncReadStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec) -{ - return read(s, basic_streambuf_ref(b), completion_condition, ec); -} - -template -inline std::size_t read(SyncReadStream& s, - asio::basic_streambuf& b) -{ - return read(s, basic_streambuf_ref(b)); -} - -template -inline std::size_t read(SyncReadStream& s, - asio::basic_streambuf& b, - asio::error_code& ec) -{ - return read(s, basic_streambuf_ref(b), ec); -} - -template -inline std::size_t read(SyncReadStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - return read(s, basic_streambuf_ref(b), completion_condition); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class read_op - : detail::base_from_completion_cond - { - public: - read_op(AsyncReadStream& stream, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, ReadHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - stream_(stream), - buffers_(buffers), - start_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_op(const read_op& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - handler_(other.handler_) - { - } - - read_op(read_op&& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - do - { - stream_.async_read_some(buffers_.prepare(max_size), - ASIO_MOVE_CAST(read_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - if ((!ec && bytes_transferred == 0) || buffers_.empty()) - break; - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - } while (max_size > 0); - - handler_(ec, buffers_.total_consumed()); - } - } - - //private: - AsyncReadStream& stream_; - asio::detail::consuming_buffers buffers_; - int start_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void start_read_buffer_sequence_op(AsyncReadStream& stream, - const MutableBufferSequence& buffers, const MutableBufferIterator&, - CompletionCondition completion_condition, ReadHandler& handler) - { - detail::read_op( - stream, buffers, completion_condition, handler)( - asio::error_code(), 0, 1); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::start_read_buffer_sequence_op(s, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, - init.completion_handler); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_mutable_buffer_sequence::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::start_read_buffer_sequence_op(s, buffers, - asio::buffer_sequence_begin(buffers), transfer_all(), - init.completion_handler); - - return init.result.get(); -} - -namespace detail -{ - template - class read_dynbuf_op - : detail::base_from_completion_cond - { - public: - template - read_dynbuf_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - CompletionCondition completion_condition, ReadHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - start_(0), - total_transferred_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_dynbuf_op(const read_dynbuf_op& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - total_transferred_(other.total_transferred_), - handler_(other.handler_) - { - } - - read_dynbuf_op(read_dynbuf_op&& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - start_(other.start_), - total_transferred_(other.total_transferred_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size, bytes_available; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, total_transferred_); - bytes_available = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(max_size, - buffers_.max_size() - buffers_.size())); - for (;;) - { - stream_.async_read_some(buffers_.prepare(bytes_available), - ASIO_MOVE_CAST(read_dynbuf_op)(*this)); - return; default: - total_transferred_ += bytes_transferred; - buffers_.commit(bytes_transferred); - max_size = this->check_for_completion(ec, total_transferred_); - bytes_available = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(max_size, - buffers_.max_size() - buffers_.size())); - if ((!ec && bytes_transferred == 0) || bytes_available == 0) - break; - } - - handler_(ec, static_cast(total_transferred_)); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - int start_; - std::size_t total_transferred_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_dynbuf_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_dynbuf_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_dynbuf_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_dynbuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_dynbuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_dynbuf_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_dynbuf_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_dynbuf_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_dynbuf_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - return async_read(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_dynbuf_op::type, - CompletionCondition, ASIO_HANDLER_TYPE( - ReadHandler, void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - completion_condition, init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, basic_streambuf& b, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read(s, basic_streambuf_ref(b), - ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read(s, basic_streambuf_ref(b), - completion_condition, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_READ_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/read_at.hpp b/Sources/Vendor/asio/include/asio/impl/read_at.hpp deleted file mode 100644 index d736d4d..0000000 --- a/Sources/Vendor/asio/include/asio/impl/read_at.hpp +++ /dev/null @@ -1,640 +0,0 @@ -// -// impl/read_at.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_READ_AT_HPP -#define ASIO_IMPL_READ_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/base_from_completion_cond.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/consuming_buffers.hpp" -#include "asio/detail/dependent_type.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - std::size_t read_at_buffer_sequence(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - const MutableBufferIterator&, CompletionCondition completion_condition, - asio::error_code& ec) - { - ec = asio::error_code(); - asio::detail::consuming_buffers tmp(buffers); - while (!tmp.empty()) - { - if (std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, tmp.total_consumed()))) - { - tmp.consume(d.read_some_at(offset + tmp.total_consumed(), - tmp.prepare(max_size), ec)); - } - else - break; - } - return tmp.total_consumed();; - } -} // namespace detail - -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec) -{ - return detail::read_at_buffer_sequence(d, offset, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, ec); -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, buffers, transfer_all(), ec); - asio::detail::throw_error(ec, "read_at"); - return bytes_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - asio::error_code& ec) -{ - return read_at(d, offset, buffers, transfer_all(), ec); -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, buffers, completion_condition, ec); - asio::detail::throw_error(ec, "read_at"); - return bytes_transferred; -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec) -{ - ec = asio::error_code(); - std::size_t total_transferred = 0; - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - std::size_t bytes_available = read_size_helper(b, max_size); - while (bytes_available > 0) - { - std::size_t bytes_transferred = d.read_some_at( - offset + total_transferred, b.prepare(bytes_available), ec); - b.commit(bytes_transferred); - total_transferred += bytes_transferred; - max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - bytes_available = read_size_helper(b, max_size); - } - return total_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, b, transfer_all(), ec); - asio::detail::throw_error(ec, "read_at"); - return bytes_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - asio::error_code& ec) -{ - return read_at(d, offset, b, transfer_all(), ec); -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, b, completion_condition, ec); - asio::detail::throw_error(ec, "read_at"); - return bytes_transferred; -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class read_at_op - : detail::base_from_completion_cond - { - public: - read_at_op(AsyncRandomAccessReadDevice& device, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, ReadHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - device_(device), - offset_(offset), - buffers_(buffers), - start_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_at_op(const read_at_op& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - buffers_(other.buffers_), - start_(other.start_), - handler_(other.handler_) - { - } - - read_at_op(read_at_op&& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - buffers_(other.buffers_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - do - { - device_.async_read_some_at( - offset_ + buffers_.total_consumed(), buffers_.prepare(max_size), - ASIO_MOVE_CAST(read_at_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - if ((!ec && bytes_transferred == 0) || buffers_.empty()) - break; - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - } while (max_size > 0); - - handler_(ec, buffers_.total_consumed()); - } - } - - //private: - AsyncRandomAccessReadDevice& device_; - uint64_t offset_; - asio::detail::consuming_buffers buffers_; - int start_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_at_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_at_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_at_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_at_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_at_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void start_read_at_buffer_sequence_op(AsyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - const MutableBufferIterator&, CompletionCondition completion_condition, - ReadHandler& handler) - { - detail::read_at_op( - d, offset, buffers, completion_condition, handler)( - asio::error_code(), 0, 1); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_at_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_at_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_at_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_at_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::start_read_at_buffer_sequence_op(d, offset, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, - init.completion_handler); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::start_read_at_buffer_sequence_op(d, offset, buffers, - asio::buffer_sequence_begin(buffers), transfer_all(), - init.completion_handler); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -namespace detail -{ - template - class read_at_streambuf_op - : detail::base_from_completion_cond - { - public: - read_at_streambuf_op(AsyncRandomAccessReadDevice& device, - uint64_t offset, basic_streambuf& streambuf, - CompletionCondition completion_condition, ReadHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - device_(device), - offset_(offset), - streambuf_(streambuf), - start_(0), - total_transferred_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_at_streambuf_op(const read_at_streambuf_op& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - streambuf_(other.streambuf_), - start_(other.start_), - total_transferred_(other.total_transferred_), - handler_(other.handler_) - { - } - - read_at_streambuf_op(read_at_streambuf_op&& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - streambuf_(other.streambuf_), - start_(other.start_), - total_transferred_(other.total_transferred_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size, bytes_available; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, total_transferred_); - bytes_available = read_size_helper(streambuf_, max_size); - for (;;) - { - device_.async_read_some_at(offset_ + total_transferred_, - streambuf_.prepare(bytes_available), - ASIO_MOVE_CAST(read_at_streambuf_op)(*this)); - return; default: - total_transferred_ += bytes_transferred; - streambuf_.commit(bytes_transferred); - max_size = this->check_for_completion(ec, total_transferred_); - bytes_available = read_size_helper(streambuf_, max_size); - if ((!ec && bytes_transferred == 0) || bytes_available == 0) - break; - } - - handler_(ec, static_cast(total_transferred_)); - } - } - - //private: - AsyncRandomAccessReadDevice& device_; - uint64_t offset_; - asio::basic_streambuf& streambuf_; - int start_; - std::size_t total_transferred_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_at_streambuf_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_at_streambuf_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_at_streambuf_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_at_streambuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_at_streambuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_at_streambuf_op, - Allocator1> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_at_streambuf_op& h, - const Allocator1& a = Allocator1()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_at_streambuf_op, - Executor1> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_at_streambuf_op& h, - const Executor1& ex = Executor1()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_at_streambuf_op( - d, offset, b, completion_condition, init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, asio::basic_streambuf& b, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_at_streambuf_op( - d, offset, b, transfer_all(), init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_READ_AT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/read_until.hpp b/Sources/Vendor/asio/include/asio/impl/read_until.hpp deleted file mode 100644 index 1a093cf..0000000 --- a/Sources/Vendor/asio/include/asio/impl/read_until.hpp +++ /dev/null @@ -1,1502 +0,0 @@ -// -// impl/read_until.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_READ_UNTIL_HPP -#define ASIO_IMPL_READ_UNTIL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include -#include -#include -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/buffers_iterator.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/limits.hpp" -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -template -inline std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, char delim) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_until(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), delim, ec); - asio::detail::throw_error(ec, "read_until"); - return bytes_transferred; -} - -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - char delim, asio::error_code& ec) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t search_position = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = b.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position; - iterator end = iterator::end(data_buffers); - - // Look for a match. - iterator iter = std::find(start_pos, end, delim); - if (iter != end) - { - // Found a match. We're done. - ec = asio::error_code(); - return iter - begin + 1; - } - else - { - // No match. Next search can start with the new data. - search_position = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_to_read = std::min( - std::max(512, b.capacity() - b.size()), - std::min(65536, b.max_size() - b.size())); - b.commit(s.read_some(b.prepare(bytes_to_read), ec)); - if (ec) - return 0; - } -} - -template -inline std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_until(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), delim, ec); - asio::detail::throw_error(ec, "read_until"); - return bytes_transferred; -} - -namespace detail -{ - // Algorithm that finds a subsequence of equal values in a sequence. Returns - // (iterator,true) if a full match was found, in which case the iterator - // points to the beginning of the match. Returns (iterator,false) if a - // partial match was found at the end of the first sequence, in which case - // the iterator points to the beginning of the partial match. Returns - // (last1,false) if no full or partial match was found. - template - std::pair partial_search( - Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) - { - for (Iterator1 iter1 = first1; iter1 != last1; ++iter1) - { - Iterator1 test_iter1 = iter1; - Iterator2 test_iter2 = first2; - for (;; ++test_iter1, ++test_iter2) - { - if (test_iter2 == last2) - return std::make_pair(iter1, true); - if (test_iter1 == last1) - { - if (test_iter2 != first2) - return std::make_pair(iter1, false); - else - break; - } - if (*test_iter1 != *test_iter2) - break; - } - } - return std::make_pair(last1, false); - } -} // namespace detail - -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim, asio::error_code& ec) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t search_position = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = b.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position; - iterator end = iterator::end(data_buffers); - - // Look for a match. - std::pair result = detail::partial_search( - start_pos, end, delim.begin(), delim.end()); - if (result.first != end) - { - if (result.second) - { - // Full match. We're done. - ec = asio::error_code(); - return result.first - begin + delim.length(); - } - else - { - // Partial match. Next search needs to start from beginning of match. - search_position = result.first - begin; - } - } - else - { - // No match. Next search can start with the new data. - search_position = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_to_read = std::min( - std::max(512, b.capacity() - b.size()), - std::min(65536, b.max_size() - b.size())); - b.commit(s.read_some(b.prepare(bytes_to_read), ec)); - if (ec) - return 0; - } -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if defined(ASIO_HAS_BOOST_REGEX) - -template -inline std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_until(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), expr, ec); - asio::detail::throw_error(ec, "read_until"); - return bytes_transferred; -} - -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr, asio::error_code& ec) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t search_position = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = b.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position; - iterator end = iterator::end(data_buffers); - - // Look for a match. - boost::match_results >::allocator_type> - match_results; - if (regex_search(start_pos, end, match_results, expr, - boost::match_default | boost::match_partial)) - { - if (match_results[0].matched) - { - // Full match. We're done. - ec = asio::error_code(); - return match_results[0].second - begin; - } - else - { - // Partial match. Next search needs to start from beginning of match. - search_position = match_results[0].first - begin; - } - } - else - { - // No match. Next search can start with the new data. - search_position = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_to_read = std::min( - std::max(512, b.capacity() - b.size()), - std::min(65536, b.max_size() - b.size())); - b.commit(s.read_some(b.prepare(bytes_to_read), ec)); - if (ec) - return 0; - } -} - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -template -inline std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, - typename enable_if::value>::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = read_until(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - match_condition, ec); - asio::detail::throw_error(ec, "read_until"); - return bytes_transferred; -} - -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, asio::error_code& ec, - typename enable_if::value>::type*) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t search_position = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = b.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position; - iterator end = iterator::end(data_buffers); - - // Look for a match. - std::pair result = match_condition(start_pos, end); - if (result.second) - { - // Full match. We're done. - ec = asio::error_code(); - return result.first - begin; - } - else if (result.first != end) - { - // Partial match. Next search needs to start from beginning of match. - search_position = result.first - begin; - } - else - { - // No match. Next search can start with the new data. - search_position = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_to_read = std::min( - std::max(512, b.capacity() - b.size()), - std::min(65536, b.max_size() - b.size())); - b.commit(s.read_some(b.prepare(bytes_to_read), ec)); - if (ec) - return 0; - } -} - -#if !defined(ASIO_NO_IOSTREAM) - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, char delim) -{ - return read_until(s, basic_streambuf_ref(b), delim); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, char delim, - asio::error_code& ec) -{ - return read_until(s, basic_streambuf_ref(b), delim, ec); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim) -{ - return read_until(s, basic_streambuf_ref(b), delim); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim, asio::error_code& ec) -{ - return read_until(s, basic_streambuf_ref(b), delim, ec); -} - -#if defined(ASIO_HAS_BOOST_REGEX) - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr) -{ - return read_until(s, basic_streambuf_ref(b), expr); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr, - asio::error_code& ec) -{ - return read_until(s, basic_streambuf_ref(b), expr, ec); -} - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, MatchCondition match_condition, - typename enable_if::value>::type*) -{ - return read_until(s, basic_streambuf_ref(b), match_condition); -} - -template -inline std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - MatchCondition match_condition, asio::error_code& ec, - typename enable_if::value>::type*) -{ - return read_until(s, basic_streambuf_ref(b), match_condition, ec); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class read_until_delim_op - { - public: - template - read_until_delim_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - char delim, ReadHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - delim_(delim), - start_(0), - search_position_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_until_delim_op(const read_until_delim_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - delim_(other.delim_), - start_(other.start_), - search_position_(other.search_position_), - handler_(other.handler_) - { - } - - read_until_delim_op(read_until_delim_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - delim_(other.delim_), - start_(other.start_), - search_position_(other.search_position_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - const std::size_t not_found = (std::numeric_limits::max)(); - std::size_t bytes_to_read; - switch (start_ = start) - { - case 1: - for (;;) - { - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type - buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = buffers_.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position_; - iterator end = iterator::end(data_buffers); - - // Look for a match. - iterator iter = std::find(start_pos, end, delim_); - if (iter != end) - { - // Found a match. We're done. - search_position_ = iter - begin + 1; - bytes_to_read = 0; - } - - // No match yet. Check if buffer is full. - else if (buffers_.size() == buffers_.max_size()) - { - search_position_ = not_found; - bytes_to_read = 0; - } - - // Need to read some more data. - else - { - // Next search can start with the new data. - search_position_ = end - begin; - bytes_to_read = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(65536, - buffers_.max_size() - buffers_.size())); - } - } - - // Check if we're done. - if (!start && bytes_to_read == 0) - break; - - // Start a new asynchronous read operation to obtain more data. - stream_.async_read_some(buffers_.prepare(bytes_to_read), - ASIO_MOVE_CAST(read_until_delim_op)(*this)); - return; default: - buffers_.commit(bytes_transferred); - if (ec || bytes_transferred == 0) - break; - } - - const asio::error_code result_ec = - (search_position_ == not_found) - ? error::not_found : ec; - - const std::size_t result_n = - (ec || search_position_ == not_found) - ? 0 : search_position_; - - handler_(result_ec, result_n); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - char delim_; - int start_; - std::size_t search_position_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_delim_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_delim_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_until_delim_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_until_delim_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_delim_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_until_delim_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_until_delim_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_until_delim_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_until_delim_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - char delim, ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_until_delim_op::type, - ASIO_HANDLER_TYPE(ReadHandler, - void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - delim, init.completion_handler)(asio::error_code(), 0, 1); - - return init.result.get(); -} - -namespace detail -{ - template - class read_until_delim_string_op - { - public: - template - read_until_delim_string_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - const std::string& delim, ReadHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - delim_(delim), - start_(0), - search_position_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_until_delim_string_op(const read_until_delim_string_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - delim_(other.delim_), - start_(other.start_), - search_position_(other.search_position_), - handler_(other.handler_) - { - } - - read_until_delim_string_op(read_until_delim_string_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - delim_(ASIO_MOVE_CAST(std::string)(other.delim_)), - start_(other.start_), - search_position_(other.search_position_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - const std::size_t not_found = (std::numeric_limits::max)(); - std::size_t bytes_to_read; - switch (start_ = start) - { - case 1: - for (;;) - { - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type - buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = buffers_.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position_; - iterator end = iterator::end(data_buffers); - - // Look for a match. - std::pair result = detail::partial_search( - start_pos, end, delim_.begin(), delim_.end()); - if (result.first != end && result.second) - { - // Full match. We're done. - search_position_ = result.first - begin + delim_.length(); - bytes_to_read = 0; - } - - // No match yet. Check if buffer is full. - else if (buffers_.size() == buffers_.max_size()) - { - search_position_ = not_found; - bytes_to_read = 0; - } - - // Need to read some more data. - else - { - if (result.first != end) - { - // Partial match. Next search needs to start from beginning of - // match. - search_position_ = result.first - begin; - } - else - { - // Next search can start with the new data. - search_position_ = end - begin; - } - - bytes_to_read = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(65536, - buffers_.max_size() - buffers_.size())); - } - } - - // Check if we're done. - if (!start && bytes_to_read == 0) - break; - - // Start a new asynchronous read operation to obtain more data. - stream_.async_read_some(buffers_.prepare(bytes_to_read), - ASIO_MOVE_CAST(read_until_delim_string_op)(*this)); - return; default: - buffers_.commit(bytes_transferred); - if (ec || bytes_transferred == 0) - break; - } - - const asio::error_code result_ec = - (search_position_ == not_found) - ? error::not_found : ec; - - const std::size_t result_n = - (ec || search_position_ == not_found) - ? 0 : search_position_; - - handler_(result_ec, result_n); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - std::string delim_; - int start_; - std::size_t search_position_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_delim_string_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_delim_string_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_until_delim_string_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_until_delim_string_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_delim_string_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_until_delim_string_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_until_delim_string_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_until_delim_string_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_until_delim_string_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_until_delim_string_op::type, - ASIO_HANDLER_TYPE(ReadHandler, - void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - static_cast(delim), - init.completion_handler)(asio::error_code(), 0, 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if defined(ASIO_HAS_BOOST_REGEX) - -namespace detail -{ - template - class read_until_expr_op - { - public: - template - read_until_expr_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - const boost::regex& expr, ReadHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - expr_(expr), - start_(0), - search_position_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_until_expr_op(const read_until_expr_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - expr_(other.expr_), - start_(other.start_), - search_position_(other.search_position_), - handler_(other.handler_) - { - } - - read_until_expr_op(read_until_expr_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - expr_(other.expr_), - start_(other.start_), - search_position_(other.search_position_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - const std::size_t not_found = (std::numeric_limits::max)(); - std::size_t bytes_to_read; - switch (start_ = start) - { - case 1: - for (;;) - { - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type - buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = buffers_.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position_; - iterator end = iterator::end(data_buffers); - - // Look for a match. - boost::match_results >::allocator_type> - match_results; - bool match = regex_search(start_pos, end, match_results, expr_, - boost::match_default | boost::match_partial); - if (match && match_results[0].matched) - { - // Full match. We're done. - search_position_ = match_results[0].second - begin; - bytes_to_read = 0; - } - - // No match yet. Check if buffer is full. - else if (buffers_.size() == buffers_.max_size()) - { - search_position_ = not_found; - bytes_to_read = 0; - } - - // Need to read some more data. - else - { - if (match) - { - // Partial match. Next search needs to start from beginning of - // match. - search_position_ = match_results[0].first - begin; - } - else - { - // Next search can start with the new data. - search_position_ = end - begin; - } - - bytes_to_read = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(65536, - buffers_.max_size() - buffers_.size())); - } - } - - // Check if we're done. - if (!start && bytes_to_read == 0) - break; - - // Start a new asynchronous read operation to obtain more data. - stream_.async_read_some(buffers_.prepare(bytes_to_read), - ASIO_MOVE_CAST(read_until_expr_op)(*this)); - return; default: - buffers_.commit(bytes_transferred); - if (ec || bytes_transferred == 0) - break; - } - - const asio::error_code result_ec = - (search_position_ == not_found) - ? error::not_found : ec; - - const std::size_t result_n = - (ec || search_position_ == not_found) - ? 0 : search_position_; - - handler_(result_ec, result_n); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - RegEx expr_; - int start_; - std::size_t search_position_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_expr_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_expr_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_until_expr_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_until_expr_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_expr_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_until_expr_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_until_expr_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_until_expr_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_until_expr_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_until_expr_op::type, - boost::regex, ASIO_HANDLER_TYPE(ReadHandler, - void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - expr, init.completion_handler)(asio::error_code(), 0, 1); - - return init.result.get(); -} - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -namespace detail -{ - template - class read_until_match_op - { - public: - template - read_until_match_op(AsyncReadStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - MatchCondition match_condition, ReadHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - match_condition_(match_condition), - start_(0), - search_position_(0), - handler_(ASIO_MOVE_CAST(ReadHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - read_until_match_op(const read_until_match_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - match_condition_(other.match_condition_), - start_(other.start_), - search_position_(other.search_position_), - handler_(other.handler_) - { - } - - read_until_match_op(read_until_match_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - match_condition_(other.match_condition_), - start_(other.start_), - search_position_(other.search_position_), - handler_(ASIO_MOVE_CAST(ReadHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - const std::size_t not_found = (std::numeric_limits::max)(); - std::size_t bytes_to_read; - switch (start_ = start) - { - case 1: - for (;;) - { - { - // Determine the range of the data to be searched. - typedef typename DynamicBuffer::const_buffers_type - buffers_type; - typedef buffers_iterator iterator; - buffers_type data_buffers = buffers_.data(); - iterator begin = iterator::begin(data_buffers); - iterator start_pos = begin + search_position_; - iterator end = iterator::end(data_buffers); - - // Look for a match. - std::pair result = match_condition_(start_pos, end); - if (result.second) - { - // Full match. We're done. - search_position_ = result.first - begin; - bytes_to_read = 0; - } - - // No match yet. Check if buffer is full. - else if (buffers_.size() == buffers_.max_size()) - { - search_position_ = not_found; - bytes_to_read = 0; - } - - // Need to read some more data. - else - { - if (result.first != end) - { - // Partial match. Next search needs to start from beginning of - // match. - search_position_ = result.first - begin; - } - else - { - // Next search can start with the new data. - search_position_ = end - begin; - } - - bytes_to_read = std::min( - std::max(512, - buffers_.capacity() - buffers_.size()), - std::min(65536, - buffers_.max_size() - buffers_.size())); - } - } - - // Check if we're done. - if (!start && bytes_to_read == 0) - break; - - // Start a new asynchronous read operation to obtain more data. - stream_.async_read_some(buffers_.prepare(bytes_to_read), - ASIO_MOVE_CAST(read_until_match_op)(*this)); - return; default: - buffers_.commit(bytes_transferred); - if (ec || bytes_transferred == 0) - break; - } - - const asio::error_code result_ec = - (search_position_ == not_found) - ? error::not_found : ec; - - const std::size_t result_n = - (ec || search_position_ == not_found) - ? 0 : search_position_; - - handler_(result_ec, result_n); - } - } - - //private: - AsyncReadStream& stream_; - DynamicBuffer buffers_; - MatchCondition match_condition_; - int start_; - std::size_t search_position_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_match_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_match_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - read_until_match_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - read_until_match_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_match_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::read_until_match_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::read_until_match_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::read_until_match_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::read_until_match_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if::value>::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - detail::read_until_match_op::type, - MatchCondition, ASIO_HANDLER_TYPE(ReadHandler, - void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - match_condition, init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_IOSTREAM) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - char delim, ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read_until(s, basic_streambuf_ref(b), - delim, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read_until(s, basic_streambuf_ref(b), - delim, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -#if defined(ASIO_HAS_BOOST_REGEX) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr, - ASIO_MOVE_ARG(ReadHandler) handler) -{ - return async_read_until(s, basic_streambuf_ref(b), - expr, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -#endif // defined(ASIO_HAS_BOOST_REGEX) - -template -inline ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - MatchCondition match_condition, ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if::value>::type*) -{ - return async_read_until(s, basic_streambuf_ref(b), - match_condition, ASIO_MOVE_CAST(ReadHandler)(handler)); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_READ_UNTIL_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/serial_port_base.hpp b/Sources/Vendor/asio/include/asio/impl/serial_port_base.hpp deleted file mode 100644 index cdc201d..0000000 --- a/Sources/Vendor/asio/include/asio/impl/serial_port_base.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// impl/serial_port_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_IMPL_SERIAL_PORT_BASE_HPP -#define ASIO_IMPL_SERIAL_PORT_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline serial_port_base::baud_rate::baud_rate(unsigned int rate) - : value_(rate) -{ -} - -inline unsigned int serial_port_base::baud_rate::value() const -{ - return value_; -} - -inline serial_port_base::flow_control::type -serial_port_base::flow_control::value() const -{ - return value_; -} - -inline serial_port_base::parity::type serial_port_base::parity::value() const -{ - return value_; -} - -inline serial_port_base::stop_bits::type -serial_port_base::stop_bits::value() const -{ - return value_; -} - -inline unsigned int serial_port_base::character_size::value() const -{ - return value_; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SERIAL_PORT_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/serial_port_base.ipp b/Sources/Vendor/asio/include/asio/impl/serial_port_base.ipp deleted file mode 100644 index 5d52ed5..0000000 --- a/Sources/Vendor/asio/include/asio/impl/serial_port_base.ipp +++ /dev/null @@ -1,554 +0,0 @@ -// -// impl/serial_port_base.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_IMPL_SERIAL_PORT_BASE_IPP -#define ASIO_IMPL_SERIAL_PORT_BASE_IPP - -#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_SERIAL_PORT) - -#include -#include "asio/error.hpp" -#include "asio/serial_port_base.hpp" -#include "asio/detail/throw_exception.hpp" - -#if defined(GENERATING_DOCUMENTATION) -# define ASIO_OPTION_STORAGE implementation_defined -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# define ASIO_OPTION_STORAGE DCB -#else -# define ASIO_OPTION_STORAGE termios -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -ASIO_SYNC_OP_VOID serial_port_base::baud_rate::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - storage.BaudRate = value_; -#else - speed_t baud; - switch (value_) - { - // Do POSIX-specified rates first. - case 0: baud = B0; break; - case 50: baud = B50; break; - case 75: baud = B75; break; - case 110: baud = B110; break; - case 134: baud = B134; break; - case 150: baud = B150; break; - case 200: baud = B200; break; - case 300: baud = B300; break; - case 600: baud = B600; break; - case 1200: baud = B1200; break; - case 1800: baud = B1800; break; - case 2400: baud = B2400; break; - case 4800: baud = B4800; break; - case 9600: baud = B9600; break; - case 19200: baud = B19200; break; - case 38400: baud = B38400; break; - // And now the extended ones conditionally. -# ifdef B7200 - case 7200: baud = B7200; break; -# endif -# ifdef B14400 - case 14400: baud = B14400; break; -# endif -# ifdef B57600 - case 57600: baud = B57600; break; -# endif -# ifdef B115200 - case 115200: baud = B115200; break; -# endif -# ifdef B230400 - case 230400: baud = B230400; break; -# endif -# ifdef B460800 - case 460800: baud = B460800; break; -# endif -# ifdef B500000 - case 500000: baud = B500000; break; -# endif -# ifdef B576000 - case 576000: baud = B576000; break; -# endif -# ifdef B921600 - case 921600: baud = B921600; break; -# endif -# ifdef B1000000 - case 1000000: baud = B1000000; break; -# endif -# ifdef B1152000 - case 1152000: baud = B1152000; break; -# endif -# ifdef B2000000 - case 2000000: baud = B2000000; break; -# endif -# ifdef B3000000 - case 3000000: baud = B3000000; break; -# endif -# ifdef B3500000 - case 3500000: baud = B3500000; break; -# endif -# ifdef B4000000 - case 4000000: baud = B4000000; break; -# endif - default: - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - ::cfsetspeed(&storage, baud); -# else - ::cfsetispeed(&storage, baud); - ::cfsetospeed(&storage, baud); -# endif -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::baud_rate::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - value_ = storage.BaudRate; -#else - speed_t baud = ::cfgetospeed(&storage); - switch (baud) - { - // First do those specified by POSIX. - case B0: value_ = 0; break; - case B50: value_ = 50; break; - case B75: value_ = 75; break; - case B110: value_ = 110; break; - case B134: value_ = 134; break; - case B150: value_ = 150; break; - case B200: value_ = 200; break; - case B300: value_ = 300; break; - case B600: value_ = 600; break; - case B1200: value_ = 1200; break; - case B1800: value_ = 1800; break; - case B2400: value_ = 2400; break; - case B4800: value_ = 4800; break; - case B9600: value_ = 9600; break; - case B19200: value_ = 19200; break; - case B38400: value_ = 38400; break; - // Now conditionally handle a bunch of extended rates. -# ifdef B7200 - case B7200: value_ = 7200; break; -# endif -# ifdef B14400 - case B14400: value_ = 14400; break; -# endif -# ifdef B57600 - case B57600: value_ = 57600; break; -# endif -# ifdef B115200 - case B115200: value_ = 115200; break; -# endif -# ifdef B230400 - case B230400: value_ = 230400; break; -# endif -# ifdef B460800 - case B460800: value_ = 460800; break; -# endif -# ifdef B500000 - case B500000: value_ = 500000; break; -# endif -# ifdef B576000 - case B576000: value_ = 576000; break; -# endif -# ifdef B921600 - case B921600: value_ = 921600; break; -# endif -# ifdef B1000000 - case B1000000: value_ = 1000000; break; -# endif -# ifdef B1152000 - case B1152000: value_ = 1152000; break; -# endif -# ifdef B2000000 - case B2000000: value_ = 2000000; break; -# endif -# ifdef B3000000 - case B3000000: value_ = 3000000; break; -# endif -# ifdef B3500000 - case B3500000: value_ = 3500000; break; -# endif -# ifdef B4000000 - case B4000000: value_ = 4000000; break; -# endif - default: - value_ = 0; - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -serial_port_base::flow_control::flow_control( - serial_port_base::flow_control::type t) - : value_(t) -{ - if (t != none && t != software && t != hardware) - { - std::out_of_range ex("invalid flow_control value"); - asio::detail::throw_exception(ex); - } -} - -ASIO_SYNC_OP_VOID serial_port_base::flow_control::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - storage.fOutxCtsFlow = FALSE; - storage.fOutxDsrFlow = FALSE; - storage.fTXContinueOnXoff = TRUE; - storage.fDtrControl = DTR_CONTROL_ENABLE; - storage.fDsrSensitivity = FALSE; - storage.fOutX = FALSE; - storage.fInX = FALSE; - storage.fRtsControl = RTS_CONTROL_ENABLE; - switch (value_) - { - case none: - break; - case software: - storage.fOutX = TRUE; - storage.fInX = TRUE; - break; - case hardware: - storage.fOutxCtsFlow = TRUE; - storage.fRtsControl = RTS_CONTROL_HANDSHAKE; - break; - default: - break; - } -#else - switch (value_) - { - case none: - storage.c_iflag &= ~(IXOFF | IXON); -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - storage.c_cflag &= ~CRTSCTS; -# elif defined(__QNXNTO__) - storage.c_cflag &= ~(IHFLOW | OHFLOW); -# endif - break; - case software: - storage.c_iflag |= IXOFF | IXON; -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - storage.c_cflag &= ~CRTSCTS; -# elif defined(__QNXNTO__) - storage.c_cflag &= ~(IHFLOW | OHFLOW); -# endif - break; - case hardware: -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - storage.c_iflag &= ~(IXOFF | IXON); - storage.c_cflag |= CRTSCTS; - break; -# elif defined(__QNXNTO__) - storage.c_iflag &= ~(IXOFF | IXON); - storage.c_cflag |= (IHFLOW | OHFLOW); - break; -# else - ec = asio::error::operation_not_supported; - ASIO_SYNC_OP_VOID_RETURN(ec); -# endif - default: - break; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::flow_control::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (storage.fOutX && storage.fInX) - { - value_ = software; - } - else if (storage.fOutxCtsFlow && storage.fRtsControl == RTS_CONTROL_HANDSHAKE) - { - value_ = hardware; - } - else - { - value_ = none; - } -#else - if (storage.c_iflag & (IXOFF | IXON)) - { - value_ = software; - } -# if defined(_BSD_SOURCE) || defined(_DEFAULT_SOURCE) - else if (storage.c_cflag & CRTSCTS) - { - value_ = hardware; - } -# elif defined(__QNXNTO__) - else if (storage.c_cflag & IHFLOW && storage.c_cflag & OHFLOW) - { - value_ = hardware; - } -# endif - else - { - value_ = none; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -serial_port_base::parity::parity(serial_port_base::parity::type t) - : value_(t) -{ - if (t != none && t != odd && t != even) - { - std::out_of_range ex("invalid parity value"); - asio::detail::throw_exception(ex); - } -} - -ASIO_SYNC_OP_VOID serial_port_base::parity::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - switch (value_) - { - case none: - storage.fParity = FALSE; - storage.Parity = NOPARITY; - break; - case odd: - storage.fParity = TRUE; - storage.Parity = ODDPARITY; - break; - case even: - storage.fParity = TRUE; - storage.Parity = EVENPARITY; - break; - default: - break; - } -#else - switch (value_) - { - case none: - storage.c_iflag |= IGNPAR; - storage.c_cflag &= ~(PARENB | PARODD); - break; - case even: - storage.c_iflag &= ~(IGNPAR | PARMRK); - storage.c_iflag |= INPCK; - storage.c_cflag |= PARENB; - storage.c_cflag &= ~PARODD; - break; - case odd: - storage.c_iflag &= ~(IGNPAR | PARMRK); - storage.c_iflag |= INPCK; - storage.c_cflag |= (PARENB | PARODD); - break; - default: - break; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::parity::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (storage.Parity == EVENPARITY) - { - value_ = even; - } - else if (storage.Parity == ODDPARITY) - { - value_ = odd; - } - else - { - value_ = none; - } -#else - if (storage.c_cflag & PARENB) - { - if (storage.c_cflag & PARODD) - { - value_ = odd; - } - else - { - value_ = even; - } - } - else - { - value_ = none; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -serial_port_base::stop_bits::stop_bits( - serial_port_base::stop_bits::type t) - : value_(t) -{ - if (t != one && t != onepointfive && t != two) - { - std::out_of_range ex("invalid stop_bits value"); - asio::detail::throw_exception(ex); - } -} - -ASIO_SYNC_OP_VOID serial_port_base::stop_bits::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - switch (value_) - { - case one: - storage.StopBits = ONESTOPBIT; - break; - case onepointfive: - storage.StopBits = ONE5STOPBITS; - break; - case two: - storage.StopBits = TWOSTOPBITS; - break; - default: - break; - } -#else - switch (value_) - { - case one: - storage.c_cflag &= ~CSTOPB; - break; - case two: - storage.c_cflag |= CSTOPB; - break; - default: - ec = asio::error::operation_not_supported; - ASIO_SYNC_OP_VOID_RETURN(ec); - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::stop_bits::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - if (storage.StopBits == ONESTOPBIT) - { - value_ = one; - } - else if (storage.StopBits == ONE5STOPBITS) - { - value_ = onepointfive; - } - else if (storage.StopBits == TWOSTOPBITS) - { - value_ = two; - } - else - { - value_ = one; - } -#else - value_ = (storage.c_cflag & CSTOPB) ? two : one; -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -serial_port_base::character_size::character_size(unsigned int t) - : value_(t) -{ - if (t < 5 || t > 8) - { - std::out_of_range ex("invalid character_size value"); - asio::detail::throw_exception(ex); - } -} - -ASIO_SYNC_OP_VOID serial_port_base::character_size::store( - ASIO_OPTION_STORAGE& storage, asio::error_code& ec) const -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - storage.ByteSize = value_; -#else - storage.c_cflag &= ~CSIZE; - switch (value_) - { - case 5: storage.c_cflag |= CS5; break; - case 6: storage.c_cflag |= CS6; break; - case 7: storage.c_cflag |= CS7; break; - case 8: storage.c_cflag |= CS8; break; - default: break; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID serial_port_base::character_size::load( - const ASIO_OPTION_STORAGE& storage, asio::error_code& ec) -{ -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - value_ = storage.ByteSize; -#else - if ((storage.c_cflag & CSIZE) == CS5) { value_ = 5; } - else if ((storage.c_cflag & CSIZE) == CS6) { value_ = 6; } - else if ((storage.c_cflag & CSIZE) == CS7) { value_ = 7; } - else if ((storage.c_cflag & CSIZE) == CS8) { value_ = 8; } - else - { - // Hmmm, use 8 for now. - value_ = 8; - } -#endif - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_OPTION_STORAGE - -#endif // defined(ASIO_HAS_SERIAL_PORT) - -#endif // ASIO_IMPL_SERIAL_PORT_BASE_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/spawn.hpp b/Sources/Vendor/asio/include/asio/impl/spawn.hpp deleted file mode 100644 index 5594ad9..0000000 --- a/Sources/Vendor/asio/include/asio/impl/spawn.hpp +++ /dev/null @@ -1,535 +0,0 @@ -// -// impl/spawn.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_SPAWN_HPP -#define ASIO_IMPL_SPAWN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/async_result.hpp" -#include "asio/bind_executor.hpp" -#include "asio/detail/atomic_count.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - - template - class coro_handler - { - public: - coro_handler(basic_yield_context ctx) - : coro_(ctx.coro_.lock()), - ca_(ctx.ca_), - handler_(ctx.handler_), - ready_(0), - ec_(ctx.ec_), - value_(0) - { - } - - void operator()(T value) - { - *ec_ = asio::error_code(); - *value_ = ASIO_MOVE_CAST(T)(value); - if (--*ready_ == 0) - (*coro_)(); - } - - void operator()(asio::error_code ec, T value) - { - *ec_ = ec; - *value_ = ASIO_MOVE_CAST(T)(value); - if (--*ready_ == 0) - (*coro_)(); - } - - //private: - shared_ptr::callee_type> coro_; - typename basic_yield_context::caller_type& ca_; - Handler handler_; - atomic_count* ready_; - asio::error_code* ec_; - T* value_; - }; - - template - class coro_handler - { - public: - coro_handler(basic_yield_context ctx) - : coro_(ctx.coro_.lock()), - ca_(ctx.ca_), - handler_(ctx.handler_), - ready_(0), - ec_(ctx.ec_) - { - } - - void operator()() - { - *ec_ = asio::error_code(); - if (--*ready_ == 0) - (*coro_)(); - } - - void operator()(asio::error_code ec) - { - *ec_ = ec; - if (--*ready_ == 0) - (*coro_)(); - } - - //private: - shared_ptr::callee_type> coro_; - typename basic_yield_context::caller_type& ca_; - Handler handler_; - atomic_count* ready_; - asio::error_code* ec_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - coro_handler* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - coro_handler* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation(coro_handler*) - { - return true; - } - - template - inline void asio_handler_invoke(Function& function, - coro_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - coro_handler* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - class coro_async_result - { - public: - typedef coro_handler completion_handler_type; - typedef T return_type; - - explicit coro_async_result(completion_handler_type& h) - : handler_(h), - ca_(h.ca_), - ready_(2) - { - h.ready_ = &ready_; - out_ec_ = h.ec_; - if (!out_ec_) h.ec_ = &ec_; - h.value_ = &value_; - } - - return_type get() - { - // Must not hold shared_ptr to coro while suspended. - handler_.coro_.reset(); - - if (--ready_ != 0) - ca_(); - if (!out_ec_ && ec_) throw asio::system_error(ec_); - return ASIO_MOVE_CAST(return_type)(value_); - } - - private: - completion_handler_type& handler_; - typename basic_yield_context::caller_type& ca_; - atomic_count ready_; - asio::error_code* out_ec_; - asio::error_code ec_; - return_type value_; - }; - - template - class coro_async_result - { - public: - typedef coro_handler completion_handler_type; - typedef void return_type; - - explicit coro_async_result(completion_handler_type& h) - : handler_(h), - ca_(h.ca_), - ready_(2) - { - h.ready_ = &ready_; - out_ec_ = h.ec_; - if (!out_ec_) h.ec_ = &ec_; - } - - void get() - { - // Must not hold shared_ptr to coro while suspended. - handler_.coro_.reset(); - - if (--ready_ != 0) - ca_(); - if (!out_ec_ && ec_) throw asio::system_error(ec_); - } - - private: - completion_handler_type& handler_; - typename basic_yield_context::caller_type& ca_; - atomic_count ready_; - asio::error_code* out_ec_; - asio::error_code ec_; - }; - -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -class async_result, ReturnType()> - : public detail::coro_async_result -{ -public: - explicit async_result( - typename detail::coro_async_result::completion_handler_type& h) - : detail::coro_async_result(h) - { - } -}; - -template -class async_result, ReturnType(Arg1)> - : public detail::coro_async_result::type> -{ -public: - explicit async_result( - typename detail::coro_async_result::type>::completion_handler_type& h) - : detail::coro_async_result::type>(h) - { - } -}; - -template -class async_result, - ReturnType(asio::error_code)> - : public detail::coro_async_result -{ -public: - explicit async_result( - typename detail::coro_async_result::completion_handler_type& h) - : detail::coro_async_result(h) - { - } -}; - -template -class async_result, - ReturnType(asio::error_code, Arg2)> - : public detail::coro_async_result::type> -{ -public: - explicit async_result( - typename detail::coro_async_result::type>::completion_handler_type& h) - : detail::coro_async_result::type>(h) - { - } -}; - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, ReturnType()> -{ - typedef detail::coro_handler type; -}; - -template -struct handler_type, ReturnType(Arg1)> -{ - typedef detail::coro_handler::type> type; -}; - -template -struct handler_type, - ReturnType(asio::error_code)> -{ - typedef detail::coro_handler type; -}; - -template -struct handler_type, - ReturnType(asio::error_code, Arg2)> -{ - typedef detail::coro_handler::type> type; -}; - -template -class async_result > - : public detail::coro_async_result -{ -public: - typedef typename detail::coro_async_result::return_type type; - - explicit async_result( - typename detail::coro_async_result::completion_handler_type& h) - : detail::coro_async_result(h) - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -struct associated_allocator, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const detail::coro_handler& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const detail::coro_handler& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -namespace detail { - - template - struct spawn_data : private noncopyable - { - template - spawn_data(ASIO_MOVE_ARG(Hand) handler, - bool call_handler, ASIO_MOVE_ARG(Func) function) - : handler_(ASIO_MOVE_CAST(Hand)(handler)), - call_handler_(call_handler), - function_(ASIO_MOVE_CAST(Func)(function)) - { - } - - weak_ptr::callee_type> coro_; - Handler handler_; - bool call_handler_; - Function function_; - }; - - template - struct coro_entry_point - { - void operator()(typename basic_yield_context::caller_type& ca) - { - shared_ptr > data(data_); -#if !defined(BOOST_COROUTINES_UNIDIRECT) && !defined(BOOST_COROUTINES_V2) - ca(); // Yield until coroutine pointer has been initialised. -#endif // !defined(BOOST_COROUTINES_UNIDIRECT) && !defined(BOOST_COROUTINES_V2) - const basic_yield_context yield( - data->coro_, ca, data->handler_); - - (data->function_)(yield); - if (data->call_handler_) - (data->handler_)(); - } - - shared_ptr > data_; - }; - - template - struct spawn_helper - { - void operator()() - { - typedef typename basic_yield_context::callee_type callee_type; - coro_entry_point entry_point = { data_ }; - shared_ptr coro(new callee_type(entry_point, attributes_)); - data_->coro_ = coro; - (*coro)(); - } - - shared_ptr > data_; - boost::coroutines::attributes attributes_; - }; - - template - inline void asio_handler_invoke(Function& function, - spawn_helper* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->data_->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - spawn_helper* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->data_->handler_); - } - - inline void default_spawn_handler() {} - -} // namespace detail - -template -inline void spawn(ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes) -{ - typedef typename decay::type function_type; - - typename associated_executor::type ex( - (get_associated_executor)(function)); - - asio::spawn(ex, ASIO_MOVE_CAST(Function)(function), attributes); -} - -template -void spawn(ASIO_MOVE_ARG(Handler) handler, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes, - typename enable_if::type>::value && - !is_convertible::value>::type*) -{ - typedef typename decay::type handler_type; - typedef typename decay::type function_type; - - typename associated_executor::type ex( - (get_associated_executor)(handler)); - - typename associated_allocator::type a( - (get_associated_allocator)(handler)); - - detail::spawn_helper helper; - helper.data_.reset( - new detail::spawn_data( - ASIO_MOVE_CAST(Handler)(handler), true, - ASIO_MOVE_CAST(Function)(function))); - helper.attributes_ = attributes; - - ex.dispatch(helper, a); -} - -template -void spawn(basic_yield_context ctx, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes) -{ - typedef typename decay::type function_type; - - Handler handler(ctx.handler_); // Explicit copy that might be moved from. - - typename associated_executor::type ex( - (get_associated_executor)(handler)); - - typename associated_allocator::type a( - (get_associated_allocator)(handler)); - - detail::spawn_helper helper; - helper.data_.reset( - new detail::spawn_data( - ASIO_MOVE_CAST(Handler)(handler), false, - ASIO_MOVE_CAST(Function)(function))); - helper.attributes_ = attributes; - - ex.dispatch(helper, a); -} - -template -inline void spawn(const Executor& ex, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes, - typename enable_if::value>::type*) -{ - asio::spawn(asio::strand(ex), - ASIO_MOVE_CAST(Function)(function), attributes); -} - -template -inline void spawn(const strand& ex, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes) -{ - asio::spawn(asio::bind_executor( - ex, &detail::default_spawn_handler), - ASIO_MOVE_CAST(Function)(function), attributes); -} - -template -inline void spawn(const asio::io_context::strand& s, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes) -{ - asio::spawn(asio::bind_executor( - s, &detail::default_spawn_handler), - ASIO_MOVE_CAST(Function)(function), attributes); -} - -template -inline void spawn(ExecutionContext& ctx, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes, - typename enable_if::value>::type*) -{ - asio::spawn(ctx.get_executor(), - ASIO_MOVE_CAST(Function)(function), attributes); -} - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SPAWN_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/src.cpp b/Sources/Vendor/asio/include/asio/impl/src.cpp deleted file mode 100644 index e8a5953..0000000 --- a/Sources/Vendor/asio/include/asio/impl/src.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// impl/src.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#if defined(_MSC_VER) \ - || defined(__BORLANDC__) \ - || defined(__DMC__) -# pragma message ( \ - "This file is deprecated. " \ - "Please #include instead.") -#elif defined(__GNUC__) \ - || defined(__HP_aCC) \ - || defined(__SUNPRO_CC) \ - || defined(__IBMCPP__) -# warning "This file is deprecated." -# warning "Please #include instead." -#endif - -#include "asio/impl/src.hpp" diff --git a/Sources/Vendor/asio/include/asio/impl/src.hpp b/Sources/Vendor/asio/include/asio/impl/src.hpp deleted file mode 100644 index a72637b..0000000 --- a/Sources/Vendor/asio/include/asio/impl/src.hpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// impl/src.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_SRC_HPP -#define ASIO_IMPL_SRC_HPP - -#define ASIO_SOURCE - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HEADER_ONLY) -# error Do not compile Asio library source with ASIO_HEADER_ONLY defined -#endif - -#include "asio/impl/error.ipp" -#include "asio/impl/error_code.ipp" -#include "asio/impl/execution_context.ipp" -#include "asio/impl/executor.ipp" -#include "asio/impl/handler_alloc_hook.ipp" -#include "asio/impl/io_context.ipp" -#include "asio/impl/serial_port_base.ipp" -#include "asio/impl/system_context.ipp" -#include "asio/impl/thread_pool.ipp" -#include "asio/detail/impl/buffer_sequence_adapter.ipp" -#include "asio/detail/impl/descriptor_ops.ipp" -#include "asio/detail/impl/dev_poll_reactor.ipp" -#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/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_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" -#include "asio/detail/impl/select_reactor.ipp" -#include "asio/detail/impl/service_registry.ipp" -#include "asio/detail/impl/signal_set_service.ipp" -#include "asio/detail/impl/socket_ops.ipp" -#include "asio/detail/impl/socket_select_interrupter.ipp" -#include "asio/detail/impl/strand_executor_service.ipp" -#include "asio/detail/impl/strand_service.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_iocp_handle_service.ipp" -#include "asio/detail/impl/win_iocp_io_context.ipp" -#include "asio/detail/impl/win_iocp_serial_port_service.ipp" -#include "asio/detail/impl/win_iocp_socket_service_base.ipp" -#include "asio/detail/impl/win_event.ipp" -#include "asio/detail/impl/win_mutex.ipp" -#include "asio/detail/impl/win_object_handle_service.ipp" -#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/impl/winrt_ssocket_service_base.ipp" -#include "asio/detail/impl/winrt_timer_scheduler.ipp" -#include "asio/detail/impl/winsock_init.ipp" -#include "asio/generic/detail/impl/endpoint.ipp" -#include "asio/ip/impl/address.ipp" -#include "asio/ip/impl/address_v4.ipp" -#include "asio/ip/impl/address_v6.ipp" -#include "asio/ip/impl/host_name.ipp" -#include "asio/ip/impl/network_v4.ipp" -#include "asio/ip/impl/network_v6.ipp" -#include "asio/ip/detail/impl/endpoint.ipp" -#include "asio/local/detail/impl/endpoint.ipp" - -#endif // ASIO_IMPL_SRC_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/system_context.hpp b/Sources/Vendor/asio/include/asio/impl/system_context.hpp deleted file mode 100644 index 87ffe76..0000000 --- a/Sources/Vendor/asio/include/asio/impl/system_context.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// impl/system_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_SYSTEM_CONTEXT_HPP -#define ASIO_IMPL_SYSTEM_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/system_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline system_context::executor_type -system_context::get_executor() ASIO_NOEXCEPT -{ - return system_executor(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SYSTEM_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/system_context.ipp b/Sources/Vendor/asio/include/asio/impl/system_context.ipp deleted file mode 100644 index 8ad5e41..0000000 --- a/Sources/Vendor/asio/include/asio/impl/system_context.ipp +++ /dev/null @@ -1,73 +0,0 @@ -// -// impl/system_context.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_SYSTEM_CONTEXT_IPP -#define ASIO_IMPL_SYSTEM_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/system_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -struct system_context::thread_function -{ - detail::scheduler* scheduler_; - - void operator()() - { - asio::error_code ec; - scheduler_->run(ec); - } -}; - -system_context::system_context() - : scheduler_(use_service(*this)) -{ - scheduler_.work_started(); - - thread_function f = { &scheduler_ }; - std::size_t num_threads = detail::thread::hardware_concurrency() * 2; - threads_.create_threads(f, num_threads ? num_threads : 2); -} - -system_context::~system_context() -{ - scheduler_.work_finished(); - scheduler_.stop(); - threads_.join(); -} - -void system_context::stop() -{ - scheduler_.stop(); -} - -bool system_context::stopped() const ASIO_NOEXCEPT -{ - return scheduler_.stopped(); -} - -void system_context::join() -{ - scheduler_.work_finished(); - threads_.join(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SYSTEM_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/system_executor.hpp b/Sources/Vendor/asio/include/asio/impl/system_executor.hpp deleted file mode 100644 index ac4861f..0000000 --- a/Sources/Vendor/asio/include/asio/impl/system_executor.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// impl/system_executor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_SYSTEM_EXECUTOR_HPP -#define ASIO_IMPL_SYSTEM_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/executor_op.hpp" -#include "asio/detail/global.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/system_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline system_context& system_executor::context() const ASIO_NOEXCEPT -{ - return detail::global(); -} - -template -void system_executor::dispatch( - ASIO_MOVE_ARG(Function) f, const Allocator&) const -{ - typename decay::type tmp(ASIO_MOVE_CAST(Function)(f)); - asio_handler_invoke_helpers::invoke(tmp, tmp); -} - -template -void system_executor::post( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - system_context& ctx = detail::global(); - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((ctx, *p.p, - "system_executor", &this->context(), 0, "post")); - - ctx.scheduler_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void system_executor::defer( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - system_context& ctx = detail::global(); - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((ctx, *p.p, - "system_executor", &this->context(), 0, "defer")); - - ctx.scheduler_.post_immediate_completion(p.p, true); - p.v = p.p = 0; -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_SYSTEM_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/thread_pool.hpp b/Sources/Vendor/asio/include/asio/impl/thread_pool.hpp deleted file mode 100644 index 058e377..0000000 --- a/Sources/Vendor/asio/include/asio/impl/thread_pool.hpp +++ /dev/null @@ -1,127 +0,0 @@ -// -// impl/thread_pool.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_THREAD_POOL_HPP -#define ASIO_IMPL_THREAD_POOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/executor_op.hpp" -#include "asio/detail/fenced_block.hpp" -#include "asio/detail/recycling_allocator.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -inline thread_pool::executor_type -thread_pool::get_executor() ASIO_NOEXCEPT -{ - return executor_type(*this); -} - -inline thread_pool& -thread_pool::executor_type::context() const ASIO_NOEXCEPT -{ - return pool_; -} - -inline void -thread_pool::executor_type::on_work_started() const ASIO_NOEXCEPT -{ - pool_.scheduler_.work_started(); -} - -inline void thread_pool::executor_type::on_work_finished() -const ASIO_NOEXCEPT -{ - pool_.scheduler_.work_finished(); -} - -template -void thread_pool::executor_type::dispatch( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Invoke immediately if we are already inside the thread pool. - if (pool_.scheduler_.can_dispatch()) - { - // Make a local, non-const copy of the function. - function_type tmp(ASIO_MOVE_CAST(Function)(f)); - - detail::fenced_block b(detail::fenced_block::full); - asio_handler_invoke_helpers::invoke(tmp, tmp); - return; - } - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((pool_, *p.p, - "thread_pool", &this->context(), 0, "dispatch")); - - pool_.scheduler_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void thread_pool::executor_type::post( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((pool_, *p.p, - "thread_pool", &this->context(), 0, "post")); - - pool_.scheduler_.post_immediate_completion(p.p, false); - p.v = p.p = 0; -} - -template -void thread_pool::executor_type::defer( - ASIO_MOVE_ARG(Function) f, const Allocator& a) const -{ - typedef typename decay::type function_type; - - // Allocate and construct an operation to wrap the function. - typedef detail::executor_op op; - typename op::ptr p = { detail::addressof(a), op::ptr::allocate(a), 0 }; - p.p = new (p.v) op(ASIO_MOVE_CAST(Function)(f), a); - - ASIO_HANDLER_CREATION((pool_, *p.p, - "thread_pool", &this->context(), 0, "defer")); - - pool_.scheduler_.post_immediate_completion(p.p, true); - p.v = p.p = 0; -} - -inline bool -thread_pool::executor_type::running_in_this_thread() const ASIO_NOEXCEPT -{ - return pool_.scheduler_.can_dispatch(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_THREAD_POOL_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/thread_pool.ipp b/Sources/Vendor/asio/include/asio/impl/thread_pool.ipp deleted file mode 100644 index 89583c1..0000000 --- a/Sources/Vendor/asio/include/asio/impl/thread_pool.ipp +++ /dev/null @@ -1,76 +0,0 @@ -// -// impl/thread_pool.ipp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_THREAD_POOL_IPP -#define ASIO_IMPL_THREAD_POOL_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/thread_pool.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -struct thread_pool::thread_function -{ - detail::scheduler* scheduler_; - - void operator()() - { - asio::error_code ec; - scheduler_->run(ec); - } -}; - -thread_pool::thread_pool() - : scheduler_(use_service(*this)) -{ - scheduler_.work_started(); - - thread_function f = { &scheduler_ }; - std::size_t num_threads = detail::thread::hardware_concurrency() * 2; - threads_.create_threads(f, num_threads ? num_threads : 2); -} - -thread_pool::thread_pool(std::size_t num_threads) - : scheduler_(use_service(*this)) -{ - scheduler_.work_started(); - - thread_function f = { &scheduler_ }; - threads_.create_threads(f, num_threads); -} - -thread_pool::~thread_pool() -{ - stop(); - join(); -} - -void thread_pool::stop() -{ - scheduler_.stop(); -} - -void thread_pool::join() -{ - scheduler_.work_finished(); - threads_.join(); -} - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_THREAD_POOL_IPP diff --git a/Sources/Vendor/asio/include/asio/impl/use_future.hpp b/Sources/Vendor/asio/include/asio/impl/use_future.hpp deleted file mode 100644 index 40bf7a4..0000000 --- a/Sources/Vendor/asio/include/asio/impl/use_future.hpp +++ /dev/null @@ -1,937 +0,0 @@ -// -// impl/use_future.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_USE_FUTURE_HPP -#define ASIO_IMPL_USE_FUTURE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/detail/memory.hpp" -#include "asio/error_code.hpp" -#include "asio/packaged_task.hpp" -#include "asio/system_error.hpp" -#include "asio/system_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -inline void promise_invoke_and_set(std::promise& p, - F& f, ASIO_MOVE_ARG(Args)... args) -{ -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - p.set_value(f(ASIO_MOVE_CAST(Args)(args)...)); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (...) - { - p.set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) -} - -template -inline void promise_invoke_and_set(std::promise& p, - F& f, ASIO_MOVE_ARG(Args)... args) -{ -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - f(ASIO_MOVE_CAST(Args)(args)...); - p.set_value(); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (...) - { - p.set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) -} - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -inline void promise_invoke_and_set(std::promise& p, F& f) -{ -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - p.set_value(f()); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (...) - { - p.set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) -} - -template -inline void promise_invoke_and_set(std::promise& p, F& f) -{ -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - f(); - p.set_value(); -#if !defined(ASIO_NO_EXCEPTIONS) - } - catch (...) - { - p.set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) -} - -#if defined(ASIO_NO_EXCEPTIONS) - -#define ASIO_PRIVATE_PROMISE_INVOKE_DEF(n) \ - template \ - inline void promise_invoke_and_set(std::promise& p, \ - F& f, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - p.set_value(f(ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - \ - template \ - inline void promise_invoke_and_set(std::promise& p, \ - F& f, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - f(ASIO_VARIADIC_MOVE_ARGS(n)); \ - p.set_value(); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_PROMISE_INVOKE_DEF) -#undef ASIO_PRIVATE_PROMISE_INVOKE_DEF - -#else // defined(ASIO_NO_EXCEPTIONS) - -#define ASIO_PRIVATE_PROMISE_INVOKE_DEF(n) \ - template \ - inline void promise_invoke_and_set(std::promise& p, \ - F& f, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - try \ - { \ - p.set_value(f(ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - catch (...) \ - { \ - p.set_exception(std::current_exception()); \ - } \ - } \ - \ - template \ - inline void promise_invoke_and_set(std::promise& p, \ - F& f, ASIO_VARIADIC_MOVE_PARAMS(n)) \ - { \ - try \ - { \ - f(ASIO_VARIADIC_MOVE_ARGS(n)); \ - p.set_value(); \ - } \ - catch (...) \ - { \ - p.set_exception(std::current_exception()); \ - } \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_PROMISE_INVOKE_DEF) -#undef ASIO_PRIVATE_PROMISE_INVOKE_DEF - -#endif // defined(ASIO_NO_EXCEPTIONS) - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -// A function object adapter to invoke a nullary function object and capture -// any exception thrown into a promise. -template -class promise_invoker -{ -public: - promise_invoker(const shared_ptr >& p, - ASIO_MOVE_ARG(F) f) - : p_(p), f_(ASIO_MOVE_CAST(F)(f)) - { - } - - void operator()() - { -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - f_(); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (...) - { - p_->set_exception(std::current_exception()); - } -#endif // !defined(ASIO_NO_EXCEPTIONS) - } - -private: - shared_ptr > p_; - typename decay::type f_; -}; - -// An executor that adapts the system_executor to capture any exeption thrown -// by a submitted function object and save it into a promise. -template -class promise_executor -{ -public: - explicit promise_executor(const shared_ptr >& p) - : p_(p) - { - } - - execution_context& context() const ASIO_NOEXCEPT - { - return system_executor().context(); - } - - void on_work_started() const ASIO_NOEXCEPT {} - void on_work_finished() const ASIO_NOEXCEPT {} - - template - void dispatch(ASIO_MOVE_ARG(F) f, const A&) const - { - promise_invoker(p_, ASIO_MOVE_CAST(F)(f))(); - } - - template - void post(ASIO_MOVE_ARG(F) f, const A& a) const - { - system_executor().post( - promise_invoker(p_, ASIO_MOVE_CAST(F)(f)), a); - } - - template - void defer(ASIO_MOVE_ARG(F) f, const A& a) const - { - system_executor().defer( - promise_invoker(p_, ASIO_MOVE_CAST(F)(f)), a); - } - - friend bool operator==(const promise_executor& a, - const promise_executor& b) ASIO_NOEXCEPT - { - return a.p_ == b.p_; - } - - friend bool operator!=(const promise_executor& a, - const promise_executor& b) ASIO_NOEXCEPT - { - return a.p_ != b.p_; - } - -private: - shared_ptr > p_; -}; - -// The base class for all completion handlers that create promises. -template -class promise_creator -{ -public: - typedef promise_executor executor_type; - - executor_type get_executor() const ASIO_NOEXCEPT - { - return executor_type(p_); - } - - typedef std::future future_type; - - future_type get_future() - { - return p_->get_future(); - } - -protected: - template - void create_promise(const Allocator& a) - { - ASIO_REBIND_ALLOC(Allocator, char) b(a); - p_ = std::allocate_shared>(b, std::allocator_arg, b); - } - - shared_ptr > p_; -}; - -// For completion signature void(). -class promise_handler_0 - : public promise_creator -{ -public: - void operator()() - { - this->p_->set_value(); - } -}; - -// For completion signature void(error_code). -class promise_handler_ec_0 - : public promise_creator -{ -public: - void operator()(const asio::error_code& ec) - { - if (ec) - { - this->p_->set_exception( - std::make_exception_ptr( - asio::system_error(ec))); - } - else - { - this->p_->set_value(); - } - } -}; - -// For completion signature void(exception_ptr). -class promise_handler_ex_0 - : public promise_creator -{ -public: - void operator()(const std::exception_ptr& ex) - { - if (ex) - { - this->p_->set_exception(ex); - } - else - { - this->p_->set_value(); - } - } -}; - -// For completion signature void(T). -template -class promise_handler_1 - : public promise_creator -{ -public: - template - void operator()(ASIO_MOVE_ARG(Arg) arg) - { - this->p_->set_value(ASIO_MOVE_CAST(Arg)(arg)); - } -}; - -// For completion signature void(error_code, T). -template -class promise_handler_ec_1 - : public promise_creator -{ -public: - template - void operator()(const asio::error_code& ec, - ASIO_MOVE_ARG(Arg) arg) - { - if (ec) - { - this->p_->set_exception( - std::make_exception_ptr( - asio::system_error(ec))); - } - else - this->p_->set_value(ASIO_MOVE_CAST(Arg)(arg)); - } -}; - -// For completion signature void(exception_ptr, T). -template -class promise_handler_ex_1 - : public promise_creator -{ -public: - template - void operator()(const std::exception_ptr& ex, - ASIO_MOVE_ARG(Arg) arg) - { - if (ex) - this->p_->set_exception(ex); - else - this->p_->set_value(ASIO_MOVE_CAST(Arg)(arg)); - } -}; - -// For completion signature void(T1, ..., Tn); -template -class promise_handler_n - : public promise_creator -{ -public: -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(ASIO_MOVE_ARG(Args)... args) - { - this->p_->set_value( - std::forward_as_tuple( - ASIO_MOVE_CAST(Args)(args)...)); - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#define ASIO_PRIVATE_CALL_OP_DEF(n) \ - template \ - void operator()(ASIO_VARIADIC_MOVE_PARAMS(n)) \ - {\ - this->p_->set_value( \ - std::forward_as_tuple( \ - ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CALL_OP_DEF) -#undef ASIO_PRIVATE_CALL_OP_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) -}; - -// For completion signature void(error_code, T1, ..., Tn); -template -class promise_handler_ec_n - : public promise_creator -{ -public: -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(const asio::error_code& ec, - ASIO_MOVE_ARG(Args)... args) - { - if (ec) - { - this->p_->set_exception( - std::make_exception_ptr( - asio::system_error(ec))); - } - else - { - this->p_->set_value( - std::forward_as_tuple( - ASIO_MOVE_CAST(Args)(args)...)); - } - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#define ASIO_PRIVATE_CALL_OP_DEF(n) \ - template \ - void operator()(const asio::error_code& ec, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - {\ - if (ec) \ - { \ - this->p_->set_exception( \ - std::make_exception_ptr( \ - asio::system_error(ec))); \ - } \ - else \ - { \ - this->p_->set_value( \ - std::forward_as_tuple( \ - ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CALL_OP_DEF) -#undef ASIO_PRIVATE_CALL_OP_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) -}; - -// For completion signature void(exception_ptr, T1, ..., Tn); -template -class promise_handler_ex_n - : public promise_creator -{ -public: -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(const std::exception_ptr& ex, - ASIO_MOVE_ARG(Args)... args) - { - if (ex) - this->p_->set_exception(ex); - else - { - this->p_->set_value( - std::forward_as_tuple( - ASIO_MOVE_CAST(Args)(args)...)); - } - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#define ASIO_PRIVATE_CALL_OP_DEF(n) \ - template \ - void operator()(const std::exception_ptr& ex, \ - ASIO_VARIADIC_MOVE_PARAMS(n)) \ - {\ - if (ex) \ - this->p_->set_exception(ex); \ - else \ - { \ - this->p_->set_value( \ - std::forward_as_tuple( \ - ASIO_VARIADIC_MOVE_ARGS(n))); \ - } \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CALL_OP_DEF) -#undef ASIO_PRIVATE_CALL_OP_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) -}; - -// Helper template to choose the appropriate concrete promise handler -// implementation based on the supplied completion signature. -template class promise_handler_selector; - -template <> -class promise_handler_selector - : public promise_handler_0 {}; - -template <> -class promise_handler_selector - : public promise_handler_ec_0 {}; - -template <> -class promise_handler_selector - : public promise_handler_ex_0 {}; - -template -class promise_handler_selector - : public promise_handler_1 {}; - -template -class promise_handler_selector - : public promise_handler_ec_1 {}; - -template -class promise_handler_selector - : public promise_handler_ex_1 {}; - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -class promise_handler_selector - : public promise_handler_n > {}; - -template -class promise_handler_selector - : public promise_handler_ec_n > {}; - -template -class promise_handler_selector - : public promise_handler_ex_n > {}; - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#define ASIO_PRIVATE_PROMISE_SELECTOR_DEF(n) \ - template \ - class promise_handler_selector< \ - void(Arg, ASIO_VARIADIC_TARGS(n))> \ - : public promise_handler_n< \ - std::tuple > {}; \ - \ - template \ - class promise_handler_selector< \ - void(asio::error_code, Arg, ASIO_VARIADIC_TARGS(n))> \ - : public promise_handler_ec_n< \ - std::tuple > {}; \ - \ - template \ - class promise_handler_selector< \ - void(std::exception_ptr, Arg, ASIO_VARIADIC_TARGS(n))> \ - : public promise_handler_ex_n< \ - std::tuple > {}; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_PROMISE_SELECTOR_DEF) -#undef ASIO_PRIVATE_PROMISE_SELECTOR_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -// Completion handlers produced from the use_future completion token, when not -// using use_future::operator(). -template -class promise_handler - : public promise_handler_selector -{ -public: - typedef Allocator allocator_type; - typedef void result_type; - - promise_handler(use_future_t u) - : allocator_(u.get_allocator()) - { - this->create_promise(allocator_); - } - - allocator_type get_allocator() const ASIO_NOEXCEPT - { - return allocator_; - } - -private: - Allocator allocator_; -}; - -template -inline void asio_handler_invoke(Function& f, - promise_handler* h) -{ - typename promise_handler::executor_type - ex(h->get_executor()); - ex.dispatch(ASIO_MOVE_CAST(Function)(f), std::allocator()); -} - -template -inline void asio_handler_invoke(const Function& f, - promise_handler* h) -{ - typename promise_handler::executor_type - ex(h->get_executor()); - ex.dispatch(f, std::allocator()); -} - -// Helper base class for async_result specialisation. -template -class promise_async_result -{ -public: - typedef promise_handler completion_handler_type; - typedef typename completion_handler_type::future_type return_type; - - explicit promise_async_result(completion_handler_type& h) - : future_(h.get_future()) - { - } - - return_type get() - { - return ASIO_MOVE_CAST(return_type)(future_); - } - -private: - return_type future_; -}; - -// Return value from use_future::operator(). -template -class packaged_token -{ -public: - packaged_token(Function f, const Allocator& a) - : function_(ASIO_MOVE_CAST(Function)(f)), - allocator_(a) - { - } - -//private: - Function function_; - Allocator allocator_; -}; - -// Completion handlers produced from the use_future completion token, when -// using use_future::operator(). -template -class packaged_handler - : public promise_creator -{ -public: - typedef Allocator allocator_type; - typedef void result_type; - - packaged_handler(packaged_token t) - : function_(ASIO_MOVE_CAST(Function)(t.function_)), - allocator_(t.allocator_) - { - this->create_promise(allocator_); - } - - allocator_type get_allocator() const ASIO_NOEXCEPT - { - return allocator_; - } - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - - template - void operator()(ASIO_MOVE_ARG(Args)... args) - { - (promise_invoke_and_set)(*this->p_, - function_, ASIO_MOVE_CAST(Args)(args)...); - } - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - - void operator()() - { - (promise_invoke_and_set)(*this->p_, function_); - } - -#define ASIO_PRIVATE_CALL_OP_DEF(n) \ - template \ - void operator()(ASIO_VARIADIC_MOVE_PARAMS(n)) \ - {\ - (promise_invoke_and_set)(*this->p_, \ - function_, ASIO_VARIADIC_MOVE_ARGS(n)); \ - } \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_CALL_OP_DEF) -#undef ASIO_PRIVATE_CALL_OP_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -private: - Function function_; - Allocator allocator_; -}; - -template -inline void asio_handler_invoke(Function& f, - packaged_handler* h) -{ - typename packaged_handler::executor_type - ex(h->get_executor()); - ex.dispatch(ASIO_MOVE_CAST(Function)(f), std::allocator()); -} - -template -inline void asio_handler_invoke(const Function& f, - packaged_handler* h) -{ - typename packaged_handler::executor_type - ex(h->get_executor()); - ex.dispatch(f, std::allocator()); -} - -// Helper base class for async_result specialisation. -template -class packaged_async_result -{ -public: - typedef packaged_handler completion_handler_type; - typedef typename completion_handler_type::future_type return_type; - - explicit packaged_async_result(completion_handler_type& h) - : future_(h.get_future()) - { - } - - return_type get() - { - return ASIO_MOVE_CAST(return_type)(future_); - } - -private: - return_type future_; -}; - -} // namespace detail - -template template -inline detail::packaged_token::type, Allocator> -use_future_t::operator()(ASIO_MOVE_ARG(Function) f) const -{ - return detail::packaged_token::type, Allocator>( - ASIO_MOVE_CAST(Function)(f), allocator_); -} - -#if !defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -class async_result, Result(Args...)> - : public detail::promise_async_result< - void(typename decay::type...), Allocator> -{ -public: - explicit async_result( - typename detail::promise_async_result::type...), - Allocator>::completion_handler_type& h) - : detail::promise_async_result< - void(typename decay::type...), Allocator>(h) - { - } -}; - -template -class async_result, Result(Args...)> - : public detail::packaged_async_result::type> -{ -public: - explicit async_result( - typename detail::packaged_async_result::type>::completion_handler_type& h) - : detail::packaged_async_result::type>(h) - { - } -}; - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -template -class async_result, Result()> - : public detail::promise_async_result -{ -public: - explicit async_result( - typename detail::promise_async_result< - void(), Allocator>::completion_handler_type& h) - : detail::promise_async_result(h) - { - } -}; - -template -class async_result, Result()> - : public detail::packaged_async_result::type> -{ -public: - explicit async_result( - typename detail::packaged_async_result::type>::completion_handler_type& h) - : detail::packaged_async_result::type>(h) - { - } -}; - -#define ASIO_PRIVATE_ASYNC_RESULT_DEF(n) \ - template \ - class async_result, \ - Result(ASIO_VARIADIC_TARGS(n))> \ - : public detail::promise_async_result< \ - void(ASIO_VARIADIC_DECAY(n)), Allocator> \ - { \ - public: \ - explicit async_result( \ - typename detail::promise_async_result< \ - void(ASIO_VARIADIC_DECAY(n)), \ - Allocator>::completion_handler_type& h) \ - : detail::promise_async_result< \ - void(ASIO_VARIADIC_DECAY(n)), Allocator>(h) \ - { \ - } \ - }; \ - \ - template \ - class async_result, \ - Result(ASIO_VARIADIC_TARGS(n))> \ - : public detail::packaged_async_result::type> \ - { \ - public: \ - explicit async_result( \ - typename detail::packaged_async_result::type \ - >::completion_handler_type& h) \ - : detail::packaged_async_result::type>(h) \ - { \ - } \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_ASYNC_RESULT_DEF) -#undef ASIO_PRIVATE_ASYNC_RESULT_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - -#if !defined(ASIO_NO_DEPRECATED) - -template -struct handler_type, Signature> -{ - typedef typename async_result, - Signature>::completion_handler_type type; -}; - -template -class async_result > - : public detail::promise_async_result -{ -public: - typedef typename detail::promise_async_result< - Signature, Allocator>::return_type type; - - explicit async_result( - typename detail::promise_async_result< - Signature, Allocator>::completion_handler_type& h) - : detail::promise_async_result(h) - { - } -}; - -template -struct handler_type, Signature> -{ - typedef typename async_result, - Signature>::completion_handler_type type; -}; - -template -class async_result > - : public detail::packaged_async_result -{ -public: - typedef typename detail::packaged_async_result< - Function, Allocator, Result>::return_type type; - - explicit async_result( - typename detail::packaged_async_result< - Function, Allocator, Result>::completion_handler_type& h) - : detail::packaged_async_result(h) - { - } -}; - -#endif // !defined(ASIO_NO_DEPRECATED) - -#endif // !defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_USE_FUTURE_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/write.hpp b/Sources/Vendor/asio/include/asio/impl/write.hpp deleted file mode 100644 index d07e8d3..0000000 --- a/Sources/Vendor/asio/include/asio/impl/write.hpp +++ /dev/null @@ -1,674 +0,0 @@ -// -// impl/write.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_WRITE_HPP -#define ASIO_IMPL_WRITE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/base_from_completion_cond.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/consuming_buffers.hpp" -#include "asio/detail/dependent_type.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - std::size_t write_buffer_sequence(SyncWriteStream& s, - const ConstBufferSequence& buffers, const ConstBufferIterator&, - CompletionCondition completion_condition, asio::error_code& ec) - { - ec = asio::error_code(); - asio::detail::consuming_buffers tmp(buffers); - while (!tmp.empty()) - { - if (std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, tmp.total_consumed()))) - tmp.consume(s.write_some(tmp.prepare(max_size), ec)); - else - break; - } - return tmp.total_consumed();; - } -} // namespace detail - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - return detail::write_buffer_sequence(s, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, ec); -} - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = write(s, buffers, transfer_all(), ec); - asio::detail::throw_error(ec, "write"); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - asio::error_code& ec, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - return write(s, buffers, transfer_all(), ec); -} - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = write(s, buffers, completion_condition, ec); - asio::detail::throw_error(ec, "write"); - return bytes_transferred; -} - -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - typename decay::type b( - ASIO_MOVE_CAST(DynamicBuffer)(buffers)); - - std::size_t bytes_transferred = write(s, b.data(), completion_condition, ec); - b.consume(bytes_transferred); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = write(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ec); - asio::detail::throw_error(ec, "write"); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - return write(s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ec); -} - -template -inline std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - asio::error_code ec; - std::size_t bytes_transferred = write(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - completion_condition, ec); - asio::detail::throw_error(ec, "write"); - return bytes_transferred; -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -inline std::size_t write(SyncWriteStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec) -{ - return write(s, basic_streambuf_ref(b), completion_condition, ec); -} - -template -inline std::size_t write(SyncWriteStream& s, - asio::basic_streambuf& b) -{ - return write(s, basic_streambuf_ref(b)); -} - -template -inline std::size_t write(SyncWriteStream& s, - asio::basic_streambuf& b, - asio::error_code& ec) -{ - return write(s, basic_streambuf_ref(b), ec); -} - -template -inline std::size_t write(SyncWriteStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - return write(s, basic_streambuf_ref(b), completion_condition); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class write_op - : detail::base_from_completion_cond - { - public: - write_op(AsyncWriteStream& stream, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, WriteHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - stream_(stream), - buffers_(buffers), - start_(0), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - write_op(const write_op& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - handler_(other.handler_) - { - } - - write_op(write_op&& other) - : detail::base_from_completion_cond(other), - stream_(other.stream_), - buffers_(other.buffers_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - do - { - stream_.async_write_some(buffers_.prepare(max_size), - ASIO_MOVE_CAST(write_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - if ((!ec && bytes_transferred == 0) || buffers_.empty()) - break; - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - } while (max_size > 0); - - handler_(ec, buffers_.total_consumed()); - } - } - - //private: - AsyncWriteStream& stream_; - asio::detail::consuming_buffers buffers_; - int start_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - write_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - write_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void start_write_buffer_sequence_op(AsyncWriteStream& stream, - const ConstBufferSequence& buffers, const ConstBufferIterator&, - CompletionCondition completion_condition, WriteHandler& handler) - { - detail::write_op( - stream, buffers, completion_condition, handler)( - asio::error_code(), 0, 1); - } - -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::write_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::write_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::write_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::write_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::start_write_buffer_sequence_op(s, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, - init.completion_handler); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_const_buffer_sequence::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::start_write_buffer_sequence_op(s, buffers, - asio::buffer_sequence_begin(buffers), transfer_all(), - init.completion_handler); - - return init.result.get(); -} - -namespace detail -{ - template - class write_dynbuf_op - { - public: - template - write_dynbuf_op(AsyncWriteStream& stream, - ASIO_MOVE_ARG(BufferSequence) buffers, - CompletionCondition completion_condition, WriteHandler& handler) - : stream_(stream), - buffers_(ASIO_MOVE_CAST(BufferSequence)(buffers)), - completion_condition_( - ASIO_MOVE_CAST(CompletionCondition)(completion_condition)), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - write_dynbuf_op(const write_dynbuf_op& other) - : stream_(other.stream_), - buffers_(other.buffers_), - completion_condition_(other.completion_condition_), - handler_(other.handler_) - { - } - - write_dynbuf_op(write_dynbuf_op&& other) - : stream_(other.stream_), - buffers_(ASIO_MOVE_CAST(DynamicBuffer)(other.buffers_)), - completion_condition_( - ASIO_MOVE_CAST(CompletionCondition)( - other.completion_condition_)), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - switch (start) - { - case 1: - async_write(stream_, buffers_.data(), completion_condition_, - ASIO_MOVE_CAST(write_dynbuf_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - handler_(ec, static_cast(bytes_transferred)); - } - } - - //private: - AsyncWriteStream& stream_; - DynamicBuffer buffers_; - CompletionCondition completion_condition_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_dynbuf_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_dynbuf_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - write_dynbuf_op* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - write_dynbuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_dynbuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::write_dynbuf_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::write_dynbuf_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::write_dynbuf_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::write_dynbuf_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - return async_write(s, - ASIO_MOVE_CAST(DynamicBuffer)(buffers), - transfer_all(), ASIO_MOVE_CAST(WriteHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type*) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::write_dynbuf_op::type, - CompletionCondition, ASIO_HANDLER_TYPE( - WriteHandler, void (asio::error_code, std::size_t))>( - s, ASIO_MOVE_CAST(DynamicBuffer)(buffers), - completion_condition, init.completion_handler)( - asio::error_code(), 0, 1); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - asio::basic_streambuf& b, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - return async_write(s, basic_streambuf_ref(b), - ASIO_MOVE_CAST(WriteHandler)(handler)); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - asio::basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - return async_write(s, basic_streambuf_ref(b), - completion_condition, ASIO_MOVE_CAST(WriteHandler)(handler)); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_WRITE_HPP diff --git a/Sources/Vendor/asio/include/asio/impl/write_at.hpp b/Sources/Vendor/asio/include/asio/impl/write_at.hpp deleted file mode 100644 index cc6f336..0000000 --- a/Sources/Vendor/asio/include/asio/impl/write_at.hpp +++ /dev/null @@ -1,572 +0,0 @@ -// -// impl/write_at.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IMPL_WRITE_AT_HPP -#define ASIO_IMPL_WRITE_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/associated_allocator.hpp" -#include "asio/associated_executor.hpp" -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/detail/array_fwd.hpp" -#include "asio/detail/base_from_completion_cond.hpp" -#include "asio/detail/bind_handler.hpp" -#include "asio/detail/consuming_buffers.hpp" -#include "asio/detail/dependent_type.hpp" -#include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_cont_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - template - std::size_t write_at_buffer_sequence(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - const ConstBufferIterator&, CompletionCondition completion_condition, - asio::error_code& ec) - { - ec = asio::error_code(); - asio::detail::consuming_buffers tmp(buffers); - while (!tmp.empty()) - { - if (std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, tmp.total_consumed()))) - { - tmp.consume(d.write_some_at(offset + tmp.total_consumed(), - tmp.prepare(max_size), ec)); - } - else - break; - } - return tmp.total_consumed();; - } -} // namespace detail - -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec) -{ - return detail::write_at_buffer_sequence(d, offset, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, ec); -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers) -{ - asio::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, buffers, transfer_all(), ec); - asio::detail::throw_error(ec, "write_at"); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - asio::error_code& ec) -{ - return write_at(d, offset, buffers, transfer_all(), ec); -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition) -{ - asio::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, buffers, completion_condition, ec); - asio::detail::throw_error(ec, "write_at"); - return bytes_transferred; -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec) -{ - std::size_t bytes_transferred = write_at( - d, offset, b.data(), completion_condition, ec); - b.consume(bytes_transferred); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b) -{ - asio::error_code ec; - std::size_t bytes_transferred = write_at(d, offset, b, transfer_all(), ec); - asio::detail::throw_error(ec, "write_at"); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - asio::error_code& ec) -{ - return write_at(d, offset, b, transfer_all(), ec); -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - asio::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, b, completion_condition, ec); - asio::detail::throw_error(ec, "write_at"); - return bytes_transferred; -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -namespace detail -{ - template - class write_at_op - : detail::base_from_completion_cond - { - public: - write_at_op(AsyncRandomAccessWriteDevice& device, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, WriteHandler& handler) - : detail::base_from_completion_cond< - CompletionCondition>(completion_condition), - device_(device), - offset_(offset), - buffers_(buffers), - start_(0), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - write_at_op(const write_at_op& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - buffers_(other.buffers_), - start_(other.start_), - handler_(other.handler_) - { - } - - write_at_op(write_at_op&& other) - : detail::base_from_completion_cond(other), - device_(other.device_), - offset_(other.offset_), - buffers_(other.buffers_), - start_(other.start_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - std::size_t bytes_transferred, int start = 0) - { - std::size_t max_size; - switch (start_ = start) - { - case 1: - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - do - { - device_.async_write_some_at( - offset_ + buffers_.total_consumed(), buffers_.prepare(max_size), - ASIO_MOVE_CAST(write_at_op)(*this)); - return; default: - buffers_.consume(bytes_transferred); - if ((!ec && bytes_transferred == 0) || buffers_.empty()) - break; - max_size = this->check_for_completion(ec, buffers_.total_consumed()); - } while (max_size > 0); - - handler_(ec, buffers_.total_consumed()); - } - } - - //private: - AsyncRandomAccessWriteDevice& device_; - uint64_t offset_; - asio::detail::consuming_buffers buffers_; - int start_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_at_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_at_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - write_at_op* this_handler) - { - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - write_at_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_at_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void start_write_at_buffer_sequence_op(AsyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - const ConstBufferIterator&, CompletionCondition completion_condition, - WriteHandler& handler) - { - detail::write_at_op( - d, offset, buffers, completion_condition, handler)( - asio::error_code(), 0, 1); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::write_at_op, - Allocator> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::write_at_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::write_at_op, - Executor> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::write_at_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::start_write_at_buffer_sequence_op(d, offset, buffers, - asio::buffer_sequence_begin(buffers), completion_condition, - init.completion_handler); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - detail::start_write_at_buffer_sequence_op(d, offset, buffers, - asio::buffer_sequence_begin(buffers), transfer_all(), - init.completion_handler); - - return init.result.get(); -} - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -namespace detail -{ - template - class write_at_streambuf_op - { - public: - write_at_streambuf_op( - asio::basic_streambuf& streambuf, - WriteHandler& handler) - : streambuf_(streambuf), - handler_(ASIO_MOVE_CAST(WriteHandler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - write_at_streambuf_op(const write_at_streambuf_op& other) - : streambuf_(other.streambuf_), - handler_(other.handler_) - { - } - - write_at_streambuf_op(write_at_streambuf_op&& other) - : streambuf_(other.streambuf_), - handler_(ASIO_MOVE_CAST(WriteHandler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(const asio::error_code& ec, - const std::size_t bytes_transferred) - { - streambuf_.consume(bytes_transferred); - handler_(ec, bytes_transferred); - } - - //private: - asio::basic_streambuf& streambuf_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_at_streambuf_op* this_handler) - { - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_at_streambuf_op* this_handler) - { - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); - } - - template - inline bool asio_handler_is_continuation( - write_at_streambuf_op* this_handler) - { - return asio_handler_cont_helpers::is_continuation( - this_handler->handler_); - } - - template - inline void asio_handler_invoke(Function& function, - write_at_streambuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_at_streambuf_op* this_handler) - { - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); - } - - template - inline write_at_streambuf_op - make_write_at_streambuf_op( - asio::basic_streambuf& b, WriteHandler handler) - { - return write_at_streambuf_op(b, handler); - } -} // namespace detail - -#if !defined(GENERATING_DOCUMENTATION) - -template -struct associated_allocator< - detail::write_at_streambuf_op, - Allocator1> -{ - typedef typename associated_allocator::type type; - - static type get( - const detail::write_at_streambuf_op& h, - const Allocator1& a = Allocator1()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - detail::write_at_streambuf_op, - Executor1> -{ - typedef typename associated_executor::type type; - - static type get( - const detail::write_at_streambuf_op& h, - const Executor1& ex = Executor1()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -#endif // !defined(GENERATING_DOCUMENTATION) - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - async_write_at(d, offset, b.data(), completion_condition, - detail::write_at_streambuf_op( - b, init.completion_handler)); - - return init.result.get(); -} - -template -inline ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, asio::basic_streambuf& b, - ASIO_MOVE_ARG(WriteHandler) handler) -{ - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - async_write_at(d, offset, b.data(), transfer_all(), - detail::write_at_streambuf_op( - b, init.completion_handler)); - - return init.result.get(); -} - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IMPL_WRITE_AT_HPP diff --git a/Sources/Vendor/asio/include/asio/io_context.hpp b/Sources/Vendor/asio/include/asio/io_context.hpp deleted file mode 100644 index 4d93be4..0000000 --- a/Sources/Vendor/asio/include/asio/io_context.hpp +++ /dev/null @@ -1,876 +0,0 @@ -// -// io_context.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IO_CONTEXT_HPP -#define ASIO_IO_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/async_result.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/wrapped_handler.hpp" -#include "asio/error_code.hpp" -#include "asio/execution_context.hpp" - -#if defined(ASIO_HAS_CHRONO) -# include "asio/detail/chrono.hpp" -#endif // defined(ASIO_HAS_CHRONO) - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# include "asio/detail/winsock_init.hpp" -#elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \ - || defined(__osf__) -# include "asio/detail/signal_init.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail { -#if defined(ASIO_HAS_IOCP) - typedef class win_iocp_io_context io_context_impl; - class win_iocp_overlapped_ptr; -#else - typedef class scheduler io_context_impl; -#endif -} // namespace detail - -/// Provides core I/O functionality. -/** - * The io_context class provides the core I/O functionality for users of the - * asynchronous I/O objects, including: - * - * @li asio::ip::tcp::socket - * @li asio::ip::tcp::acceptor - * @li asio::ip::udp::socket - * @li asio::deadline_timer. - * - * The io_context class also includes facilities intended for developers of - * custom asynchronous services. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe, with the specific exceptions of the restart() - * and notify_fork() functions. Calling restart() while there are unfinished - * run(), run_one(), run_for(), run_until(), poll() or poll_one() calls results - * in undefined behaviour. The notify_fork() function should not be called - * while any io_context function, or any function on an I/O object that is - * associated with the io_context, is being called in another thread. - * - * @par Concepts: - * Dispatcher. - * - * @par Synchronous and asynchronous operations - * - * Synchronous operations on I/O objects implicitly run the io_context object - * for an individual operation. The io_context functions run(), run_one(), - * run_for(), run_until(), poll() or poll_one() must be called for the - * io_context to perform asynchronous operations on behalf of a C++ program. - * Notification that an asynchronous operation has completed is delivered by - * invocation of the associated handler. Handlers are invoked only by a thread - * that is currently calling any overload of run(), run_one(), run_for(), - * run_until(), poll() or poll_one() for the io_context. - * - * @par Effect of exceptions thrown from handlers - * - * If an exception is thrown from a handler, the exception is allowed to - * propagate through the throwing thread's invocation of run(), run_one(), - * run_for(), run_until(), poll() or poll_one(). No other threads that are - * calling any of these functions are affected. It is then the responsibility - * of the application to catch the exception. - * - * After the exception has been caught, the run(), run_one(), run_for(), - * run_until(), poll() or poll_one() call may be restarted @em without the need - * for an intervening call to restart(). This allows the thread to rejoin the - * io_context object's thread pool without impacting any other threads in the - * pool. - * - * For example: - * - * @code - * asio::io_context io_context; - * ... - * for (;;) - * { - * try - * { - * io_context.run(); - * break; // run() exited normally - * } - * catch (my_exception& e) - * { - * // Deal with exception as appropriate. - * } - * } - * @endcode - * - * @par Submitting arbitrary tasks to the io_context - * - * To submit functions to the io_context, use the @ref asio::dispatch, - * @ref asio::post or @ref asio::defer free functions. - * - * For example: - * - * @code void my_task() - * { - * ... - * } - * - * ... - * - * asio::io_context io_context; - * - * // Submit a function to the io_context. - * asio::post(io_context, my_task); - * - * // Submit a lambda object to the io_context. - * asio::post(io_context, - * []() - * { - * ... - * }); - * - * // Run the io_context until it runs out of work. - * io_context.run(); @endcode - * - * @par Stopping the io_context from running out of work - * - * Some applications may need to prevent an io_context object's run() call from - * returning when there is no more work to do. For example, the io_context may - * be being run in a background thread that is launched prior to the - * application's asynchronous operations. The run() call may be kept running by - * creating an object of type - * asio::executor_work_guard: - * - * @code asio::io_context io_context; - * asio::executor_work_guard - * = asio::make_work_guard(io_context); - * ... @endcode - * - * To effect a shutdown, the application will then need to call the io_context - * object's stop() member function. This will cause the io_context run() call - * to return as soon as possible, abandoning unfinished operations and without - * permitting ready handlers to be dispatched. - * - * Alternatively, if the application requires that all operations and handlers - * be allowed to finish normally, the work object may be explicitly reset. - * - * @code asio::io_context io_context; - * asio::executor_work_guard - * = asio::make_work_guard(io_context); - * ... - * work.reset(); // Allow run() to exit. @endcode - */ -class io_context - : public execution_context -{ -private: - typedef detail::io_context_impl impl_type; -#if defined(ASIO_HAS_IOCP) - friend class detail::win_iocp_overlapped_ptr; -#endif - -public: - class executor_type; - friend class executor_type; - -#if !defined(ASIO_NO_DEPRECATED) - class work; - friend class work; -#endif // !defined(ASIO_NO_DEPRECATED) - - class service; - -#if !defined(ASIO_NO_EXTENSIONS) - class strand; -#endif // !defined(ASIO_NO_EXTENSIONS) - - /// The type used to count the number of handlers executed by the context. - typedef std::size_t count_type; - - /// Constructor. - ASIO_DECL io_context(); - - /// Constructor. - /** - * Construct with a hint about the required level of concurrency. - * - * @param concurrency_hint A suggestion to the implementation on how many - * threads it should allow to run simultaneously. - */ - ASIO_DECL explicit io_context(int concurrency_hint); - - /// Destructor. - /** - * On destruction, the io_context performs the following sequence of - * operations: - * - * @li For each service object @c svc in the io_context set, in reverse order - * of the beginning of service object lifetime, performs - * @c svc->shutdown(). - * - * @li Uninvoked handler objects that were scheduled for deferred invocation - * on the io_context, or any associated strand, are destroyed. - * - * @li For each service object @c svc in the io_context set, in reverse order - * of the beginning of service object lifetime, performs - * delete static_cast(svc). - * - * @note The destruction sequence described above permits programs to - * simplify their resource management by using @c shared_ptr<>. Where an - * object's lifetime is tied to the lifetime of a connection (or some other - * sequence of asynchronous operations), a @c shared_ptr to the object would - * be bound into the handlers for all asynchronous operations associated with - * it. This works as follows: - * - * @li When a single connection ends, all associated asynchronous operations - * complete. The corresponding handler objects are destroyed, and all - * @c shared_ptr references to the objects are destroyed. - * - * @li To shut down the whole program, the io_context function stop() is - * called to terminate any run() calls as soon as possible. The io_context - * destructor defined above destroys all handlers, causing all @c shared_ptr - * references to all connection objects to be destroyed. - */ - ASIO_DECL ~io_context(); - - /// Obtains the executor associated with the io_context. - executor_type get_executor() ASIO_NOEXCEPT; - - /// Run the io_context object's event processing loop. - /** - * The run() function blocks until all work has finished and there are no - * more handlers to be dispatched, or until the io_context has been stopped. - * - * Multiple threads may call the run() function to set up a pool of threads - * from which the io_context may execute handlers. All threads that are - * waiting in the pool are equivalent and the io_context may choose any one - * of them to invoke a handler. - * - * A normal exit from the run() function implies that the io_context object - * is stopped (the stopped() function returns @c true). Subsequent calls to - * run(), run_one(), poll() or poll_one() will return immediately unless there - * is a prior call to restart(). - * - * @return The number of handlers that were executed. - * - * @note Calling the run() function from a thread that is currently calling - * one of run(), run_one(), run_for(), run_until(), poll() or poll_one() on - * the same io_context object may introduce the potential for deadlock. It is - * the caller's reponsibility to avoid this. - * - * The poll() function may also be used to dispatch ready handlers, but - * without blocking. - */ - ASIO_DECL count_type run(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Run the io_context object's - /// event processing loop. - /** - * The run() function blocks until all work has finished and there are no - * more handlers to be dispatched, or until the io_context has been stopped. - * - * Multiple threads may call the run() function to set up a pool of threads - * from which the io_context may execute handlers. All threads that are - * waiting in the pool are equivalent and the io_context may choose any one - * of them to invoke a handler. - * - * A normal exit from the run() function implies that the io_context object - * is stopped (the stopped() function returns @c true). Subsequent calls to - * run(), run_one(), poll() or poll_one() will return immediately unless there - * is a prior call to restart(). - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - * - * @note Calling the run() function from a thread that is currently calling - * one of run(), run_one(), run_for(), run_until(), poll() or poll_one() on - * the same io_context object may introduce the potential for deadlock. It is - * the caller's reponsibility to avoid this. - * - * The poll() function may also be used to dispatch ready handlers, but - * without blocking. - */ - ASIO_DECL count_type run(asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - -#if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - /// Run the io_context object's event processing loop for a specified - /// duration. - /** - * The run_for() function blocks until all work has finished and there are no - * more handlers to be dispatched, until the io_context has been stopped, or - * until the specified duration has elapsed. - * - * @param rel_time The duration for which the call may block. - * - * @return The number of handlers that were executed. - */ - template - std::size_t run_for(const chrono::duration& rel_time); - - /// Run the io_context object's event processing loop until a specified time. - /** - * The run_until() function blocks until all work has finished and there are - * no more handlers to be dispatched, until the io_context has been stopped, - * or until the specified time has been reached. - * - * @param abs_time The time point until which the call may block. - * - * @return The number of handlers that were executed. - */ - template - std::size_t run_until(const chrono::time_point& abs_time); -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - - /// Run the io_context object's event processing loop to execute at most one - /// handler. - /** - * The run_one() function blocks until one handler has been dispatched, or - * until the io_context has been stopped. - * - * @return The number of handlers that were executed. A zero return value - * implies that the io_context object is stopped (the stopped() function - * returns @c true). Subsequent calls to run(), run_one(), poll() or - * poll_one() will return immediately unless there is a prior call to - * restart(). - * - * @note Calling the run_one() function from a thread that is currently - * calling one of run(), run_one(), run_for(), run_until(), poll() or - * poll_one() on the same io_context object may introduce the potential for - * deadlock. It is the caller's reponsibility to avoid this. - */ - ASIO_DECL count_type run_one(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overlaod.) Run the io_context object's - /// event processing loop to execute at most one handler. - /** - * The run_one() function blocks until one handler has been dispatched, or - * until the io_context has been stopped. - * - * @return The number of handlers that were executed. A zero return value - * implies that the io_context object is stopped (the stopped() function - * returns @c true). Subsequent calls to run(), run_one(), poll() or - * poll_one() will return immediately unless there is a prior call to - * restart(). - * - * @return The number of handlers that were executed. - * - * @note Calling the run_one() function from a thread that is currently - * calling one of run(), run_one(), run_for(), run_until(), poll() or - * poll_one() on the same io_context object may introduce the potential for - * deadlock. It is the caller's reponsibility to avoid this. - */ - ASIO_DECL count_type run_one(asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - -#if defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - /// Run the io_context object's event processing loop for a specified duration - /// to execute at most one handler. - /** - * The run_one_for() function blocks until one handler has been dispatched, - * until the io_context has been stopped, or until the specified duration has - * elapsed. - * - * @param rel_time The duration for which the call may block. - * - * @return The number of handlers that were executed. - */ - template - std::size_t run_one_for(const chrono::duration& rel_time); - - /// Run the io_context object's event processing loop until a specified time - /// to execute at most one handler. - /** - * The run_one_until() function blocks until one handler has been dispatched, - * until the io_context has been stopped, or until the specified time has - * been reached. - * - * @param abs_time The time point until which the call may block. - * - * @return The number of handlers that were executed. - */ - template - std::size_t run_one_until( - const chrono::time_point& abs_time); -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - - /// Run the io_context object's event processing loop to execute ready - /// handlers. - /** - * The poll() function runs handlers that are ready to run, without blocking, - * until the io_context has been stopped or there are no more ready handlers. - * - * @return The number of handlers that were executed. - */ - ASIO_DECL count_type poll(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Run the io_context object's - /// event processing loop to execute ready handlers. - /** - * The poll() function runs handlers that are ready to run, without blocking, - * until the io_context has been stopped or there are no more ready handlers. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - */ - ASIO_DECL count_type poll(asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Run the io_context object's event processing loop to execute one ready - /// handler. - /** - * The poll_one() function runs at most one handler that is ready to run, - * without blocking. - * - * @return The number of handlers that were executed. - */ - ASIO_DECL count_type poll_one(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use non-error_code overload.) Run the io_context object's - /// event processing loop to execute one ready handler. - /** - * The poll_one() function runs at most one handler that is ready to run, - * without blocking. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - */ - ASIO_DECL count_type poll_one(asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Stop the io_context object's event processing loop. - /** - * This function does not block, but instead simply signals the io_context to - * stop. All invocations of its run() or run_one() member functions should - * return as soon as possible. Subsequent calls to run(), run_one(), poll() - * or poll_one() will return immediately until restart() is called. - */ - ASIO_DECL void stop(); - - /// Determine whether the io_context object has been stopped. - /** - * This function is used to determine whether an io_context object has been - * stopped, either through an explicit call to stop(), or due to running out - * of work. When an io_context object is stopped, calls to run(), run_one(), - * poll() or poll_one() will return immediately without invoking any - * handlers. - * - * @return @c true if the io_context object is stopped, otherwise @c false. - */ - ASIO_DECL bool stopped() const; - - /// Restart the io_context in preparation for a subsequent run() invocation. - /** - * This function must be called prior to any second or later set of - * invocations of the run(), run_one(), poll() or poll_one() functions when a - * previous invocation of these functions returned due to the io_context - * being stopped or running out of work. After a call to restart(), the - * io_context object's stopped() function will return @c false. - * - * This function must not be called while there are any unfinished calls to - * the run(), run_one(), poll() or poll_one() functions. - */ - ASIO_DECL void restart(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use restart().) Reset the io_context in preparation for a - /// subsequent run() invocation. - /** - * This function must be called prior to any second or later set of - * invocations of the run(), run_one(), poll() or poll_one() functions when a - * previous invocation of these functions returned due to the io_context - * being stopped or running out of work. After a call to restart(), the - * io_context object's stopped() function will return @c false. - * - * This function must not be called while there are any unfinished calls to - * the run(), run_one(), poll() or poll_one() functions. - */ - void reset(); - - /// (Deprecated: Use asio::dispatch().) Request the io_context to - /// invoke the given handler. - /** - * This function is used to ask the io_context to execute the given handler. - * - * The io_context guarantees that the handler will only be called in a thread - * in which the run(), run_one(), poll() or poll_one() member functions is - * currently being invoked. The handler may be executed inside this function - * if the guarantee can be met. - * - * @param handler The handler to be called. The io_context will make - * a copy of the handler object as required. The function signature of the - * handler must be: @code void handler(); @endcode - * - * @note This function throws an exception only if: - * - * @li the handler's @c asio_handler_allocate function; or - * - * @li the handler's copy constructor - * - * throws an exception. - */ - template - ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) - dispatch(ASIO_MOVE_ARG(LegacyCompletionHandler) handler); - - /// (Deprecated: Use asio::post().) Request the io_context to invoke - /// the given handler and return immediately. - /** - * This function is used to ask the io_context to execute the given handler, - * but without allowing the io_context to call the handler from inside this - * function. - * - * The io_context guarantees that the handler will only be called in a thread - * in which the run(), run_one(), poll() or poll_one() member functions is - * currently being invoked. - * - * @param handler The handler to be called. The io_context will make - * a copy of the handler object as required. The function signature of the - * handler must be: @code void handler(); @endcode - * - * @note This function throws an exception only if: - * - * @li the handler's @c asio_handler_allocate function; or - * - * @li the handler's copy constructor - * - * throws an exception. - */ - template - ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) - post(ASIO_MOVE_ARG(LegacyCompletionHandler) handler); - - /// (Deprecated: Use asio::bind_executor().) Create a new handler that - /// automatically dispatches the wrapped handler on the io_context. - /** - * This function is used to create a new handler function object that, when - * invoked, will automatically pass the wrapped handler to the io_context - * object's dispatch function. - * - * @param handler The handler to be wrapped. The io_context will make a copy - * of the handler object as required. The function signature of the handler - * must be: @code void handler(A1 a1, ... An an); @endcode - * - * @return A function object that, when invoked, passes the wrapped handler to - * the io_context object's dispatch function. Given a function object with the - * signature: - * @code R f(A1 a1, ... An an); @endcode - * If this function object is passed to the wrap function like so: - * @code io_context.wrap(f); @endcode - * then the return value is a function object with the signature - * @code void g(A1 a1, ... An an); @endcode - * that, when invoked, executes code equivalent to: - * @code io_context.dispatch(boost::bind(f, a1, ... an)); @endcode - */ - template -#if defined(GENERATING_DOCUMENTATION) - unspecified -#else - detail::wrapped_handler -#endif - wrap(Handler handler); -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - // Helper function to add the implementation. - ASIO_DECL impl_type& add_impl(impl_type* impl); - - // Backwards compatible overload for use with services derived from - // io_context::service. - template - friend Service& use_service(io_context& ioc); - -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - detail::winsock_init<> init_; -#elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \ - || defined(__osf__) - detail::signal_init<> init_; -#endif - - // The implementation. - impl_type& impl_; -}; - -/// Executor used to submit functions to an io_context. -class io_context::executor_type -{ -public: - /// Obtain the underlying execution context. - io_context& context() const ASIO_NOEXCEPT; - - /// Inform the io_context that it has some outstanding work to do. - /** - * This function is used to inform the io_context that some work has begun. - * This ensures that the io_context's run() and run_one() functions do not - * exit while the work is underway. - */ - void on_work_started() const ASIO_NOEXCEPT; - - /// Inform the io_context that some work is no longer outstanding. - /** - * This function is used to inform the io_context that some work has - * finished. Once the count of unfinished work reaches zero, the io_context - * is stopped and the run() and run_one() functions may exit. - */ - void on_work_finished() const ASIO_NOEXCEPT; - - /// Request the io_context to invoke the given function object. - /** - * This function is used to ask the io_context to execute the given function - * object. If the current thread is running the io_context, @c dispatch() - * executes the function before returning. Otherwise, the function will be - * scheduled to run on the io_context. - * - * @param f The function object to be called. The executor will make a copy - * of the handler object as required. The function signature of the function - * object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the io_context to invoke the given function object. - /** - * This function is used to ask the io_context to execute the given function - * object. The function object will never be executed inside @c post(). - * Instead, it will be scheduled to run on the io_context. - * - * @param f The function object to be called. The executor will make a copy - * of the handler object as required. The function signature of the function - * object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the io_context to invoke the given function object. - /** - * This function is used to ask the io_context to execute the given function - * object. The function object will never be executed inside @c defer(). - * Instead, it will be scheduled to run on the io_context. - * - * If the current thread belongs to the io_context, @c defer() will delay - * scheduling the function object until the current thread returns control to - * the pool. - * - * @param f The function object to be called. The executor will make a copy - * of the handler object as required. The function signature of the function - * object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Determine whether the io_context is running in the current thread. - /** - * @return @c true if the current thread is running the io_context. Otherwise - * returns @c false. - */ - bool running_in_this_thread() const ASIO_NOEXCEPT; - - /// Compare two executors for equality. - /** - * Two executors are equal if they refer to the same underlying io_context. - */ - friend bool operator==(const executor_type& a, - const executor_type& b) ASIO_NOEXCEPT - { - return &a.io_context_ == &b.io_context_; - } - - /// Compare two executors for inequality. - /** - * Two executors are equal if they refer to the same underlying io_context. - */ - friend bool operator!=(const executor_type& a, - const executor_type& b) ASIO_NOEXCEPT - { - return &a.io_context_ != &b.io_context_; - } - -private: - friend class io_context; - - // Constructor. - explicit executor_type(io_context& i) : io_context_(i) {} - - // The underlying io_context. - io_context& io_context_; -}; - -#if !defined(ASIO_NO_DEPRECATED) -/// (Deprecated: Use executor_work_guard.) Class to inform the io_context when -/// it has work to do. -/** - * The work class is used to inform the io_context when work starts and - * finishes. This ensures that the io_context object's run() function will not - * exit while work is underway, and that it does exit when there is no - * unfinished work remaining. - * - * The work class is copy-constructible so that it may be used as a data member - * in a handler class. It is not assignable. - */ -class io_context::work -{ -public: - /// Constructor notifies the io_context that work is starting. - /** - * The constructor is used to inform the io_context that some work has begun. - * This ensures that the io_context object's run() function will not exit - * while the work is underway. - */ - explicit work(asio::io_context& io_context); - - /// Copy constructor notifies the io_context that work is starting. - /** - * The constructor is used to inform the io_context that some work has begun. - * This ensures that the io_context object's run() function will not exit - * while the work is underway. - */ - work(const work& other); - - /// Destructor notifies the io_context that the work is complete. - /** - * The destructor is used to inform the io_context that some work has - * finished. Once the count of unfinished work reaches zero, the io_context - * object's run() function is permitted to exit. - */ - ~work(); - - /// Get the io_context associated with the work. - asio::io_context& get_io_context(); - - /// (Deprecated: Use get_io_context().) Get the io_context associated with the - /// work. - asio::io_context& get_io_service(); - -private: - // Prevent assignment. - void operator=(const work& other); - - // The io_context implementation. - detail::io_context_impl& io_context_impl_; -}; -#endif // !defined(ASIO_NO_DEPRECATED) - -/// Base class for all io_context services. -class io_context::service - : public execution_context::service -{ -public: - /// Get the io_context object that owns the service. - asio::io_context& get_io_context(); - -#if !defined(ASIO_NO_DEPRECATED) - /// Get the io_context object that owns the service. - asio::io_context& get_io_service(); -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - /// Destroy all user-defined handler objects owned by the service. - ASIO_DECL virtual void shutdown(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use shutdown().) Destroy all user-defined handler objects - /// owned by the service. - ASIO_DECL virtual void shutdown_service(); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Handle notification of a fork-related event to perform any necessary - /// housekeeping. - /** - * This function is not a pure virtual so that services only have to - * implement it if necessary. The default implementation does nothing. - */ - ASIO_DECL virtual void notify_fork( - execution_context::fork_event event); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use notify_fork().) Handle notification of a fork-related - /// event to perform any necessary housekeeping. - /** - * This function is not a pure virtual so that services only have to - * implement it if necessary. The default implementation does nothing. - */ - ASIO_DECL virtual void fork_service( - execution_context::fork_event event); -#endif // !defined(ASIO_NO_DEPRECATED) - -protected: - /// Constructor. - /** - * @param owner The io_context object that owns the service. - */ - ASIO_DECL service(asio::io_context& owner); - - /// Destructor. - ASIO_DECL virtual ~service(); -}; - -namespace detail { - -// Special service base class to keep classes header-file only. -template -class service_base - : public asio::io_context::service -{ -public: - static asio::detail::service_id id; - - // Constructor. - service_base(asio::io_context& io_context) - : asio::io_context::service(io_context) - { - } -}; - -template -asio::detail::service_id service_base::id; - -} // namespace detail -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/io_context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/io_context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -// If both io_context.hpp and strand.hpp have been included, automatically -// include the header file needed for the io_context::strand class. -#if !defined(ASIO_NO_EXTENSIONS) -# if defined(ASIO_STRAND_HPP) -# include "asio/io_context_strand.hpp" -# endif // defined(ASIO_STRAND_HPP) -#endif // !defined(ASIO_NO_EXTENSIONS) - -#endif // ASIO_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/io_context_strand.hpp b/Sources/Vendor/asio/include/asio/io_context_strand.hpp deleted file mode 100644 index 3c596f1..0000000 --- a/Sources/Vendor/asio/include/asio/io_context_strand.hpp +++ /dev/null @@ -1,384 +0,0 @@ -// -// io_context_strand.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IO_CONTEXT_STRAND_HPP -#define ASIO_IO_CONTEXT_STRAND_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_NO_EXTENSIONS) - -#include "asio/async_result.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/strand_service.hpp" -#include "asio/detail/wrapped_handler.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides serialised handler execution. -/** - * The io_context::strand class provides the ability to post and dispatch - * handlers with the guarantee that none of those handlers will execute - * concurrently. - * - * @par Order of handler invocation - * Given: - * - * @li a strand object @c s - * - * @li an object @c a meeting completion handler requirements - * - * @li an object @c a1 which is an arbitrary copy of @c a made by the - * implementation - * - * @li an object @c b meeting completion handler requirements - * - * @li an object @c b1 which is an arbitrary copy of @c b made by the - * implementation - * - * if any of the following conditions are true: - * - * @li @c s.post(a) happens-before @c s.post(b) - * - * @li @c s.post(a) happens-before @c s.dispatch(b), where the latter is - * performed outside the strand - * - * @li @c s.dispatch(a) happens-before @c s.post(b), where the former is - * performed outside the strand - * - * @li @c s.dispatch(a) happens-before @c s.dispatch(b), where both are - * performed outside the strand - * - * then @c asio_handler_invoke(a1, &a1) happens-before - * @c asio_handler_invoke(b1, &b1). - * - * Note that in the following case: - * @code async_op_1(..., s.wrap(a)); - * async_op_2(..., s.wrap(b)); @endcode - * the completion of the first async operation will perform @c s.dispatch(a), - * and the second will perform @c s.dispatch(b), but the order in which those - * are performed is unspecified. That is, you cannot state whether one - * happens-before the other. Therefore none of the above conditions are met and - * no ordering guarantee is made. - * - * @note The implementation makes no guarantee that handlers posted or - * dispatched through different @c strand objects will be invoked concurrently. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Dispatcher. - */ -class io_context::strand -{ -public: - /// Constructor. - /** - * Constructs the strand. - * - * @param io_context The io_context object that the strand will use to - * dispatch handlers that are ready to be run. - */ - explicit strand(asio::io_context& io_context) - : service_(asio::use_service< - asio::detail::strand_service>(io_context)) - { - service_.construct(impl_); - } - - /// Destructor. - /** - * Destroys a strand. - * - * Handlers posted through the strand that have not yet been invoked will - * still be dispatched in a way that meets the guarantee of non-concurrency. - */ - ~strand() - { - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use context().) Get the io_context associated with the - /// strand. - /** - * This function may be used to obtain the io_context object that the strand - * uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the strand will use to - * dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return service_.get_io_context(); - } - - /// (Deprecated: Use context().) Get the io_context associated with the - /// strand. - /** - * This function may be used to obtain the io_context object that the strand - * uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the strand will use to - * dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return service_.get_io_context(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Obtain the underlying execution context. - asio::io_context& context() const ASIO_NOEXCEPT - { - return service_.get_io_context(); - } - - /// Inform the strand that it has some outstanding work to do. - /** - * The strand delegates this call to its underlying io_context. - */ - void on_work_started() const ASIO_NOEXCEPT - { - context().get_executor().on_work_started(); - } - - /// Inform the strand that some work is no longer outstanding. - /** - * The strand delegates this call to its underlying io_context. - */ - void on_work_finished() const ASIO_NOEXCEPT - { - context().get_executor().on_work_finished(); - } - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the strand to execute the given function - * object on its underlying io_context. The function object will be executed - * inside this function if the strand is not otherwise busy and if the - * underlying io_context's executor's @c dispatch() function is also able to - * execute the function before returning. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - typename decay::type tmp(ASIO_MOVE_CAST(Function)(f)); - service_.dispatch(impl_, tmp); - (void)a; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use asio::dispatch().) Request the strand to invoke - /// the given handler. - /** - * This function is used to ask the strand to execute the given handler. - * - * The strand object guarantees that handlers posted or dispatched through - * the strand will not be executed concurrently. The handler may be executed - * inside this function if the guarantee can be met. If this function is - * called from within a handler that was posted or dispatched through the same - * strand, then the new handler will be executed immediately. - * - * The strand's guarantee is in addition to the guarantee provided by the - * underlying io_context. The io_context guarantees that the handler will only - * be called in a thread in which the io_context's run member function is - * currently being invoked. - * - * @param handler The handler to be called. The strand will make a copy of the - * handler object as required. The function signature of the handler must be: - * @code void handler(); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) - dispatch(ASIO_MOVE_ARG(LegacyCompletionHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a LegacyCompletionHandler. - ASIO_LEGACY_COMPLETION_HANDLER_CHECK( - LegacyCompletionHandler, handler) type_check; - - async_completion init(handler); - - service_.dispatch(impl_, init.completion_handler); - - return init.result.get(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled to run by the underlying io_context. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - typename decay::type tmp(ASIO_MOVE_CAST(Function)(f)); - service_.post(impl_, tmp); - (void)a; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use asio::post().) Request the strand to invoke the - /// given handler and return immediately. - /** - * This function is used to ask the strand to execute the given handler, but - * without allowing the strand to call the handler from inside this function. - * - * The strand object guarantees that handlers posted or dispatched through - * the strand will not be executed concurrently. The strand's guarantee is in - * addition to the guarantee provided by the underlying io_context. The - * io_context guarantees that the handler will only be called in a thread in - * which the io_context's run member function is currently being invoked. - * - * @param handler The handler to be called. The strand will make a copy of the - * handler object as required. The function signature of the handler must be: - * @code void handler(); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(LegacyCompletionHandler, void ()) - post(ASIO_MOVE_ARG(LegacyCompletionHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a LegacyCompletionHandler. - ASIO_LEGACY_COMPLETION_HANDLER_CHECK( - LegacyCompletionHandler, handler) type_check; - - async_completion init(handler); - - service_.post(impl_, init.completion_handler); - - return init.result.get(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled to run by the underlying io_context. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - typename decay::type tmp(ASIO_MOVE_CAST(Function)(f)); - service_.post(impl_, tmp); - (void)a; - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use asio::bind_executor().) Create a new handler that - /// automatically dispatches the wrapped handler on the strand. - /** - * This function is used to create a new handler function object that, when - * invoked, will automatically pass the wrapped handler to the strand's - * dispatch function. - * - * @param handler The handler to be wrapped. The strand will make a copy of - * the handler object as required. The function signature of the handler must - * be: @code void handler(A1 a1, ... An an); @endcode - * - * @return A function object that, when invoked, passes the wrapped handler to - * the strand's dispatch function. Given a function object with the signature: - * @code R f(A1 a1, ... An an); @endcode - * If this function object is passed to the wrap function like so: - * @code strand.wrap(f); @endcode - * then the return value is a function object with the signature - * @code void g(A1 a1, ... An an); @endcode - * that, when invoked, executes code equivalent to: - * @code strand.dispatch(boost::bind(f, a1, ... an)); @endcode - */ - template -#if defined(GENERATING_DOCUMENTATION) - unspecified -#else - detail::wrapped_handler -#endif - wrap(Handler handler) - { - return detail::wrapped_handler(*this, handler); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the strand is running in the current thread. - /** - * @return @c true if the current thread is executing a handler that was - * submitted to the strand using post(), dispatch() or wrap(). Otherwise - * returns @c false. - */ - bool running_in_this_thread() const ASIO_NOEXCEPT - { - return service_.running_in_this_thread(impl_); - } - - /// Compare two strands for equality. - /** - * Two strands are equal if they refer to the same ordered, non-concurrent - * state. - */ - friend bool operator==(const strand& a, const strand& b) ASIO_NOEXCEPT - { - return a.impl_ == b.impl_; - } - - /// Compare two strands for inequality. - /** - * Two strands are equal if they refer to the same ordered, non-concurrent - * state. - */ - friend bool operator!=(const strand& a, const strand& b) ASIO_NOEXCEPT - { - return a.impl_ != b.impl_; - } - -private: - asio::detail::strand_service& service_; - mutable asio::detail::strand_service::implementation_type impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_EXTENSIONS) - -#endif // ASIO_IO_CONTEXT_STRAND_HPP diff --git a/Sources/Vendor/asio/include/asio/io_service.hpp b/Sources/Vendor/asio/include/asio/io_service.hpp deleted file mode 100644 index ed05c83..0000000 --- a/Sources/Vendor/asio/include/asio/io_service.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// io_service.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IO_SERVICE_HPP -#define ASIO_IO_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if !defined(ASIO_NO_DEPRECATED) -/// Typedef for backwards compatibility. -typedef io_context io_service; -#endif // !defined(ASIO_NO_DEPRECATED) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IO_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/io_service_strand.hpp b/Sources/Vendor/asio/include/asio/io_service_strand.hpp deleted file mode 100644 index 7093f0e..0000000 --- a/Sources/Vendor/asio/include/asio/io_service_strand.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// -// io_service_strand.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IO_SERVICE_STRAND_HPP -#define ASIO_IO_SERVICE_STRAND_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/io_context_strand.hpp" - -#endif // ASIO_IO_SERVICE_STRAND_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address.hpp b/Sources/Vendor/asio/include/asio/ip/address.hpp deleted file mode 100644 index cf852a6..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address.hpp +++ /dev/null @@ -1,260 +0,0 @@ -// -// ip/address.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_ADDRESS_HPP -#define ASIO_IP_ADDRESS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/throw_exception.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address_v4.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/bad_address_cast.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Implements version-independent IP addresses. -/** - * The asio::ip::address class provides the ability to use either IP - * version 4 or version 6 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address -{ -public: - /// Default constructor. - ASIO_DECL address(); - - /// Construct an address from an IPv4 address. - ASIO_DECL address(const asio::ip::address_v4& ipv4_address); - - /// Construct an address from an IPv6 address. - ASIO_DECL address(const asio::ip::address_v6& ipv6_address); - - /// Copy constructor. - ASIO_DECL address(const address& other); - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - ASIO_DECL address(address&& other); -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another address. - ASIO_DECL address& operator=(const address& other); - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another address. - ASIO_DECL address& operator=(address&& other); -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from an IPv4 address. - ASIO_DECL address& operator=( - const asio::ip::address_v4& ipv4_address); - - /// Assign from an IPv6 address. - ASIO_DECL address& operator=( - const asio::ip::address_v6& ipv6_address); - - /// Get whether the address is an IP version 4 address. - bool is_v4() const - { - return type_ == ipv4; - } - - /// Get whether the address is an IP version 6 address. - bool is_v6() const - { - return type_ == ipv6; - } - - /// Get the address as an IP version 4 address. - ASIO_DECL asio::ip::address_v4 to_v4() const; - - /// Get the address as an IP version 6 address. - ASIO_DECL asio::ip::address_v6 to_v6() const; - - /// Get the address as a string. - ASIO_DECL std::string to_string() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use other overload.) Get the address as a string. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// (Deprecated: Use make_address().) Create an address from an IPv4 address - /// string in dotted decimal form, or from an IPv6 address in hexadecimal - /// notation. - static address from_string(const char* str); - - /// (Deprecated: Use make_address().) Create an address from an IPv4 address - /// string in dotted decimal form, or from an IPv6 address in hexadecimal - /// notation. - static address from_string(const char* str, asio::error_code& ec); - - /// (Deprecated: Use make_address().) Create an address from an IPv4 address - /// string in dotted decimal form, or from an IPv6 address in hexadecimal - /// notation. - static address from_string(const std::string& str); - - /// (Deprecated: Use make_address().) Create an address from an IPv4 address - /// string in dotted decimal form, or from an IPv6 address in hexadecimal - /// notation. - static address from_string( - const std::string& str, asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a loopback address. - ASIO_DECL bool is_loopback() const; - - /// Determine whether the address is unspecified. - ASIO_DECL bool is_unspecified() const; - - /// Determine whether the address is a multicast address. - ASIO_DECL bool is_multicast() const; - - /// Compare two addresses for equality. - ASIO_DECL friend bool operator==(const address& a1, const address& a2); - - /// Compare two addresses for inequality. - friend bool operator!=(const address& a1, const address& a2) - { - return !(a1 == a2); - } - - /// Compare addresses for ordering. - ASIO_DECL friend bool operator<(const address& a1, const address& a2); - - /// Compare addresses for ordering. - friend bool operator>(const address& a1, const address& a2) - { - return a2 < a1; - } - - /// Compare addresses for ordering. - friend bool operator<=(const address& a1, const address& a2) - { - return !(a2 < a1); - } - - /// Compare addresses for ordering. - friend bool operator>=(const address& a1, const address& a2) - { - return !(a1 < a2); - } - -private: - // The type of the address. - enum { ipv4, ipv6 } type_; - - // The underlying IPv4 address. - asio::ip::address_v4 ipv4_address_; - - // The underlying IPv6 address. - asio::ip::address_v6 ipv6_address_; -}; - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address(const char* str); - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address( - const char* str, asio::error_code& ec); - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address(const std::string& str); - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address(string_view str); - -/// Create an address from an IPv4 address string in dotted decimal form, -/// or from an IPv6 address in hexadecimal notation. -/** - * @relates address - */ -ASIO_DECL address make_address( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates asio::ip::address - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address& addr); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/address.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/address.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_ADDRESS_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v4.hpp b/Sources/Vendor/asio/include/asio/ip/address_v4.hpp deleted file mode 100644 index 4e1cc9a..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v4.hpp +++ /dev/null @@ -1,329 +0,0 @@ -// -// ip/address_v4.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_ADDRESS_V4_HPP -#define ASIO_IP_ADDRESS_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/array.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/error_code.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Implements IP version 4 style addresses. -/** - * The asio::ip::address_v4 class provides the ability to use and - * manipulate IP version 4 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address_v4 -{ -public: - /// The type used to represent an address as an unsigned integer. - typedef uint_least32_t uint_type; - - /// The type used to represent an address as an array of bytes. - /** - * @note This type is defined in terms of the C++0x template @c std::array - * when it is available. Otherwise, it uses @c boost:array. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef array bytes_type; -#else - typedef asio::detail::array bytes_type; -#endif - - /// Default constructor. - address_v4() - { - addr_.s_addr = 0; - } - - /// Construct an address from raw bytes. - ASIO_DECL explicit address_v4(const bytes_type& bytes); - - /// Construct an address from an unsigned integer in host byte order. - ASIO_DECL explicit address_v4(uint_type addr); - - /// Copy constructor. - address_v4(const address_v4& other) - : addr_(other.addr_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - address_v4(address_v4&& other) - : addr_(other.addr_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another address. - address_v4& operator=(const address_v4& other) - { - addr_ = other.addr_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another address. - address_v4& operator=(address_v4&& other) - { - addr_ = other.addr_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Get the address in bytes, in network byte order. - ASIO_DECL bytes_type to_bytes() const; - - /// Get the address as an unsigned integer in host byte order - ASIO_DECL uint_type to_uint() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// Get the address as an unsigned long in host byte order - ASIO_DECL unsigned long to_ulong() const; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the address as a string in dotted decimal format. - ASIO_DECL std::string to_string() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use other overload.) Get the address as a string in dotted - /// decimal format. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// (Deprecated: Use make_address_v4().) Create an address from an IP address - /// string in dotted decimal form. - static address_v4 from_string(const char* str); - - /// (Deprecated: Use make_address_v4().) Create an address from an IP address - /// string in dotted decimal form. - static address_v4 from_string( - const char* str, asio::error_code& ec); - - /// (Deprecated: Use make_address_v4().) Create an address from an IP address - /// string in dotted decimal form. - static address_v4 from_string(const std::string& str); - - /// (Deprecated: Use make_address_v4().) Create an address from an IP address - /// string in dotted decimal form. - static address_v4 from_string( - const std::string& str, asio::error_code& ec); -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a loopback address. - ASIO_DECL bool is_loopback() const; - - /// Determine whether the address is unspecified. - ASIO_DECL bool is_unspecified() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use network_v4 class.) Determine whether the address is a - /// class A address. - ASIO_DECL bool is_class_a() const; - - /// (Deprecated: Use network_v4 class.) Determine whether the address is a - /// class B address. - ASIO_DECL bool is_class_b() const; - - /// (Deprecated: Use network_v4 class.) Determine whether the address is a - /// class C address. - ASIO_DECL bool is_class_c() const; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a multicast address. - ASIO_DECL bool is_multicast() const; - - /// Compare two addresses for equality. - friend bool operator==(const address_v4& a1, const address_v4& a2) - { - return a1.addr_.s_addr == a2.addr_.s_addr; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const address_v4& a1, const address_v4& a2) - { - return a1.addr_.s_addr != a2.addr_.s_addr; - } - - /// Compare addresses for ordering. - friend bool operator<(const address_v4& a1, const address_v4& a2) - { - return a1.to_uint() < a2.to_uint(); - } - - /// Compare addresses for ordering. - friend bool operator>(const address_v4& a1, const address_v4& a2) - { - return a1.to_uint() > a2.to_uint(); - } - - /// Compare addresses for ordering. - friend bool operator<=(const address_v4& a1, const address_v4& a2) - { - return a1.to_uint() <= a2.to_uint(); - } - - /// Compare addresses for ordering. - friend bool operator>=(const address_v4& a1, const address_v4& a2) - { - return a1.to_uint() >= a2.to_uint(); - } - - /// Obtain an address object that represents any address. - static address_v4 any() - { - return address_v4(); - } - - /// Obtain an address object that represents the loopback address. - static address_v4 loopback() - { - return address_v4(0x7F000001); - } - - /// Obtain an address object that represents the broadcast address. - static address_v4 broadcast() - { - return address_v4(0xFFFFFFFF); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use network_v4 class.) Obtain an address object that - /// represents the broadcast address that corresponds to the specified - /// address and netmask. - ASIO_DECL static address_v4 broadcast( - const address_v4& addr, const address_v4& mask); - - /// (Deprecated: Use network_v4 class.) Obtain the netmask that corresponds - /// to the address, based on its address class. - ASIO_DECL static address_v4 netmask(const address_v4& addr); -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - // The underlying IPv4 address. - asio::detail::in4_addr_type addr_; -}; - -/// Create an IPv4 address from raw bytes in network order. -/** - * @relates address_v4 - */ -inline address_v4 make_address_v4(const address_v4::bytes_type& bytes) -{ - return address_v4(bytes); -} - -/// Create an IPv4 address from an unsigned integer in host byte order. -/** - * @relates address_v4 - */ -inline address_v4 make_address_v4(address_v4::uint_type addr) -{ - return address_v4(addr); -} - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4(const char* str); - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4( - const char* str, asio::error_code& ec); - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4(const std::string& str); - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4(string_view str); - -/// Create an IPv4 address from an IP address string in dotted decimal form. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates asio::ip::address_v4 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v4& addr); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/address_v4.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/address_v4.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_ADDRESS_V4_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v4_iterator.hpp b/Sources/Vendor/asio/include/asio/ip/address_v4_iterator.hpp deleted file mode 100644 index e2ef393..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v4_iterator.hpp +++ /dev/null @@ -1,162 +0,0 @@ -// -// ip/address_v4_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_ADDRESS_V4_ITERATOR_HPP -#define ASIO_IP_ADDRESS_V4_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address_v4.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_iterator; - -/// An input iterator that can be used for traversing IPv4 addresses. -/** - * In addition to satisfying the input iterator requirements, this iterator - * also supports decrement. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template <> class basic_address_iterator -{ -public: - /// The type of the elements pointed to by the iterator. - typedef address_v4 value_type; - - /// Distance between two iterators. - typedef std::ptrdiff_t difference_type; - - /// The type of a pointer to an element pointed to by the iterator. - typedef const address_v4* pointer; - - /// The type of a reference to an element pointed to by the iterator. - typedef const address_v4& reference; - - /// Denotes that the iterator satisfies the input iterator requirements. - typedef std::input_iterator_tag iterator_category; - - /// Construct an iterator that points to the specified address. - basic_address_iterator(const address_v4& addr) ASIO_NOEXCEPT - : address_(addr) - { - } - - /// Copy constructor. - basic_address_iterator( - const basic_address_iterator& other) ASIO_NOEXCEPT - : address_(other.address_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_address_iterator(basic_address_iterator&& other) ASIO_NOEXCEPT - : address_(ASIO_MOVE_CAST(address_v4)(other.address_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assignment operator. - basic_address_iterator& operator=( - const basic_address_iterator& other) ASIO_NOEXCEPT - { - address_ = other.address_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move assignment operator. - basic_address_iterator& operator=( - basic_address_iterator&& other) ASIO_NOEXCEPT - { - address_ = ASIO_MOVE_CAST(address_v4)(other.address_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Dereference the iterator. - const address_v4& operator*() const ASIO_NOEXCEPT - { - return address_; - } - - /// Dereference the iterator. - const address_v4* operator->() const ASIO_NOEXCEPT - { - return &address_; - } - - /// Pre-increment operator. - basic_address_iterator& operator++() ASIO_NOEXCEPT - { - address_ = address_v4((address_.to_uint() + 1) & 0xFFFFFFFF); - return *this; - } - - /// Post-increment operator. - basic_address_iterator operator++(int) ASIO_NOEXCEPT - { - basic_address_iterator tmp(*this); - ++*this; - return tmp; - } - - /// Pre-decrement operator. - basic_address_iterator& operator--() ASIO_NOEXCEPT - { - address_ = address_v4((address_.to_uint() - 1) & 0xFFFFFFFF); - return *this; - } - - /// Post-decrement operator. - basic_address_iterator operator--(int) - { - basic_address_iterator tmp(*this); - --*this; - return tmp; - } - - /// Compare two addresses for equality. - friend bool operator==(const basic_address_iterator& a, - const basic_address_iterator& b) - { - return a.address_ == b.address_; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const basic_address_iterator& a, - const basic_address_iterator& b) - { - return a.address_ != b.address_; - } - -private: - address_v4 address_; -}; - -/// An input iterator that can be used for traversing IPv4 addresses. -typedef basic_address_iterator address_v4_iterator; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_V4_ITERATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v4_range.hpp b/Sources/Vendor/asio/include/asio/ip/address_v4_range.hpp deleted file mode 100644 index a402842..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v4_range.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// ip/address_v4_range.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_ADDRESS_V4_RANGE_HPP -#define ASIO_IP_ADDRESS_V4_RANGE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address_v4_iterator.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_range; - -/// Represents a range of IPv4 addresses. -/** - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template <> class basic_address_range -{ -public: - /// The type of an iterator that points into the range. - typedef basic_address_iterator iterator; - - /// Construct an empty range. - basic_address_range() ASIO_NOEXCEPT - : begin_(address_v4()), - end_(address_v4()) - { - } - - /// Construct an range that represents the given range of addresses. - explicit basic_address_range(const iterator& first, - const iterator& last) ASIO_NOEXCEPT - : begin_(first), - end_(last) - { - } - - /// Copy constructor. - basic_address_range(const basic_address_range& other) ASIO_NOEXCEPT - : begin_(other.begin_), - end_(other.end_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_address_range(basic_address_range&& other) ASIO_NOEXCEPT - : begin_(ASIO_MOVE_CAST(iterator)(other.begin_)), - end_(ASIO_MOVE_CAST(iterator)(other.end_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assignment operator. - basic_address_range& operator=( - const basic_address_range& other) ASIO_NOEXCEPT - { - begin_ = other.begin_; - end_ = other.end_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move assignment operator. - basic_address_range& operator=( - basic_address_range&& other) ASIO_NOEXCEPT - { - begin_ = ASIO_MOVE_CAST(iterator)(other.begin_); - end_ = ASIO_MOVE_CAST(iterator)(other.end_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Obtain an iterator that points to the start of the range. - iterator begin() const ASIO_NOEXCEPT - { - return begin_; - } - - /// Obtain an iterator that points to the end of the range. - iterator end() const ASIO_NOEXCEPT - { - return end_; - } - - /// Determine whether the range is empty. - bool empty() const ASIO_NOEXCEPT - { - return size() == 0; - } - - /// Return the size of the range. - std::size_t size() const ASIO_NOEXCEPT - { - return end_->to_uint() - begin_->to_uint(); - } - - /// Find an address in the range. - iterator find(const address_v4& addr) const ASIO_NOEXCEPT - { - return addr >= *begin_ && addr < *end_ ? iterator(addr) : end_; - } - -private: - iterator begin_; - iterator end_; -}; - -/// Represents a range of IPv4 addresses. -typedef basic_address_range address_v4_range; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_V4_RANGE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v6.hpp b/Sources/Vendor/asio/include/asio/ip/address_v6.hpp deleted file mode 100644 index fece332..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v6.hpp +++ /dev/null @@ -1,336 +0,0 @@ -// -// ip/address_v6.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_ADDRESS_V6_HPP -#define ASIO_IP_ADDRESS_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/array.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address_v4.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_iterator; - -/// Implements IP version 6 style addresses. -/** - * The asio::ip::address_v6 class provides the ability to use and - * manipulate IP version 6 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address_v6 -{ -public: - /// The type used to represent an address as an array of bytes. - /** - * @note This type is defined in terms of the C++0x template @c std::array - * when it is available. Otherwise, it uses @c boost:array. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef array bytes_type; -#else - typedef asio::detail::array bytes_type; -#endif - - /// Default constructor. - ASIO_DECL address_v6(); - - /// Construct an address from raw bytes and scope ID. - ASIO_DECL explicit address_v6(const bytes_type& bytes, - unsigned long scope_id = 0); - - /// Copy constructor. - ASIO_DECL address_v6(const address_v6& other); - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - ASIO_DECL address_v6(address_v6&& other); -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another address. - ASIO_DECL address_v6& operator=(const address_v6& other); - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another address. - ASIO_DECL address_v6& operator=(address_v6&& other); -#endif // defined(ASIO_HAS_MOVE) - - /// The scope ID of the address. - /** - * Returns the scope ID associated with the IPv6 address. - */ - unsigned long scope_id() const - { - return scope_id_; - } - - /// The scope ID of the address. - /** - * Modifies the scope ID associated with the IPv6 address. - */ - void scope_id(unsigned long id) - { - scope_id_ = id; - } - - /// Get the address in bytes, in network byte order. - ASIO_DECL bytes_type to_bytes() const; - - /// Get the address as a string. - ASIO_DECL std::string to_string() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use other overload.) Get the address as a string. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// (Deprecated: Use make_address_v6().) Create an IPv6 address from an IP - /// address string. - static address_v6 from_string(const char* str); - - /// (Deprecated: Use make_address_v6().) Create an IPv6 address from an IP - /// address string. - static address_v6 from_string( - const char* str, asio::error_code& ec); - - /// (Deprecated: Use make_address_v6().) Create an IPv6 address from an IP - /// address string. - static address_v6 from_string(const std::string& str); - - /// (Deprecated: Use make_address_v6().) Create an IPv6 address from an IP - /// address string. - static address_v6 from_string( - const std::string& str, asio::error_code& ec); - - /// (Deprecated: Use make_address_v4().) Converts an IPv4-mapped or - /// IPv4-compatible address to an IPv4 address. - ASIO_DECL address_v4 to_v4() const; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a loopback address. - ASIO_DECL bool is_loopback() const; - - /// Determine whether the address is unspecified. - ASIO_DECL bool is_unspecified() const; - - /// Determine whether the address is link local. - ASIO_DECL bool is_link_local() const; - - /// Determine whether the address is site local. - ASIO_DECL bool is_site_local() const; - - /// Determine whether the address is a mapped IPv4 address. - ASIO_DECL bool is_v4_mapped() const; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: No replacement.) Determine whether the address is an - /// IPv4-compatible address. - ASIO_DECL bool is_v4_compatible() const; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Determine whether the address is a multicast address. - ASIO_DECL bool is_multicast() const; - - /// Determine whether the address is a global multicast address. - ASIO_DECL bool is_multicast_global() const; - - /// Determine whether the address is a link-local multicast address. - ASIO_DECL bool is_multicast_link_local() const; - - /// Determine whether the address is a node-local multicast address. - ASIO_DECL bool is_multicast_node_local() const; - - /// Determine whether the address is a org-local multicast address. - ASIO_DECL bool is_multicast_org_local() const; - - /// Determine whether the address is a site-local multicast address. - ASIO_DECL bool is_multicast_site_local() const; - - /// Compare two addresses for equality. - ASIO_DECL friend bool operator==( - const address_v6& a1, const address_v6& a2); - - /// Compare two addresses for inequality. - friend bool operator!=(const address_v6& a1, const address_v6& a2) - { - return !(a1 == a2); - } - - /// Compare addresses for ordering. - ASIO_DECL friend bool operator<( - const address_v6& a1, const address_v6& a2); - - /// Compare addresses for ordering. - friend bool operator>(const address_v6& a1, const address_v6& a2) - { - return a2 < a1; - } - - /// Compare addresses for ordering. - friend bool operator<=(const address_v6& a1, const address_v6& a2) - { - return !(a2 < a1); - } - - /// Compare addresses for ordering. - friend bool operator>=(const address_v6& a1, const address_v6& a2) - { - return !(a1 < a2); - } - - /// Obtain an address object that represents any address. - static address_v6 any() - { - return address_v6(); - } - - /// Obtain an address object that represents the loopback address. - ASIO_DECL static address_v6 loopback(); - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use make_address_v6().) Create an IPv4-mapped IPv6 address. - ASIO_DECL static address_v6 v4_mapped(const address_v4& addr); - - /// (Deprecated: No replacement.) Create an IPv4-compatible IPv6 address. - ASIO_DECL static address_v6 v4_compatible(const address_v4& addr); -#endif // !defined(ASIO_NO_DEPRECATED) - -private: - friend class basic_address_iterator; - - // The underlying IPv6 address. - asio::detail::in6_addr_type addr_; - - // The scope ID associated with the address. - unsigned long scope_id_; -}; - -/// Create an IPv6 address from raw bytes and scope ID. -/** - * @relates address_v6 - */ -inline address_v6 make_address_v6(const address_v6::bytes_type& bytes, - unsigned long scope_id = 0) -{ - return address_v6(bytes, scope_id); -} - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6(const char* str); - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6( - const char* str, asio::error_code& ec); - -/// Createan IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6(const std::string& str); - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6(string_view str); - -/// Create an IPv6 address from an IP address string. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -/// Tag type used for distinguishing overloads that deal in IPv4-mapped IPv6 -/// addresses. -enum v4_mapped_t { v4_mapped }; - -/// Create an IPv4 address from a IPv4-mapped IPv6 address. -/** - * @relates address_v4 - */ -ASIO_DECL address_v4 make_address_v4( - v4_mapped_t, const address_v6& v6_addr); - -/// Create an IPv4-mapped IPv6 address from an IPv4 address. -/** - * @relates address_v6 - */ -ASIO_DECL address_v6 make_address_v6( - v4_mapped_t, const address_v4& v4_addr); - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates asio::ip::address_v6 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v6& addr); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/address_v6.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/address_v6.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_ADDRESS_V6_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v6_iterator.hpp b/Sources/Vendor/asio/include/asio/ip/address_v6_iterator.hpp deleted file mode 100644 index 0a1fb3f..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v6_iterator.hpp +++ /dev/null @@ -1,183 +0,0 @@ -// -// ip/address_v6_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Oliver Kowalke (oliver dot kowalke at gmail 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_IP_ADDRESS_V6_ITERATOR_HPP -#define ASIO_IP_ADDRESS_V6_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address_v6.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_iterator; - -/// An input iterator that can be used for traversing IPv6 addresses. -/** - * In addition to satisfying the input iterator requirements, this iterator - * also supports decrement. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template <> class basic_address_iterator -{ -public: - /// The type of the elements pointed to by the iterator. - typedef address_v6 value_type; - - /// Distance between two iterators. - typedef std::ptrdiff_t difference_type; - - /// The type of a pointer to an element pointed to by the iterator. - typedef const address_v6* pointer; - - /// The type of a reference to an element pointed to by the iterator. - typedef const address_v6& reference; - - /// Denotes that the iterator satisfies the input iterator requirements. - typedef std::input_iterator_tag iterator_category; - - /// Construct an iterator that points to the specified address. - basic_address_iterator(const address_v6& addr) ASIO_NOEXCEPT - : address_(addr) - { - } - - /// Copy constructor. - basic_address_iterator( - const basic_address_iterator& other) ASIO_NOEXCEPT - : address_(other.address_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_address_iterator(basic_address_iterator&& other) ASIO_NOEXCEPT - : address_(ASIO_MOVE_CAST(address_v6)(other.address_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assignment operator. - basic_address_iterator& operator=( - const basic_address_iterator& other) ASIO_NOEXCEPT - { - address_ = other.address_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move assignment operator. - basic_address_iterator& operator=( - basic_address_iterator&& other) ASIO_NOEXCEPT - { - address_ = ASIO_MOVE_CAST(address_v6)(other.address_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Dereference the iterator. - const address_v6& operator*() const ASIO_NOEXCEPT - { - return address_; - } - - /// Dereference the iterator. - const address_v6* operator->() const ASIO_NOEXCEPT - { - return &address_; - } - - /// Pre-increment operator. - basic_address_iterator& operator++() ASIO_NOEXCEPT - { - for (int i = 15; i >= 0; --i) - { - if (address_.addr_.s6_addr[i] < 0xFF) - { - ++address_.addr_.s6_addr[i]; - break; - } - - address_.addr_.s6_addr[i] = 0; - } - - return *this; - } - - /// Post-increment operator. - basic_address_iterator operator++(int) ASIO_NOEXCEPT - { - basic_address_iterator tmp(*this); - ++*this; - return tmp; - } - - /// Pre-decrement operator. - basic_address_iterator& operator--() ASIO_NOEXCEPT - { - for (int i = 15; i >= 0; --i) - { - if (address_.addr_.s6_addr[i] > 0) - { - --address_.addr_.s6_addr[i]; - break; - } - - address_.addr_.s6_addr[i] = 0xFF; - } - - return *this; - } - - /// Post-decrement operator. - basic_address_iterator operator--(int) - { - basic_address_iterator tmp(*this); - --*this; - return tmp; - } - - /// Compare two addresses for equality. - friend bool operator==(const basic_address_iterator& a, - const basic_address_iterator& b) - { - return a.address_ == b.address_; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const basic_address_iterator& a, - const basic_address_iterator& b) - { - return a.address_ != b.address_; - } - -private: - address_v6 address_; -}; - -/// An input iterator that can be used for traversing IPv6 addresses. -typedef basic_address_iterator address_v6_iterator; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_V6_ITERATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/address_v6_range.hpp b/Sources/Vendor/asio/include/asio/ip/address_v6_range.hpp deleted file mode 100644 index 9d7062e..0000000 --- a/Sources/Vendor/asio/include/asio/ip/address_v6_range.hpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// ip/address_v6_range.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Oliver Kowalke (oliver dot kowalke at gmail 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_IP_ADDRESS_V6_RANGE_HPP -#define ASIO_IP_ADDRESS_V6_RANGE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address_v6_iterator.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template class basic_address_range; - -/// Represents a range of IPv6 addresses. -/** - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template <> class basic_address_range -{ -public: - /// The type of an iterator that points into the range. - typedef basic_address_iterator iterator; - - /// Construct an empty range. - basic_address_range() ASIO_NOEXCEPT - : begin_(address_v6()), - end_(address_v6()) - { - } - - /// Construct an range that represents the given range of addresses. - explicit basic_address_range(const iterator& first, - const iterator& last) ASIO_NOEXCEPT - : begin_(first), - end_(last) - { - } - - /// Copy constructor. - basic_address_range(const basic_address_range& other) ASIO_NOEXCEPT - : begin_(other.begin_), - end_(other.end_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_address_range(basic_address_range&& other) ASIO_NOEXCEPT - : begin_(ASIO_MOVE_CAST(iterator)(other.begin_)), - end_(ASIO_MOVE_CAST(iterator)(other.end_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assignment operator. - basic_address_range& operator=( - const basic_address_range& other) ASIO_NOEXCEPT - { - begin_ = other.begin_; - end_ = other.end_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move assignment operator. - basic_address_range& operator=( - basic_address_range&& other) ASIO_NOEXCEPT - { - begin_ = ASIO_MOVE_CAST(iterator)(other.begin_); - end_ = ASIO_MOVE_CAST(iterator)(other.end_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Obtain an iterator that points to the start of the range. - iterator begin() const ASIO_NOEXCEPT - { - return begin_; - } - - /// Obtain an iterator that points to the end of the range. - iterator end() const ASIO_NOEXCEPT - { - return end_; - } - - /// Determine whether the range is empty. - bool empty() const ASIO_NOEXCEPT - { - return begin_ == end_; - } - - /// Find an address in the range. - iterator find(const address_v6& addr) const ASIO_NOEXCEPT - { - return addr >= *begin_ && addr < *end_ ? iterator(addr) : end_; - } - -private: - iterator begin_; - iterator end_; -}; - -/// Represents a range of IPv6 addresses. -typedef basic_address_range address_v6_range; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_V6_RANGE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/bad_address_cast.hpp b/Sources/Vendor/asio/include/asio/ip/bad_address_cast.hpp deleted file mode 100644 index 0838d4a..0000000 --- a/Sources/Vendor/asio/include/asio/ip/bad_address_cast.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// ip/bad_address_cast.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_BAD_ADDRESS_CAST_HPP -#define ASIO_IP_BAD_ADDRESS_CAST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Thrown to indicate a failed address conversion. -class bad_address_cast : -#if defined(ASIO_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS - public std::exception -#else - public std::bad_cast -#endif -{ -public: - /// Default constructor. - bad_address_cast() {} - - /// Destructor. - virtual ~bad_address_cast() ASIO_NOEXCEPT_OR_NOTHROW {} - - /// Get the message associated with the exception. - virtual const char* what() const ASIO_NOEXCEPT_OR_NOTHROW - { - return "bad address cast"; - } -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ADDRESS_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_endpoint.hpp b/Sources/Vendor/asio/include/asio/ip/basic_endpoint.hpp deleted file mode 100644 index 4418ee7..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_endpoint.hpp +++ /dev/null @@ -1,263 +0,0 @@ -// -// ip/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_BASIC_ENDPOINT_HPP -#define ASIO_IP_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/address.hpp" -#include "asio/ip/detail/endpoint.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Describes an endpoint for a version-independent IP socket. -/** - * The asio::ip::basic_endpoint class template describes an endpoint that - * may be associated with a particular socket. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template -class basic_endpoint -{ -public: - /// The protocol type associated with the endpoint. - typedef InternetProtocol protocol_type; - - /// The type of the endpoint structure. This type is dependent on the - /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined data_type; -#else - typedef asio::detail::socket_addr_type data_type; -#endif - - /// Default constructor. - basic_endpoint() - : impl_() - { - } - - /// Construct an endpoint using a port number, specified in the host's byte - /// order. The IP address will be the any address (i.e. INADDR_ANY or - /// in6addr_any). This constructor would typically be used for accepting new - /// connections. - /** - * @par Examples - * To initialise an IPv4 TCP endpoint for port 1234, use: - * @code - * asio::ip::tcp::endpoint ep(asio::ip::tcp::v4(), 1234); - * @endcode - * - * To specify an IPv6 UDP endpoint for port 9876, use: - * @code - * asio::ip::udp::endpoint ep(asio::ip::udp::v6(), 9876); - * @endcode - */ - basic_endpoint(const InternetProtocol& internet_protocol, - unsigned short port_num) - : impl_(internet_protocol.family(), port_num) - { - } - - /// Construct an endpoint using a port number and an IP address. This - /// constructor may be used for accepting connections on a specific interface - /// or for making a connection to a remote endpoint. - basic_endpoint(const asio::ip::address& addr, unsigned short port_num) - : impl_(addr, port_num) - { - } - - /// Copy constructor. - basic_endpoint(const basic_endpoint& other) - : impl_(other.impl_) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - basic_endpoint(basic_endpoint&& other) - : impl_(other.impl_) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Assign from another endpoint. - basic_endpoint& operator=(const basic_endpoint& other) - { - impl_ = other.impl_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-assign from another endpoint. - basic_endpoint& operator=(basic_endpoint&& other) - { - impl_ = other.impl_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// The protocol associated with the endpoint. - protocol_type protocol() const - { - if (impl_.is_v4()) - return InternetProtocol::v4(); - return InternetProtocol::v6(); - } - - /// Get the underlying endpoint in the native type. - data_type* data() - { - return impl_.data(); - } - - /// Get the underlying endpoint in the native type. - const data_type* data() const - { - return impl_.data(); - } - - /// Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return impl_.size(); - } - - /// Set the underlying size of the endpoint in the native type. - void resize(std::size_t new_size) - { - impl_.resize(new_size); - } - - /// Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return impl_.capacity(); - } - - /// Get the port associated with the endpoint. The port number is always in - /// the host's byte order. - unsigned short port() const - { - return impl_.port(); - } - - /// Set the port associated with the endpoint. The port number is always in - /// the host's byte order. - void port(unsigned short port_num) - { - impl_.port(port_num); - } - - /// Get the IP address associated with the endpoint. - asio::ip::address address() const - { - return impl_.address(); - } - - /// Set the IP address associated with the endpoint. - void address(const asio::ip::address& addr) - { - impl_.address(addr); - } - - /// Compare two endpoints for equality. - friend bool operator==(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ == e2.impl_; - } - - /// Compare two endpoints for inequality. - friend bool operator!=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1 == e2); - } - - /// Compare endpoints for ordering. - friend bool operator<(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ < e2.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator>(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e2.impl_ < e1.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator<=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e2 < e1); - } - - /// Compare endpoints for ordering. - friend bool operator>=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1 < e2); - } - -private: - // The underlying IP endpoint. - asio::ip::detail::endpoint impl_; -}; - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output an endpoint as a string. -/** - * Used to output a human-readable string for a specified endpoint. - * - * @param os The output stream to which the string will be written. - * - * @param endpoint The endpoint to be written. - * - * @return The output stream. - * - * @relates asio::ip::basic_endpoint - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, - const basic_endpoint& endpoint); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/basic_endpoint.hpp" - -#endif // ASIO_IP_BASIC_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver.hpp deleted file mode 100644 index 9f40895..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver.hpp +++ /dev/null @@ -1,1020 +0,0 @@ -// -// ip/basic_resolver.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_BASIC_RESOLVER_HPP -#define ASIO_IP_BASIC_RESOLVER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" -#include "asio/ip/resolver_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/ip/resolver_service.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_resolver_service.hpp" -# define ASIO_SVC_T \ - asio::detail::winrt_resolver_service -# else -# include "asio/detail/resolver_service.hpp" -# define ASIO_SVC_T \ - asio::detail::resolver_service -# endif -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Provides endpoint resolution functionality. -/** - * The basic_resolver class template provides the ability to resolve a query - * to a list of endpoints. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template )> -class basic_resolver - : ASIO_SVC_ACCESS basic_io_object, - public resolver_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The protocol type. - typedef InternetProtocol protocol_type; - - /// The endpoint type. - typedef typename InternetProtocol::endpoint endpoint_type; - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated.) The query type. - typedef basic_resolver_query query; - - /// (Deprecated.) The iterator type. - typedef basic_resolver_iterator iterator; -#endif // !defined(ASIO_NO_DEPRECATED) - - /// The results type. - typedef basic_resolver_results results_type; - - /// Constructor. - /** - * This constructor creates a basic_resolver. - * - * @param io_context The io_context object that the resolver will use to - * dispatch handlers for any asynchronous operations performed on the - * resolver. - */ - explicit basic_resolver(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_resolver from another. - /** - * This constructor moves a resolver from one object to another. - * - * @param other The other basic_resolver object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_resolver(io_context&) constructor. - */ - basic_resolver(basic_resolver&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a basic_resolver from another. - /** - * This assignment operator moves a resolver from one object to another. - * Cancels any outstanding asynchronous operations associated with the target - * object. - * - * @param other The other basic_resolver object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_resolver(io_context&) constructor. - */ - basic_resolver& operator=(basic_resolver&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the resolver. - /** - * This function destroys the resolver, cancelling any outstanding - * asynchronous wait operations associated with the resolver as if by calling - * @c cancel. - */ - ~basic_resolver() - { - } - -#if defined(ASIO_ENABLE_OLD_SERVICES) - // These functions are provided by basic_io_object<>. -#else // defined(ASIO_ENABLE_OLD_SERVICES) -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - - /// Cancel any asynchronous operations that are waiting on the resolver. - /** - * This function forces the completion of any pending asynchronous - * operations on the host resolver. The handler for each cancelled operation - * will be invoked with the asio::error::operation_aborted error code. - */ - void cancel() - { - return this->get_service().cancel(this->get_implementation()); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use overload with separate host and service parameters.) - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve a query into a list of endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - */ - results_type resolve(const query& q) - { - asio::error_code ec; - results_type r = this->get_service().resolve( - this->get_implementation(), q, ec); - asio::detail::throw_error(ec, "resolve"); - return r; - } - - /// (Deprecated: Use overload with separate host and service parameters.) - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve a query into a list of endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - */ - results_type resolve(const query& q, asio::error_code& ec) - { - return this->get_service().resolve(this->get_implementation(), q, ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service) - { - return resolve(host, service, resolver_base::flags()); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, asio::error_code& ec) - { - return resolve(host, service, resolver_base::flags(), ec); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, resolver_base::flags resolve_flags) - { - asio::error_code ec; - basic_resolver_query q(static_cast(host), - static_cast(service), resolve_flags); - results_type r = this->get_service().resolve( - this->get_implementation(), q, ec); - asio::detail::throw_error(ec, "resolve"); - return r; - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, resolver_base::flags resolve_flags, - asio::error_code& ec) - { - basic_resolver_query q(static_cast(host), - static_cast(service), resolve_flags); - return this->get_service().resolve(this->get_implementation(), q, ec); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service) - { - return resolve(protocol, host, service, resolver_base::flags()); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - asio::error_code& ec) - { - return resolve(protocol, host, service, resolver_base::flags(), ec); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - resolver_base::flags resolve_flags) - { - asio::error_code ec; - basic_resolver_query q( - protocol, static_cast(host), - static_cast(service), resolve_flags); - results_type r = this->get_service().resolve( - this->get_implementation(), q, ec); - asio::detail::throw_error(ec, "resolve"); - return r; - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - results_type resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - resolver_base::flags resolve_flags, asio::error_code& ec) - { - basic_resolver_query q( - protocol, static_cast(host), - static_cast(service), resolve_flags); - return this->get_service().resolve(this->get_implementation(), q, ec); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use overload with separate host and service parameters.) - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to asynchronously resolve a query into a list of - * endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(const query& q, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ResolveHandler. - ASIO_RESOLVE_HANDLER_CHECK( - ResolveHandler, handler, results_type) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_resolve(this->get_implementation(), q, - ASIO_MOVE_CAST(ResolveHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - asio::async_completion init(handler); - - this->get_service().async_resolve( - this->get_implementation(), q, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - return async_resolve(host, service, resolver_base::flags(), - ASIO_MOVE_CAST(ResolveHandler)(handler)); - } - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(ASIO_STRING_VIEW_PARAM host, - ASIO_STRING_VIEW_PARAM service, - resolver_base::flags resolve_flags, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ResolveHandler. - ASIO_RESOLVE_HANDLER_CHECK( - ResolveHandler, handler, results_type) type_check; - - basic_resolver_query q(static_cast(host), - static_cast(service), resolve_flags); - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_resolve(this->get_implementation(), q, - ASIO_MOVE_CAST(ResolveHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - asio::async_completion init(handler); - - this->get_service().async_resolve( - this->get_implementation(), q, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - return async_resolve(protocol, host, service, resolver_base::flags(), - ASIO_MOVE_CAST(ResolveHandler)(handler)); - } - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve host and service names into a list of - * endpoint entries. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(const protocol_type& protocol, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service, - resolver_base::flags resolve_flags, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ResolveHandler. - ASIO_RESOLVE_HANDLER_CHECK( - ResolveHandler, handler, results_type) type_check; - - basic_resolver_query q( - protocol, static_cast(host), - static_cast(service), resolve_flags); - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_resolve(this->get_implementation(), q, - ASIO_MOVE_CAST(ResolveHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - asio::async_completion init(handler); - - this->get_service().async_resolve( - this->get_implementation(), q, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } - - /// Perform reverse resolution of an endpoint to a list of entries. - /** - * This function is used to resolve an endpoint into a list of endpoint - * entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @returns A range object representing the list of endpoint entries. A - * successful call to this function is guaranteed to return a non-empty - * range. - * - * @throws asio::system_error Thrown on failure. - */ - results_type resolve(const endpoint_type& e) - { - asio::error_code ec; - results_type i = this->get_service().resolve( - this->get_implementation(), e, ec); - asio::detail::throw_error(ec, "resolve"); - return i; - } - - /// Perform reverse resolution of an endpoint to a list of entries. - /** - * This function is used to resolve an endpoint into a list of endpoint - * entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A range object representing the list of endpoint entries. An - * empty range is returned if an error occurs. A successful call to this - * function is guaranteed to return a non-empty range. - */ - results_type resolve(const endpoint_type& e, asio::error_code& ec) - { - return this->get_service().resolve(this->get_implementation(), e, ec); - } - - /// Asynchronously perform reverse resolution of an endpoint to a list of - /// entries. - /** - * This function is used to asynchronously resolve an endpoint into a list of - * endpoint entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * resolver::results_type results // Resolved endpoints as a range. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * A successful resolve operation is guaranteed to pass a non-empty range to - * the handler. - */ - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(const endpoint_type& e, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ResolveHandler. - ASIO_RESOLVE_HANDLER_CHECK( - ResolveHandler, handler, results_type) type_check; - -#if defined(ASIO_ENABLE_OLD_SERVICES) - return this->get_service().async_resolve(this->get_implementation(), e, - ASIO_MOVE_CAST(ResolveHandler)(handler)); -#else // defined(ASIO_ENABLE_OLD_SERVICES) - asio::async_completion init(handler); - - this->get_service().async_resolve( - this->get_implementation(), e, init.completion_handler); - - return init.result.get(); -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - } -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_IP_BASIC_RESOLVER_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver_entry.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver_entry.hpp deleted file mode 100644 index 99bcbd2..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver_entry.hpp +++ /dev/null @@ -1,113 +0,0 @@ -// -// ip/basic_resolver_entry.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_BASIC_RESOLVER_ENTRY_HPP -#define ASIO_IP_BASIC_RESOLVER_ENTRY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/string_view.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// An entry produced by a resolver. -/** - * The asio::ip::basic_resolver_entry class template describes an entry - * as returned by a resolver. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_entry -{ -public: - /// The protocol type associated with the endpoint entry. - typedef InternetProtocol protocol_type; - - /// The endpoint type associated with the endpoint entry. - typedef typename InternetProtocol::endpoint endpoint_type; - - /// Default constructor. - basic_resolver_entry() - { - } - - /// Construct with specified endpoint, host name and service name. - basic_resolver_entry(const endpoint_type& ep, - ASIO_STRING_VIEW_PARAM host, ASIO_STRING_VIEW_PARAM service) - : endpoint_(ep), - host_name_(static_cast(host)), - service_name_(static_cast(service)) - { - } - - /// Get the endpoint associated with the entry. - endpoint_type endpoint() const - { - return endpoint_; - } - - /// Convert to the endpoint associated with the entry. - operator endpoint_type() const - { - return endpoint_; - } - - /// Get the host name associated with the entry. - std::string host_name() const - { - return host_name_; - } - - /// Get the host name associated with the entry. - template - std::basic_string, Allocator> host_name( - const Allocator& alloc = Allocator()) const - { - return std::basic_string, Allocator>( - host_name_.c_str(), alloc); - } - - /// Get the service name associated with the entry. - std::string service_name() const - { - return service_name_; - } - - /// Get the service name associated with the entry. - template - std::basic_string, Allocator> service_name( - const Allocator& alloc = Allocator()) const - { - return std::basic_string, Allocator>( - service_name_.c_str(), alloc); - } - -private: - endpoint_type endpoint_; - std::string host_name_; - std::string service_name_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_BASIC_RESOLVER_ENTRY_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver_iterator.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver_iterator.hpp deleted file mode 100644 index ec5412c..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver_iterator.hpp +++ /dev/null @@ -1,192 +0,0 @@ -// -// ip/basic_resolver_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_BASIC_RESOLVER_ITERATOR_HPP -#define ASIO_IP_BASIC_RESOLVER_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include -#include "asio/detail/memory.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/ip/basic_resolver_entry.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_utils.hpp" -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// An iterator over the entries produced by a resolver. -/** - * The asio::ip::basic_resolver_iterator class template is used to define - * iterators over the results returned by a resolver. - * - * The iterator's value_type, obtained when the iterator is dereferenced, is: - * @code const basic_resolver_entry @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_iterator -{ -public: - /// The type used for the distance between two iterators. - typedef std::ptrdiff_t difference_type; - - /// The type of the value pointed to by the iterator. - typedef basic_resolver_entry value_type; - - /// The type of the result of applying operator->() to the iterator. - typedef const basic_resolver_entry* pointer; - - /// The type of the result of applying operator*() to the iterator. - typedef const basic_resolver_entry& reference; - - /// The iterator category. - typedef std::forward_iterator_tag iterator_category; - - /// Default constructor creates an end iterator. - basic_resolver_iterator() - : index_(0) - { - } - - /// Copy constructor. - basic_resolver_iterator(const basic_resolver_iterator& other) - : values_(other.values_), - index_(other.index_) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - basic_resolver_iterator(basic_resolver_iterator&& other) - : values_(ASIO_MOVE_CAST(values_ptr_type)(other.values_)), - index_(other.index_) - { - other.index_ = 0; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Assignment operator. - basic_resolver_iterator& operator=(const basic_resolver_iterator& other) - { - values_ = other.values_; - index_ = other.index_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-assignment operator. - basic_resolver_iterator& operator=(basic_resolver_iterator&& other) - { - if (this != &other) - { - values_ = ASIO_MOVE_CAST(values_ptr_type)(other.values_); - index_ = other.index_; - other.index_ = 0; - } - - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Dereference an iterator. - const basic_resolver_entry& operator*() const - { - return dereference(); - } - - /// Dereference an iterator. - const basic_resolver_entry* operator->() const - { - return &dereference(); - } - - /// Increment operator (prefix). - basic_resolver_iterator& operator++() - { - increment(); - return *this; - } - - /// Increment operator (postfix). - basic_resolver_iterator operator++(int) - { - basic_resolver_iterator tmp(*this); - ++*this; - return tmp; - } - - /// Test two iterators for equality. - friend bool operator==(const basic_resolver_iterator& a, - const basic_resolver_iterator& b) - { - return a.equal(b); - } - - /// Test two iterators for inequality. - friend bool operator!=(const basic_resolver_iterator& a, - const basic_resolver_iterator& b) - { - return !a.equal(b); - } - -protected: - void increment() - { - if (++index_ == values_->size()) - { - // Reset state to match a default constructed end iterator. - values_.reset(); - index_ = 0; - } - } - - bool equal(const basic_resolver_iterator& other) const - { - if (!values_ && !other.values_) - return true; - if (values_ != other.values_) - return false; - return index_ == other.index_; - } - - const basic_resolver_entry& dereference() const - { - return (*values_)[index_]; - } - - typedef std::vector > values_type; - typedef asio::detail::shared_ptr values_ptr_type; - values_ptr_type values_; - std::size_t index_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_BASIC_RESOLVER_ITERATOR_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver_query.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver_query.hpp deleted file mode 100644 index 84cd98d..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver_query.hpp +++ /dev/null @@ -1,244 +0,0 @@ -// -// ip/basic_resolver_query.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_BASIC_RESOLVER_QUERY_HPP -#define ASIO_IP_BASIC_RESOLVER_QUERY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/ip/resolver_query_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// An query to be passed to a resolver. -/** - * The asio::ip::basic_resolver_query class template describes a query - * that can be passed to a resolver. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_query - : public resolver_query_base -{ -public: - /// The protocol type associated with the endpoint query. - typedef InternetProtocol protocol_type; - - /// Construct with specified service name for any protocol. - /** - * This constructor is typically used to perform name resolution for local - * service binding. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for local service - * binding. - * - * @note On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - basic_resolver_query(const std::string& service, - resolver_query_base::flags resolve_flags = passive | address_configured) - : hints_(), - host_name_(), - service_name_(service) - { - typename InternetProtocol::endpoint endpoint; - hints_.ai_flags = static_cast(resolve_flags); - hints_.ai_family = PF_UNSPEC; - hints_.ai_socktype = endpoint.protocol().type(); - hints_.ai_protocol = endpoint.protocol().protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified service name for a given protocol. - /** - * This constructor is typically used to perform name resolution for local - * service binding with a specific protocol version. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for local service - * binding. - * - * @note On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - basic_resolver_query(const protocol_type& protocol, - const std::string& service, - resolver_query_base::flags resolve_flags = passive | address_configured) - : hints_(), - host_name_(), - service_name_(service) - { - hints_.ai_flags = static_cast(resolve_flags); - hints_.ai_family = protocol.family(); - hints_.ai_socktype = protocol.type(); - hints_.ai_protocol = protocol.protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified host name and service name for any protocol. - /** - * This constructor is typically used to perform name resolution for - * communication with remote hosts. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - basic_resolver_query(const std::string& host, const std::string& service, - resolver_query_base::flags resolve_flags = address_configured) - : hints_(), - host_name_(host), - service_name_(service) - { - typename InternetProtocol::endpoint endpoint; - hints_.ai_flags = static_cast(resolve_flags); - hints_.ai_family = ASIO_OS_DEF(AF_UNSPEC); - hints_.ai_socktype = endpoint.protocol().type(); - hints_.ai_protocol = endpoint.protocol().protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified host name and service name for a given protocol. - /** - * This constructor is typically used to perform name resolution for - * communication with remote hosts. - * - * @param protocol A protocol object, normally representing either the IPv4 or - * IPv6 version of an internet protocol. - * - * @param host A string identifying a location. May be a descriptive name or - * a numeric address string. If an empty string and the passive flag has been - * specified, the resolved endpoints are suitable for local service binding. - * If an empty string and passive is not specified, the resolved endpoints - * will use the loopback address. - * - * @param service A string identifying the requested service. This may be a - * descriptive name or a numeric string corresponding to a port number. May - * be an empty string, in which case all resolved endpoints will have a port - * number of 0. - * - * @param resolve_flags A set of flags that determine how name resolution - * should be performed. The default flags are suitable for communication with - * remote hosts. - * - * @note On POSIX systems, host names may be locally defined in the file - * /etc/hosts. On Windows, host names may be defined in the file - * c:\\windows\\system32\\drivers\\etc\\hosts. Remote host name - * resolution is performed using DNS. Operating systems may use additional - * locations when resolving host names (such as NETBIOS names on Windows). - * - * On POSIX systems, service names are typically defined in the file - * /etc/services. On Windows, service names may be found in the file - * c:\\windows\\system32\\drivers\\etc\\services. Operating systems - * may use additional locations when resolving service names. - */ - basic_resolver_query(const protocol_type& protocol, - const std::string& host, const std::string& service, - resolver_query_base::flags resolve_flags = address_configured) - : hints_(), - host_name_(host), - service_name_(service) - { - hints_.ai_flags = static_cast(resolve_flags); - hints_.ai_family = protocol.family(); - hints_.ai_socktype = protocol.type(); - hints_.ai_protocol = protocol.protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Get the hints associated with the query. - const asio::detail::addrinfo_type& hints() const - { - return hints_; - } - - /// Get the host name associated with the query. - std::string host_name() const - { - return host_name_; - } - - /// Get the service name associated with the query. - std::string service_name() const - { - return service_name_; - } - -private: - asio::detail::addrinfo_type hints_; - std::string host_name_; - std::string service_name_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_BASIC_RESOLVER_QUERY_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/basic_resolver_results.hpp b/Sources/Vendor/asio/include/asio/ip/basic_resolver_results.hpp deleted file mode 100644 index b87e336..0000000 --- a/Sources/Vendor/asio/include/asio/ip/basic_resolver_results.hpp +++ /dev/null @@ -1,311 +0,0 @@ -// -// ip/basic_resolver_results.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_BASIC_RESOLVER_RESULTS_HPP -#define ASIO_IP_BASIC_RESOLVER_RESULTS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_utils.hpp" -#endif // defined(ASIO_WINDOWS_RUNTIME) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// A range of entries produced by a resolver. -/** - * The asio::ip::basic_resolver_results class template is used to define - * a range over the results returned by a resolver. - * - * The iterator's value_type, obtained when a results iterator is dereferenced, - * is: @code const basic_resolver_entry @endcode - * - * @note For backward compatibility, basic_resolver_results is derived from - * basic_resolver_iterator. This derivation is deprecated. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_results -#if !defined(ASIO_NO_DEPRECATED) - : public basic_resolver_iterator -#else // !defined(ASIO_NO_DEPRECATED) - : private basic_resolver_iterator -#endif // !defined(ASIO_NO_DEPRECATED) -{ -public: - /// The protocol type associated with the results. - typedef InternetProtocol protocol_type; - - /// The endpoint type associated with the results. - typedef typename protocol_type::endpoint endpoint_type; - - /// The type of a value in the results range. - typedef basic_resolver_entry value_type; - - /// The type of a const reference to a value in the range. - typedef const value_type& const_reference; - - /// The type of a non-const reference to a value in the range. - typedef value_type& reference; - - /// The type of an iterator into the range. - typedef basic_resolver_iterator const_iterator; - - /// The type of an iterator into the range. - typedef const_iterator iterator; - - /// Type used to represent the distance between two iterators in the range. - typedef std::ptrdiff_t difference_type; - - /// Type used to represent a count of the elements in the range. - typedef std::size_t size_type; - - /// Default constructor creates an empty range. - basic_resolver_results() - { - } - - /// Copy constructor. - basic_resolver_results(const basic_resolver_results& other) - : basic_resolver_iterator(other) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - basic_resolver_results(basic_resolver_results&& other) - : basic_resolver_iterator( - ASIO_MOVE_CAST(basic_resolver_results)(other)) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Assignment operator. - basic_resolver_results& operator=(const basic_resolver_results& other) - { - basic_resolver_iterator::operator=(other); - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-assignment operator. - basic_resolver_results& operator=(basic_resolver_results&& other) - { - basic_resolver_iterator::operator=( - ASIO_MOVE_CAST(basic_resolver_results)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if !defined(GENERATING_DOCUMENTATION) - // Create results from an addrinfo list returned by getaddrinfo. - static basic_resolver_results create( - asio::detail::addrinfo_type* address_info, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_results results; - if (!address_info) - return results; - - std::string actual_host_name = host_name; - if (address_info->ai_canonname) - actual_host_name = address_info->ai_canonname; - - results.values_.reset(new values_type); - - while (address_info) - { - if (address_info->ai_family == ASIO_OS_DEF(AF_INET) - || address_info->ai_family == ASIO_OS_DEF(AF_INET6)) - { - using namespace std; // For memcpy. - typename InternetProtocol::endpoint endpoint; - endpoint.resize(static_cast(address_info->ai_addrlen)); - memcpy(endpoint.data(), address_info->ai_addr, - address_info->ai_addrlen); - results.values_->push_back( - basic_resolver_entry(endpoint, - actual_host_name, service_name)); - } - address_info = address_info->ai_next; - } - - return results; - } - - // Create results from an endpoint, host name and service name. - static basic_resolver_results create(const endpoint_type& endpoint, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_results results; - results.values_.reset(new values_type); - results.values_->push_back( - basic_resolver_entry( - endpoint, host_name, service_name)); - return results; - } - - // Create results from a sequence of endpoints, host and service name. - template - static basic_resolver_results create( - EndpointIterator begin, EndpointIterator end, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_results results; - if (begin != end) - { - results.values_.reset(new values_type); - for (EndpointIterator ep_iter = begin; ep_iter != end; ++ep_iter) - { - results.values_->push_back( - basic_resolver_entry( - *ep_iter, host_name, service_name)); - } - } - return results; - } - -# if defined(ASIO_WINDOWS_RUNTIME) - // Create results from a Windows Runtime list of EndpointPair objects. - static basic_resolver_results create( - Windows::Foundation::Collections::IVectorView< - Windows::Networking::EndpointPair^>^ endpoints, - const asio::detail::addrinfo_type& hints, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_results results; - if (endpoints->Size) - { - results.values_.reset(new values_type); - for (unsigned int i = 0; i < endpoints->Size; ++i) - { - auto pair = endpoints->GetAt(i); - - if (hints.ai_family == ASIO_OS_DEF(AF_INET) - && pair->RemoteHostName->Type - != Windows::Networking::HostNameType::Ipv4) - continue; - - if (hints.ai_family == ASIO_OS_DEF(AF_INET6) - && pair->RemoteHostName->Type - != Windows::Networking::HostNameType::Ipv6) - continue; - - results.values_->push_back( - basic_resolver_entry( - typename InternetProtocol::endpoint( - ip::make_address( - asio::detail::winrt_utils::string( - pair->RemoteHostName->CanonicalName)), - asio::detail::winrt_utils::integer( - pair->RemoteServiceName)), - host_name, service_name)); - } - } - return results; - } -# endif // defined(ASIO_WINDOWS_RUNTIME) -#endif // !defined(GENERATING_DOCUMENTATION) - - /// Get the number of entries in the results range. - size_type size() const ASIO_NOEXCEPT - { - return this->values_ ? this->values_->size() : 0; - } - - /// Get the maximum number of entries permitted in a results range. - size_type max_size() const ASIO_NOEXCEPT - { - return this->values_ ? this->values_->max_size() : values_type().max_size(); - } - - /// Determine whether the results range is empty. - bool empty() const ASIO_NOEXCEPT - { - return this->values_ ? this->values_->empty() : true; - } - - /// Obtain a begin iterator for the results range. - const_iterator begin() const - { - basic_resolver_results tmp(*this); - tmp.index_ = 0; - return ASIO_MOVE_CAST(basic_resolver_results)(tmp); - } - - /// Obtain an end iterator for the results range. - const_iterator end() const - { - return const_iterator(); - } - - /// Obtain a begin iterator for the results range. - const_iterator cbegin() const - { - return begin(); - } - - /// Obtain an end iterator for the results range. - const_iterator cend() const - { - return end(); - } - - /// Swap the results range with another. - void swap(basic_resolver_results& that) ASIO_NOEXCEPT - { - if (this != &that) - { - this->values_.swap(that.values_); - std::size_t index = this->index_; - this->index_ = that.index_; - that.index_ = index; - } - } - - /// Test two iterators for equality. - friend bool operator==(const basic_resolver_results& a, - const basic_resolver_results& b) - { - return a.equal(b); - } - - /// Test two iterators for inequality. - friend bool operator!=(const basic_resolver_results& a, - const basic_resolver_results& b) - { - return !a.equal(b); - } - -private: - typedef std::vector > values_type; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_BASIC_RESOLVER_RESULTS_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/detail/endpoint.hpp b/Sources/Vendor/asio/include/asio/ip/detail/endpoint.hpp deleted file mode 100644 index 9acefe5..0000000 --- a/Sources/Vendor/asio/include/asio/ip/detail/endpoint.hpp +++ /dev/null @@ -1,139 +0,0 @@ -// -// ip/detail/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_DETAIL_ENDPOINT_HPP -#define ASIO_IP_DETAIL_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/socket_types.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace detail { - -// Helper class for implementating an IP endpoint. -class endpoint -{ -public: - // Default constructor. - ASIO_DECL endpoint(); - - // Construct an endpoint using a family and port number. - ASIO_DECL endpoint(int family, unsigned short port_num); - - // Construct an endpoint using an address and port number. - ASIO_DECL endpoint(const asio::ip::address& addr, - unsigned short port_num); - - // Copy constructor. - endpoint(const endpoint& other) - : data_(other.data_) - { - } - - // Assign from another endpoint. - endpoint& operator=(const endpoint& other) - { - data_ = other.data_; - return *this; - } - - // Get the underlying endpoint in the native type. - asio::detail::socket_addr_type* data() - { - return &data_.base; - } - - // Get the underlying endpoint in the native type. - const asio::detail::socket_addr_type* data() const - { - return &data_.base; - } - - // Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - if (is_v4()) - return sizeof(asio::detail::sockaddr_in4_type); - else - return sizeof(asio::detail::sockaddr_in6_type); - } - - // Set the underlying size of the endpoint in the native type. - ASIO_DECL void resize(std::size_t new_size); - - // Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return sizeof(data_); - } - - // Get the port associated with the endpoint. - ASIO_DECL unsigned short port() const; - - // Set the port associated with the endpoint. - ASIO_DECL void port(unsigned short port_num); - - // Get the IP address associated with the endpoint. - ASIO_DECL asio::ip::address address() const; - - // Set the IP address associated with the endpoint. - ASIO_DECL void address(const asio::ip::address& addr); - - // Compare two endpoints for equality. - ASIO_DECL friend bool operator==( - const endpoint& e1, const endpoint& e2); - - // Compare endpoints for ordering. - ASIO_DECL friend bool operator<( - const endpoint& e1, const endpoint& e2); - - // Determine whether the endpoint is IPv4. - bool is_v4() const - { - return data_.base.sa_family == ASIO_OS_DEF(AF_INET); - } - -#if !defined(ASIO_NO_IOSTREAM) - // Convert to a string. - ASIO_DECL std::string to_string() const; -#endif // !defined(ASIO_NO_IOSTREAM) - -private: - // The underlying IP socket address. - union data_union - { - asio::detail::socket_addr_type base; - asio::detail::sockaddr_in4_type v4; - asio::detail::sockaddr_in6_type v6; - } data_; -}; - -} // namespace detail -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/detail/impl/endpoint.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_DETAIL_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/detail/impl/endpoint.ipp b/Sources/Vendor/asio/include/asio/ip/detail/impl/endpoint.ipp deleted file mode 100644 index 304bdf3..0000000 --- a/Sources/Vendor/asio/include/asio/ip/detail/impl/endpoint.ipp +++ /dev/null @@ -1,199 +0,0 @@ -// -// ip/detail/impl/endpoint.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_DETAIL_IMPL_ENDPOINT_IPP -#define ASIO_IP_DETAIL_IMPL_ENDPOINT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/ip/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace detail { - -endpoint::endpoint() - : data_() -{ - data_.v4.sin_family = ASIO_OS_DEF(AF_INET); - data_.v4.sin_port = 0; - data_.v4.sin_addr.s_addr = ASIO_OS_DEF(INADDR_ANY); -} - -endpoint::endpoint(int family, unsigned short port_num) - : data_() -{ - using namespace std; // For memcpy. - if (family == ASIO_OS_DEF(AF_INET)) - { - data_.v4.sin_family = ASIO_OS_DEF(AF_INET); - data_.v4.sin_port = - asio::detail::socket_ops::host_to_network_short(port_num); - data_.v4.sin_addr.s_addr = ASIO_OS_DEF(INADDR_ANY); - } - else - { - data_.v6.sin6_family = ASIO_OS_DEF(AF_INET6); - data_.v6.sin6_port = - asio::detail::socket_ops::host_to_network_short(port_num); - data_.v6.sin6_flowinfo = 0; - data_.v6.sin6_addr.s6_addr[0] = 0; data_.v6.sin6_addr.s6_addr[1] = 0; - data_.v6.sin6_addr.s6_addr[2] = 0; data_.v6.sin6_addr.s6_addr[3] = 0; - data_.v6.sin6_addr.s6_addr[4] = 0; data_.v6.sin6_addr.s6_addr[5] = 0; - data_.v6.sin6_addr.s6_addr[6] = 0; data_.v6.sin6_addr.s6_addr[7] = 0; - data_.v6.sin6_addr.s6_addr[8] = 0; data_.v6.sin6_addr.s6_addr[9] = 0; - data_.v6.sin6_addr.s6_addr[10] = 0; data_.v6.sin6_addr.s6_addr[11] = 0; - data_.v6.sin6_addr.s6_addr[12] = 0; data_.v6.sin6_addr.s6_addr[13] = 0; - data_.v6.sin6_addr.s6_addr[14] = 0; data_.v6.sin6_addr.s6_addr[15] = 0; - data_.v6.sin6_scope_id = 0; - } -} - -endpoint::endpoint(const asio::ip::address& addr, - unsigned short port_num) - : data_() -{ - using namespace std; // For memcpy. - if (addr.is_v4()) - { - data_.v4.sin_family = ASIO_OS_DEF(AF_INET); - data_.v4.sin_port = - asio::detail::socket_ops::host_to_network_short(port_num); - data_.v4.sin_addr.s_addr = - asio::detail::socket_ops::host_to_network_long( - addr.to_v4().to_uint()); - } - else - { - data_.v6.sin6_family = ASIO_OS_DEF(AF_INET6); - data_.v6.sin6_port = - asio::detail::socket_ops::host_to_network_short(port_num); - data_.v6.sin6_flowinfo = 0; - asio::ip::address_v6 v6_addr = addr.to_v6(); - asio::ip::address_v6::bytes_type bytes = v6_addr.to_bytes(); - memcpy(data_.v6.sin6_addr.s6_addr, bytes.data(), 16); - data_.v6.sin6_scope_id = - static_cast( - v6_addr.scope_id()); - } -} - -void endpoint::resize(std::size_t new_size) -{ - if (new_size > sizeof(asio::detail::sockaddr_storage_type)) - { - asio::error_code ec(asio::error::invalid_argument); - asio::detail::throw_error(ec); - } -} - -unsigned short endpoint::port() const -{ - if (is_v4()) - { - return asio::detail::socket_ops::network_to_host_short( - data_.v4.sin_port); - } - else - { - return asio::detail::socket_ops::network_to_host_short( - data_.v6.sin6_port); - } -} - -void endpoint::port(unsigned short port_num) -{ - if (is_v4()) - { - data_.v4.sin_port - = asio::detail::socket_ops::host_to_network_short(port_num); - } - else - { - data_.v6.sin6_port - = asio::detail::socket_ops::host_to_network_short(port_num); - } -} - -asio::ip::address endpoint::address() const -{ - using namespace std; // For memcpy. - if (is_v4()) - { - return asio::ip::address_v4( - asio::detail::socket_ops::network_to_host_long( - data_.v4.sin_addr.s_addr)); - } - else - { - asio::ip::address_v6::bytes_type bytes; -#if defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.data(), data_.v6.sin6_addr.s6_addr, 16); -#else // defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.elems, data_.v6.sin6_addr.s6_addr, 16); -#endif // defined(ASIO_HAS_STD_ARRAY) - return asio::ip::address_v6(bytes, data_.v6.sin6_scope_id); - } -} - -void endpoint::address(const asio::ip::address& addr) -{ - endpoint tmp_endpoint(addr, port()); - data_ = tmp_endpoint.data_; -} - -bool operator==(const endpoint& e1, const endpoint& e2) -{ - return e1.address() == e2.address() && e1.port() == e2.port(); -} - -bool operator<(const endpoint& e1, const endpoint& e2) -{ - if (e1.address() < e2.address()) - return true; - if (e1.address() != e2.address()) - return false; - return e1.port() < e2.port(); -} - -#if !defined(ASIO_NO_IOSTREAM) -std::string endpoint::to_string() const -{ - std::ostringstream tmp_os; - tmp_os.imbue(std::locale::classic()); - if (is_v4()) - tmp_os << address(); - else - tmp_os << '[' << address() << ']'; - tmp_os << ':' << port(); - - return tmp_os.str(); -} -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace detail -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_DETAIL_IMPL_ENDPOINT_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/detail/socket_option.hpp b/Sources/Vendor/asio/include/asio/ip/detail/socket_option.hpp deleted file mode 100644 index 051ef30..0000000 --- a/Sources/Vendor/asio/include/asio/ip/detail/socket_option.hpp +++ /dev/null @@ -1,566 +0,0 @@ -// -// detail/socket_option.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_DETAIL_SOCKET_OPTION_HPP -#define ASIO_IP_DETAIL_SOCKET_OPTION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/ip/address.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace detail { -namespace socket_option { - -// Helper template for implementing multicast enable loopback options. -template -class multicast_enable_loopback -{ -public: -#if defined(__sun) || defined(__osf__) - typedef unsigned char ipv4_value_type; - typedef unsigned char ipv6_value_type; -#elif defined(_AIX) || defined(__hpux) || defined(__QNXNTO__) - typedef unsigned char ipv4_value_type; - typedef unsigned int ipv6_value_type; -#else - typedef int ipv4_value_type; - typedef int ipv6_value_type; -#endif - - // Default constructor. - multicast_enable_loopback() - : ipv4_value_(0), - ipv6_value_(0) - { - } - - // Construct with a specific option value. - explicit multicast_enable_loopback(bool v) - : ipv4_value_(v ? 1 : 0), - ipv6_value_(v ? 1 : 0) - { - } - - // Set the value of the boolean. - multicast_enable_loopback& operator=(bool v) - { - ipv4_value_ = v ? 1 : 0; - ipv6_value_ = v ? 1 : 0; - return *this; - } - - // Get the current value of the boolean. - bool value() const - { - return !!ipv4_value_; - } - - // Convert to bool. - operator bool() const - { - return !!ipv4_value_; - } - - // Test for false. - bool operator!() const - { - return !ipv4_value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the boolean data. - template - void* data(const Protocol& protocol) - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the address of the boolean data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the boolean data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - - // Set the size of the boolean data. - template - void resize(const Protocol& protocol, std::size_t s) - { - if (protocol.family() == PF_INET6) - { - if (s != sizeof(ipv6_value_)) - { - std::length_error ex("multicast_enable_loopback socket option resize"); - asio::detail::throw_exception(ex); - } - ipv4_value_ = ipv6_value_ ? 1 : 0; - } - else - { - if (s != sizeof(ipv4_value_)) - { - std::length_error ex("multicast_enable_loopback socket option resize"); - asio::detail::throw_exception(ex); - } - ipv6_value_ = ipv4_value_ ? 1 : 0; - } - } - -private: - ipv4_value_type ipv4_value_; - ipv6_value_type ipv6_value_; -}; - -// Helper template for implementing unicast hops options. -template -class unicast_hops -{ -public: - // Default constructor. - unicast_hops() - : value_(0) - { - } - - // Construct with a specific option value. - explicit unicast_hops(int v) - : value_(v) - { - } - - // Set the value of the option. - unicast_hops& operator=(int v) - { - value_ = v; - return *this; - } - - // Get the current value of the option. - int value() const - { - return value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - { - std::length_error ex("unicast hops socket option resize"); - asio::detail::throw_exception(ex); - } -#if defined(__hpux) - if (value_ < 0) - value_ = value_ & 0xFF; -#endif - } - -private: - int value_; -}; - -// Helper template for implementing multicast hops options. -template -class multicast_hops -{ -public: -#if defined(ASIO_WINDOWS) && defined(UNDER_CE) - typedef int ipv4_value_type; -#else - typedef unsigned char ipv4_value_type; -#endif - typedef int ipv6_value_type; - - // Default constructor. - multicast_hops() - : ipv4_value_(0), - ipv6_value_(0) - { - } - - // Construct with a specific option value. - explicit multicast_hops(int v) - { - if (v < 0 || v > 255) - { - std::out_of_range ex("multicast hops value out of range"); - asio::detail::throw_exception(ex); - } - ipv4_value_ = (ipv4_value_type)v; - ipv6_value_ = v; - } - - // Set the value of the option. - multicast_hops& operator=(int v) - { - if (v < 0 || v > 255) - { - std::out_of_range ex("multicast hops value out of range"); - asio::detail::throw_exception(ex); - } - ipv4_value_ = (ipv4_value_type)v; - ipv6_value_ = v; - return *this; - } - - // Get the current value of the option. - int value() const - { - return ipv6_value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the data. - template - void* data(const Protocol& protocol) - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the address of the data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - - // Set the size of the data. - template - void resize(const Protocol& protocol, std::size_t s) - { - if (protocol.family() == PF_INET6) - { - if (s != sizeof(ipv6_value_)) - { - std::length_error ex("multicast hops socket option resize"); - asio::detail::throw_exception(ex); - } - if (ipv6_value_ < 0) - ipv4_value_ = 0; - else if (ipv6_value_ > 255) - ipv4_value_ = 255; - else - ipv4_value_ = (ipv4_value_type)ipv6_value_; - } - else - { - if (s != sizeof(ipv4_value_)) - { - std::length_error ex("multicast hops socket option resize"); - asio::detail::throw_exception(ex); - } - ipv6_value_ = ipv4_value_; - } - } - -private: - ipv4_value_type ipv4_value_; - ipv6_value_type ipv6_value_; -}; - -// Helper template for implementing ip_mreq-based options. -template -class multicast_request -{ -public: - // Default constructor. - multicast_request() - : ipv4_value_(), // Zero-initialisation gives the "any" address. - ipv6_value_() // Zero-initialisation gives the "any" address. - { - } - - // Construct with multicast address only. - explicit multicast_request(const address& multicast_address) - : ipv4_value_(), // Zero-initialisation gives the "any" address. - ipv6_value_() // Zero-initialisation gives the "any" address. - { - if (multicast_address.is_v6()) - { - using namespace std; // For memcpy. - address_v6 ipv6_address = multicast_address.to_v6(); - address_v6::bytes_type bytes = ipv6_address.to_bytes(); - memcpy(ipv6_value_.ipv6mr_multiaddr.s6_addr, bytes.data(), 16); - ipv6_value_.ipv6mr_interface = ipv6_address.scope_id(); - } - else - { - ipv4_value_.imr_multiaddr.s_addr = - asio::detail::socket_ops::host_to_network_long( - multicast_address.to_v4().to_uint()); - ipv4_value_.imr_interface.s_addr = - asio::detail::socket_ops::host_to_network_long( - address_v4::any().to_uint()); - } - } - - // Construct with multicast address and IPv4 address specifying an interface. - explicit multicast_request(const address_v4& multicast_address, - const address_v4& network_interface = address_v4::any()) - : ipv6_value_() // Zero-initialisation gives the "any" address. - { - ipv4_value_.imr_multiaddr.s_addr = - asio::detail::socket_ops::host_to_network_long( - multicast_address.to_uint()); - ipv4_value_.imr_interface.s_addr = - asio::detail::socket_ops::host_to_network_long( - network_interface.to_uint()); - } - - // Construct with multicast address and IPv6 network interface index. - explicit multicast_request( - const address_v6& multicast_address, - unsigned long network_interface = 0) - : ipv4_value_() // Zero-initialisation gives the "any" address. - { - using namespace std; // For memcpy. - address_v6::bytes_type bytes = multicast_address.to_bytes(); - memcpy(ipv6_value_.ipv6mr_multiaddr.s6_addr, bytes.data(), 16); - if (network_interface) - ipv6_value_.ipv6mr_interface = network_interface; - else - ipv6_value_.ipv6mr_interface = multicast_address.scope_id(); - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the option data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the option data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - -private: - asio::detail::in4_mreq_type ipv4_value_; - asio::detail::in6_mreq_type ipv6_value_; -}; - -// Helper template for implementing options that specify a network interface. -template -class network_interface -{ -public: - // Default constructor. - network_interface() - { - ipv4_value_.s_addr = - asio::detail::socket_ops::host_to_network_long( - address_v4::any().to_uint()); - ipv6_value_ = 0; - } - - // Construct with IPv4 interface. - explicit network_interface(const address_v4& ipv4_interface) - { - ipv4_value_.s_addr = - asio::detail::socket_ops::host_to_network_long( - ipv4_interface.to_uint()); - ipv6_value_ = 0; - } - - // Construct with IPv6 interface. - explicit network_interface(unsigned int ipv6_interface) - { - ipv4_value_.s_addr = - asio::detail::socket_ops::host_to_network_long( - address_v4::any().to_uint()); - ipv6_value_ = ipv6_interface; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the option data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the option data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - -private: - asio::detail::in4_addr_type ipv4_value_; - unsigned int ipv6_value_; -}; - -} // namespace socket_option -} // namespace detail -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_DETAIL_SOCKET_OPTION_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/host_name.hpp b/Sources/Vendor/asio/include/asio/ip/host_name.hpp deleted file mode 100644 index d06de50..0000000 --- a/Sources/Vendor/asio/include/asio/ip/host_name.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// ip/host_name.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_HOST_NAME_HPP -#define ASIO_IP_HOST_NAME_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/error_code.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Get the current host name. -ASIO_DECL std::string host_name(); - -/// Get the current host name. -ASIO_DECL std::string host_name(asio::error_code& ec); - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/host_name.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_HOST_NAME_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/icmp.hpp b/Sources/Vendor/asio/include/asio/ip/icmp.hpp deleted file mode 100644 index 92e1953..0000000 --- a/Sources/Vendor/asio/include/asio/ip/icmp.hpp +++ /dev/null @@ -1,115 +0,0 @@ -// -// ip/icmp.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_ICMP_HPP -#define ASIO_IP_ICMP_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/socket_types.hpp" -#include "asio/basic_raw_socket.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for ICMP. -/** - * The asio::ip::icmp class contains flags necessary for ICMP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class icmp -{ -public: - /// The type of a ICMP endpoint. - typedef basic_endpoint endpoint; - - /// Construct to represent the IPv4 ICMP protocol. - static icmp v4() - { - return icmp(ASIO_OS_DEF(IPPROTO_ICMP), - ASIO_OS_DEF(AF_INET)); - } - - /// Construct to represent the IPv6 ICMP protocol. - static icmp v6() - { - return icmp(ASIO_OS_DEF(IPPROTO_ICMPV6), - ASIO_OS_DEF(AF_INET6)); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_RAW); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The ICMP socket type. - typedef basic_raw_socket socket; - - /// The ICMP resolver type. - typedef basic_resolver resolver; - - /// Compare two protocols for equality. - friend bool operator==(const icmp& p1, const icmp& p2) - { - return p1.protocol_ == p2.protocol_ && p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const icmp& p1, const icmp& p2) - { - return p1.protocol_ != p2.protocol_ || p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit icmp(int protocol_id, int protocol_family) - : protocol_(protocol_id), - family_(protocol_family) - { - } - - int protocol_; - int family_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_ICMP_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address.hpp b/Sources/Vendor/asio/include/asio/ip/impl/address.hpp deleted file mode 100644 index 085b93f..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ip/impl/address.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_ADDRESS_HPP -#define ASIO_IP_IMPL_ADDRESS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -#if !defined(ASIO_NO_DEPRECATED) - -inline address address::from_string(const char* str) -{ - return asio::ip::make_address(str); -} - -inline address address::from_string( - const char* str, asio::error_code& ec) -{ - return asio::ip::make_address(str, ec); -} - -inline address address::from_string(const std::string& str) -{ - return asio::ip::make_address(str); -} - -inline address address::from_string( - const std::string& str, asio::error_code& ec) -{ - return asio::ip::make_address(str, ec); -} - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address& addr) -{ - return os << addr.to_string().c_str(); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_ADDRESS_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address.ipp b/Sources/Vendor/asio/include/asio/ip/impl/address.ipp deleted file mode 100644 index 0523071..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address.ipp +++ /dev/null @@ -1,234 +0,0 @@ -// -// ip/impl/address.ipp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_ADDRESS_IPP -#define ASIO_IP_IMPL_ADDRESS_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/error.hpp" -#include "asio/ip/address.hpp" -#include "asio/ip/bad_address_cast.hpp" -#include "asio/system_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -address::address() - : type_(ipv4), - ipv4_address_(), - ipv6_address_() -{ -} - -address::address(const asio::ip::address_v4& ipv4_address) - : type_(ipv4), - ipv4_address_(ipv4_address), - ipv6_address_() -{ -} - -address::address(const asio::ip::address_v6& ipv6_address) - : type_(ipv6), - ipv4_address_(), - ipv6_address_(ipv6_address) -{ -} - -address::address(const address& other) - : type_(other.type_), - ipv4_address_(other.ipv4_address_), - ipv6_address_(other.ipv6_address_) -{ -} - -#if defined(ASIO_HAS_MOVE) -address::address(address&& other) - : type_(other.type_), - ipv4_address_(other.ipv4_address_), - ipv6_address_(other.ipv6_address_) -{ -} -#endif // defined(ASIO_HAS_MOVE) - -address& address::operator=(const address& other) -{ - type_ = other.type_; - ipv4_address_ = other.ipv4_address_; - ipv6_address_ = other.ipv6_address_; - return *this; -} - -#if defined(ASIO_HAS_MOVE) -address& address::operator=(address&& other) -{ - type_ = other.type_; - ipv4_address_ = other.ipv4_address_; - ipv6_address_ = other.ipv6_address_; - return *this; -} -#endif // defined(ASIO_HAS_MOVE) - -address& address::operator=(const asio::ip::address_v4& ipv4_address) -{ - type_ = ipv4; - ipv4_address_ = ipv4_address; - ipv6_address_ = asio::ip::address_v6(); - return *this; -} - -address& address::operator=(const asio::ip::address_v6& ipv6_address) -{ - type_ = ipv6; - ipv4_address_ = asio::ip::address_v4(); - ipv6_address_ = ipv6_address; - return *this; -} - -address make_address(const char* str) -{ - asio::error_code ec; - address addr = make_address(str, ec); - asio::detail::throw_error(ec); - return addr; -} - -address make_address(const char* str, asio::error_code& ec) -{ - asio::ip::address_v6 ipv6_address = - asio::ip::make_address_v6(str, ec); - if (!ec) - return address(ipv6_address); - - asio::ip::address_v4 ipv4_address = - asio::ip::make_address_v4(str, ec); - if (!ec) - return address(ipv4_address); - - return address(); -} - -address make_address(const std::string& str) -{ - return make_address(str.c_str()); -} - -address make_address(const std::string& str, - asio::error_code& ec) -{ - return make_address(str.c_str(), ec); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -address make_address(string_view str) -{ - return make_address(static_cast(str)); -} - -address make_address(string_view str, - asio::error_code& ec) -{ - return make_address(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -asio::ip::address_v4 address::to_v4() const -{ - if (type_ != ipv4) - { - bad_address_cast ex; - asio::detail::throw_exception(ex); - } - return ipv4_address_; -} - -asio::ip::address_v6 address::to_v6() const -{ - if (type_ != ipv6) - { - bad_address_cast ex; - asio::detail::throw_exception(ex); - } - return ipv6_address_; -} - -std::string address::to_string() const -{ - if (type_ == ipv6) - return ipv6_address_.to_string(); - return ipv4_address_.to_string(); -} - -#if !defined(ASIO_NO_DEPRECATED) -std::string address::to_string(asio::error_code& ec) const -{ - if (type_ == ipv6) - return ipv6_address_.to_string(ec); - return ipv4_address_.to_string(ec); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address::is_loopback() const -{ - return (type_ == ipv4) - ? ipv4_address_.is_loopback() - : ipv6_address_.is_loopback(); -} - -bool address::is_unspecified() const -{ - return (type_ == ipv4) - ? ipv4_address_.is_unspecified() - : ipv6_address_.is_unspecified(); -} - -bool address::is_multicast() const -{ - return (type_ == ipv4) - ? ipv4_address_.is_multicast() - : ipv6_address_.is_multicast(); -} - -bool operator==(const address& a1, const address& a2) -{ - if (a1.type_ != a2.type_) - return false; - if (a1.type_ == address::ipv6) - return a1.ipv6_address_ == a2.ipv6_address_; - return a1.ipv4_address_ == a2.ipv4_address_; -} - -bool operator<(const address& a1, const address& a2) -{ - if (a1.type_ < a2.type_) - return true; - if (a1.type_ > a2.type_) - return false; - if (a1.type_ == address::ipv6) - return a1.ipv6_address_ < a2.ipv6_address_; - return a1.ipv4_address_ < a2.ipv4_address_; -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_ADDRESS_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address_v4.hpp b/Sources/Vendor/asio/include/asio/ip/impl/address_v4.hpp deleted file mode 100644 index d1cf407..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address_v4.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ip/impl/address_v4.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_ADDRESS_V4_HPP -#define ASIO_IP_IMPL_ADDRESS_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -#if !defined(ASIO_NO_DEPRECATED) - -inline address_v4 address_v4::from_string(const char* str) -{ - return asio::ip::make_address_v4(str); -} - -inline address_v4 address_v4::from_string( - const char* str, asio::error_code& ec) -{ - return asio::ip::make_address_v4(str, ec); -} - -inline address_v4 address_v4::from_string(const std::string& str) -{ - return asio::ip::make_address_v4(str); -} - -inline address_v4 address_v4::from_string( - const std::string& str, asio::error_code& ec) -{ - return asio::ip::make_address_v4(str, ec); -} - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v4& addr) -{ - return os << addr.to_string().c_str(); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_ADDRESS_V4_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address_v4.ipp b/Sources/Vendor/asio/include/asio/ip/impl/address_v4.ipp deleted file mode 100644 index 9559add..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address_v4.ipp +++ /dev/null @@ -1,210 +0,0 @@ -// -// ip/impl/address_v4.ipp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_ADDRESS_V4_IPP -#define ASIO_IP_IMPL_ADDRESS_V4_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/error.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/ip/address_v4.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -address_v4::address_v4(const address_v4::bytes_type& bytes) -{ -#if UCHAR_MAX > 0xFF - if (bytes[0] > 0xFF || bytes[1] > 0xFF - || bytes[2] > 0xFF || bytes[3] > 0xFF) - { - std::out_of_range ex("address_v4 from bytes_type"); - asio::detail::throw_exception(ex); - } -#endif // UCHAR_MAX > 0xFF - - using namespace std; // For memcpy. - memcpy(&addr_.s_addr, bytes.data(), 4); -} - -address_v4::address_v4(address_v4::uint_type addr) -{ - if ((std::numeric_limits::max)() > 0xFFFFFFFF) - { - std::out_of_range ex("address_v4 from unsigned integer"); - asio::detail::throw_exception(ex); - } - - addr_.s_addr = asio::detail::socket_ops::host_to_network_long( - static_cast(addr)); -} - -address_v4::bytes_type address_v4::to_bytes() const -{ - using namespace std; // For memcpy. - bytes_type bytes; -#if defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.data(), &addr_.s_addr, 4); -#else // defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.elems, &addr_.s_addr, 4); -#endif // defined(ASIO_HAS_STD_ARRAY) - return bytes; -} - -address_v4::uint_type address_v4::to_uint() const -{ - return asio::detail::socket_ops::network_to_host_long(addr_.s_addr); -} - -#if !defined(ASIO_NO_DEPRECATED) -unsigned long address_v4::to_ulong() const -{ - return asio::detail::socket_ops::network_to_host_long(addr_.s_addr); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -std::string address_v4::to_string() const -{ - asio::error_code ec; - char addr_str[asio::detail::max_addr_v4_str_len]; - const char* addr = - asio::detail::socket_ops::inet_ntop( - ASIO_OS_DEF(AF_INET), &addr_, addr_str, - asio::detail::max_addr_v4_str_len, 0, ec); - if (addr == 0) - asio::detail::throw_error(ec); - return addr; -} - -#if !defined(ASIO_NO_DEPRECATED) -std::string address_v4::to_string(asio::error_code& ec) const -{ - char addr_str[asio::detail::max_addr_v4_str_len]; - const char* addr = - asio::detail::socket_ops::inet_ntop( - ASIO_OS_DEF(AF_INET), &addr_, addr_str, - asio::detail::max_addr_v4_str_len, 0, ec); - if (addr == 0) - return std::string(); - return addr; -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address_v4::is_loopback() const -{ - return (to_uint() & 0xFF000000) == 0x7F000000; -} - -bool address_v4::is_unspecified() const -{ - return to_uint() == 0; -} - -#if !defined(ASIO_NO_DEPRECATED) -bool address_v4::is_class_a() const -{ - return (to_uint() & 0x80000000) == 0; -} - -bool address_v4::is_class_b() const -{ - return (to_uint() & 0xC0000000) == 0x80000000; -} - -bool address_v4::is_class_c() const -{ - return (to_uint() & 0xE0000000) == 0xC0000000; -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address_v4::is_multicast() const -{ - return (to_uint() & 0xF0000000) == 0xE0000000; -} - -#if !defined(ASIO_NO_DEPRECATED) -address_v4 address_v4::broadcast(const address_v4& addr, const address_v4& mask) -{ - return address_v4(addr.to_uint() | (mask.to_uint() ^ 0xFFFFFFFF)); -} - -address_v4 address_v4::netmask(const address_v4& addr) -{ - if (addr.is_class_a()) - return address_v4(0xFF000000); - if (addr.is_class_b()) - return address_v4(0xFFFF0000); - if (addr.is_class_c()) - return address_v4(0xFFFFFF00); - return address_v4(0xFFFFFFFF); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -address_v4 make_address_v4(const char* str) -{ - asio::error_code ec; - address_v4 addr = make_address_v4(str, ec); - asio::detail::throw_error(ec); - return addr; -} - -address_v4 make_address_v4( - const char* str, asio::error_code& ec) -{ - address_v4::bytes_type bytes; - if (asio::detail::socket_ops::inet_pton( - ASIO_OS_DEF(AF_INET), str, &bytes, 0, ec) <= 0) - return address_v4(); - return address_v4(bytes); -} - -address_v4 make_address_v4(const std::string& str) -{ - return make_address_v4(str.c_str()); -} - -address_v4 make_address_v4( - const std::string& str, asio::error_code& ec) -{ - return make_address_v4(str.c_str(), ec); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -address_v4 make_address_v4(string_view str) -{ - return make_address_v4(static_cast(str)); -} - -address_v4 make_address_v4(string_view str, - asio::error_code& ec) -{ - return make_address_v4(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_ADDRESS_V4_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address_v6.hpp b/Sources/Vendor/asio/include/asio/ip/impl/address_v6.hpp deleted file mode 100644 index 330eafd..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address_v6.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ip/impl/address_v6.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_ADDRESS_V6_HPP -#define ASIO_IP_IMPL_ADDRESS_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -#if !defined(ASIO_NO_DEPRECATED) - -inline address_v6 address_v6::from_string(const char* str) -{ - return asio::ip::make_address_v6(str); -} - -inline address_v6 address_v6::from_string( - const char* str, asio::error_code& ec) -{ - return asio::ip::make_address_v6(str, ec); -} - -inline address_v6 address_v6::from_string(const std::string& str) -{ - return asio::ip::make_address_v6(str); -} - -inline address_v6 address_v6::from_string( - const std::string& str, asio::error_code& ec) -{ - return asio::ip::make_address_v6(str, ec); -} - -#endif // !defined(ASIO_NO_DEPRECATED) - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v6& addr) -{ - return os << addr.to_string().c_str(); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_ADDRESS_V6_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/address_v6.ipp b/Sources/Vendor/asio/include/asio/ip/impl/address_v6.ipp deleted file mode 100644 index 36bd68c..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/address_v6.ipp +++ /dev/null @@ -1,350 +0,0 @@ -// -// ip/impl/address_v6.ipp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_ADDRESS_V6_IPP -#define ASIO_IP_IMPL_ADDRESS_V6_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/error.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/bad_address_cast.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -address_v6::address_v6() - : addr_(), - scope_id_(0) -{ -} - -address_v6::address_v6(const address_v6::bytes_type& bytes, - unsigned long scope) - : scope_id_(scope) -{ -#if UCHAR_MAX > 0xFF - for (std::size_t i = 0; i < bytes.size(); ++i) - { - if (bytes[i] > 0xFF) - { - std::out_of_range ex("address_v6 from bytes_type"); - asio::detail::throw_exception(ex); - } - } -#endif // UCHAR_MAX > 0xFF - - using namespace std; // For memcpy. - memcpy(addr_.s6_addr, bytes.data(), 16); -} - -address_v6::address_v6(const address_v6& other) - : addr_(other.addr_), - scope_id_(other.scope_id_) -{ -} - -#if defined(ASIO_HAS_MOVE) -address_v6::address_v6(address_v6&& other) - : addr_(other.addr_), - scope_id_(other.scope_id_) -{ -} -#endif // defined(ASIO_HAS_MOVE) - -address_v6& address_v6::operator=(const address_v6& other) -{ - addr_ = other.addr_; - scope_id_ = other.scope_id_; - return *this; -} - -#if defined(ASIO_HAS_MOVE) -address_v6& address_v6::operator=(address_v6&& other) -{ - addr_ = other.addr_; - scope_id_ = other.scope_id_; - return *this; -} -#endif // defined(ASIO_HAS_MOVE) - -address_v6::bytes_type address_v6::to_bytes() const -{ - using namespace std; // For memcpy. - bytes_type bytes; -#if defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.data(), addr_.s6_addr, 16); -#else // defined(ASIO_HAS_STD_ARRAY) - memcpy(bytes.elems, addr_.s6_addr, 16); -#endif // defined(ASIO_HAS_STD_ARRAY) - return bytes; -} - -std::string address_v6::to_string() const -{ - asio::error_code ec; - char addr_str[asio::detail::max_addr_v6_str_len]; - const char* addr = - asio::detail::socket_ops::inet_ntop( - ASIO_OS_DEF(AF_INET6), &addr_, addr_str, - asio::detail::max_addr_v6_str_len, scope_id_, ec); - if (addr == 0) - asio::detail::throw_error(ec); - return addr; -} - -#if !defined(ASIO_NO_DEPRECATED) -std::string address_v6::to_string(asio::error_code& ec) const -{ - char addr_str[asio::detail::max_addr_v6_str_len]; - const char* addr = - asio::detail::socket_ops::inet_ntop( - ASIO_OS_DEF(AF_INET6), &addr_, addr_str, - asio::detail::max_addr_v6_str_len, scope_id_, ec); - if (addr == 0) - return std::string(); - return addr; -} - -address_v4 address_v6::to_v4() const -{ - if (!is_v4_mapped() && !is_v4_compatible()) - { - bad_address_cast ex; - asio::detail::throw_exception(ex); - } - - address_v4::bytes_type v4_bytes = { { addr_.s6_addr[12], - addr_.s6_addr[13], addr_.s6_addr[14], addr_.s6_addr[15] } }; - return address_v4(v4_bytes); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address_v6::is_loopback() const -{ - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0) && (addr_.s6_addr[11] == 0) - && (addr_.s6_addr[12] == 0) && (addr_.s6_addr[13] == 0) - && (addr_.s6_addr[14] == 0) && (addr_.s6_addr[15] == 1)); -} - -bool address_v6::is_unspecified() const -{ - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0) && (addr_.s6_addr[11] == 0) - && (addr_.s6_addr[12] == 0) && (addr_.s6_addr[13] == 0) - && (addr_.s6_addr[14] == 0) && (addr_.s6_addr[15] == 0)); -} - -bool address_v6::is_link_local() const -{ - return ((addr_.s6_addr[0] == 0xfe) && ((addr_.s6_addr[1] & 0xc0) == 0x80)); -} - -bool address_v6::is_site_local() const -{ - return ((addr_.s6_addr[0] == 0xfe) && ((addr_.s6_addr[1] & 0xc0) == 0xc0)); -} - -bool address_v6::is_v4_mapped() const -{ - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0xff) && (addr_.s6_addr[11] == 0xff)); -} - -#if !defined(ASIO_NO_DEPRECATED) -bool address_v6::is_v4_compatible() const -{ - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0) && (addr_.s6_addr[11] == 0) - && !((addr_.s6_addr[12] == 0) - && (addr_.s6_addr[13] == 0) - && (addr_.s6_addr[14] == 0) - && ((addr_.s6_addr[15] == 0) || (addr_.s6_addr[15] == 1)))); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -bool address_v6::is_multicast() const -{ - return (addr_.s6_addr[0] == 0xff); -} - -bool address_v6::is_multicast_global() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x0e)); -} - -bool address_v6::is_multicast_link_local() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x02)); -} - -bool address_v6::is_multicast_node_local() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x01)); -} - -bool address_v6::is_multicast_org_local() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x08)); -} - -bool address_v6::is_multicast_site_local() const -{ - return ((addr_.s6_addr[0] == 0xff) && ((addr_.s6_addr[1] & 0x0f) == 0x05)); -} - -bool operator==(const address_v6& a1, const address_v6& a2) -{ - using namespace std; // For memcmp. - return memcmp(&a1.addr_, &a2.addr_, - sizeof(asio::detail::in6_addr_type)) == 0 - && a1.scope_id_ == a2.scope_id_; -} - -bool operator<(const address_v6& a1, const address_v6& a2) -{ - using namespace std; // For memcmp. - int memcmp_result = memcmp(&a1.addr_, &a2.addr_, - sizeof(asio::detail::in6_addr_type)); - if (memcmp_result < 0) - return true; - if (memcmp_result > 0) - return false; - return a1.scope_id_ < a2.scope_id_; -} - -address_v6 address_v6::loopback() -{ - address_v6 tmp; - tmp.addr_.s6_addr[15] = 1; - return tmp; -} - -#if !defined(ASIO_NO_DEPRECATED) -address_v6 address_v6::v4_mapped(const address_v4& addr) -{ - address_v4::bytes_type v4_bytes = addr.to_bytes(); - bytes_type v6_bytes = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, - v4_bytes[0], v4_bytes[1], v4_bytes[2], v4_bytes[3] } }; - return address_v6(v6_bytes); -} - -address_v6 address_v6::v4_compatible(const address_v4& addr) -{ - address_v4::bytes_type v4_bytes = addr.to_bytes(); - bytes_type v6_bytes = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - v4_bytes[0], v4_bytes[1], v4_bytes[2], v4_bytes[3] } }; - return address_v6(v6_bytes); -} -#endif // !defined(ASIO_NO_DEPRECATED) - -address_v6 make_address_v6(const char* str) -{ - asio::error_code ec; - address_v6 addr = make_address_v6(str, ec); - asio::detail::throw_error(ec); - return addr; -} - -address_v6 make_address_v6( - const char* str, asio::error_code& ec) -{ - address_v6::bytes_type bytes; - unsigned long scope_id = 0; - if (asio::detail::socket_ops::inet_pton( - ASIO_OS_DEF(AF_INET6), str, &bytes[0], &scope_id, ec) <= 0) - return address_v6(); - return address_v6(bytes, scope_id); -} - -address_v6 make_address_v6(const std::string& str) -{ - return make_address_v6(str.c_str()); -} - -address_v6 make_address_v6( - const std::string& str, asio::error_code& ec) -{ - return make_address_v6(str.c_str(), ec); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -address_v6 make_address_v6(string_view str) -{ - return make_address_v6(static_cast(str)); -} - -address_v6 make_address_v6(string_view str, - asio::error_code& ec) -{ - return make_address_v6(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -address_v4 make_address_v4( - v4_mapped_t, const address_v6& v6_addr) -{ - if (!v6_addr.is_v4_mapped()) - { - bad_address_cast ex; - asio::detail::throw_exception(ex); - } - - address_v6::bytes_type v6_bytes = v6_addr.to_bytes(); - address_v4::bytes_type v4_bytes = { { v6_bytes[12], - v6_bytes[13], v6_bytes[14], v6_bytes[15] } }; - return address_v4(v4_bytes); -} - -address_v6 make_address_v6( - v4_mapped_t, const address_v4& v4_addr) -{ - address_v4::bytes_type v4_bytes = v4_addr.to_bytes(); - address_v6::bytes_type v6_bytes = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0xFF, 0xFF, v4_bytes[0], v4_bytes[1], v4_bytes[2], v4_bytes[3] } }; - return address_v6(v6_bytes); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_ADDRESS_V6_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/basic_endpoint.hpp b/Sources/Vendor/asio/include/asio/ip/impl/basic_endpoint.hpp deleted file mode 100644 index 5680a43..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/basic_endpoint.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// ip/impl/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_BASIC_ENDPOINT_HPP -#define ASIO_IP_IMPL_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, - const basic_endpoint& endpoint) -{ - asio::ip::detail::endpoint tmp_ep(endpoint.address(), endpoint.port()); - return os << tmp_ep.to_string().c_str(); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_BASIC_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/host_name.ipp b/Sources/Vendor/asio/include/asio/ip/impl/host_name.ipp deleted file mode 100644 index 932ab1c..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/host_name.ipp +++ /dev/null @@ -1,54 +0,0 @@ -// -// ip/impl/host_name.ipp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_HOST_NAME_IPP -#define ASIO_IP_IMPL_HOST_NAME_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/winsock_init.hpp" -#include "asio/ip/host_name.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -std::string host_name() -{ - char name[1024]; - asio::error_code ec; - if (asio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0) - { - asio::detail::throw_error(ec); - return std::string(); - } - return std::string(name); -} - -std::string host_name(asio::error_code& ec) -{ - char name[1024]; - if (asio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0) - return std::string(); - return std::string(name); -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_HOST_NAME_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/network_v4.hpp b/Sources/Vendor/asio/include/asio/ip/impl/network_v4.hpp deleted file mode 100644 index 911a45c..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/network_v4.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// ip/impl/network_v4.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail 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_IP_IMPL_NETWORK_V4_HPP -#define ASIO_IP_IMPL_NETWORK_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const network_v4& addr) -{ - asio::error_code ec; - std::string s = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::basic_ostream::failbit) - asio::detail::throw_error(ec); - else - os.setstate(std::basic_ostream::failbit); - } - else - for (std::string::iterator i = s.begin(); i != s.end(); ++i) - os << os.widen(*i); - return os; -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_NETWORK_V4_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/network_v4.ipp b/Sources/Vendor/asio/include/asio/ip/impl/network_v4.ipp deleted file mode 100644 index 4b27887..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/network_v4.ipp +++ /dev/null @@ -1,216 +0,0 @@ -// -// ip/impl/network_v4.ipp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail 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_IP_IMPL_NETWORK_V4_IPP -#define ASIO_IP_IMPL_NETWORK_V4_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include "asio/error.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/ip/network_v4.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -network_v4::network_v4(const address_v4& addr, unsigned short prefix_len) - : address_(addr), - prefix_length_(prefix_len) -{ - if (prefix_len > 32) - { - std::out_of_range ex("prefix length too large"); - asio::detail::throw_exception(ex); - } -} - -network_v4::network_v4(const address_v4& addr, const address_v4& mask) - : address_(addr), - prefix_length_(0) -{ - address_v4::bytes_type mask_bytes = mask.to_bytes(); - bool finished = false; - for (std::size_t i = 0; i < mask_bytes.size(); ++i) - { - if (finished) - { - if (mask_bytes[i]) - { - std::invalid_argument ex("non-contiguous netmask"); - asio::detail::throw_exception(ex); - } - continue; - } - else - { - switch (mask_bytes[i]) - { - case 255: - prefix_length_ += 8; - break; - case 254: // prefix_length_ += 7 - prefix_length_ += 1; - case 252: // prefix_length_ += 6 - prefix_length_ += 1; - case 248: // prefix_length_ += 5 - prefix_length_ += 1; - case 240: // prefix_length_ += 4 - prefix_length_ += 1; - case 224: // prefix_length_ += 3 - prefix_length_ += 1; - case 192: // prefix_length_ += 2 - prefix_length_ += 1; - case 128: // prefix_length_ += 1 - prefix_length_ += 1; - case 0: // nbits += 0 - finished = true; - break; - default: - std::out_of_range ex("non-contiguous netmask"); - asio::detail::throw_exception(ex); - } - } - } -} - -address_v4 network_v4::netmask() const ASIO_NOEXCEPT -{ - uint32_t nmbits = 0xffffffff; - if (prefix_length_ == 0) - nmbits = 0; - else - nmbits = nmbits << (32 - prefix_length_); - return address_v4(nmbits); -} - -address_v4_range network_v4::hosts() const ASIO_NOEXCEPT -{ - return is_host() - ? address_v4_range(address_, address_v4(address_.to_uint() + 1)) - : address_v4_range(address_v4(network().to_uint() + 1), broadcast()); -} - -bool network_v4::is_subnet_of(const network_v4& other) const -{ - if (other.prefix_length_ >= prefix_length_) - return false; // Only real subsets are allowed. - const network_v4 me(address_, other.prefix_length_); - return other.canonical() == me.canonical(); -} - -std::string network_v4::to_string() const -{ - asio::error_code ec; - std::string addr = to_string(ec); - asio::detail::throw_error(ec); - return addr; -} - -std::string network_v4::to_string(asio::error_code& ec) const -{ - using namespace std; // For sprintf. - ec = asio::error_code(); - char prefix_len[16]; -#if defined(ASIO_HAS_SECURE_RTL) - sprintf_s(prefix_len, sizeof(prefix_len), "/%u", prefix_length_); -#else // defined(ASIO_HAS_SECURE_RTL) - sprintf(prefix_len, "/%u", prefix_length_); -#endif // defined(ASIO_HAS_SECURE_RTL) - return address_.to_string() + prefix_len; -} - -network_v4 make_network_v4(const char* str) -{ - return make_network_v4(std::string(str)); -} - -network_v4 make_network_v4(const char* str, asio::error_code& ec) -{ - return make_network_v4(std::string(str), ec); -} - -network_v4 make_network_v4(const std::string& str) -{ - asio::error_code ec; - network_v4 net = make_network_v4(str, ec); - asio::detail::throw_error(ec); - return net; -} - -network_v4 make_network_v4(const std::string& str, - asio::error_code& ec) -{ - std::string::size_type pos = str.find_first_of("/"); - - if (pos == std::string::npos) - { - ec = asio::error::invalid_argument; - return network_v4(); - } - - if (pos == str.size() - 1) - { - ec = asio::error::invalid_argument; - return network_v4(); - } - - std::string::size_type end = str.find_first_not_of("0123456789", pos + 1); - if (end != std::string::npos) - { - ec = asio::error::invalid_argument; - return network_v4(); - } - - const address_v4 addr = make_address_v4(str.substr(0, pos), ec); - if (ec) - return network_v4(); - - const int prefix_len = std::atoi(str.substr(pos + 1).c_str()); - if (prefix_len < 0 || prefix_len > 32) - { - ec = asio::error::invalid_argument; - return network_v4(); - } - - return network_v4(addr, static_cast(prefix_len)); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -network_v4 make_network_v4(string_view str) -{ - return make_network_v4(static_cast(str)); -} - -network_v4 make_network_v4(string_view str, - asio::error_code& ec) -{ - return make_network_v4(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_NETWORK_V4_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/network_v6.hpp b/Sources/Vendor/asio/include/asio/ip/impl/network_v6.hpp deleted file mode 100644 index b0eedad..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/network_v6.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// ip/impl/network_v6.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_IMPL_NETWORK_V6_HPP -#define ASIO_IP_IMPL_NETWORK_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const network_v6& addr) -{ - asio::error_code ec; - std::string s = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::basic_ostream::failbit) - asio::detail::throw_error(ec); - else - os.setstate(std::basic_ostream::failbit); - } - else - for (std::string::iterator i = s.begin(); i != s.end(); ++i) - os << os.widen(*i); - return os; -} - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_IP_IMPL_NETWORK_V6_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/impl/network_v6.ipp b/Sources/Vendor/asio/include/asio/ip/impl/network_v6.ipp deleted file mode 100644 index 2e37a99..0000000 --- a/Sources/Vendor/asio/include/asio/ip/impl/network_v6.ipp +++ /dev/null @@ -1,185 +0,0 @@ -// -// ip/impl/network_v6.ipp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail 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_IP_IMPL_NETWORK_V6_IPP -#define ASIO_IP_IMPL_NETWORK_V6_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include -#include -#include "asio/error.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/throw_exception.hpp" -#include "asio/ip/network_v6.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -network_v6::network_v6(const address_v6& addr, unsigned short prefix_len) - : address_(addr), - prefix_length_(prefix_len) -{ - if (prefix_len > 128) - { - std::out_of_range ex("prefix length too large"); - asio::detail::throw_exception(ex); - } -} - -ASIO_DECL address_v6 network_v6::network() const ASIO_NOEXCEPT -{ - address_v6::bytes_type bytes(address_.to_bytes()); - for (std::size_t i = 0; i < 16; ++i) - { - if (prefix_length_ <= i * 8) - bytes[i] = 0; - else if (prefix_length_ < (i + 1) * 8) - bytes[i] &= 0xFF00 >> (prefix_length_ % 8); - } - return address_v6(bytes, address_.scope_id()); -} - -address_v6_range network_v6::hosts() const ASIO_NOEXCEPT -{ - address_v6::bytes_type begin_bytes(address_.to_bytes()); - address_v6::bytes_type end_bytes(address_.to_bytes()); - for (std::size_t i = 0; i < 16; ++i) - { - if (prefix_length_ <= i * 8) - { - begin_bytes[i] = 0; - end_bytes[i] = 0xFF; - } - else if (prefix_length_ < (i + 1) * 8) - { - begin_bytes[i] &= 0xFF00 >> (prefix_length_ % 8); - end_bytes[i] |= 0xFF >> (prefix_length_ % 8); - } - } - return address_v6_range( - address_v6_iterator(address_v6(begin_bytes, address_.scope_id())), - ++address_v6_iterator(address_v6(end_bytes, address_.scope_id()))); -} - -bool network_v6::is_subnet_of(const network_v6& other) const -{ - if (other.prefix_length_ >= prefix_length_) - return false; // Only real subsets are allowed. - const network_v6 me(address_, other.prefix_length_); - return other.canonical() == me.canonical(); -} - -std::string network_v6::to_string() const -{ - asio::error_code ec; - std::string addr = to_string(ec); - asio::detail::throw_error(ec); - return addr; -} - -std::string network_v6::to_string(asio::error_code& ec) const -{ - using namespace std; // For sprintf. - ec = asio::error_code(); - char prefix_len[16]; -#if defined(ASIO_HAS_SECURE_RTL) - sprintf_s(prefix_len, sizeof(prefix_len), "/%u", prefix_length_); -#else // defined(ASIO_HAS_SECURE_RTL) - sprintf(prefix_len, "/%u", prefix_length_); -#endif // defined(ASIO_HAS_SECURE_RTL) - return address_.to_string() + prefix_len; -} - -network_v6 make_network_v6(const char* str) -{ - return make_network_v6(std::string(str)); -} - -network_v6 make_network_v6(const char* str, asio::error_code& ec) -{ - return make_network_v6(std::string(str), ec); -} - -network_v6 make_network_v6(const std::string& str) -{ - asio::error_code ec; - network_v6 net = make_network_v6(str, ec); - asio::detail::throw_error(ec); - return net; -} - -network_v6 make_network_v6(const std::string& str, - asio::error_code& ec) -{ - std::string::size_type pos = str.find_first_of("/"); - - if (pos == std::string::npos) - { - ec = asio::error::invalid_argument; - return network_v6(); - } - - if (pos == str.size() - 1) - { - ec = asio::error::invalid_argument; - return network_v6(); - } - - std::string::size_type end = str.find_first_not_of("0123456789", pos + 1); - if (end != std::string::npos) - { - ec = asio::error::invalid_argument; - return network_v6(); - } - - const address_v6 addr = make_address_v6(str.substr(0, pos), ec); - if (ec) - return network_v6(); - - const int prefix_len = std::atoi(str.substr(pos + 1).c_str()); - if (prefix_len < 0 || prefix_len > 128) - { - ec = asio::error::invalid_argument; - return network_v6(); - } - - return network_v6(addr, static_cast(prefix_len)); -} - -#if defined(ASIO_HAS_STRING_VIEW) - -network_v6 make_network_v6(string_view str) -{ - return make_network_v6(static_cast(str)); -} - -network_v6 make_network_v6(string_view str, - asio::error_code& ec) -{ - return make_network_v6(static_cast(str), ec); -} - -#endif // defined(ASIO_HAS_STRING_VIEW) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_IMPL_NETWORK_V6_IPP diff --git a/Sources/Vendor/asio/include/asio/ip/multicast.hpp b/Sources/Vendor/asio/include/asio/ip/multicast.hpp deleted file mode 100644 index ea624e1..0000000 --- a/Sources/Vendor/asio/include/asio/ip/multicast.hpp +++ /dev/null @@ -1,191 +0,0 @@ -// -// ip/multicast.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_MULTICAST_HPP -#define ASIO_IP_MULTICAST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/ip/detail/socket_option.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace multicast { - -/// Socket option to join a multicast group on a specified interface. -/** - * Implements the IPPROTO_IP/IP_ADD_MEMBERSHIP socket option. - * - * @par Examples - * Setting the option to join a multicast group: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::address multicast_address = - * asio::ip::address::from_string("225.0.0.1"); - * asio::ip::multicast::join_group option(multicast_address); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined join_group; -#else -typedef asio::ip::detail::socket_option::multicast_request< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_ADD_MEMBERSHIP), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_JOIN_GROUP)> join_group; -#endif - -/// Socket option to leave a multicast group on a specified interface. -/** - * Implements the IPPROTO_IP/IP_DROP_MEMBERSHIP socket option. - * - * @par Examples - * Setting the option to leave a multicast group: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::address multicast_address = - * asio::ip::address::from_string("225.0.0.1"); - * asio::ip::multicast::leave_group option(multicast_address); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined leave_group; -#else -typedef asio::ip::detail::socket_option::multicast_request< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_DROP_MEMBERSHIP), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_LEAVE_GROUP)> leave_group; -#endif - -/// Socket option for local interface to use for outgoing multicast packets. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_IF socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::address_v4 local_interface = - * asio::ip::address_v4::from_string("1.2.3.4"); - * asio::ip::multicast::outbound_interface option(local_interface); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined outbound_interface; -#else -typedef asio::ip::detail::socket_option::network_interface< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_MULTICAST_IF), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_MULTICAST_IF)> outbound_interface; -#endif - -/// Socket option for time-to-live associated with outgoing multicast packets. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_TTL socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::multicast::hops option(4); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::multicast::hops option; - * socket.get_option(option); - * int ttl = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined hops; -#else -typedef asio::ip::detail::socket_option::multicast_hops< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_MULTICAST_TTL), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_MULTICAST_HOPS)> hops; -#endif - -/// Socket option determining whether outgoing multicast packets will be -/// received on the same socket if it is a member of the multicast group. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_LOOP socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::multicast::enable_loopback option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::multicast::enable_loopback option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined enable_loopback; -#else -typedef asio::ip::detail::socket_option::multicast_enable_loopback< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_MULTICAST_LOOP), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_MULTICAST_LOOP)> enable_loopback; -#endif - -} // namespace multicast -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_MULTICAST_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/network_v4.hpp b/Sources/Vendor/asio/include/asio/ip/network_v4.hpp deleted file mode 100644 index e38f60f..0000000 --- a/Sources/Vendor/asio/include/asio/ip/network_v4.hpp +++ /dev/null @@ -1,261 +0,0 @@ -// -// ip/network_v4.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail 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_IP_NETWORK_V4_HPP -#define ASIO_IP_NETWORK_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/string_view.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address_v4_range.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Represents an IPv4 network. -/** - * The asio::ip::network_v4 class provides the ability to use and - * manipulate IP version 4 networks. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class network_v4 -{ -public: - /// Default constructor. - network_v4() ASIO_NOEXCEPT - : address_(), - prefix_length_(0) - { - } - - /// Construct a network based on the specified address and prefix length. - ASIO_DECL network_v4(const address_v4& addr, - unsigned short prefix_len); - - /// Construct network based on the specified address and netmask. - ASIO_DECL network_v4(const address_v4& addr, - const address_v4& mask); - - /// Copy constructor. - network_v4(const network_v4& other) ASIO_NOEXCEPT - : address_(other.address_), - prefix_length_(other.prefix_length_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - network_v4(network_v4&& other) ASIO_NOEXCEPT - : address_(ASIO_MOVE_CAST(address_v4)(other.address_)), - prefix_length_(other.prefix_length_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another network. - network_v4& operator=(const network_v4& other) ASIO_NOEXCEPT - { - address_ = other.address_; - prefix_length_ = other.prefix_length_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another network. - network_v4& operator=(network_v4&& other) ASIO_NOEXCEPT - { - address_ = ASIO_MOVE_CAST(address_v4)(other.address_); - prefix_length_ = other.prefix_length_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Obtain the address object specified when the network object was created. - address_v4 address() const ASIO_NOEXCEPT - { - return address_; - } - - /// Obtain the prefix length that was specified when the network object was - /// created. - unsigned short prefix_length() const ASIO_NOEXCEPT - { - return prefix_length_; - } - - /// Obtain the netmask that was specified when the network object was created. - ASIO_DECL address_v4 netmask() const ASIO_NOEXCEPT; - - /// Obtain an address object that represents the network address. - address_v4 network() const ASIO_NOEXCEPT - { - return address_v4(address_.to_uint() & netmask().to_uint()); - } - - /// Obtain an address object that represents the network's broadcast address. - address_v4 broadcast() const ASIO_NOEXCEPT - { - return address_v4(network().to_uint() | (netmask().to_uint() ^ 0xFFFFFFFF)); - } - - /// Obtain an address range corresponding to the hosts in the network. - ASIO_DECL address_v4_range hosts() const ASIO_NOEXCEPT; - - /// Obtain the true network address, omitting any host bits. - network_v4 canonical() const ASIO_NOEXCEPT - { - return network_v4(network(), netmask()); - } - - /// Test if network is a valid host address. - bool is_host() const ASIO_NOEXCEPT - { - return prefix_length_ == 32; - } - - /// Test if a network is a real subnet of another network. - ASIO_DECL bool is_subnet_of(const network_v4& other) const; - - /// Get the network as an address in dotted decimal format. - ASIO_DECL std::string to_string() const; - - /// Get the network as an address in dotted decimal format. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// Compare two networks for equality. - friend bool operator==(const network_v4& a, const network_v4& b) - { - return a.address_ == b.address_ && a.prefix_length_ == b.prefix_length_; - } - - /// Compare two networks for inequality. - friend bool operator!=(const network_v4& a, const network_v4& b) - { - return !(a == b); - } - -private: - address_v4 address_; - unsigned short prefix_length_; -}; - -/// Create an IPv4 network from an address and prefix length. -/** - * @relates address_v4 - */ -inline network_v4 make_network_v4( - const address_v4& addr, unsigned short prefix_len) -{ - return network_v4(addr, prefix_len); -} - -/// Create an IPv4 network from an address and netmask. -/** - * @relates address_v4 - */ -inline network_v4 make_network_v4( - const address_v4& addr, const address_v4& mask) -{ - return network_v4(addr, mask); -} - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4(const char* str); - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4( - const char* str, asio::error_code& ec); - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4(const std::string& str); - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4(string_view str); - -/// Create an IPv4 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v4 - */ -ASIO_DECL network_v4 make_network_v4( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output a network as a string. -/** - * Used to output a human-readable string for a specified network. - * - * @param os The output stream to which the string will be written. - * - * @param net The network to be written. - * - * @return The output stream. - * - * @relates asio::ip::address_v4 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const network_v4& net); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/network_v4.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/network_v4.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_NETWORK_V4_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/network_v6.hpp b/Sources/Vendor/asio/include/asio/ip/network_v6.hpp deleted file mode 100644 index 7b6b7e6..0000000 --- a/Sources/Vendor/asio/include/asio/ip/network_v6.hpp +++ /dev/null @@ -1,235 +0,0 @@ -// -// ip/network_v6.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2014 Oliver Kowalke (oliver dot kowalke at gmail 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_IP_NETWORK_V6_HPP -#define ASIO_IP_NETWORK_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/string_view.hpp" -#include "asio/error_code.hpp" -#include "asio/ip/address_v6_range.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Represents an IPv6 network. -/** - * The asio::ip::network_v6 class provides the ability to use and - * manipulate IP version 6 networks. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class network_v6 -{ -public: - /// Default constructor. - network_v6() ASIO_NOEXCEPT - : address_(), - prefix_length_(0) - { - } - - /// Construct a network based on the specified address and prefix length. - ASIO_DECL network_v6(const address_v6& addr, - unsigned short prefix_len); - - /// Copy constructor. - network_v6(const network_v6& other) ASIO_NOEXCEPT - : address_(other.address_), - prefix_length_(other.prefix_length_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - network_v6(network_v6&& other) ASIO_NOEXCEPT - : address_(ASIO_MOVE_CAST(address_v6)(other.address_)), - prefix_length_(other.prefix_length_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another network. - network_v6& operator=(const network_v6& other) ASIO_NOEXCEPT - { - address_ = other.address_; - prefix_length_ = other.prefix_length_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another network. - network_v6& operator=(network_v6&& other) ASIO_NOEXCEPT - { - address_ = ASIO_MOVE_CAST(address_v6)(other.address_); - prefix_length_ = other.prefix_length_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// Obtain the address object specified when the network object was created. - address_v6 address() const ASIO_NOEXCEPT - { - return address_; - } - - /// Obtain the prefix length that was specified when the network object was - /// created. - unsigned short prefix_length() const ASIO_NOEXCEPT - { - return prefix_length_; - } - - /// Obtain an address object that represents the network address. - ASIO_DECL address_v6 network() const ASIO_NOEXCEPT; - - /// Obtain an address range corresponding to the hosts in the network. - ASIO_DECL address_v6_range hosts() const ASIO_NOEXCEPT; - - /// Obtain the true network address, omitting any host bits. - network_v6 canonical() const ASIO_NOEXCEPT - { - return network_v6(network(), prefix_length()); - } - - /// Test if network is a valid host address. - bool is_host() const ASIO_NOEXCEPT - { - return prefix_length_ == 128; - } - - /// Test if a network is a real subnet of another network. - ASIO_DECL bool is_subnet_of(const network_v6& other) const; - - /// Get the network as an address in dotted decimal format. - ASIO_DECL std::string to_string() const; - - /// Get the network as an address in dotted decimal format. - ASIO_DECL std::string to_string(asio::error_code& ec) const; - - /// Compare two networks for equality. - friend bool operator==(const network_v6& a, const network_v6& b) - { - return a.address_ == b.address_ && a.prefix_length_ == b.prefix_length_; - } - - /// Compare two networks for inequality. - friend bool operator!=(const network_v6& a, const network_v6& b) - { - return !(a == b); - } - -private: - address_v6 address_; - unsigned short prefix_length_; -}; - -/// Create an IPv6 network from an address and prefix length. -/** - * @relates address_v6 - */ -inline network_v6 make_network_v6( - const address_v6& addr, unsigned short prefix_len) -{ - return network_v6(addr, prefix_len); -} - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6(const char* str); - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6( - const char* str, asio::error_code& ec); - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6(const std::string& str); - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6( - const std::string& str, asio::error_code& ec); - -#if defined(ASIO_HAS_STRING_VIEW) \ - || defined(GENERATING_DOCUMENTATION) - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6(string_view str); - -/// Create an IPv6 network from a string containing IP address and prefix -/// length. -/** - * @relates network_v6 - */ -ASIO_DECL network_v6 make_network_v6( - string_view str, asio::error_code& ec); - -#endif // defined(ASIO_HAS_STRING_VIEW) - // || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_IOSTREAM) - -/// Output a network as a string. -/** - * Used to output a human-readable string for a specified network. - * - * @param os The output stream to which the string will be written. - * - * @param net The network to be written. - * - * @return The output stream. - * - * @relates asio::ip::address_v6 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const network_v6& net); - -#endif // !defined(ASIO_NO_IOSTREAM) - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ip/impl/network_v6.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ip/impl/network_v6.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_IP_NETWORK_V6_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/resolver_base.hpp b/Sources/Vendor/asio/include/asio/ip/resolver_base.hpp deleted file mode 100644 index d32c911..0000000 --- a/Sources/Vendor/asio/include/asio/ip/resolver_base.hpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// ip/resolver_base.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_RESOLVER_BASE_HPP -#define ASIO_IP_RESOLVER_BASE_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/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// The resolver_base class is used as a base for the basic_resolver class -/// templates to provide a common place to define the flag constants. -class resolver_base -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// A bitmask type (C++ Std [lib.bitmask.types]). - typedef unspecified flags; - - /// Determine the canonical name of the host specified in the query. - static const flags canonical_name = implementation_defined; - - /// Indicate that returned endpoint is intended for use as a locally bound - /// socket endpoint. - static const flags passive = implementation_defined; - - /// Host name should be treated as a numeric string defining an IPv4 or IPv6 - /// address and no name resolution should be attempted. - static const flags numeric_host = implementation_defined; - - /// Service name should be treated as a numeric string defining a port number - /// and no name resolution should be attempted. - static const flags numeric_service = implementation_defined; - - /// If the query protocol family is specified as IPv6, return IPv4-mapped - /// IPv6 addresses on finding no IPv6 addresses. - static const flags v4_mapped = implementation_defined; - - /// If used with v4_mapped, return all matching IPv6 and IPv4 addresses. - static const flags all_matching = implementation_defined; - - /// Only return IPv4 addresses if a non-loopback IPv4 address is configured - /// for the system. Only return IPv6 addresses if a non-loopback IPv6 address - /// is configured for the system. - static const flags address_configured = implementation_defined; -#else - enum flags - { - canonical_name = ASIO_OS_DEF(AI_CANONNAME), - passive = ASIO_OS_DEF(AI_PASSIVE), - numeric_host = ASIO_OS_DEF(AI_NUMERICHOST), - numeric_service = ASIO_OS_DEF(AI_NUMERICSERV), - v4_mapped = ASIO_OS_DEF(AI_V4MAPPED), - all_matching = ASIO_OS_DEF(AI_ALL), - address_configured = ASIO_OS_DEF(AI_ADDRCONFIG) - }; - - // Implement bitmask operations as shown in C++ Std [lib.bitmask.types]. - - friend flags operator&(flags x, flags y) - { - return static_cast( - static_cast(x) & static_cast(y)); - } - - friend flags operator|(flags x, flags y) - { - return static_cast( - static_cast(x) | static_cast(y)); - } - - friend flags operator^(flags x, flags y) - { - return static_cast( - static_cast(x) ^ static_cast(y)); - } - - friend flags operator~(flags x) - { - return static_cast(~static_cast(x)); - } - - friend flags& operator&=(flags& x, flags y) - { - x = x & y; - return x; - } - - friend flags& operator|=(flags& x, flags y) - { - x = x | y; - return x; - } - - friend flags& operator^=(flags& x, flags y) - { - x = x ^ y; - return x; - } -#endif - -protected: - /// Protected destructor to prevent deletion through this type. - ~resolver_base() - { - } -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_RESOLVER_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/resolver_query_base.hpp b/Sources/Vendor/asio/include/asio/ip/resolver_query_base.hpp deleted file mode 100644 index be36858..0000000 --- a/Sources/Vendor/asio/include/asio/ip/resolver_query_base.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// ip/resolver_query_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_RESOLVER_QUERY_BASE_HPP -#define ASIO_IP_RESOLVER_QUERY_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ip/resolver_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// The resolver_query_base class is used as a base for the -/// basic_resolver_query class templates to provide a common place to define -/// the flag constants. -class resolver_query_base : public resolver_base -{ -protected: - /// Protected destructor to prevent deletion through this type. - ~resolver_query_base() - { - } -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_RESOLVER_QUERY_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/resolver_service.hpp b/Sources/Vendor/asio/include/asio/ip/resolver_service.hpp deleted file mode 100644 index 519d72d..0000000 --- a/Sources/Vendor/asio/include/asio/ip/resolver_service.hpp +++ /dev/null @@ -1,200 +0,0 @@ -// -// ip/resolver_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_RESOLVER_SERVICE_HPP -#define ASIO_IP_RESOLVER_SERVICE_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_ENABLE_OLD_SERVICES) - -#include "asio/async_result.hpp" -#include "asio/error_code.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_results.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_resolver_service.hpp" -#else -# include "asio/detail/resolver_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Default service implementation for a resolver. -template -class resolver_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base< - resolver_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef InternetProtocol protocol_type; - - /// The endpoint type. - typedef typename InternetProtocol::endpoint endpoint_type; - - /// The query type. - typedef basic_resolver_query query_type; - - /// The iterator type. - typedef basic_resolver_iterator iterator_type; - - /// The results type. - typedef basic_resolver_results results_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef asio::detail::winrt_resolver_service - service_impl_type; -#else - typedef asio::detail::resolver_service - service_impl_type; -#endif - -public: - /// The type of a resolver implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// Construct a new resolver service for the specified io_context. - explicit resolver_service(asio::io_context& io_context) - : asio::detail::service_base< - resolver_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new resolver implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new resolver implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another resolver implementation. - void move_assign(implementation_type& impl, - resolver_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a resolver implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Cancel pending asynchronous operations. - void cancel(implementation_type& impl) - { - service_impl_.cancel(impl); - } - - /// Resolve a query to a list of entries. - results_type resolve(implementation_type& impl, const query_type& query, - asio::error_code& ec) - { - return service_impl_.resolve(impl, query, ec); - } - - /// Asynchronously resolve a query to a list of entries. - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(implementation_type& impl, const query_type& query, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_resolve(impl, query, init.completion_handler); - - return init.result.get(); - } - - /// Resolve an endpoint to a list of entries. - results_type resolve(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - return service_impl_.resolve(impl, endpoint, ec); - } - - /// Asynchronously resolve an endpoint to a list of entries. - template - ASIO_INITFN_RESULT_TYPE(ResolveHandler, - void (asio::error_code, results_type)) - async_resolve(implementation_type& impl, const endpoint_type& endpoint, - ASIO_MOVE_ARG(ResolveHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_resolve(impl, endpoint, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // Perform any fork-related housekeeping. - void notify_fork(asio::io_context::fork_event event) - { - service_impl_.notify_fork(event); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_IP_RESOLVER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/tcp.hpp b/Sources/Vendor/asio/include/asio/ip/tcp.hpp deleted file mode 100644 index f1adeb0..0000000 --- a/Sources/Vendor/asio/include/asio/ip/tcp.hpp +++ /dev/null @@ -1,155 +0,0 @@ -// -// ip/tcp.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_TCP_HPP -#define ASIO_IP_TCP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/socket_option.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for TCP. -/** - * The asio::ip::tcp class contains flags necessary for TCP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class tcp -{ -public: - /// The type of a TCP endpoint. - typedef basic_endpoint endpoint; - - /// Construct to represent the IPv4 TCP protocol. - static tcp v4() - { - return tcp(ASIO_OS_DEF(AF_INET)); - } - - /// Construct to represent the IPv6 TCP protocol. - static tcp v6() - { - return tcp(ASIO_OS_DEF(AF_INET6)); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_STREAM); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return ASIO_OS_DEF(IPPROTO_TCP); - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The TCP socket type. - typedef basic_stream_socket socket; - - /// The TCP acceptor type. - typedef basic_socket_acceptor acceptor; - - /// The TCP resolver type. - typedef basic_resolver resolver; - -#if !defined(ASIO_NO_IOSTREAM) - /// The TCP iostream type. - typedef basic_socket_iostream iostream; -#endif // !defined(ASIO_NO_IOSTREAM) - - /// Socket option for disabling the Nagle algorithm. - /** - * Implements the IPPROTO_TCP/TCP_NODELAY socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::no_delay option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::tcp::no_delay option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined no_delay; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(IPPROTO_TCP), ASIO_OS_DEF(TCP_NODELAY)> no_delay; -#endif - - /// Compare two protocols for equality. - friend bool operator==(const tcp& p1, const tcp& p2) - { - return p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const tcp& p1, const tcp& p2) - { - return p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit tcp(int protocol_family) - : family_(protocol_family) - { - } - - int family_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_TCP_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/udp.hpp b/Sources/Vendor/asio/include/asio/ip/udp.hpp deleted file mode 100644 index 1c93f9b..0000000 --- a/Sources/Vendor/asio/include/asio/ip/udp.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// ip/udp.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_UDP_HPP -#define ASIO_IP_UDP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/basic_datagram_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver_query.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for UDP. -/** - * The asio::ip::udp class contains flags necessary for UDP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class udp -{ -public: - /// The type of a UDP endpoint. - typedef basic_endpoint endpoint; - - /// Construct to represent the IPv4 UDP protocol. - static udp v4() - { - return udp(ASIO_OS_DEF(AF_INET)); - } - - /// Construct to represent the IPv6 UDP protocol. - static udp v6() - { - return udp(ASIO_OS_DEF(AF_INET6)); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return ASIO_OS_DEF(SOCK_DGRAM); - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return ASIO_OS_DEF(IPPROTO_UDP); - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The UDP socket type. - typedef basic_datagram_socket socket; - - /// The UDP resolver type. - typedef basic_resolver resolver; - - /// Compare two protocols for equality. - friend bool operator==(const udp& p1, const udp& p2) - { - return p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const udp& p1, const udp& p2) - { - return p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit udp(int protocol_family) - : family_(protocol_family) - { - } - - int family_; -}; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_UDP_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/unicast.hpp b/Sources/Vendor/asio/include/asio/ip/unicast.hpp deleted file mode 100644 index 14e3e48..0000000 --- a/Sources/Vendor/asio/include/asio/ip/unicast.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// ip/unicast.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_UNICAST_HPP -#define ASIO_IP_UNICAST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/ip/detail/socket_option.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { -namespace unicast { - -/// Socket option for time-to-live associated with outgoing unicast packets. -/** - * Implements the IPPROTO_IP/IP_UNICAST_TTL socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::unicast::hops option(4); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::ip::unicast::hops option; - * socket.get_option(option); - * int ttl = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined hops; -#else -typedef asio::ip::detail::socket_option::unicast_hops< - ASIO_OS_DEF(IPPROTO_IP), - ASIO_OS_DEF(IP_TTL), - ASIO_OS_DEF(IPPROTO_IPV6), - ASIO_OS_DEF(IPV6_UNICAST_HOPS)> hops; -#endif - -} // namespace unicast -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_UNICAST_HPP diff --git a/Sources/Vendor/asio/include/asio/ip/v6_only.hpp b/Sources/Vendor/asio/include/asio/ip/v6_only.hpp deleted file mode 100644 index ac7234e..0000000 --- a/Sources/Vendor/asio/include/asio/ip/v6_only.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// ip/v6_only.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IP_V6_ONLY_HPP -#define ASIO_IP_V6_ONLY_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/socket_option.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ip { - -/// Socket option for determining whether an IPv6 socket supports IPv6 -/// communication only. -/** - * Implements the IPPROTO_IPV6/IP_V6ONLY socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::v6_only option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::ip::v6_only option; - * socket.get_option(option); - * bool v6_only = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined v6_only; -#elif defined(IPV6_V6ONLY) -typedef asio::detail::socket_option::boolean< - IPPROTO_IPV6, IPV6_V6ONLY> v6_only; -#else -typedef asio::detail::socket_option::boolean< - asio::detail::custom_socket_option_level, - asio::detail::always_fail_option> v6_only; -#endif - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IP_V6_ONLY_HPP diff --git a/Sources/Vendor/asio/include/asio/is_executor.hpp b/Sources/Vendor/asio/include/asio/is_executor.hpp deleted file mode 100644 index a1661ec..0000000 --- a/Sources/Vendor/asio/include/asio/is_executor.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// is_executor.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IS_EXECUTOR_HPP -#define ASIO_IS_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/detail/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// The is_executor trait detects whether a type T meets the Executor type -/// requirements. -/** - * Class template @c is_executor is a UnaryTypeTrait that is derived from @c - * true_type if the type @c T meets the syntactic requirements for Executor, - * otherwise @c false_type. - */ -template -struct is_executor -#if defined(GENERATING_DOCUMENTATION) - : integral_constant -#else // defined(GENERATING_DOCUMENTATION) - : asio::detail::is_executor -#endif // defined(GENERATING_DOCUMENTATION) -{ -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IS_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/is_read_buffered.hpp b/Sources/Vendor/asio/include/asio/is_read_buffered.hpp deleted file mode 100644 index c5a67b2..0000000 --- a/Sources/Vendor/asio/include/asio/is_read_buffered.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// is_read_buffered.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IS_READ_BUFFERED_HPP -#define ASIO_IS_READ_BUFFERED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/buffered_read_stream_fwd.hpp" -#include "asio/buffered_stream_fwd.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail { - -template -char is_read_buffered_helper(buffered_stream* s); - -template -char is_read_buffered_helper(buffered_read_stream* s); - -struct is_read_buffered_big_type { char data[10]; }; -is_read_buffered_big_type is_read_buffered_helper(...); - -} // namespace detail - -/// The is_read_buffered class is a traits class that may be used to determine -/// whether a stream type supports buffering of read data. -template -class is_read_buffered -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true only if the Stream type supports buffering of - /// read data. - static const bool value; -#else - ASIO_STATIC_CONSTANT(bool, - value = sizeof(detail::is_read_buffered_helper((Stream*)0)) == 1); -#endif -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IS_READ_BUFFERED_HPP diff --git a/Sources/Vendor/asio/include/asio/is_write_buffered.hpp b/Sources/Vendor/asio/include/asio/is_write_buffered.hpp deleted file mode 100644 index e237dd6..0000000 --- a/Sources/Vendor/asio/include/asio/is_write_buffered.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// is_write_buffered.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_IS_WRITE_BUFFERED_HPP -#define ASIO_IS_WRITE_BUFFERED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/buffered_stream_fwd.hpp" -#include "asio/buffered_write_stream_fwd.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail { - -template -char is_write_buffered_helper(buffered_stream* s); - -template -char is_write_buffered_helper(buffered_write_stream* s); - -struct is_write_buffered_big_type { char data[10]; }; -is_write_buffered_big_type is_write_buffered_helper(...); - -} // namespace detail - -/// The is_write_buffered class is a traits class that may be used to determine -/// whether a stream type supports buffering of written data. -template -class is_write_buffered -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true only if the Stream type supports buffering of - /// written data. - static const bool value; -#else - ASIO_STATIC_CONSTANT(bool, - value = sizeof(detail::is_write_buffered_helper((Stream*)0)) == 1); -#endif -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_IS_WRITE_BUFFERED_HPP diff --git a/Sources/Vendor/asio/include/asio/local/basic_endpoint.hpp b/Sources/Vendor/asio/include/asio/local/basic_endpoint.hpp deleted file mode 100644 index 94e470a..0000000 --- a/Sources/Vendor/asio/include/asio/local/basic_endpoint.hpp +++ /dev/null @@ -1,239 +0,0 @@ -// -// local/basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// 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_LOCAL_BASIC_ENDPOINT_HPP -#define ASIO_LOCAL_BASIC_ENDPOINT_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_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/local/detail/endpoint.hpp" - -#if !defined(ASIO_NO_IOSTREAM) -# include -#endif // !defined(ASIO_NO_IOSTREAM) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Describes an endpoint for a UNIX socket. -/** - * The asio::local::basic_endpoint class template describes an endpoint - * that may be associated with a particular UNIX socket. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template -class basic_endpoint -{ -public: - /// The protocol type associated with the endpoint. - typedef Protocol protocol_type; - - /// The type of the endpoint structure. This type is dependent on the - /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined data_type; -#else - typedef asio::detail::socket_addr_type data_type; -#endif - - /// Default constructor. - basic_endpoint() - { - } - - /// Construct an endpoint using the specified path name. - basic_endpoint(const char* path_name) - : impl_(path_name) - { - } - - /// Construct an endpoint using the specified path name. - basic_endpoint(const std::string& path_name) - : impl_(path_name) - { - } - - /// Copy constructor. - basic_endpoint(const basic_endpoint& other) - : impl_(other.impl_) - { - } - -#if defined(ASIO_HAS_MOVE) - /// Move constructor. - basic_endpoint(basic_endpoint&& other) - : impl_(other.impl_) - { - } -#endif // defined(ASIO_HAS_MOVE) - - /// Assign from another endpoint. - basic_endpoint& operator=(const basic_endpoint& other) - { - impl_ = other.impl_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) - /// Move-assign from another endpoint. - basic_endpoint& operator=(basic_endpoint&& other) - { - impl_ = other.impl_; - return *this; - } -#endif // defined(ASIO_HAS_MOVE) - - /// The protocol associated with the endpoint. - protocol_type protocol() const - { - return protocol_type(); - } - - /// Get the underlying endpoint in the native type. - data_type* data() - { - return impl_.data(); - } - - /// Get the underlying endpoint in the native type. - const data_type* data() const - { - return impl_.data(); - } - - /// Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return impl_.size(); - } - - /// Set the underlying size of the endpoint in the native type. - void resize(std::size_t new_size) - { - impl_.resize(new_size); - } - - /// Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return impl_.capacity(); - } - - /// Get the path associated with the endpoint. - std::string path() const - { - return impl_.path(); - } - - /// Set the path associated with the endpoint. - void path(const char* p) - { - impl_.path(p); - } - - /// Set the path associated with the endpoint. - void path(const std::string& p) - { - impl_.path(p); - } - - /// Compare two endpoints for equality. - friend bool operator==(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ == e2.impl_; - } - - /// Compare two endpoints for inequality. - friend bool operator!=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1.impl_ == e2.impl_); - } - - /// Compare endpoints for ordering. - friend bool operator<(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.impl_ < e2.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator>(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e2.impl_ < e1.impl_; - } - - /// Compare endpoints for ordering. - friend bool operator<=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e2 < e1); - } - - /// Compare endpoints for ordering. - friend bool operator>=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return !(e1 < e2); - } - -private: - // The underlying UNIX domain endpoint. - asio::local::detail::endpoint impl_; -}; - -/// Output an endpoint as a string. -/** - * Used to output a human-readable string for a specified endpoint. - * - * @param os The output stream to which the string will be written. - * - * @param endpoint The endpoint to be written. - * - * @return The output stream. - * - * @relates asio::local::basic_endpoint - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, - const basic_endpoint& endpoint) -{ - os << endpoint.path(); - return os; -} - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_BASIC_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/local/connect_pair.hpp b/Sources/Vendor/asio/include/asio/local/connect_pair.hpp deleted file mode 100644 index 2f7c090..0000000 --- a/Sources/Vendor/asio/include/asio/local/connect_pair.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// local/connect_pair.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_LOCAL_CONNECT_PAIR_HPP -#define ASIO_LOCAL_CONNECT_PAIR_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_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_socket.hpp" -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Create a pair of connected sockets. -template -void connect_pair( - basic_socket& socket1, - basic_socket& socket2); - -/// Create a pair of connected sockets. -template -ASIO_SYNC_OP_VOID connect_pair( - basic_socket& socket1, - basic_socket& socket2, - asio::error_code& ec); - -template -inline void connect_pair( - basic_socket& socket1, - basic_socket& socket2) -{ - asio::error_code ec; - connect_pair(socket1, socket2, ec); - asio::detail::throw_error(ec, "connect_pair"); -} - -template -inline ASIO_SYNC_OP_VOID connect_pair( - basic_socket& socket1, - basic_socket& socket2, - asio::error_code& ec) -{ - // Check that this function is only being used with a UNIX domain socket. - asio::local::basic_endpoint* tmp - = static_cast(0); - (void)tmp; - - Protocol protocol; - asio::detail::socket_type sv[2]; - if (asio::detail::socket_ops::socketpair(protocol.family(), - protocol.type(), protocol.protocol(), sv, ec) - == asio::detail::socket_error_retval) - ASIO_SYNC_OP_VOID_RETURN(ec); - - socket1.assign(protocol, sv[0], ec); - if (ec) - { - asio::error_code temp_ec; - asio::detail::socket_ops::state_type state[2] = { 0, 0 }; - asio::detail::socket_ops::close(sv[0], state[0], true, temp_ec); - asio::detail::socket_ops::close(sv[1], state[1], true, temp_ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - socket2.assign(protocol, sv[1], ec); - if (ec) - { - asio::error_code temp_ec; - socket1.close(temp_ec); - asio::detail::socket_ops::state_type state = 0; - asio::detail::socket_ops::close(sv[1], state, true, temp_ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_CONNECT_PAIR_HPP diff --git a/Sources/Vendor/asio/include/asio/local/datagram_protocol.hpp b/Sources/Vendor/asio/include/asio/local/datagram_protocol.hpp deleted file mode 100644 index b87df2e..0000000 --- a/Sources/Vendor/asio/include/asio/local/datagram_protocol.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// local/datagram_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_LOCAL_DATAGRAM_PROTOCOL_HPP -#define ASIO_LOCAL_DATAGRAM_PROTOCOL_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_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_datagram_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Encapsulates the flags needed for datagram-oriented UNIX sockets. -/** - * The asio::local::datagram_protocol class contains flags necessary for - * datagram-oriented UNIX domain sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class datagram_protocol -{ -public: - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_DGRAM; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return 0; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return AF_UNIX; - } - - /// The type of a UNIX domain endpoint. - typedef basic_endpoint endpoint; - - /// The UNIX domain socket type. - typedef basic_datagram_socket socket; -}; - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/local/detail/endpoint.hpp b/Sources/Vendor/asio/include/asio/local/detail/endpoint.hpp deleted file mode 100644 index 4870f3b..0000000 --- a/Sources/Vendor/asio/include/asio/local/detail/endpoint.hpp +++ /dev/null @@ -1,133 +0,0 @@ -// -// local/detail/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// 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_LOCAL_DETAIL_ENDPOINT_HPP -#define ASIO_LOCAL_DETAIL_ENDPOINT_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_LOCAL_SOCKETS) - -#include -#include -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { -namespace detail { - -// Helper class for implementing a UNIX domain endpoint. -class endpoint -{ -public: - // Default constructor. - ASIO_DECL endpoint(); - - // Construct an endpoint using the specified path name. - ASIO_DECL endpoint(const char* path_name); - - // Construct an endpoint using the specified path name. - ASIO_DECL endpoint(const std::string& path_name); - - // Copy constructor. - endpoint(const endpoint& other) - : data_(other.data_), - path_length_(other.path_length_) - { - } - - // Assign from another endpoint. - endpoint& operator=(const endpoint& other) - { - data_ = other.data_; - path_length_ = other.path_length_; - return *this; - } - - // Get the underlying endpoint in the native type. - asio::detail::socket_addr_type* data() - { - return &data_.base; - } - - // Get the underlying endpoint in the native type. - const asio::detail::socket_addr_type* data() const - { - return &data_.base; - } - - // Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return path_length_ - + offsetof(asio::detail::sockaddr_un_type, sun_path); - } - - // Set the underlying size of the endpoint in the native type. - ASIO_DECL void resize(std::size_t size); - - // Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return sizeof(asio::detail::sockaddr_un_type); - } - - // Get the path associated with the endpoint. - ASIO_DECL std::string path() const; - - // Set the path associated with the endpoint. - ASIO_DECL void path(const char* p); - - // Set the path associated with the endpoint. - ASIO_DECL void path(const std::string& p); - - // Compare two endpoints for equality. - ASIO_DECL friend bool operator==( - const endpoint& e1, const endpoint& e2); - - // Compare endpoints for ordering. - ASIO_DECL friend bool operator<( - const endpoint& e1, const endpoint& e2); - -private: - // The underlying UNIX socket address. - union data_union - { - asio::detail::socket_addr_type base; - asio::detail::sockaddr_un_type local; - } data_; - - // The length of the path associated with the endpoint. - std::size_t path_length_; - - // Initialise with a specified path. - ASIO_DECL void init(const char* path, std::size_t path_length); -}; - -} // namespace detail -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/local/detail/impl/endpoint.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - -#endif // ASIO_LOCAL_DETAIL_ENDPOINT_HPP diff --git a/Sources/Vendor/asio/include/asio/local/detail/impl/endpoint.ipp b/Sources/Vendor/asio/include/asio/local/detail/impl/endpoint.ipp deleted file mode 100644 index d5bbf50..0000000 --- a/Sources/Vendor/asio/include/asio/local/detail/impl/endpoint.ipp +++ /dev/null @@ -1,129 +0,0 @@ -// -// local/detail/impl/endpoint.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Derived from a public domain implementation written by Daniel Casimiro. -// -// 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_LOCAL_DETAIL_IMPL_ENDPOINT_IPP -#define ASIO_LOCAL_DETAIL_IMPL_ENDPOINT_IPP - -#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_LOCAL_SOCKETS) - -#include -#include "asio/detail/socket_ops.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/local/detail/endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { -namespace detail { - -endpoint::endpoint() -{ - init("", 0); -} - -endpoint::endpoint(const char* path_name) -{ - using namespace std; // For strlen. - init(path_name, strlen(path_name)); -} - -endpoint::endpoint(const std::string& path_name) -{ - init(path_name.data(), path_name.length()); -} - -void endpoint::resize(std::size_t new_size) -{ - if (new_size > sizeof(asio::detail::sockaddr_un_type)) - { - asio::error_code ec(asio::error::invalid_argument); - asio::detail::throw_error(ec); - } - else if (new_size == 0) - { - path_length_ = 0; - } - else - { - path_length_ = new_size - - offsetof(asio::detail::sockaddr_un_type, sun_path); - - // The path returned by the operating system may be NUL-terminated. - if (path_length_ > 0 && data_.local.sun_path[path_length_ - 1] == 0) - --path_length_; - } -} - -std::string endpoint::path() const -{ - return std::string(data_.local.sun_path, path_length_); -} - -void endpoint::path(const char* p) -{ - using namespace std; // For strlen. - init(p, strlen(p)); -} - -void endpoint::path(const std::string& p) -{ - init(p.data(), p.length()); -} - -bool operator==(const endpoint& e1, const endpoint& e2) -{ - return e1.path() == e2.path(); -} - -bool operator<(const endpoint& e1, const endpoint& e2) -{ - return e1.path() < e2.path(); -} - -void endpoint::init(const char* path_name, std::size_t path_length) -{ - if (path_length > sizeof(data_.local.sun_path) - 1) - { - // The buffer is not large enough to store this address. - asio::error_code ec(asio::error::name_too_long); - asio::detail::throw_error(ec); - } - - using namespace std; // For memcpy. - data_.local = asio::detail::sockaddr_un_type(); - data_.local.sun_family = AF_UNIX; - if (path_length > 0) - memcpy(data_.local.sun_path, path_name, path_length); - path_length_ = path_length; - - // NUL-terminate normal path names. Names that start with a NUL are in the - // UNIX domain protocol's "abstract namespace" and are not NUL-terminated. - if (path_length > 0 && data_.local.sun_path[0] == 0) - data_.local.sun_path[path_length] = 0; -} - -} // namespace detail -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - -#endif // ASIO_LOCAL_DETAIL_IMPL_ENDPOINT_IPP diff --git a/Sources/Vendor/asio/include/asio/local/stream_protocol.hpp b/Sources/Vendor/asio/include/asio/local/stream_protocol.hpp deleted file mode 100644 index e2ef5f3..0000000 --- a/Sources/Vendor/asio/include/asio/local/stream_protocol.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// local/stream_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_LOCAL_STREAM_PROTOCOL_HPP -#define ASIO_LOCAL_STREAM_PROTOCOL_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_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/detail/socket_types.hpp" -#include "asio/local/basic_endpoint.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace local { - -/// Encapsulates the flags needed for stream-oriented UNIX sockets. -/** - * The asio::local::stream_protocol class contains flags necessary for - * stream-oriented UNIX domain sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class stream_protocol -{ -public: - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_STREAM; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return 0; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return AF_UNIX; - } - - /// The type of a UNIX domain endpoint. - typedef basic_endpoint endpoint; - - /// The UNIX domain socket type. - typedef basic_stream_socket socket; - - /// The UNIX domain acceptor type. - typedef basic_socket_acceptor acceptor; - -#if !defined(ASIO_NO_IOSTREAM) - /// The UNIX domain iostream type. - typedef basic_socket_iostream iostream; -#endif // !defined(ASIO_NO_IOSTREAM) -}; - -} // namespace local -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_LOCAL_STREAM_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/include/asio/packaged_task.hpp b/Sources/Vendor/asio/include/asio/packaged_task.hpp deleted file mode 100644 index 29b15b8..0000000 --- a/Sources/Vendor/asio/include/asio/packaged_task.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// -// packaged_task.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_PACKAGED_TASK_HPP -#define ASIO_PACKAGED_TASK_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/future.hpp" - -#if defined(ASIO_HAS_STD_FUTURE_CLASS) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/detail/variadic_templates.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_HAS_VARIADIC_TEMPLATES) \ - || defined(GENERATING_DOCUMENTATION) - -/// Partial specialisation of @c async_result for @c std::packaged_task. -template -class async_result, Signature> -{ -public: - /// The packaged task is the concrete completion handler type. - typedef std::packaged_task completion_handler_type; - - /// The return type of the initiating function is the future obtained from - /// the packaged task. - typedef std::future return_type; - - /// The constructor extracts the future from the packaged task. - explicit async_result(completion_handler_type& h) - : future_(h.get_future()) - { - } - - /// Returns the packaged task's future. - return_type get() - { - return std::move(future_); - } - -private: - return_type future_; -}; - -#else // defined(ASIO_HAS_VARIADIC_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) - -template -struct async_result, Signature> -{ - typedef std::packaged_task completion_handler_type; - typedef std::future return_type; - - explicit async_result(completion_handler_type& h) - : future_(h.get_future()) - { - } - - return_type get() - { - return std::move(future_); - } - -private: - return_type future_; -}; - -#define ASIO_PRIVATE_ASYNC_RESULT_DEF(n) \ - template \ - class async_result< \ - std::packaged_task, Signature> \ - { \ - public: \ - typedef std::packaged_task< \ - Result(ASIO_VARIADIC_TARGS(n))> \ - completion_handler_type; \ - \ - typedef std::future return_type; \ - \ - explicit async_result(completion_handler_type& h) \ - : future_(h.get_future()) \ - { \ - } \ - \ - return_type get() \ - { \ - return std::move(future_); \ - } \ - \ - private: \ - return_type future_; \ - }; \ - /**/ - ASIO_VARIADIC_GENERATE(ASIO_PRIVATE_ASYNC_RESULT_DEF) -#undef ASIO_PRIVATE_ASYNC_RESULT_DEF - -#endif // defined(ASIO_HAS_VARIADIC_TEMPLATES) - // || defined(GENERATING_DOCUMENTATION) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_STD_FUTURE_CLASS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_PACKAGED_TASK_HPP diff --git a/Sources/Vendor/asio/include/asio/placeholders.hpp b/Sources/Vendor/asio/include/asio/placeholders.hpp deleted file mode 100644 index e71a21e..0000000 --- a/Sources/Vendor/asio/include/asio/placeholders.hpp +++ /dev/null @@ -1,151 +0,0 @@ -// -// placeholders.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_PLACEHOLDERS_HPP -#define ASIO_PLACEHOLDERS_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_BOOST_BIND) -# include -#endif // defined(ASIO_HAS_BOOST_BIND) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace placeholders { - -#if defined(GENERATING_DOCUMENTATION) - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the error argument of a handler for any of the asynchronous functions. -unspecified error; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the bytes_transferred argument of a handler for asynchronous functions such -/// as asio::basic_stream_socket::async_write_some or -/// asio::async_write. -unspecified bytes_transferred; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the iterator argument of a handler for asynchronous functions such as -/// asio::async_connect. -unspecified iterator; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the results argument of a handler for asynchronous functions such as -/// asio::basic_resolver::async_resolve. -unspecified results; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the results argument of a handler for asynchronous functions such as -/// asio::async_connect. -unspecified endpoint; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the signal_number argument of a handler for asynchronous functions such as -/// asio::signal_set::async_wait. -unspecified signal_number; - -#elif defined(ASIO_HAS_BOOST_BIND) -# if defined(__BORLANDC__) || defined(__GNUC__) - -inline boost::arg<1> error() -{ - return boost::arg<1>(); -} - -inline boost::arg<2> bytes_transferred() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> iterator() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> results() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> endpoint() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> signal_number() -{ - return boost::arg<2>(); -} - -# else - -namespace detail -{ - template - struct placeholder - { - static boost::arg& get() - { - static boost::arg result; - return result; - } - }; -} - -# if defined(ASIO_MSVC) && (ASIO_MSVC < 1400) - -static boost::arg<1>& error - = asio::placeholders::detail::placeholder<1>::get(); -static boost::arg<2>& bytes_transferred - = asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& iterator - = asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& results - = asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& endpoint - = asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& signal_number - = asio::placeholders::detail::placeholder<2>::get(); - -# else - -namespace -{ - boost::arg<1>& error - = asio::placeholders::detail::placeholder<1>::get(); - boost::arg<2>& bytes_transferred - = asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& iterator - = asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& results - = asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& endpoint - = asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& signal_number - = asio::placeholders::detail::placeholder<2>::get(); -} // namespace - -# endif -# endif -#endif - -} // namespace placeholders -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_PLACEHOLDERS_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/basic_descriptor.hpp b/Sources/Vendor/asio/include/asio/posix/basic_descriptor.hpp deleted file mode 100644 index c15da63..0000000 --- a/Sources/Vendor/asio/include/asio/posix/basic_descriptor.hpp +++ /dev/null @@ -1,582 +0,0 @@ -// -// posix/basic_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_POSIX_BASIC_DESCRIPTOR_HPP -#define ASIO_POSIX_BASIC_DESCRIPTOR_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_io_object.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/posix/descriptor_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// Provides POSIX descriptor functionality. -/** - * The posix::basic_descriptor class template provides the ability to wrap a - * POSIX descriptor. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_descriptor - : public basic_io_object, - public descriptor_base -{ -public: - /// The native representation of a descriptor. - typedef typename DescriptorService::native_handle_type native_handle_type; - - /// A basic_descriptor is always the lowest layer. - typedef basic_descriptor lowest_layer_type; - - /// Construct a basic_descriptor without opening it. - /** - * This constructor creates a descriptor without opening it. - * - * @param io_context The io_context object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit basic_descriptor(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a basic_descriptor on an existing native descriptor. - /** - * This constructor creates a descriptor object to hold an existing native - * descriptor. - * - * @param io_context The io_context object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws asio::system_error Thrown on failure. - */ - basic_descriptor(asio::io_context& io_context, - const native_handle_type& native_descriptor) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_descriptor, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_descriptor from another. - /** - * This constructor moves a descriptor from one object to another. - * - * @param other The other basic_descriptor object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_descriptor(io_context&) constructor. - */ - basic_descriptor(basic_descriptor&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_descriptor)(other)) - { - } - - /// Move-assign a basic_descriptor from another. - /** - * This assignment operator moves a descriptor from one object to another. - * - * @param other The other basic_descriptor object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_descriptor(io_context&) constructor. - */ - basic_descriptor& operator=(basic_descriptor&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_descriptor)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_descriptor) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_descriptor, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& native_descriptor, - asio::error_code& ec) - { - this->get_service().assign( - this->get_implementation(), native_descriptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the descriptor is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native descriptor representation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. This is intended to allow access to native descriptor - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Release ownership of the native descriptor implementation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. After calling this function, @c is_open() returns false. The - * caller is responsible for closing the descriptor. - * - * All outstanding asynchronous read or write operations will finish - * immediately, and the handlers for cancelled operations will be passed the - * asio::error::operation_aborted error. - */ - native_handle_type release() - { - return this->get_service().release(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * asio::posix::descriptor_base::bytes_readable @n - * asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::posix::stream_descriptor::bytes_readable command; - * descriptor.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * asio::posix::descriptor_base::bytes_readable @n - * asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::posix::stream_descriptor::bytes_readable command; - * asio::error_code ec; - * descriptor.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID io_control(IoControlCommand& command, - asio::error_code& ec) - { - this->get_service().io_control(this->get_implementation(), command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the descriptor. - /** - * @returns @c true if the descriptor's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the descriptor. - /** - * @param mode If @c true, the descriptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @throws asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - void non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the descriptor. - /** - * @param mode If @c true, the descriptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - ASIO_SYNC_OP_VOID non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().non_blocking(this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native descriptor. This mode has no effect on the behaviour of the - * descriptor object's synchronous operations. - * - * @returns @c true if the underlying descriptor is in non-blocking mode and - * direct system calls may fail with asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the descriptor object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native descriptor. - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking( - this->get_implementation()); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native descriptor. It has no effect on the behaviour of the descriptor - * object's synchronous operations. - * - * @param mode If @c true, the underlying descriptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @throws asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - void native_non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native descriptor. It has no effect on the behaviour of the descriptor - * object's synchronous operations. - * - * @param mode If @c true, the underlying descriptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - ASIO_SYNC_OP_VOID native_non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - /** - * This function is used to perform a blocking wait for a descriptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @par Example - * Waiting for a descriptor to become readable. - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * descriptor.wait(asio::posix::stream_descriptor::wait_read); - * @endcode - */ - void wait(wait_type w) - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), w, ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - /** - * This function is used to perform a blocking wait for a descriptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Waiting for a descriptor to become readable. - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::error_code ec; - * descriptor.wait(asio::posix::stream_descriptor::wait_read, ec); - * @endcode - */ - ASIO_SYNC_OP_VOID wait(wait_type w, asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the descriptor to become ready to read, ready to - /// write, or to have pending error conditions. - /** - * This function is used to perform an asynchronous wait for a descriptor to - * enter a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @param handler The handler to be called when the wait operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void wait_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Wait succeeded. - * } - * } - * - * ... - * - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * descriptor.async_wait( - * asio::posix::stream_descriptor::wait_read, - * wait_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(wait_type w, ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - - return this->get_service().async_wait(this->get_implementation(), - w, ASIO_MOVE_CAST(WaitHandler)(handler)); - } - -protected: - /// Protected destructor to prevent deletion through this type. - ~basic_descriptor() - { - } -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_POSIX_BASIC_DESCRIPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/basic_stream_descriptor.hpp b/Sources/Vendor/asio/include/asio/posix/basic_stream_descriptor.hpp deleted file mode 100644 index acd5cb6..0000000 --- a/Sources/Vendor/asio/include/asio/posix/basic_stream_descriptor.hpp +++ /dev/null @@ -1,362 +0,0 @@ -// -// posix/basic_stream_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_POSIX_BASIC_STREAM_DESCRIPTOR_HPP -#define ASIO_POSIX_BASIC_STREAM_DESCRIPTOR_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/posix/basic_descriptor.hpp" -#include "asio/posix/stream_descriptor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// Provides stream-oriented descriptor functionality. -/** - * The posix::basic_stream_descriptor class template provides asynchronous and - * blocking stream-oriented descriptor functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class basic_stream_descriptor - : public basic_descriptor -{ -public: - /// The native representation of a descriptor. - typedef typename StreamDescriptorService::native_handle_type - native_handle_type; - - /// Construct a basic_stream_descriptor without opening it. - /** - * This constructor creates a stream descriptor without opening it. The - * descriptor needs to be opened and then connected or accepted before data - * can be sent or received on it. - * - * @param io_context The io_context object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit basic_stream_descriptor(asio::io_context& io_context) - : basic_descriptor(io_context) - { - } - - /// Construct a basic_stream_descriptor on an existing native descriptor. - /** - * This constructor creates a stream descriptor object to hold an existing - * native descriptor. - * - * @param io_context The io_context object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor The new underlying descriptor implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_descriptor(asio::io_context& io_context, - const native_handle_type& native_descriptor) - : basic_descriptor(io_context, native_descriptor) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_stream_descriptor from another. - /** - * This constructor moves a stream descriptor from one object to another. - * - * @param other The other basic_stream_descriptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_descriptor(io_context&) constructor. - */ - basic_stream_descriptor(basic_stream_descriptor&& other) - : basic_descriptor( - ASIO_MOVE_CAST(basic_stream_descriptor)(other)) - { - } - - /// Move-assign a basic_stream_descriptor from another. - /** - * This assignment operator moves a stream descriptor from one object to - * another. - * - * @param other The other basic_stream_descriptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_descriptor(io_context&) constructor. - */ - basic_stream_descriptor& operator=(basic_stream_descriptor&& other) - { - basic_descriptor::operator=( - ASIO_MOVE_CAST(basic_stream_descriptor)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the descriptor. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_POSIX_BASIC_STREAM_DESCRIPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/descriptor.hpp b/Sources/Vendor/asio/include/asio/posix/descriptor.hpp deleted file mode 100644 index d0cee1a..0000000 --- a/Sources/Vendor/asio/include/asio/posix/descriptor.hpp +++ /dev/null @@ -1,644 +0,0 @@ -// -// posix/descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_POSIX_DESCRIPTOR_HPP -#define ASIO_POSIX_DESCRIPTOR_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/reactive_descriptor_service.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/posix/descriptor_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#define ASIO_SVC_T asio::detail::reactive_descriptor_service - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// Provides POSIX descriptor functionality. -/** - * The posix::descriptor class template provides the ability to wrap a - * POSIX descriptor. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class descriptor - : ASIO_SVC_ACCESS basic_io_object, - public descriptor_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a descriptor. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// A descriptor is always the lowest layer. - typedef descriptor lowest_layer_type; - - /// Construct a descriptor without opening it. - /** - * This constructor creates a descriptor without opening it. - * - * @param io_context The io_context object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit descriptor(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a descriptor on an existing native descriptor. - /** - * This constructor creates a descriptor object to hold an existing native - * descriptor. - * - * @param io_context The io_context object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws asio::system_error Thrown on failure. - */ - descriptor(asio::io_context& io_context, - const native_handle_type& native_descriptor) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_descriptor, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a descriptor from another. - /** - * This constructor moves a descriptor from one object to another. - * - * @param other The other descriptor object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c descriptor(io_context&) constructor. - */ - descriptor(descriptor&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a descriptor from another. - /** - * This assignment operator moves a descriptor from one object to another. - * - * @param other The other descriptor object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c descriptor(io_context&) constructor. - */ - descriptor& operator=(descriptor&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_descriptor) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_descriptor, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& native_descriptor, - asio::error_code& ec) - { - this->get_service().assign( - this->get_implementation(), native_descriptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the descriptor is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. Note that, even if - * the function indicates an error, the underlying descriptor is closed. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native descriptor representation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. This is intended to allow access to native descriptor - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Release ownership of the native descriptor implementation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. After calling this function, @c is_open() returns false. The - * caller is responsible for closing the descriptor. - * - * All outstanding asynchronous read or write operations will finish - * immediately, and the handlers for cancelled operations will be passed the - * asio::error::operation_aborted error. - */ - native_handle_type release() - { - return this->get_service().release(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @throws asio::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * asio::posix::descriptor_base::bytes_readable @n - * asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::posix::stream_descriptor::bytes_readable command; - * descriptor.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - asio::error_code ec; - this->get_service().io_control(this->get_implementation(), command, ec); - asio::detail::throw_error(ec, "io_control"); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * asio::posix::descriptor_base::bytes_readable @n - * asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::posix::stream_descriptor::bytes_readable command; - * asio::error_code ec; - * descriptor.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - ASIO_SYNC_OP_VOID io_control(IoControlCommand& command, - asio::error_code& ec) - { - this->get_service().io_control(this->get_implementation(), command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the descriptor. - /** - * @returns @c true if the descriptor's synchronous operations will fail with - * asio::error::would_block if they are unable to perform the requested - * operation immediately. If @c false, synchronous operations will block - * until complete. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - bool non_blocking() const - { - return this->get_service().non_blocking(this->get_implementation()); - } - - /// Sets the non-blocking mode of the descriptor. - /** - * @param mode If @c true, the descriptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @throws asio::system_error Thrown on failure. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - void non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().non_blocking(this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "non_blocking"); - } - - /// Sets the non-blocking mode of the descriptor. - /** - * @param mode If @c true, the descriptor's synchronous operations will fail - * with asio::error::would_block if they are unable to perform the - * requested operation immediately. If @c false, synchronous operations will - * block until complete. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note The non-blocking mode has no effect on the behaviour of asynchronous - * operations. Asynchronous operations will never fail with the error - * asio::error::would_block. - */ - ASIO_SYNC_OP_VOID non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().non_blocking(this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to retrieve the non-blocking mode of the underlying - * native descriptor. This mode has no effect on the behaviour of the - * descriptor object's synchronous operations. - * - * @returns @c true if the underlying descriptor is in non-blocking mode and - * direct system calls may fail with asio::error::would_block (or the - * equivalent system error). - * - * @note The current non-blocking mode is cached by the descriptor object. - * Consequently, the return value may be incorrect if the non-blocking mode - * was set directly on the native descriptor. - */ - bool native_non_blocking() const - { - return this->get_service().native_non_blocking( - this->get_implementation()); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native descriptor. It has no effect on the behaviour of the descriptor - * object's synchronous operations. - * - * @param mode If @c true, the underlying descriptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @throws asio::system_error Thrown on failure. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - void native_non_blocking(bool mode) - { - asio::error_code ec; - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - asio::detail::throw_error(ec, "native_non_blocking"); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - /** - * This function is used to modify the non-blocking mode of the underlying - * native descriptor. It has no effect on the behaviour of the descriptor - * object's synchronous operations. - * - * @param mode If @c true, the underlying descriptor is put into non-blocking - * mode and direct system calls may fail with asio::error::would_block - * (or the equivalent system error). - * - * @param ec Set to indicate what error occurred, if any. If the @c mode is - * @c false, but the current value of @c non_blocking() is @c true, this - * function fails with asio::error::invalid_argument, as the - * combination does not make sense. - */ - ASIO_SYNC_OP_VOID native_non_blocking( - bool mode, asio::error_code& ec) - { - this->get_service().native_non_blocking( - this->get_implementation(), mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - /** - * This function is used to perform a blocking wait for a descriptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @par Example - * Waiting for a descriptor to become readable. - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * descriptor.wait(asio::posix::stream_descriptor::wait_read); - * @endcode - */ - void wait(wait_type w) - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), w, ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - /** - * This function is used to perform a blocking wait for a descriptor to enter - * a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Waiting for a descriptor to become readable. - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::error_code ec; - * descriptor.wait(asio::posix::stream_descriptor::wait_read, ec); - * @endcode - */ - ASIO_SYNC_OP_VOID wait(wait_type w, asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the descriptor to become ready to read, ready to - /// write, or to have pending error conditions. - /** - * This function is used to perform an asynchronous wait for a descriptor to - * enter a ready to read, write or error condition state. - * - * @param w Specifies the desired descriptor state. - * - * @param handler The handler to be called when the wait operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * @code - * void wait_handler(const asio::error_code& error) - * { - * if (!error) - * { - * // Wait succeeded. - * } - * } - * - * ... - * - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * descriptor.async_wait( - * asio::posix::stream_descriptor::wait_read, - * wait_handler); - * @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(wait_type w, ASIO_MOVE_ARG(WaitHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WaitHandler. - ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check; - - async_completion init(handler); - - this->get_service().async_wait( - this->get_implementation(), w, init.completion_handler); - - return init.result.get(); - } - -protected: - /// Protected destructor to prevent deletion through this type. - /** - * This function destroys the descriptor, cancelling any outstanding - * asynchronous wait operations associated with the descriptor as if by - * calling @c cancel. - */ - ~descriptor() - { - } -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_SVC_T - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_POSIX_DESCRIPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/descriptor_base.hpp b/Sources/Vendor/asio/include/asio/posix/descriptor_base.hpp deleted file mode 100644 index 4aac04f..0000000 --- a/Sources/Vendor/asio/include/asio/posix/descriptor_base.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// posix/descriptor_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_POSIX_DESCRIPTOR_BASE_HPP -#define ASIO_POSIX_DESCRIPTOR_BASE_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_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/io_control.hpp" -#include "asio/detail/socket_option.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// The descriptor_base class is used as a base for the descriptor class as a -/// place to define the associated IO control commands. -class descriptor_base -{ -public: - /// Wait types. - /** - * For use with descriptor::wait() and descriptor::async_wait(). - */ - enum wait_type - { - /// Wait for a descriptor to become ready to read. - wait_read, - - /// Wait for a descriptor to become ready to write. - wait_write, - - /// Wait for a descriptor to have error conditions pending. - wait_error - }; - - /// IO control command to get the amount of data that can be read without - /// blocking. - /** - * Implements the FIONREAD IO control command. - * - * @par Example - * @code - * asio::posix::stream_descriptor descriptor(io_context); - * ... - * asio::descriptor_base::bytes_readable command(true); - * descriptor.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - * - * @par Concepts: - * IoControlCommand. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined bytes_readable; -#else - typedef asio::detail::io_control::bytes_readable bytes_readable; -#endif - -protected: - /// Protected destructor to prevent deletion through this type. - ~descriptor_base() - { - } -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_POSIX_DESCRIPTOR_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/stream_descriptor.hpp b/Sources/Vendor/asio/include/asio/posix/stream_descriptor.hpp deleted file mode 100644 index abb426a..0000000 --- a/Sources/Vendor/asio/include/asio/posix/stream_descriptor.hpp +++ /dev/null @@ -1,360 +0,0 @@ -// -// posix/stream_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_POSIX_STREAM_DESCRIPTOR_HPP -#define ASIO_POSIX_STREAM_DESCRIPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/posix/descriptor.hpp" - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/posix/basic_stream_descriptor.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -namespace asio { -namespace posix { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a stream-oriented descriptor. -typedef basic_stream_descriptor<> stream_descriptor; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides stream-oriented descriptor functionality. -/** - * The posix::stream_descriptor class template provides asynchronous and - * blocking stream-oriented descriptor functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -class stream_descriptor - : public descriptor -{ -public: - /// Construct a stream_descriptor without opening it. - /** - * This constructor creates a stream descriptor without opening it. The - * descriptor needs to be opened and then connected or accepted before data - * can be sent or received on it. - * - * @param io_context The io_context object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit stream_descriptor(asio::io_context& io_context) - : descriptor(io_context) - { - } - - /// Construct a stream_descriptor on an existing native descriptor. - /** - * This constructor creates a stream descriptor object to hold an existing - * native descriptor. - * - * @param io_context The io_context object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor The new underlying descriptor implementation. - * - * @throws asio::system_error Thrown on failure. - */ - stream_descriptor(asio::io_context& io_context, - const native_handle_type& native_descriptor) - : descriptor(io_context, native_descriptor) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a stream_descriptor from another. - /** - * This constructor moves a stream descriptor from one object to another. - * - * @param other The other stream_descriptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c stream_descriptor(io_context&) constructor. - */ - stream_descriptor(stream_descriptor&& other) - : descriptor(std::move(other)) - { - } - - /// Move-assign a stream_descriptor from another. - /** - * This assignment operator moves a stream descriptor from one object to - * another. - * - * @param other The other stream_descriptor object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c stream_descriptor(io_context&) constructor. - */ - stream_descriptor& operator=(stream_descriptor&& other) - { - descriptor::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the descriptor. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_write_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_read_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace posix -} // namespace asio - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_POSIX_STREAM_DESCRIPTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/posix/stream_descriptor_service.hpp b/Sources/Vendor/asio/include/asio/posix/stream_descriptor_service.hpp deleted file mode 100644 index 4ffbb96..0000000 --- a/Sources/Vendor/asio/include/asio/posix/stream_descriptor_service.hpp +++ /dev/null @@ -1,279 +0,0 @@ -// -// posix/stream_descriptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_POSIX_STREAM_DESCRIPTOR_SERVICE_HPP -#define ASIO_POSIX_STREAM_DESCRIPTOR_SERVICE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/detail/reactive_descriptor_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace posix { - -/// Default service implementation for a stream descriptor. -class stream_descriptor_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::reactive_descriptor_service service_impl_type; - -public: - /// The type of a stream descriptor implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native descriptor type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new stream descriptor service for the specified io_context. - explicit stream_descriptor_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new stream descriptor implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new stream descriptor implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another stream descriptor implementation. - void move_assign(implementation_type& impl, - stream_descriptor_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a stream descriptor implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native descriptor to a stream descriptor. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& native_descriptor, - asio::error_code& ec) - { - service_impl_.assign(impl, native_descriptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the descriptor is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream descriptor implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native descriptor implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Release ownership of the native descriptor implementation. - native_handle_type release(implementation_type& impl) - { - return service_impl_.release(impl); - } - - /// Cancel all asynchronous operations associated with the descriptor. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the descriptor. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the descriptor. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the descriptor. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native descriptor implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native descriptor implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the descriptor to become ready to read, ready to write, or to - /// have pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - descriptor_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the descriptor to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, descriptor_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_write_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_read_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace posix -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_POSIX_STREAM_DESCRIPTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/post.hpp b/Sources/Vendor/asio/include/asio/post.hpp deleted file mode 100644 index 87d7b96..0000000 --- a/Sources/Vendor/asio/include/asio/post.hpp +++ /dev/null @@ -1,107 +0,0 @@ -// -// post.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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_POST_HPP -#define ASIO_POST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the object's associated - * executor. The function object is queued for execution, and is never called - * from the current thread prior to returning from post(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex by performing - * get_associated_executor(handler). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Performs ex.post(std::move(handler), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - ASIO_MOVE_ARG(CompletionToken) token); - -/// Submits a completion token or function object for execution. -/** - * This function submits an object for execution using the specified executor. - * The function object is queued for execution, and is never called from the - * current thread prior to returning from post(). - * - * This function has the following effects: - * - * @li Constructs a function object handler of type @c Handler, initialized - * with handler(forward(token)). - * - * @li Constructs an object @c result of type async_result, - * initializing the object as result(handler). - * - * @li Obtains the handler's associated executor object @c ex1 by performing - * get_associated_executor(handler). - * - * @li Creates a work object @c w by performing make_work(ex1). - * - * @li Obtains the handler's associated allocator object @c alloc by performing - * get_associated_allocator(handler). - * - * @li Constructs a function object @c f with a function call operator that - * performs ex1.dispatch(std::move(handler), alloc) followed by - * w.reset(). - * - * @li Performs Executor(ex).post(std::move(f), alloc). - * - * @li Returns result.get(). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - const Executor& ex, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -/// Submits a completion token or function object for execution. -/** - * @returns post(ctx.get_executor(), forward(token)). - */ -template -ASIO_INITFN_RESULT_TYPE(CompletionToken, void()) post( - ExecutionContext& ctx, ASIO_MOVE_ARG(CompletionToken) token, - typename enable_if::value>::type* = 0); - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/post.hpp" - -#endif // ASIO_POST_HPP diff --git a/Sources/Vendor/asio/include/asio/raw_socket_service.hpp b/Sources/Vendor/asio/include/asio/raw_socket_service.hpp deleted file mode 100644 index 2bccf03..0000000 --- a/Sources/Vendor/asio/include/asio/raw_socket_service.hpp +++ /dev/null @@ -1,466 +0,0 @@ -// -// raw_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_RAW_SOCKET_SERVICE_HPP -#define ASIO_RAW_SOCKET_SERVICE_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_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a raw socket. -template -class raw_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::null_socket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The type of a raw socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new raw socket service for the specified io_context. - explicit raw_socket_service(asio::io_context& io_context) - : asio::detail::service_base< - raw_socket_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new raw socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new raw socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another raw socket implementation. - void move_assign(implementation_type& impl, - raw_socket_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All socket services have access to each other's implementations. - template friend class raw_socket_service; - - /// Move-construct a new raw socket implementation from another protocol - /// type. - template - void converting_move_construct(implementation_type& impl, - raw_socket_service& other_service, - typename raw_socket_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a raw socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - // Open a new raw socket implementation. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (protocol.type() == ASIO_OS_DEF(SOCK_RAW)) - service_impl_.open(impl, protocol, ec); - else - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to a raw socket. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a raw socket implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying socket. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native socket implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - // Bind the raw socket to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the raw socket to the specified endpoint. - ASIO_SYNC_OP_VOID connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - service_impl_.connect(impl, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - async_completion init(handler); - - service_impl_.async_connect(impl, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the socket. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native socket implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - ASIO_SYNC_OP_VOID shutdown(implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - service_impl_.shutdown(impl, what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Send raw data to the specified endpoint. - template - std::size_t send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send_to(impl, buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send_to(impl, buffers, - destination, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive raw data with the endpoint of the sender. - template - std::size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive_from(impl, buffers, sender_endpoint, flags, - ec); - } - - /// Start an asynchronous receive that will get the endpoint of the sender. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive_from(impl, buffers, - sender_endpoint, flags, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_RAW_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/read.hpp b/Sources/Vendor/asio/include/asio/read.hpp deleted file mode 100644 index 02e8b67..0000000 --- a/Sources/Vendor/asio/include/asio/read.hpp +++ /dev/null @@ -1,947 +0,0 @@ -// -// read.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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_READ_HPP -#define ASIO_READ_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/buffer.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** - * @defgroup read asio::read - * - * @brief The @c read function is a composed operation that reads a certain - * amount of data from a stream before returning. - */ -/*@{*/ - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read(s, asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read(s, asio::buffer(data, size), ec); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - asio::error_code& ec, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read(s, asio::buffer(data, size), - * asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, b, - * asio::transfer_all()); @endcode - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::read( - * s, b, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b, - asio::error_code& ec); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_read asio::async_read - * - * @brief The @c async_read function is a composed asynchronous operation that - * reads a certain amount of data from a stream before completion. - */ -/*@{*/ - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other read operations (such - * as async_read, the stream's async_read_some function, or any other composed - * operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * asio::async_read(s, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::async_read( - * s, buffers, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's async_read_some function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::async_read(s, - * asio::buffer(data, size), - * asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_mutable_buffer_sequence::value - >::type* = 0); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other read operations (such - * as async_read, the stream's async_read_some function, or any other composed - * operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload is equivalent to calling: - * @code asio::async_read( - * s, buffers, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The specified dynamic buffer sequence is full (that is, it has reached - * maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other read operations (such - * as async_read, the stream's async_read_some function, or any other composed - * operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's async_read_some function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other read operations (such - * as async_read, the stream's async_read_some function, or any other composed - * operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload is equivalent to calling: - * @code asio::async_read( - * s, b, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, basic_streambuf& b, - ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffer is full (that is, it has reached maximum size). - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other read operations (such - * as async_read, the stream's async_read_some function, or any other composed - * operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's async_read_some function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read(AsyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/read.hpp" - -#endif // ASIO_READ_HPP diff --git a/Sources/Vendor/asio/include/asio/read_at.hpp b/Sources/Vendor/asio/include/asio/read_at.hpp deleted file mode 100644 index 3e25a91..0000000 --- a/Sources/Vendor/asio/include/asio/read_at.hpp +++ /dev/null @@ -1,671 +0,0 @@ -// -// read_at.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_READ_AT_HPP -#define ASIO_READ_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** - * @defgroup read_at asio::read_at - * - * @brief The @c read_at function is a composed operation that reads a certain - * amount of data at the specified offset before returning. - */ -/*@{*/ - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read_at(d, 42, asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::read_at( - * d, 42, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read_at(d, 42, - * asio::buffer(data, size), ec); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::read_at( - * d, 42, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - asio::error_code& ec); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::read_at(d, 42, asio::buffer(data, size), - * asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::read_at( - * d, 42, b, - * asio::transfer_all()); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::read_at( - * d, 42, b, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b, - asio::error_code& ec); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_read_at asio::async_read_at - * - * @brief The @c async_read_at function is a composed asynchronous operation - * that reads a certain amount of data at the specified offset. - */ -/*@{*/ - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * asio::async_read_at(d, 42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::async_read_at( - * d, 42, buffers, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, uint64_t offset, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's async_read_some_at function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code asio::async_read_at(d, 42, - * asio::buffer(data, size), - * asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note This overload is equivalent to calling: - * @code asio::async_read_at( - * d, 42, b, - * asio::transfer_all(), - * handler); @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, uint64_t offset, - basic_streambuf& b, ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's async_read_some_at function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_at(AsyncRandomAccessReadDevice& d, - uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(ReadHandler) handler); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/read_at.hpp" - -#endif // ASIO_READ_AT_HPP diff --git a/Sources/Vendor/asio/include/asio/read_until.hpp b/Sources/Vendor/asio/include/asio/read_until.hpp deleted file mode 100644 index a346d4b..0000000 --- a/Sources/Vendor/asio/include/asio/read_until.hpp +++ /dev/null @@ -1,1826 +0,0 @@ -// -// read_until.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_READ_UNTIL_HPP -#define ASIO_READ_UNTIL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include -#include "asio/async_result.hpp" -#include "asio/detail/regex_fwd.hpp" -#include "asio/detail/string_view.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -namespace detail -{ - char (&has_result_type_helper(...))[2]; - - template - char has_result_type_helper(T*, typename T::result_type* = 0); - - template - struct has_result_type - { - enum { value = (sizeof((has_result_type_helper)((T*)(0))) == 1) }; - }; -} // namespace detail - -/// Type trait used to determine whether a type can be used as a match condition -/// function with read_until and async_read_until. -template -struct is_match_condition -{ -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true if the type may be used as a match condition. - static const bool value; -#else - enum - { - value = asio::is_function< - typename asio::remove_pointer::type>::value - || detail::has_result_type::value - }; -#endif -}; - -/** - * @defgroup read_until asio::read_until - * - * @brief The @c read_until function is a composed operation that reads data - * into a dynamic buffer sequence, or into a streambuf, until it contains a - * delimiter, matches a regular expression, or a function object indicates a - * match. - */ -/*@{*/ - -/// Read data into a dynamic buffer sequence until it contains a specified -/// delimiter. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains the specified - * delimiter. The call will block until one of the following conditions is - * true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains the delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param delim The delimiter character. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the delimiter. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond the delimiter. An application will - * typically leave that data in the dynamic buffer sequence for a subsequent - * read_until operation to examine. - * - * @par Example - * To read data into a @c std::string until a newline is encountered: - * @code std::string data; - * std::string n = asio::read_until(s, - * asio::dynamic_buffer(data), '\n'); - * std::string line = data.substr(0, n); - * data.erase(0, n); @endcode - * After the @c read_until operation completes successfully, the string @c data - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the buffer @c b as - * follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, char delim); - -/// Read data into a dynamic buffer sequence until it contains a specified -/// delimiter. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains the specified - * delimiter. The call will block until one of the following conditions is - * true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains the delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param delim The delimiter character. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond the delimiter. An application will - * typically leave that data in the dynamic buffer sequence for a subsequent - * read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - char delim, asio::error_code& ec); - -/// Read data into a dynamic buffer sequence until it contains a specified -/// delimiter. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains the specified - * delimiter. The call will block until one of the following conditions is - * true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains the delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param delim The delimiter string. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the delimiter. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond the delimiter. An application will - * typically leave that data in the dynamic buffer sequence for a subsequent - * read_until operation to examine. - * - * @par Example - * To read data into a @c std::string until a CR-LF sequence is encountered: - * @code std::string data; - * std::string n = asio::read_until(s, - * asio::dynamic_buffer(data), "\r\n"); - * std::string line = data.substr(0, n); - * data.erase(0, n); @endcode - * After the @c read_until operation completes successfully, the string @c data - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the buffer @c b as - * follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim); - -/// Read data into a dynamic buffer sequence until it contains a specified -/// delimiter. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains the specified - * delimiter. The call will block until one of the following conditions is - * true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains the delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * - * @param delim The delimiter string. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond the delimiter. An application will - * typically leave that data in the dynamic buffer sequence for a subsequent - * read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim, - asio::error_code& ec); - -#if !defined(ASIO_NO_EXTENSIONS) -#if defined(ASIO_HAS_BOOST_REGEX) \ - || defined(GENERATING_DOCUMENTATION) - -/// Read data into a dynamic buffer sequence until some part of the data it -/// contains matches a regular expression. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains some data - * that matches a regular expression. The call will block until one of the - * following conditions is true: - * - * @li A substring of the dynamic buffer sequence's get area matches the - * regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains data that matches the regular expression, the function returns - * immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers A dynamic buffer sequence into which the data will be read. - * - * @param expr The regular expression. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the substring that matches the regular expression. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond that which matched the regular - * expression. An application will typically leave that data in the dynamic - * buffer sequence for a subsequent read_until operation to examine. - * - * @par Example - * To read data into a @c std::string until a CR-LF sequence is encountered: - * @code std::string data; - * std::string n = asio::read_until(s, - * asio::dynamic_buffer(data), boost::regex("\r\n")); - * std::string line = data.substr(0, n); - * data.erase(0, n); @endcode - * After the @c read_until operation completes successfully, the string @c data - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the buffer @c b as - * follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr); - -/// Read data into a dynamic buffer sequence until some part of the data it -/// contains matches a regular expression. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until the dynamic buffer sequence's get area contains some data - * that matches a regular expression. The call will block until one of the - * following conditions is true: - * - * @li A substring of the dynamic buffer sequence's get area matches the - * regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the dynamic buffer sequence's get area already - * contains data that matches the regular expression, the function returns - * immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers A dynamic buffer sequence into which the data will be read. - * - * @param expr The regular expression. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the dynamic buffer sequence's get area up to - * and including the substring that matches the regular expression. Returns 0 - * if an error occurred. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond that which matched the regular - * expression. An application will typically leave that data in the dynamic - * buffer sequence for a subsequent read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr, asio::error_code& ec); - -#endif // defined(ASIO_HAS_BOOST_REGEX) - // || defined(GENERATING_DOCUMENTATION) - -/// Read data into a dynamic buffer sequence until a function object indicates a -/// match. - -/** - * This function is used to read data into the specified dynamic buffer - * sequence until a user-defined match condition function object, when applied - * to the data contained in the dynamic buffer sequence, indicates a successful - * match. The call will block until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers A dynamic buffer sequence into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @returns The number of bytes in the dynamic_buffer's get area that - * have been fully consumed by the match function. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond that which matched the function object. - * An application will typically leave that data in the dynamic buffer sequence - * for a subsequent read_until operation to examine. - - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To read data into a dynamic buffer sequence until whitespace is encountered: - * @code typedef asio::buffers_iterator< - * asio::const_buffers_1> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * std::string data; - * asio::read_until(s, data, match_whitespace); - * @endcode - * - * To read data into a @c std::string until a matching character is found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * std::string data; - * asio::read_until(s, data, match_char('a')); - * @endcode - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, - typename enable_if::value>::type* = 0); - -/// Read data into a dynamic buffer sequence until a function object indicates a -/// match. -/** - * This function is used to read data into the specified dynamic buffer - * sequence until a user-defined match condition function object, when applied - * to the data contained in the dynamic buffer sequence, indicates a successful - * match. The call will block until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers A dynamic buffer sequence into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the dynamic buffer sequence's get area that - * have been fully consumed by the match function. Returns 0 if an error - * occurred. - * - * @note After a successful read_until operation, the dynamic buffer sequence - * may contain additional data beyond that which matched the function object. - * An application will typically leave that data in the dynamic buffer sequence - * for a subsequent read_until operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - */ -template -std::size_t read_until(SyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, asio::error_code& ec, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_IOSTREAM) - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter character. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a newline is encountered: - * @code asio::streambuf b; - * asio::read_until(s, b, '\n'); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - * After the @c read_until operation completes successfully, the buffer @c b - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, char delim); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter character. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, char delim, - asio::error_code& ec); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter string. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a newline is encountered: - * @code asio::streambuf b; - * asio::read_until(s, b, "\r\n"); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - * After the @c read_until operation completes successfully, the buffer @c b - * contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter string. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim, asio::error_code& ec); - -#if defined(ASIO_HAS_BOOST_REGEX) \ - || defined(GENERATING_DOCUMENTATION) - -/// Read data into a streambuf until some part of the data it contains matches -/// a regular expression. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains some data that matches a regular expression. - * The call will block until one of the following conditions is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains data that - * matches the regular expression, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param expr The regular expression. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the substring that matches the regular expression. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a CR-LF sequence is encountered: - * @code asio::streambuf b; - * asio::read_until(s, b, boost::regex("\r\n")); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - * After the @c read_until operation completes successfully, the buffer @c b - * contains the data which matched the regular expression: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c read_until operation. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr); - -/// Read data into a streambuf until some part of the data it contains matches -/// a regular expression. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains some data that matches a regular expression. - * The call will block until one of the following conditions is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains data that - * matches the regular expression, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param expr The regular expression. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the substring that matches the regular expression. Returns 0 if an error - * occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr, - asio::error_code& ec); - -#endif // defined(ASIO_HAS_BOOST_REGEX) - // || defined(GENERATING_DOCUMENTATION) - -/// Read data into a streambuf until a function object indicates a match. -/** - * This function is used to read data into the specified streambuf until a - * user-defined match condition function object, when applied to the data - * contained in the streambuf, indicates a successful match. The call will - * block until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @returns The number of bytes in the streambuf's get area that have been fully - * consumed by the match function. - * - * @throws asio::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the function object. An application - * will typically leave that data in the streambuf for a subsequent read_until - * operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To read data into a streambuf until whitespace is encountered: - * @code typedef asio::buffers_iterator< - * asio::streambuf::const_buffers_type> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * asio::streambuf b; - * asio::read_until(s, b, match_whitespace); - * @endcode - * - * To read data into a streambuf until a matching character is found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * asio::streambuf b; - * asio::read_until(s, b, match_char('a')); - * @endcode - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, MatchCondition match_condition, - typename enable_if::value>::type* = 0); - -/// Read data into a streambuf until a function object indicates a match. -/** - * This function is used to read data into the specified streambuf until a - * user-defined match condition function object, when applied to the data - * contained in the streambuf, indicates a successful match. The call will - * block until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area that have been fully - * consumed by the match function. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the function object. An application - * will typically leave that data in the streambuf for a subsequent read_until - * operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - */ -template -std::size_t read_until(SyncReadStream& s, - asio::basic_streambuf& b, - MatchCondition match_condition, asio::error_code& ec, - typename enable_if::value>::type* = 0); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_read_until asio::async_read_until - * - * @brief The @c async_read_until function is a composed asynchronous operation - * that reads data into a dynamic buffer sequence, or into a streambuf, until - * it contains a delimiter, matches a regular expression, or a function object - * indicates a match. - */ -/*@{*/ - -/// Start an asynchronous operation to read data into a dynamic buffer sequence -/// until it contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified dynamic - * buffer sequence until the dynamic buffer sequence's get area contains the - * specified delimiter. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. If - * the dynamic buffer sequence's get area already contains the delimiter, this - * asynchronous operation completes immediately. The program must ensure that - * the stream performs no other read operations (such as async_read, - * async_read_until, the stream's async_read_some function, or any other - * composed operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param delim The delimiter character. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the dynamic buffer sequence's - * // get area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the dynamic buffer - * sequence may contain additional data beyond the delimiter. An application - * will typically leave that data in the dynamic buffer sequence for a - * subsequent async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a @c std::string until a newline is - * encountered: - * @code std::string data; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::string line = data.substr(0, n); - * data.erase(0, n); - * ... - * } - * } - * ... - * asio::async_read_until(s, data, '\n', handler); @endcode - * After the @c async_read_until operation completes successfully, the buffer - * @c data contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the buffer @c data - * as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - char delim, ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read data into a dynamic buffer sequence -/// until it contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified dynamic - * buffer sequence until the dynamic buffer sequence's get area contains the - * specified delimiter. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li The get area of the dynamic buffer sequence contains the specified - * delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. If - * the dynamic buffer sequence's get area already contains the delimiter, this - * asynchronous operation completes immediately. The program must ensure that - * the stream performs no other read operations (such as async_read, - * async_read_until, the stream's async_read_some function, or any other - * composed operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param delim The delimiter string. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the dynamic buffer sequence's - * // get area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the dynamic buffer - * sequence may contain additional data beyond the delimiter. An application - * will typically leave that data in the dynamic buffer sequence for a - * subsequent async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a @c std::string until a CR-LF sequence is - * encountered: - * @code std::string data; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::string line = data.substr(0, n); - * data.erase(0, n); - * ... - * } - * } - * ... - * asio::async_read_until(s, data, "\r\n", handler); @endcode - * After the @c async_read_until operation completes successfully, the string - * @c data contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the - * delimiter, so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the string @c data - * as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_STRING_VIEW_PARAM delim, - ASIO_MOVE_ARG(ReadHandler) handler); - -#if !defined(ASIO_NO_EXTENSIONS) -#if defined(ASIO_HAS_BOOST_REGEX) \ - || defined(GENERATING_DOCUMENTATION) - -/// Start an asynchronous operation to read data into a dynamic buffer sequence -/// until some part of its data matches a regular expression. -/** - * This function is used to asynchronously read data into the specified dynamic - * buffer sequence until the dynamic buffer sequence's get area contains some - * data that matches a regular expression. The function call always returns - * immediately. The asynchronous operation will continue until one of the - * following conditions is true: - * - * @li A substring of the dynamic buffer sequence's get area matches the regular - * expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. If - * the dynamic buffer sequence's get area already contains data that matches - * the regular expression, this asynchronous operation completes immediately. - * The program must ensure that the stream performs no other read operations - * (such as async_read, async_read_until, the stream's async_read_some - * function, or any other composed operations that perform reads) until this - * operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param expr The regular expression. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the dynamic buffer - * // sequence's get area up to and including the - * // substring that matches the regular expression. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the dynamic buffer - * sequence may contain additional data beyond that which matched the regular - * expression. An application will typically leave that data in the dynamic - * buffer sequence for a subsequent async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a @c std::string until a CR-LF sequence is - * encountered: - * @code std::string data; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::string line = data.substr(0, n); - * data.erase(0, n); - * ... - * } - * } - * ... - * asio::async_read_until(s, data, - * boost::regex("\r\n"), handler); @endcode - * After the @c async_read_until operation completes successfully, the string - * @c data contains the data which matched the regular expression: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c substr then extracts the data up to and including the match, - * so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r', '\n' } @endcode - * After the call to @c erase, the remaining data is left in the string @c data - * as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - const boost::regex& expr, - ASIO_MOVE_ARG(ReadHandler) handler); - -#endif // defined(ASIO_HAS_BOOST_REGEX) - // || defined(GENERATING_DOCUMENTATION) - -/// Start an asynchronous operation to read data into a dynamic buffer sequence -/// until a function object indicates a match. -/** - * This function is used to asynchronously read data into the specified dynamic - * buffer sequence until a user-defined match condition function object, when - * applied to the data contained in the dynamic buffer sequence, indicates a - * successful match. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. If - * the match condition function object already indicates a match, this - * asynchronous operation completes immediately. The program must ensure that - * the stream performs no other read operations (such as async_read, - * async_read_until, the stream's async_read_some function, or any other - * composed operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers The dynamic buffer sequence into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the dynamic buffer sequence's - * // get area that have been fully consumed by the match - * // function. O if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the dynamic buffer - * sequence may contain additional data beyond that which matched the function - * object. An application will typically leave that data in the dynamic buffer - * sequence for a subsequent async_read_until operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To asynchronously read data into a @c std::string until whitespace is - * encountered: - * @code typedef asio::buffers_iterator< - * asio::const_buffers_1> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * void handler(const asio::error_code& e, std::size_t size); - * ... - * std::string data; - * asio::async_read_until(s, data, match_whitespace, handler); - * @endcode - * - * To asynchronously read data into a @c std::string until a matching character - * is found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * void handler(const asio::error_code& e, std::size_t size); - * ... - * std::string data; - * asio::async_read_until(s, data, match_char('a'), handler); - * @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - MatchCondition match_condition, ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if::value>::type* = 0); - -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to read data into a streambuf until it -/// contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains the specified delimiter. - * The function call always returns immediately. The asynchronous operation - * will continue until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. If - * the streambuf's get area already contains the delimiter, this asynchronous - * operation completes immediately. The program must ensure that the stream - * performs no other read operations (such as async_read, async_read_until, the - * stream's async_read_some function, or any other composed operations that - * perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param delim The delimiter character. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond the delimiter. An application will typically - * leave that data in the streambuf for a subsequent async_read_until operation - * to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a newline is encountered: - * @code asio::streambuf b; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * asio::async_read_until(s, b, '\n', handler); @endcode - * After the @c async_read_until operation completes successfully, the buffer - * @c b contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - char delim, ASIO_MOVE_ARG(ReadHandler) handler); - -/// Start an asynchronous operation to read data into a streambuf until it -/// contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains the specified delimiter. - * The function call always returns immediately. The asynchronous operation - * will continue until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. If - * the streambuf's get area already contains the delimiter, this asynchronous - * operation completes immediately. The program must ensure that the stream - * performs no other read operations (such as async_read, async_read_until, the - * stream's async_read_some function, or any other composed operations that - * perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param delim The delimiter string. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond the delimiter. An application will typically - * leave that data in the streambuf for a subsequent async_read_until operation - * to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a newline is encountered: - * @code asio::streambuf b; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * asio::async_read_until(s, b, "\r\n", handler); @endcode - * After the @c async_read_until operation completes successfully, the buffer - * @c b contains the delimiter: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - ASIO_STRING_VIEW_PARAM delim, - ASIO_MOVE_ARG(ReadHandler) handler); - -#if defined(ASIO_HAS_BOOST_REGEX) \ - || defined(GENERATING_DOCUMENTATION) - -/// Start an asynchronous operation to read data into a streambuf until some -/// part of its data matches a regular expression. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains some data that matches a - * regular expression. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. If - * the streambuf's get area already contains data that matches the regular - * expression, this asynchronous operation completes immediately. The program - * must ensure that the stream performs no other read operations (such as - * async_read, async_read_until, the stream's async_read_some function, or any - * other composed operations that perform reads) until this operation - * completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param expr The regular expression. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the substring - * // that matches the regular. expression. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a CR-LF sequence is - * encountered: - * @code asio::streambuf b; - * ... - * void handler(const asio::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * asio::async_read_until(s, b, boost::regex("\r\n"), handler); @endcode - * After the @c async_read_until operation completes successfully, the buffer - * @c b contains the data which matched the regular expression: - * @code { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... } @endcode - * The call to @c std::getline then extracts the data up to and including the - * newline (which is discarded), so that the string @c line contains: - * @code { 'a', 'b', ..., 'c', '\r' } @endcode - * The remaining data is left in the buffer @c b as follows: - * @code { 'd', 'e', ... } @endcode - * This data may be the start of a new line, to be extracted by a subsequent - * @c async_read_until operation. - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, const boost::regex& expr, - ASIO_MOVE_ARG(ReadHandler) handler); - -#endif // defined(ASIO_HAS_BOOST_REGEX) - // || defined(GENERATING_DOCUMENTATION) - -/// Start an asynchronous operation to read data into a streambuf until a -/// function object indicates a match. -/** - * This function is used to asynchronously read data into the specified - * streambuf until a user-defined match condition function object, when applied - * to the data contained in the streambuf, indicates a successful match. The - * function call always returns immediately. The asynchronous operation will - * continue until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function, and is known as a composed operation. If - * the match condition function object already indicates a match, this - * asynchronous operation completes immediately. The program must ensure that - * the stream performs no other read operations (such as async_read, - * async_read_until, the stream's async_read_some function, or any other - * composed operations that perform reads) until this operation completes. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area that have been fully consumed by the - * // match function. O if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond that which matched the function object. An - * application will typically leave that data in the streambuf for a subsequent - * async_read_until operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To asynchronously read data into a streambuf until whitespace is encountered: - * @code typedef asio::buffers_iterator< - * asio::streambuf::const_buffers_type> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * void handler(const asio::error_code& e, std::size_t size); - * ... - * asio::streambuf b; - * asio::async_read_until(s, b, match_whitespace, handler); - * @endcode - * - * To asynchronously read data into a streambuf until a matching character is - * found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * void handler(const asio::error_code& e, std::size_t size); - * ... - * asio::streambuf b; - * asio::async_read_until(s, b, match_char('a'), handler); - * @endcode - */ -template -ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) -async_read_until(AsyncReadStream& s, - asio::basic_streambuf& b, - MatchCondition match_condition, ASIO_MOVE_ARG(ReadHandler) handler, - typename enable_if::value>::type* = 0); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/read_until.hpp" - -#endif // ASIO_READ_UNTIL_HPP diff --git a/Sources/Vendor/asio/include/asio/seq_packet_socket_service.hpp b/Sources/Vendor/asio/include/asio/seq_packet_socket_service.hpp deleted file mode 100644 index 7e6824d..0000000 --- a/Sources/Vendor/asio/include/asio/seq_packet_socket_service.hpp +++ /dev/null @@ -1,416 +0,0 @@ -// -// seq_packet_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SEQ_PACKET_SOCKET_SERVICE_HPP -#define ASIO_SEQ_PACKET_SOCKET_SERVICE_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_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a sequenced packet socket. -template -class seq_packet_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base< - seq_packet_socket_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::null_socket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The type of a sequenced packet socket implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new sequenced packet socket service for the specified - /// io_context. - explicit seq_packet_socket_service(asio::io_context& io_context) - : asio::detail::service_base< - seq_packet_socket_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new sequenced packet socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new sequenced packet socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another sequenced packet socket implementation. - void move_assign(implementation_type& impl, - seq_packet_socket_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All socket services have access to each other's implementations. - template friend class seq_packet_socket_service; - - /// Move-construct a new sequenced packet socket implementation from another - /// protocol type. - template - void converting_move_construct(implementation_type& impl, - seq_packet_socket_service& other_service, - typename seq_packet_socket_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a sequenced packet socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a sequenced packet socket. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (protocol.type() == ASIO_OS_DEF(SOCK_SEQPACKET)) - service_impl_.open(impl, protocol, ec); - else - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to a sequenced packet socket. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a sequenced packet socket implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying socket. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native socket implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - /// Bind the sequenced packet socket to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the sequenced packet socket to the specified endpoint. - ASIO_SYNC_OP_VOID connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - service_impl_.connect(impl, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - async_completion init(handler); - - service_impl_.async_connect(impl, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the socket. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native socket implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - ASIO_SYNC_OP_VOID shutdown(implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - service_impl_.shutdown(impl, what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, asio::error_code& ec) - { - return service_impl_.receive_with_flags(impl, - buffers, in_flags, out_flags, ec); - } - - /// Start an asynchronous receive. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, socket_base::message_flags in_flags, - socket_base::message_flags& out_flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive_with_flags(impl, - buffers, in_flags, out_flags, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_SEQ_PACKET_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/serial_port.hpp b/Sources/Vendor/asio/include/asio/serial_port.hpp deleted file mode 100644 index 27bb63e..0000000 --- a/Sources/Vendor/asio/include/asio/serial_port.hpp +++ /dev/null @@ -1,769 +0,0 @@ -// -// serial_port.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_SERIAL_PORT_HPP -#define ASIO_SERIAL_PORT_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_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/serial_port_base.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/basic_serial_port.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# if defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_serial_port_service.hpp" -# define ASIO_SVC_T detail::win_iocp_serial_port_service -# else -# include "asio/detail/reactive_serial_port_service.hpp" -# define ASIO_SVC_T detail::reactive_serial_port_service -# endif -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a serial port. -typedef basic_serial_port<> serial_port; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides serial port functionality. -/** - * The serial_port class provides a wrapper over serial port functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class serial_port - : ASIO_SVC_ACCESS basic_io_object, - public serial_port_base -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a serial port. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// A basic_serial_port is always the lowest layer. - typedef serial_port lowest_layer_type; - - /// Construct a serial_port without opening it. - /** - * This constructor creates a serial port without opening it. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - */ - explicit serial_port(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct and open a serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit serial_port(asio::io_context& io_context, - const char* device) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct and open a serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit serial_port(asio::io_context& io_context, - const std::string& device) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Construct a serial_port on an existing native serial port. - /** - * This constructor creates a serial port object to hold an existing native - * serial port. - * - * @param io_context The io_context object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param native_serial_port A native serial port. - * - * @throws asio::system_error Thrown on failure. - */ - serial_port(asio::io_context& io_context, - const native_handle_type& native_serial_port) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a serial_port from another. - /** - * This constructor moves a serial port from one object to another. - * - * @param other The other serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c serial_port(io_context&) constructor. - */ - serial_port(serial_port&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign a serial_port from another. - /** - * This assignment operator moves a serial port from one object to another. - * - * @param other The other serial_port object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c serial_port(io_context&) constructor. - */ - serial_port& operator=(serial_port&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroys the serial port. - /** - * This function destroys the serial port, cancelling any outstanding - * asynchronous wait operations associated with the serial port as if by - * calling @c cancel. - */ - ~serial_port() - { - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a serial_port cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a serial_port cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port for the specified device name. - * - * @param device The platform-specific device name. - * - * @throws asio::system_error Thrown on failure. - */ - void open(const std::string& device) - { - asio::error_code ec; - this->get_service().open(this->get_implementation(), device, ec); - asio::detail::throw_error(ec, "open"); - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port using the given platform-specific - * device name. - * - * @param device The platform-specific device name. - * - * @param ec Set the indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID open(const std::string& device, - asio::error_code& ec) - { - this->get_service().open(this->get_implementation(), device, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& native_serial_port) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& native_serial_port, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), - native_serial_port, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the serial port is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native serial port representation. - /** - * This function may be used to obtain the underlying representation of the - * serial port. This is intended to allow access to native serial port - * functionality that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @throws asio::system_error Thrown on failure. - */ - void send_break() - { - asio::error_code ec; - this->get_service().send_break(this->get_implementation(), ec); - asio::detail::throw_error(ec, "send_break"); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID send_break(asio::error_code& ec) - { - this->get_service().send_break(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @throws asio::system_error Thrown on failure. - * - * @sa SettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - void set_option(const SettableSerialPortOption& option) - { - asio::error_code ec; - this->get_service().set_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "set_option"); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - ASIO_SYNC_OP_VOID set_option(const SettableSerialPortOption& option, - asio::error_code& ec) - { - this->get_service().set_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @throws asio::system_error Thrown on failure. - * - * @sa GettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - void get_option(GettableSerialPortOption& option) - { - asio::error_code ec; - this->get_service().get_option(this->get_implementation(), option, ec); - asio::detail::throw_error(ec, "get_option"); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSerialPortOption @n - * asio::serial_port_base::baud_rate @n - * asio::serial_port_base::flow_control @n - * asio::serial_port_base::parity @n - * asio::serial_port_base::stop_bits @n - * asio::serial_port_base::character_size - */ - template - ASIO_SYNC_OP_VOID get_option(GettableSerialPortOption& option, - asio::error_code& ec) - { - this->get_service().get_option(this->get_implementation(), option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the serial port. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the serial port. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - async_completion init(handler); - - this->get_service().async_write_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the serial port. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - async_completion init(handler); - - this->get_service().async_read_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if !defined(ASIO_ENABLE_OLD_SERVICES) -# undef ASIO_SVC_T -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_SERIAL_PORT_HPP diff --git a/Sources/Vendor/asio/include/asio/serial_port_base.hpp b/Sources/Vendor/asio/include/asio/serial_port_base.hpp deleted file mode 100644 index feb5b9d..0000000 --- a/Sources/Vendor/asio/include/asio/serial_port_base.hpp +++ /dev/null @@ -1,167 +0,0 @@ -// -// serial_port_base.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.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_SERIAL_PORT_BASE_HPP -#define ASIO_SERIAL_PORT_BASE_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_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) -# include -#endif // !defined(ASIO_WINDOWS) && !defined(__CYGWIN__) - -#include "asio/detail/socket_types.hpp" -#include "asio/error_code.hpp" - -#if defined(GENERATING_DOCUMENTATION) -# define ASIO_OPTION_STORAGE implementation_defined -#elif defined(ASIO_WINDOWS) || defined(__CYGWIN__) -# define ASIO_OPTION_STORAGE DCB -#else -# define ASIO_OPTION_STORAGE termios -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// The serial_port_base class is used as a base for the basic_serial_port class -/// template so that we have a common place to define the serial port options. -class serial_port_base -{ -public: - /// Serial port option to permit changing the baud rate. - /** - * Implements changing the baud rate for a given serial port. - */ - class baud_rate - { - public: - explicit baud_rate(unsigned int rate = 0); - unsigned int value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - unsigned int value_; - }; - - /// Serial port option to permit changing the flow control. - /** - * Implements changing the flow control for a given serial port. - */ - class flow_control - { - public: - enum type { none, software, hardware }; - ASIO_DECL explicit flow_control(type t = none); - type value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the parity. - /** - * Implements changing the parity for a given serial port. - */ - class parity - { - public: - enum type { none, odd, even }; - ASIO_DECL explicit parity(type t = none); - type value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the number of stop bits. - /** - * Implements changing the number of stop bits for a given serial port. - */ - class stop_bits - { - public: - enum type { one, onepointfive, two }; - ASIO_DECL explicit stop_bits(type t = one); - type value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the character size. - /** - * Implements changing the character size for a given serial port. - */ - class character_size - { - public: - ASIO_DECL explicit character_size(unsigned int t = 8); - unsigned int value() const; - ASIO_DECL ASIO_SYNC_OP_VOID store( - ASIO_OPTION_STORAGE& storage, - asio::error_code& ec) const; - ASIO_DECL ASIO_SYNC_OP_VOID load( - const ASIO_OPTION_STORAGE& storage, - asio::error_code& ec); - private: - unsigned int value_; - }; - -protected: - /// Protected destructor to prevent deletion through this type. - ~serial_port_base() - { - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_OPTION_STORAGE - -#include "asio/impl/serial_port_base.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/serial_port_base.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_SERIAL_PORT_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/serial_port_service.hpp b/Sources/Vendor/asio/include/asio/serial_port_service.hpp deleted file mode 100644 index 0e20d96..0000000 --- a/Sources/Vendor/asio/include/asio/serial_port_service.hpp +++ /dev/null @@ -1,249 +0,0 @@ -// -// serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SERIAL_PORT_SERVICE_HPP -#define ASIO_SERIAL_PORT_SERVICE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include -#include "asio/async_result.hpp" -#include "asio/detail/reactive_serial_port_service.hpp" -#include "asio/detail/win_iocp_serial_port_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" -#include "asio/serial_port_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a serial port. -class serial_port_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_serial_port_service service_impl_type; -#else - typedef detail::reactive_serial_port_service service_impl_type; -#endif - -public: - /// The type of a serial port implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new serial port service for the specified io_context. - explicit serial_port_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new serial port implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new serial port implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another serial port implementation. - void move_assign(implementation_type& impl, - serial_port_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a serial port implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a serial port. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const std::string& device, asio::error_code& ec) - { - service_impl_.open(impl, device, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native handle to a serial port. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - service_impl_.assign(impl, handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a serial port implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set a serial port option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSerialPortOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a serial port option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSerialPortOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Send a break sequence to the serial port. - ASIO_SYNC_OP_VOID send_break(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.send_break(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_write_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_read_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_SERIAL_PORT_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/signal_set.hpp b/Sources/Vendor/asio/include/asio/signal_set.hpp deleted file mode 100644 index 30e5c4e..0000000 --- a/Sources/Vendor/asio/include/asio/signal_set.hpp +++ /dev/null @@ -1,447 +0,0 @@ -// -// signal_set.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SIGNAL_SET_HPP -#define ASIO_SIGNAL_SET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/basic_signal_set.hpp" -#else // defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/detail/signal_set_service.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -namespace asio { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a signal set. -typedef basic_signal_set<> signal_set; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides signal functionality. -/** - * The signal_set class provides the ability to perform an asynchronous wait - * for one or more signals to occur. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Performing an asynchronous wait: - * @code - * void handler( - * const asio::error_code& error, - * int signal_number) - * { - * if (!error) - * { - * // A signal occurred. - * } - * } - * - * ... - * - * // Construct a signal set registered for process termination. - * asio::signal_set signals(io_context, SIGINT, SIGTERM); - * - * // Start an asynchronous wait for one of the signals to occur. - * signals.async_wait(handler); - * @endcode - * - * @par Queueing of signal notifications - * - * If a signal is registered with a signal_set, and the signal occurs when - * there are no waiting handlers, then the signal notification is queued. The - * next async_wait operation on that signal_set will dequeue the notification. - * If multiple notifications are queued, subsequent async_wait operations - * dequeue them one at a time. Signal notifications are dequeued in order of - * ascending signal number. - * - * If a signal number is removed from a signal_set (using the @c remove or @c - * erase member functions) then any queued notifications for that signal are - * discarded. - * - * @par Multiple registration of signals - * - * The same signal number may be registered with different signal_set objects. - * When the signal occurs, one handler is called for each signal_set object. - * - * Note that multiple registration only works for signals that are registered - * using Asio. The application must not also register a signal handler using - * functions such as @c signal() or @c sigaction(). - * - * @par Signal masking on POSIX platforms - * - * POSIX allows signals to be blocked using functions such as @c sigprocmask() - * and @c pthread_sigmask(). For signals to be delivered, programs must ensure - * that any signals registered using signal_set objects are unblocked in at - * least one thread. - */ -class signal_set - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// Construct a signal set without adding any signals. - /** - * This constructor creates a signal set without registering for any signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - */ - explicit signal_set(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a signal set and add one signal. - /** - * This constructor creates a signal set and registers for one signal. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); @endcode - */ - signal_set(asio::io_context& io_context, int signal_number_1) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add two signals. - /** - * This constructor creates a signal set and registers for two signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); - * signals.add(signal_number_2); @endcode - */ - signal_set(asio::io_context& io_context, int signal_number_1, - int signal_number_2) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_2, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Construct a signal set and add three signals. - /** - * This constructor creates a signal set and registers for three signals. - * - * @param io_context The io_context object that the signal set will use to - * dispatch handlers for any asynchronous operations performed on the set. - * - * @param signal_number_1 The first signal number to be added. - * - * @param signal_number_2 The second signal number to be added. - * - * @param signal_number_3 The third signal number to be added. - * - * @note This constructor is equivalent to performing: - * @code asio::signal_set signals(io_context); - * signals.add(signal_number_1); - * signals.add(signal_number_2); - * signals.add(signal_number_3); @endcode - */ - signal_set(asio::io_context& io_context, int signal_number_1, - int signal_number_2, int signal_number_3) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number_1, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_2, ec); - asio::detail::throw_error(ec, "add"); - this->get_service().add(this->get_implementation(), signal_number_3, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Destroys the signal set. - /** - * This function destroys the signal set, cancelling any outstanding - * asynchronous wait operations associated with the signal set as if by - * calling @c cancel. - */ - ~signal_set() - { - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @throws asio::system_error Thrown on failure. - */ - void add(int signal_number) - { - asio::error_code ec; - this->get_service().add(this->get_implementation(), signal_number, ec); - asio::detail::throw_error(ec, "add"); - } - - /// Add a signal to a signal_set. - /** - * This function adds the specified signal to the set. It has no effect if the - * signal is already in the set. - * - * @param signal_number The signal to be added to the set. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID add(int signal_number, - asio::error_code& ec) - { - this->get_service().add(this->get_implementation(), signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @throws asio::system_error Thrown on failure. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - void remove(int signal_number) - { - asio::error_code ec; - this->get_service().remove(this->get_implementation(), signal_number, ec); - asio::detail::throw_error(ec, "remove"); - } - - /// Remove a signal from a signal_set. - /** - * This function removes the specified signal from the set. It has no effect - * if the signal is not in the set. - * - * @param signal_number The signal to be removed from the set. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes any notifications that have been queued for the specified - * signal number. - */ - ASIO_SYNC_OP_VOID remove(int signal_number, - asio::error_code& ec) - { - this->get_service().remove(this->get_implementation(), signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @throws asio::system_error Thrown on failure. - * - * @note Removes all queued notifications. - */ - void clear() - { - asio::error_code ec; - this->get_service().clear(this->get_implementation(), ec); - asio::detail::throw_error(ec, "clear"); - } - - /// Remove all signals from a signal_set. - /** - * This function removes all signals from the set. It has no effect if the set - * is already empty. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Removes all queued notifications. - */ - ASIO_SYNC_OP_VOID clear(asio::error_code& ec) - { - this->get_service().clear(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @throws asio::system_error Thrown on failure. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all operations associated with the signal set. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the signal set. The handler for each cancelled - * operation will be invoked with the asio::error::operation_aborted - * error code. - * - * Cancellation does not alter the set of registered signals. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note If a registered signal occurred before cancel() is called, then the - * handlers for asynchronous wait operations will: - * - * @li have already been invoked; or - * - * @li have been queued for invocation in the near future. - * - * These handlers can no longer be cancelled, and therefore are passed an - * error code that indicates the successful completion of the wait operation. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous operation to wait for a signal to be delivered. - /** - * This function may be used to initiate an asynchronous wait against the - * signal set. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li One of the registered signals in the signal set occurs; or - * - * @li The signal set was cancelled, in which case the handler is passed the - * error code asio::error::operation_aborted. - * - * @param handler The handler to be called when the signal occurs. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * int signal_number // Indicates which signal occurred. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(SignalHandler, - void (asio::error_code, int)) - async_wait(ASIO_MOVE_ARG(SignalHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a SignalHandler. - ASIO_SIGNAL_HANDLER_CHECK(SignalHandler, handler) type_check; - - async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace asio - -#endif // ASIO_SIGNAL_SET_HPP diff --git a/Sources/Vendor/asio/include/asio/signal_set_service.hpp b/Sources/Vendor/asio/include/asio/signal_set_service.hpp deleted file mode 100644 index 3285beb..0000000 --- a/Sources/Vendor/asio/include/asio/signal_set_service.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// signal_set_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SIGNAL_SET_SERVICE_HPP -#define ASIO_SIGNAL_SET_SERVICE_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_ENABLE_OLD_SERVICES) - -#include "asio/async_result.hpp" -#include "asio/detail/signal_set_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a signal set. -class signal_set_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -public: - /// The type of a signal set implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef detail::signal_set_service::implementation_type implementation_type; -#endif - - /// Construct a new signal set service for the specified io_context. - explicit signal_set_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new signal set implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a signal set implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Add a signal to a signal_set. - ASIO_SYNC_OP_VOID add(implementation_type& impl, - int signal_number, asio::error_code& ec) - { - service_impl_.add(impl, signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove a signal to a signal_set. - ASIO_SYNC_OP_VOID remove(implementation_type& impl, - int signal_number, asio::error_code& ec) - { - service_impl_.remove(impl, signal_number, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Remove all signals from a signal_set. - ASIO_SYNC_OP_VOID clear(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.clear(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Cancel all operations associated with the signal set. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - // Start an asynchronous operation to wait for a signal to be delivered. - template - ASIO_INITFN_RESULT_TYPE(SignalHandler, - void (asio::error_code, int)) - async_wait(implementation_type& impl, - ASIO_MOVE_ARG(SignalHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // Perform any fork-related housekeeping. - void notify_fork(asio::io_context::fork_event event) - { - service_impl_.notify_fork(event); - } - - // The platform-specific implementation. - detail::signal_set_service service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_SIGNAL_SET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/socket_acceptor_service.hpp b/Sources/Vendor/asio/include/asio/socket_acceptor_service.hpp deleted file mode 100644 index cd40fe1..0000000 --- a/Sources/Vendor/asio/include/asio/socket_acceptor_service.hpp +++ /dev/null @@ -1,372 +0,0 @@ -// -// socket_acceptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SOCKET_ACCEPTOR_SERVICE_HPP -#define ASIO_SOCKET_ACCEPTOR_SERVICE_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_ENABLE_OLD_SERVICES) - -#include "asio/basic_socket.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/null_socket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a socket acceptor. -template -class socket_acceptor_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename protocol_type::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::null_socket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The native type of the socket acceptor. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native acceptor type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new socket acceptor service for the specified io_context. - explicit socket_acceptor_service(asio::io_context& io_context) - : asio::detail::service_base< - socket_acceptor_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new socket acceptor implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new socket acceptor implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another socket acceptor implementation. - void move_assign(implementation_type& impl, - socket_acceptor_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All acceptor services have access to each other's implementations. - template friend class socket_acceptor_service; - - /// Move-construct a new socket acceptor implementation from another protocol - /// type. - template - void converting_move_construct(implementation_type& impl, - socket_acceptor_service& other_service, - typename socket_acceptor_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a socket acceptor implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a new socket acceptor implementation. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - service_impl_.open(impl, protocol, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native acceptor to a socket acceptor. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_acceptor, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_acceptor, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the acceptor is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Cancel all asynchronous operations associated with the acceptor. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Bind the socket acceptor to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Place the socket acceptor into the state where it will listen for new - /// connections. - ASIO_SYNC_OP_VOID listen(implementation_type& impl, int backlog, - asio::error_code& ec) - { - service_impl_.listen(impl, backlog, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Close a socket acceptor implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying acceptor. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native acceptor implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the acceptor. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the acceptor. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native acceptor implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native acceptor implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Wait for the acceptor to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the acceptor to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Accept a new connection. - template - ASIO_SYNC_OP_VOID accept(implementation_type& impl, - basic_socket& peer, - endpoint_type* peer_endpoint, asio::error_code& ec, - typename enable_if::value>::type* = 0) - { - service_impl_.accept(impl, peer, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - -#if defined(ASIO_HAS_MOVE) - /// Accept a new connection. - typename Protocol::socket accept(implementation_type& impl, - io_context* peer_io_context, endpoint_type* peer_endpoint, - asio::error_code& ec) - { - return service_impl_.accept(impl, peer_io_context, peer_endpoint, ec); - } -#endif // defined(ASIO_HAS_MOVE) - - /// Start an asynchronous accept. - template - ASIO_INITFN_RESULT_TYPE(AcceptHandler, - void (asio::error_code)) - async_accept(implementation_type& impl, - basic_socket& peer, - endpoint_type* peer_endpoint, - ASIO_MOVE_ARG(AcceptHandler) handler, - typename enable_if::value>::type* = 0) - { - async_completion init(handler); - - service_impl_.async_accept(impl, - peer, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - -#if defined(ASIO_HAS_MOVE) - /// Start an asynchronous accept. - template - ASIO_INITFN_RESULT_TYPE(MoveAcceptHandler, - void (asio::error_code, typename Protocol::socket)) - async_accept(implementation_type& impl, - asio::io_context* peer_io_context, endpoint_type* peer_endpoint, - ASIO_MOVE_ARG(MoveAcceptHandler) handler) - { - async_completion init(handler); - - service_impl_.async_accept(impl, - peer_io_context, peer_endpoint, init.completion_handler); - - return init.result.get(); - } -#endif // defined(ASIO_HAS_MOVE) - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_SOCKET_ACCEPTOR_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/socket_base.hpp b/Sources/Vendor/asio/include/asio/socket_base.hpp deleted file mode 100644 index 87ed840..0000000 --- a/Sources/Vendor/asio/include/asio/socket_base.hpp +++ /dev/null @@ -1,559 +0,0 @@ -// -// socket_base.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SOCKET_BASE_HPP -#define ASIO_SOCKET_BASE_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/io_control.hpp" -#include "asio/detail/socket_option.hpp" -#include "asio/detail/socket_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// The socket_base class is used as a base for the basic_stream_socket and -/// basic_datagram_socket class templates so that we have a common place to -/// define the shutdown_type and enum. -class socket_base -{ -public: - /// Different ways a socket may be shutdown. - enum shutdown_type - { -#if defined(GENERATING_DOCUMENTATION) - /// Shutdown the receive side of the socket. - shutdown_receive = implementation_defined, - - /// Shutdown the send side of the socket. - shutdown_send = implementation_defined, - - /// Shutdown both send and receive on the socket. - shutdown_both = implementation_defined -#else - shutdown_receive = ASIO_OS_DEF(SHUT_RD), - shutdown_send = ASIO_OS_DEF(SHUT_WR), - shutdown_both = ASIO_OS_DEF(SHUT_RDWR) -#endif - }; - - /// Bitmask type for flags that can be passed to send and receive operations. - typedef int message_flags; - -#if defined(GENERATING_DOCUMENTATION) - /// Peek at incoming data without removing it from the input queue. - static const int message_peek = implementation_defined; - - /// Process out-of-band data. - static const int message_out_of_band = implementation_defined; - - /// Specify that the data should not be subject to routing. - static const int message_do_not_route = implementation_defined; - - /// Specifies that the data marks the end of a record. - static const int message_end_of_record = implementation_defined; -#else - ASIO_STATIC_CONSTANT(int, - message_peek = ASIO_OS_DEF(MSG_PEEK)); - ASIO_STATIC_CONSTANT(int, - message_out_of_band = ASIO_OS_DEF(MSG_OOB)); - ASIO_STATIC_CONSTANT(int, - message_do_not_route = ASIO_OS_DEF(MSG_DONTROUTE)); - ASIO_STATIC_CONSTANT(int, - message_end_of_record = ASIO_OS_DEF(MSG_EOR)); -#endif - - /// Wait types. - /** - * For use with basic_socket::wait() and basic_socket::async_wait(). - */ - enum wait_type - { - /// Wait for a socket to become ready to read. - wait_read, - - /// Wait for a socket to become ready to write. - wait_write, - - /// Wait for a socket to have error conditions pending. - wait_error - }; - - /// Socket option to permit sending of broadcast messages. - /** - * Implements the SOL_SOCKET/SO_BROADCAST socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::socket_base::broadcast option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::socket_base::broadcast option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined broadcast; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_BROADCAST)> - broadcast; -#endif - - /// Socket option to enable socket-level debugging. - /** - * Implements the SOL_SOCKET/SO_DEBUG socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::debug option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::debug option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined debug; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_DEBUG)> debug; -#endif - - /// Socket option to prevent routing, use local interfaces only. - /** - * Implements the SOL_SOCKET/SO_DONTROUTE socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::socket_base::do_not_route option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::udp::socket socket(io_context); - * ... - * asio::socket_base::do_not_route option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined do_not_route; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_DONTROUTE)> - do_not_route; -#endif - - /// Socket option to send keep-alives. - /** - * Implements the SOL_SOCKET/SO_KEEPALIVE socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::keep_alive option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::keep_alive option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined keep_alive; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_KEEPALIVE)> keep_alive; -#endif - - /// Socket option for the send buffer size of a socket. - /** - * Implements the SOL_SOCKET/SO_SNDBUF socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::send_buffer_size option(8192); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::send_buffer_size option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined send_buffer_size; -#else - typedef asio::detail::socket_option::integer< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_SNDBUF)> - send_buffer_size; -#endif - - /// Socket option for the send low watermark. - /** - * Implements the SOL_SOCKET/SO_SNDLOWAT socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::send_low_watermark option(1024); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::send_low_watermark option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined send_low_watermark; -#else - typedef asio::detail::socket_option::integer< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_SNDLOWAT)> - send_low_watermark; -#endif - - /// Socket option for the receive buffer size of a socket. - /** - * Implements the SOL_SOCKET/SO_RCVBUF socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::receive_buffer_size option(8192); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::receive_buffer_size option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined receive_buffer_size; -#else - typedef asio::detail::socket_option::integer< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_RCVBUF)> - receive_buffer_size; -#endif - - /// Socket option for the receive low watermark. - /** - * Implements the SOL_SOCKET/SO_RCVLOWAT socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::receive_low_watermark option(1024); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::receive_low_watermark option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined receive_low_watermark; -#else - typedef asio::detail::socket_option::integer< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_RCVLOWAT)> - receive_low_watermark; -#endif - - /// Socket option to allow the socket to be bound to an address that is - /// already in use. - /** - * Implements the SOL_SOCKET/SO_REUSEADDR socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::socket_base::reuse_address option(true); - * acceptor.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::socket_base::reuse_address option; - * acceptor.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined reuse_address; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_REUSEADDR)> - reuse_address; -#endif - - /// Socket option to specify whether the socket lingers on close if unsent - /// data is present. - /** - * Implements the SOL_SOCKET/SO_LINGER socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::linger option(true, 30); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::linger option; - * socket.get_option(option); - * bool is_set = option.enabled(); - * unsigned short timeout = option.timeout(); - * @endcode - * - * @par Concepts: - * Socket_Option, Linger_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined linger; -#else - typedef asio::detail::socket_option::linger< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_LINGER)> - linger; -#endif - - /// Socket option for putting received out-of-band data inline. - /** - * Implements the SOL_SOCKET/SO_OOBINLINE socket option. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::out_of_band_inline option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::out_of_band_inline option; - * socket.get_option(option); - * bool value = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined out_of_band_inline; -#else - typedef asio::detail::socket_option::boolean< - ASIO_OS_DEF(SOL_SOCKET), ASIO_OS_DEF(SO_OOBINLINE)> - out_of_band_inline; -#endif - - /// Socket option to report aborted connections on accept. - /** - * Implements a custom socket option that determines whether or not an accept - * operation is permitted to fail with asio::error::connection_aborted. - * By default the option is false. - * - * @par Examples - * Setting the option: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::socket_base::enable_connection_aborted option(true); - * acceptor.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * asio::ip::tcp::acceptor acceptor(io_context); - * ... - * asio::socket_base::enable_connection_aborted option; - * acceptor.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined enable_connection_aborted; -#else - typedef asio::detail::socket_option::boolean< - asio::detail::custom_socket_option_level, - asio::detail::enable_connection_aborted_option> - enable_connection_aborted; -#endif - - /// IO control command to get the amount of data that can be read without - /// blocking. - /** - * Implements the FIONREAD IO control command. - * - * @par Example - * @code - * asio::ip::tcp::socket socket(io_context); - * ... - * asio::socket_base::bytes_readable command(true); - * socket.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - * - * @par Concepts: - * IO_Control_Command, Size_IO_Control_Command. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined bytes_readable; -#else - typedef asio::detail::io_control::bytes_readable bytes_readable; -#endif - - /// The maximum length of the queue of pending incoming connections. -#if defined(GENERATING_DOCUMENTATION) - static const int max_listen_connections = implementation_defined; -#else - ASIO_STATIC_CONSTANT(int, max_listen_connections - = ASIO_OS_DEF(SOMAXCONN)); -#endif - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use max_listen_connections.) The maximum length of the queue - /// of pending incoming connections. -#if defined(GENERATING_DOCUMENTATION) - static const int max_connections = implementation_defined; -#else - ASIO_STATIC_CONSTANT(int, max_connections - = ASIO_OS_DEF(SOMAXCONN)); -#endif -#endif // !defined(ASIO_NO_DEPRECATED) - -protected: - /// Protected destructor to prevent deletion through this type. - ~socket_base() - { - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SOCKET_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/spawn.hpp b/Sources/Vendor/asio/include/asio/spawn.hpp deleted file mode 100644 index a91c581..0000000 --- a/Sources/Vendor/asio/include/asio/spawn.hpp +++ /dev/null @@ -1,336 +0,0 @@ -// -// spawn.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SPAWN_HPP -#define ASIO_SPAWN_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/bind_executor.hpp" -#include "asio/detail/memory.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/detail/wrapped_handler.hpp" -#include "asio/executor.hpp" -#include "asio/io_context.hpp" -#include "asio/is_executor.hpp" -#include "asio/strand.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Context object the represents the currently executing coroutine. -/** - * The basic_yield_context class is used to represent the currently executing - * stackful coroutine. A basic_yield_context may be passed as a handler to an - * asynchronous operation. For example: - * - * @code template - * void my_coroutine(basic_yield_context yield) - * { - * ... - * std::size_t n = my_socket.async_read_some(buffer, yield); - * ... - * } @endcode - * - * The initiating function (async_read_some in the above example) suspends the - * current coroutine. The coroutine is resumed when the asynchronous operation - * completes, and the result of the operation is returned. - */ -template -class basic_yield_context -{ -public: - /// The coroutine callee type, used by the implementation. - /** - * When using Boost.Coroutine v1, this type is: - * @code typename coroutine @endcode - * When using Boost.Coroutine v2 (unidirectional coroutines), this type is: - * @code push_coroutine @endcode - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined callee_type; -#elif defined(BOOST_COROUTINES_UNIDIRECT) || defined(BOOST_COROUTINES_V2) - typedef boost::coroutines::push_coroutine callee_type; -#else - typedef boost::coroutines::coroutine callee_type; -#endif - - /// The coroutine caller type, used by the implementation. - /** - * When using Boost.Coroutine v1, this type is: - * @code typename coroutine::caller_type @endcode - * When using Boost.Coroutine v2 (unidirectional coroutines), this type is: - * @code pull_coroutine @endcode - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined caller_type; -#elif defined(BOOST_COROUTINES_UNIDIRECT) || defined(BOOST_COROUTINES_V2) - typedef boost::coroutines::pull_coroutine caller_type; -#else - typedef boost::coroutines::coroutine::caller_type caller_type; -#endif - - /// Construct a yield context to represent the specified coroutine. - /** - * Most applications do not need to use this constructor. Instead, the - * spawn() function passes a yield context as an argument to the coroutine - * function. - */ - basic_yield_context( - const detail::weak_ptr& coro, - caller_type& ca, Handler& handler) - : coro_(coro), - ca_(ca), - handler_(handler), - ec_(0) - { - } - - /// Construct a yield context from another yield context type. - /** - * Requires that OtherHandler be convertible to Handler. - */ - template - basic_yield_context(const basic_yield_context& other) - : coro_(other.coro_), - ca_(other.ca_), - handler_(other.handler_), - ec_(other.ec_) - { - } - - /// Return a yield context that sets the specified error_code. - /** - * By default, when a yield context is used with an asynchronous operation, a - * non-success error_code is converted to system_error and thrown. This - * operator may be used to specify an error_code object that should instead be - * set with the asynchronous operation's result. For example: - * - * @code template - * void my_coroutine(basic_yield_context yield) - * { - * ... - * std::size_t n = my_socket.async_read_some(buffer, yield[ec]); - * if (ec) - * { - * // An error occurred. - * } - * ... - * } @endcode - */ - basic_yield_context operator[](asio::error_code& ec) const - { - basic_yield_context tmp(*this); - tmp.ec_ = &ec; - return tmp; - } - -#if defined(GENERATING_DOCUMENTATION) -private: -#endif // defined(GENERATING_DOCUMENTATION) - detail::weak_ptr coro_; - caller_type& ca_; - Handler handler_; - asio::error_code* ec_; -}; - -#if defined(GENERATING_DOCUMENTATION) -/// Context object that represents the currently executing coroutine. -typedef basic_yield_context yield_context; -#else // defined(GENERATING_DOCUMENTATION) -typedef basic_yield_context< - executor_binder > yield_context; -#endif // defined(GENERATING_DOCUMENTATION) - -/** - * @defgroup spawn asio::spawn - * - * @brief Start a new stackful coroutine. - * - * The spawn() function is a high-level wrapper over the Boost.Coroutine - * library. This function enables programs to implement asynchronous logic in a - * synchronous manner, as illustrated by the following example: - * - * @code asio::spawn(my_strand, do_echo); - * - * // ... - * - * void do_echo(asio::yield_context yield) - * { - * try - * { - * char data[128]; - * for (;;) - * { - * std::size_t length = - * my_socket.async_read_some( - * asio::buffer(data), yield); - * - * asio::async_write(my_socket, - * asio::buffer(data, length), yield); - * } - * } - * catch (std::exception& e) - * { - * // ... - * } - * } @endcode - */ -/*@{*/ - -/// Start a new stackful coroutine, calling the specified handler when it -/// completes. -/** - * This function is used to launch a new coroutine. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(basic_yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes()); - -/// Start a new stackful coroutine, calling the specified handler when it -/// completes. -/** - * This function is used to launch a new coroutine. - * - * @param handler A handler to be called when the coroutine exits. More - * importantly, the handler provides an execution context (via the the handler - * invocation hook) for the coroutine. The handler must have the signature: - * @code void handler(); @endcode - * - * @param function The coroutine function. The function must have the signature: - * @code void function(basic_yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(ASIO_MOVE_ARG(Handler) handler, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes(), - typename enable_if::type>::value && - !is_convertible::value>::type* = 0); - -/// Start a new stackful coroutine, inheriting the execution context of another. -/** - * This function is used to launch a new coroutine. - * - * @param ctx Identifies the current coroutine as a parent of the new - * coroutine. This specifies that the new coroutine should inherit the - * execution context of the parent. For example, if the parent coroutine is - * executing in a particular strand, then the new coroutine will execute in the - * same strand. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(basic_yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(basic_yield_context ctx, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes()); - -/// Start a new stackful coroutine that executes on a given executor. -/** - * This function is used to launch a new coroutine. - * - * @param ex Identifies the executor that will run the coroutine. The new - * coroutine is implicitly given its own strand within this executor. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(const Executor& ex, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes(), - typename enable_if::value>::type* = 0); - -/// Start a new stackful coroutine that executes on a given strand. -/** - * This function is used to launch a new coroutine. - * - * @param ex Identifies the strand that will run the coroutine. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(const strand& ex, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes()); - -/// Start a new stackful coroutine that executes in the context of a strand. -/** - * This function is used to launch a new coroutine. - * - * @param s Identifies a strand. By starting multiple coroutines on the same - * strand, the implementation ensures that none of those coroutines can execute - * simultaneously. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(const asio::io_context::strand& s, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes()); - -/// Start a new stackful coroutine that executes on a given execution context. -/** - * This function is used to launch a new coroutine. - * - * @param ctx Identifies the execution context that will run the coroutine. The - * new coroutine is implicitly given its own strand within this execution - * context. - * - * @param function The coroutine function. The function must have the signature: - * @code void function(yield_context yield); @endcode - * - * @param attributes Boost.Coroutine attributes used to customise the coroutine. - */ -template -void spawn(ExecutionContext& ctx, - ASIO_MOVE_ARG(Function) function, - const boost::coroutines::attributes& attributes - = boost::coroutines::attributes(), - typename enable_if::value>::type* = 0); - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/spawn.hpp" - -#endif // ASIO_SPAWN_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl.hpp b/Sources/Vendor/asio/include/asio/ssl.hpp deleted file mode 100644 index cbad19d..0000000 --- a/Sources/Vendor/asio/include/asio/ssl.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// ssl.hpp -// ~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_HPP -#define ASIO_SSL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/ssl/context.hpp" -#include "asio/ssl/context_base.hpp" -#include "asio/ssl/error.hpp" -#include "asio/ssl/rfc2818_verification.hpp" -#include "asio/ssl/stream.hpp" -#include "asio/ssl/stream_base.hpp" -#include "asio/ssl/verify_context.hpp" -#include "asio/ssl/verify_mode.hpp" - -#endif // ASIO_SSL_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/context.hpp b/Sources/Vendor/asio/include/asio/ssl/context.hpp deleted file mode 100644 index 9543aab..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/context.hpp +++ /dev/null @@ -1,758 +0,0 @@ -// -// ssl/context.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_CONTEXT_HPP -#define ASIO_SSL_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ssl/context_base.hpp" -#include "asio/ssl/detail/openssl_types.hpp" -#include "asio/ssl/detail/openssl_init.hpp" -#include "asio/ssl/detail/password_callback.hpp" -#include "asio/ssl/detail/verify_callback.hpp" -#include "asio/ssl/verify_mode.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -class context - : public context_base, - private noncopyable -{ -public: - /// The native handle type of the SSL context. - typedef SSL_CTX* native_handle_type; - - /// Constructor. - ASIO_DECL explicit context(method m); - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a context from another. - /** - * This constructor moves an SSL context from one object to another. - * - * @param other The other context object from which the move will occur. - * - * @note Following the move, the following operations only are valid for the - * moved-from object: - * @li Destruction. - * @li As a target for move-assignment. - */ - ASIO_DECL context(context&& other); - - /// Move-assign a context from another. - /** - * This assignment operator moves an SSL context from one object to another. - * - * @param other The other context object from which the move will occur. - * - * @note Following the move, the following operations only are valid for the - * moved-from object: - * @li Destruction. - * @li As a target for move-assignment. - */ - ASIO_DECL context& operator=(context&& other); -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - ASIO_DECL ~context(); - - /// Get the underlying implementation in the native type. - /** - * This function may be used to obtain the underlying implementation of the - * context. This is intended to allow access to context functionality that is - * not otherwise provided. - */ - ASIO_DECL native_handle_type native_handle(); - - /// Clear options on the context. - /** - * This function may be used to configure the SSL options used by the context. - * - * @param o A bitmask of options. The available option values are defined in - * the context_base class. The specified options, if currently enabled on the - * context, are cleared. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_clear_options. - */ - ASIO_DECL void clear_options(options o); - - /// Clear options on the context. - /** - * This function may be used to configure the SSL options used by the context. - * - * @param o A bitmask of options. The available option values are defined in - * the context_base class. The specified options, if currently enabled on the - * context, are cleared. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_clear_options. - */ - ASIO_DECL ASIO_SYNC_OP_VOID clear_options(options o, - asio::error_code& ec); - - /// Set options on the context. - /** - * This function may be used to configure the SSL options used by the context. - * - * @param o A bitmask of options. The available option values are defined in - * the context_base class. The options are bitwise-ored with any existing - * value for the options. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_options. - */ - ASIO_DECL void set_options(options o); - - /// Set options on the context. - /** - * This function may be used to configure the SSL options used by the context. - * - * @param o A bitmask of options. The available option values are defined in - * the context_base class. The options are bitwise-ored with any existing - * value for the options. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_options. - */ - ASIO_DECL ASIO_SYNC_OP_VOID set_options(options o, - asio::error_code& ec); - - /// Set the peer verification mode. - /** - * This function may be used to configure the peer verification mode used by - * the context. - * - * @param v A bitmask of peer verification modes. See @ref verify_mode for - * available values. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_verify. - */ - ASIO_DECL void set_verify_mode(verify_mode v); - - /// Set the peer verification mode. - /** - * This function may be used to configure the peer verification mode used by - * the context. - * - * @param v A bitmask of peer verification modes. See @ref verify_mode for - * available values. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_verify. - */ - ASIO_DECL ASIO_SYNC_OP_VOID set_verify_mode( - verify_mode v, asio::error_code& ec); - - /// Set the peer verification depth. - /** - * This function may be used to configure the maximum verification depth - * allowed by the context. - * - * @param depth Maximum depth for the certificate chain verification that - * shall be allowed. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_verify_depth. - */ - ASIO_DECL void set_verify_depth(int depth); - - /// Set the peer verification depth. - /** - * This function may be used to configure the maximum verification depth - * allowed by the context. - * - * @param depth Maximum depth for the certificate chain verification that - * shall be allowed. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_verify_depth. - */ - ASIO_DECL ASIO_SYNC_OP_VOID set_verify_depth( - int depth, asio::error_code& ec); - - /// Set the callback used to verify peer certificates. - /** - * This function is used to specify a callback function that will be called - * by the implementation when it needs to verify a peer certificate. - * - * @param callback The function object to be used for verifying a certificate. - * The function signature of the handler must be: - * @code bool verify_callback( - * bool preverified, // True if the certificate passed pre-verification. - * verify_context& ctx // The peer certificate and other context. - * ); @endcode - * The return value of the callback is true if the certificate has passed - * verification, false otherwise. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_verify. - */ - template - void set_verify_callback(VerifyCallback callback); - - /// Set the callback used to verify peer certificates. - /** - * This function is used to specify a callback function that will be called - * by the implementation when it needs to verify a peer certificate. - * - * @param callback The function object to be used for verifying a certificate. - * The function signature of the handler must be: - * @code bool verify_callback( - * bool preverified, // True if the certificate passed pre-verification. - * verify_context& ctx // The peer certificate and other context. - * ); @endcode - * The return value of the callback is true if the certificate has passed - * verification, false otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_verify. - */ - template - ASIO_SYNC_OP_VOID set_verify_callback(VerifyCallback callback, - asio::error_code& ec); - - /// Load a certification authority file for performing verification. - /** - * This function is used to load one or more trusted certification authorities - * from a file. - * - * @param filename The name of a file containing certification authority - * certificates in PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_load_verify_locations. - */ - ASIO_DECL void load_verify_file(const std::string& filename); - - /// Load a certification authority file for performing verification. - /** - * This function is used to load the certificates for one or more trusted - * certification authorities from a file. - * - * @param filename The name of a file containing certification authority - * certificates in PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_load_verify_locations. - */ - ASIO_DECL ASIO_SYNC_OP_VOID load_verify_file( - const std::string& filename, asio::error_code& ec); - - /// Add certification authority for performing verification. - /** - * This function is used to add one trusted certification authority - * from a memory buffer. - * - * @param ca The buffer containing the certification authority certificate. - * The certificate must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_get_cert_store and @c X509_STORE_add_cert. - */ - ASIO_DECL void add_certificate_authority(const const_buffer& ca); - - /// Add certification authority for performing verification. - /** - * This function is used to add one trusted certification authority - * from a memory buffer. - * - * @param ca The buffer containing the certification authority certificate. - * The certificate must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_get_cert_store and @c X509_STORE_add_cert. - */ - ASIO_DECL ASIO_SYNC_OP_VOID add_certificate_authority( - const const_buffer& ca, asio::error_code& ec); - - /// Configures the context to use the default directories for finding - /// certification authority certificates. - /** - * This function specifies that the context should use the default, - * system-dependent directories for locating certification authority - * certificates. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_default_verify_paths. - */ - ASIO_DECL void set_default_verify_paths(); - - /// Configures the context to use the default directories for finding - /// certification authority certificates. - /** - * This function specifies that the context should use the default, - * system-dependent directories for locating certification authority - * certificates. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_default_verify_paths. - */ - ASIO_DECL ASIO_SYNC_OP_VOID set_default_verify_paths( - asio::error_code& ec); - - /// Add a directory containing certificate authority files to be used for - /// performing verification. - /** - * This function is used to specify the name of a directory containing - * certification authority certificates. Each file in the directory must - * contain a single certificate. The files must be named using the subject - * name's hash and an extension of ".0". - * - * @param path The name of a directory containing the certificates. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_load_verify_locations. - */ - ASIO_DECL void add_verify_path(const std::string& path); - - /// Add a directory containing certificate authority files to be used for - /// performing verification. - /** - * This function is used to specify the name of a directory containing - * certification authority certificates. Each file in the directory must - * contain a single certificate. The files must be named using the subject - * name's hash and an extension of ".0". - * - * @param path The name of a directory containing the certificates. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_load_verify_locations. - */ - ASIO_DECL ASIO_SYNC_OP_VOID add_verify_path( - const std::string& path, asio::error_code& ec); - - /// Use a certificate from a memory buffer. - /** - * This function is used to load a certificate into the context from a buffer. - * - * @param certificate The buffer containing the certificate. - * - * @param format The certificate format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1. - */ - ASIO_DECL void use_certificate( - const const_buffer& certificate, file_format format); - - /// Use a certificate from a memory buffer. - /** - * This function is used to load a certificate into the context from a buffer. - * - * @param certificate The buffer containing the certificate. - * - * @param format The certificate format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_certificate or SSL_CTX_use_certificate_ASN1. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_certificate( - const const_buffer& certificate, file_format format, - asio::error_code& ec); - - /// Use a certificate from a file. - /** - * This function is used to load a certificate into the context from a file. - * - * @param filename The name of the file containing the certificate. - * - * @param format The file format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_certificate_file. - */ - ASIO_DECL void use_certificate_file( - const std::string& filename, file_format format); - - /// Use a certificate from a file. - /** - * This function is used to load a certificate into the context from a file. - * - * @param filename The name of the file containing the certificate. - * - * @param format The file format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_certificate_file. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_certificate_file( - const std::string& filename, file_format format, - asio::error_code& ec); - - /// Use a certificate chain from a memory buffer. - /** - * This function is used to load a certificate chain into the context from a - * buffer. - * - * @param chain The buffer containing the certificate chain. The certificate - * chain must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert. - */ - ASIO_DECL void use_certificate_chain(const const_buffer& chain); - - /// Use a certificate chain from a memory buffer. - /** - * This function is used to load a certificate chain into the context from a - * buffer. - * - * @param chain The buffer containing the certificate chain. The certificate - * chain must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_certificate and SSL_CTX_add_extra_chain_cert. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_certificate_chain( - const const_buffer& chain, asio::error_code& ec); - - /// Use a certificate chain from a file. - /** - * This function is used to load a certificate chain into the context from a - * file. - * - * @param filename The name of the file containing the certificate. The file - * must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_certificate_chain_file. - */ - ASIO_DECL void use_certificate_chain_file(const std::string& filename); - - /// Use a certificate chain from a file. - /** - * This function is used to load a certificate chain into the context from a - * file. - * - * @param filename The name of the file containing the certificate. The file - * must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_certificate_chain_file. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_certificate_chain_file( - const std::string& filename, asio::error_code& ec); - - /// Use a private key from a memory buffer. - /** - * This function is used to load a private key into the context from a buffer. - * - * @param private_key The buffer containing the private key. - * - * @param format The private key format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1. - */ - ASIO_DECL void use_private_key( - const const_buffer& private_key, file_format format); - - /// Use a private key from a memory buffer. - /** - * This function is used to load a private key into the context from a buffer. - * - * @param private_key The buffer containing the private key. - * - * @param format The private key format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_PrivateKey or SSL_CTX_use_PrivateKey_ASN1. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_private_key( - const const_buffer& private_key, file_format format, - asio::error_code& ec); - - /// Use a private key from a file. - /** - * This function is used to load a private key into the context from a file. - * - * @param filename The name of the file containing the private key. - * - * @param format The file format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_PrivateKey_file. - */ - ASIO_DECL void use_private_key_file( - const std::string& filename, file_format format); - - /// Use a private key from a file. - /** - * This function is used to load a private key into the context from a file. - * - * @param filename The name of the file containing the private key. - * - * @param format The file format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_PrivateKey_file. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_private_key_file( - const std::string& filename, file_format format, - asio::error_code& ec); - - /// Use an RSA private key from a memory buffer. - /** - * This function is used to load an RSA private key into the context from a - * buffer. - * - * @param private_key The buffer containing the RSA private key. - * - * @param format The private key format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1. - */ - ASIO_DECL void use_rsa_private_key( - const const_buffer& private_key, file_format format); - - /// Use an RSA private key from a memory buffer. - /** - * This function is used to load an RSA private key into the context from a - * buffer. - * - * @param private_key The buffer containing the RSA private key. - * - * @param format The private key format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_RSAPrivateKey or SSL_CTX_use_RSAPrivateKey_ASN1. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_rsa_private_key( - const const_buffer& private_key, file_format format, - asio::error_code& ec); - - /// Use an RSA private key from a file. - /** - * This function is used to load an RSA private key into the context from a - * file. - * - * @param filename The name of the file containing the RSA private key. - * - * @param format The file format (ASN.1 or PEM). - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_use_RSAPrivateKey_file. - */ - ASIO_DECL void use_rsa_private_key_file( - const std::string& filename, file_format format); - - /// Use an RSA private key from a file. - /** - * This function is used to load an RSA private key into the context from a - * file. - * - * @param filename The name of the file containing the RSA private key. - * - * @param format The file format (ASN.1 or PEM). - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_use_RSAPrivateKey_file. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_rsa_private_key_file( - const std::string& filename, file_format format, - asio::error_code& ec); - - /// Use the specified memory buffer to obtain the temporary Diffie-Hellman - /// parameters. - /** - * This function is used to load Diffie-Hellman parameters into the context - * from a buffer. - * - * @param dh The memory buffer containing the Diffie-Hellman parameters. The - * buffer must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_tmp_dh. - */ - ASIO_DECL void use_tmp_dh(const const_buffer& dh); - - /// Use the specified memory buffer to obtain the temporary Diffie-Hellman - /// parameters. - /** - * This function is used to load Diffie-Hellman parameters into the context - * from a buffer. - * - * @param dh The memory buffer containing the Diffie-Hellman parameters. The - * buffer must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_tmp_dh. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_tmp_dh( - const const_buffer& dh, asio::error_code& ec); - - /// Use the specified file to obtain the temporary Diffie-Hellman parameters. - /** - * This function is used to load Diffie-Hellman parameters into the context - * from a file. - * - * @param filename The name of the file containing the Diffie-Hellman - * parameters. The file must use the PEM format. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_tmp_dh. - */ - ASIO_DECL void use_tmp_dh_file(const std::string& filename); - - /// Use the specified file to obtain the temporary Diffie-Hellman parameters. - /** - * This function is used to load Diffie-Hellman parameters into the context - * from a file. - * - * @param filename The name of the file containing the Diffie-Hellman - * parameters. The file must use the PEM format. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_tmp_dh. - */ - ASIO_DECL ASIO_SYNC_OP_VOID use_tmp_dh_file( - const std::string& filename, asio::error_code& ec); - - /// Set the password callback. - /** - * This function is used to specify a callback function to obtain password - * information about an encrypted key in PEM format. - * - * @param callback The function object to be used for obtaining the password. - * The function signature of the handler must be: - * @code std::string password_callback( - * std::size_t max_length, // The maximum size for a password. - * password_purpose purpose // Whether password is for reading or writing. - * ); @endcode - * The return value of the callback is a string containing the password. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_CTX_set_default_passwd_cb. - */ - template - void set_password_callback(PasswordCallback callback); - - /// Set the password callback. - /** - * This function is used to specify a callback function to obtain password - * information about an encrypted key in PEM format. - * - * @param callback The function object to be used for obtaining the password. - * The function signature of the handler must be: - * @code std::string password_callback( - * std::size_t max_length, // The maximum size for a password. - * password_purpose purpose // Whether password is for reading or writing. - * ); @endcode - * The return value of the callback is a string containing the password. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_CTX_set_default_passwd_cb. - */ - template - ASIO_SYNC_OP_VOID set_password_callback(PasswordCallback callback, - asio::error_code& ec); - -private: - struct bio_cleanup; - struct x509_cleanup; - struct evp_pkey_cleanup; - struct rsa_cleanup; - struct dh_cleanup; - - // Helper function used to set a peer certificate verification callback. - ASIO_DECL ASIO_SYNC_OP_VOID do_set_verify_callback( - detail::verify_callback_base* callback, asio::error_code& ec); - - // Callback used when the SSL implementation wants to verify a certificate. - ASIO_DECL static int verify_callback_function( - int preverified, X509_STORE_CTX* ctx); - - // Helper function used to set a password callback. - ASIO_DECL ASIO_SYNC_OP_VOID do_set_password_callback( - detail::password_callback_base* callback, asio::error_code& ec); - - // Callback used when the SSL implementation wants a password. - ASIO_DECL static int password_callback_function( - char* buf, int size, int purpose, void* data); - - // Helper function to set the temporary Diffie-Hellman parameters from a BIO. - ASIO_DECL ASIO_SYNC_OP_VOID do_use_tmp_dh( - BIO* bio, asio::error_code& ec); - - // Helper function to make a BIO from a memory buffer. - ASIO_DECL BIO* make_buffer_bio(const const_buffer& b); - - // The underlying native implementation. - native_handle_type handle_; - - // Ensure openssl is initialised. - asio::ssl::detail::openssl_init<> init_; -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/ssl/impl/context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/impl/context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/context_base.hpp b/Sources/Vendor/asio/include/asio/ssl/context_base.hpp deleted file mode 100644 index b862f96..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/context_base.hpp +++ /dev/null @@ -1,209 +0,0 @@ -// -// ssl/context_base.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_CONTEXT_BASE_HPP -#define ASIO_SSL_CONTEXT_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// The context_base class is used as a base for the basic_context class -/// template so that we have a common place to define various enums. -class context_base -{ -public: - /// Different methods supported by a context. - enum method - { - /// Generic SSL version 2. - sslv2, - - /// SSL version 2 client. - sslv2_client, - - /// SSL version 2 server. - sslv2_server, - - /// Generic SSL version 3. - sslv3, - - /// SSL version 3 client. - sslv3_client, - - /// SSL version 3 server. - sslv3_server, - - /// Generic TLS version 1. - tlsv1, - - /// TLS version 1 client. - tlsv1_client, - - /// TLS version 1 server. - tlsv1_server, - - /// Generic SSL/TLS. - sslv23, - - /// SSL/TLS client. - sslv23_client, - - /// SSL/TLS server. - sslv23_server, - - /// Generic TLS version 1.1. - tlsv11, - - /// TLS version 1.1 client. - tlsv11_client, - - /// TLS version 1.1 server. - tlsv11_server, - - /// Generic TLS version 1.2. - tlsv12, - - /// TLS version 1.2 client. - tlsv12_client, - - /// TLS version 1.2 server. - tlsv12_server, - - /// Generic TLS version 1.3. - tlsv13, - - /// TLS version 1.3 client. - tlsv13_client, - - /// TLS version 1.3 server. - tlsv13_server, - - /// Generic TLS. - tls, - - /// TLS client. - tls_client, - - /// TLS server. - tls_server - }; - - /// Bitmask type for SSL options. - typedef long options; - -#if defined(GENERATING_DOCUMENTATION) - /// Implement various bug workarounds. - static const long default_workarounds = implementation_defined; - - /// Always create a new key when using tmp_dh parameters. - static const long single_dh_use = implementation_defined; - - /// Disable SSL v2. - static const long no_sslv2 = implementation_defined; - - /// Disable SSL v3. - static const long no_sslv3 = implementation_defined; - - /// Disable TLS v1. - static const long no_tlsv1 = implementation_defined; - - /// Disable TLS v1.1. - static const long no_tlsv1_1 = implementation_defined; - - /// Disable TLS v1.2. - static const long no_tlsv1_2 = implementation_defined; - - /// Disable TLS v1.3. - static const long no_tlsv1_3 = implementation_defined; - - /// Disable compression. Compression is disabled by default. - static const long no_compression = implementation_defined; -#else - ASIO_STATIC_CONSTANT(long, default_workarounds = SSL_OP_ALL); - ASIO_STATIC_CONSTANT(long, single_dh_use = SSL_OP_SINGLE_DH_USE); - ASIO_STATIC_CONSTANT(long, no_sslv2 = SSL_OP_NO_SSLv2); - ASIO_STATIC_CONSTANT(long, no_sslv3 = SSL_OP_NO_SSLv3); - ASIO_STATIC_CONSTANT(long, no_tlsv1 = SSL_OP_NO_TLSv1); -# if defined(SSL_OP_NO_TLSv1_1) - ASIO_STATIC_CONSTANT(long, no_tlsv1_1 = SSL_OP_NO_TLSv1_1); -# else // defined(SSL_OP_NO_TLSv1_1) - ASIO_STATIC_CONSTANT(long, no_tlsv1_1 = 0x10000000L); -# endif // defined(SSL_OP_NO_TLSv1_1) -# if defined(SSL_OP_NO_TLSv1_2) - ASIO_STATIC_CONSTANT(long, no_tlsv1_2 = SSL_OP_NO_TLSv1_2); -# else // defined(SSL_OP_NO_TLSv1_2) - ASIO_STATIC_CONSTANT(long, no_tlsv1_2 = 0x08000000L); -# endif // defined(SSL_OP_NO_TLSv1_2) -# if defined(SSL_OP_NO_TLSv1_3) - ASIO_STATIC_CONSTANT(long, no_tlsv1_3 = SSL_OP_NO_TLSv1_3); -# else // defined(SSL_OP_NO_TLSv1_3) - ASIO_STATIC_CONSTANT(long, no_tlsv1_3 = 0x20000000L); -# endif // defined(SSL_OP_NO_TLSv1_3) -# if defined(SSL_OP_NO_COMPRESSION) - ASIO_STATIC_CONSTANT(long, no_compression = SSL_OP_NO_COMPRESSION); -# else // defined(SSL_OP_NO_COMPRESSION) - ASIO_STATIC_CONSTANT(long, no_compression = 0x20000L); -# endif // defined(SSL_OP_NO_COMPRESSION) -#endif - - /// File format types. - enum file_format - { - /// ASN.1 file. - asn1, - - /// PEM file. - pem - }; - -#if !defined(GENERATING_DOCUMENTATION) - // The following types and constants are preserved for backward compatibility. - // New programs should use the equivalents of the same names that are defined - // in the asio::ssl namespace. - typedef int verify_mode; - ASIO_STATIC_CONSTANT(int, verify_none = SSL_VERIFY_NONE); - ASIO_STATIC_CONSTANT(int, verify_peer = SSL_VERIFY_PEER); - ASIO_STATIC_CONSTANT(int, - verify_fail_if_no_peer_cert = SSL_VERIFY_FAIL_IF_NO_PEER_CERT); - ASIO_STATIC_CONSTANT(int, verify_client_once = SSL_VERIFY_CLIENT_ONCE); -#endif - - /// Purpose of PEM password. - enum password_purpose - { - /// The password is needed for reading/decryption. - for_reading, - - /// The password is needed for writing/encryption. - for_writing - }; - -protected: - /// Protected destructor to prevent deletion through this type. - ~context_base() - { - } -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_CONTEXT_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/buffered_handshake_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/buffered_handshake_op.hpp deleted file mode 100644 index 38a03fc..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/buffered_handshake_op.hpp +++ /dev/null @@ -1,114 +0,0 @@ -// -// ssl/detail/buffered_handshake_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_BUFFERED_HANDSHAKE_OP_HPP -#define ASIO_SSL_DETAIL_BUFFERED_HANDSHAKE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -template -class buffered_handshake_op -{ -public: - buffered_handshake_op(stream_base::handshake_type type, - const ConstBufferSequence& buffers) - : type_(type), - buffers_(buffers), - total_buffer_size_(asio::buffer_size(buffers_)) - { - } - - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - return this->process(eng, ec, bytes_transferred, - asio::buffer_sequence_begin(buffers_), - asio::buffer_sequence_end(buffers_)); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t& bytes_transferred) const - { - handler(ec, bytes_transferred); - } - -private: - template - engine::want process(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred, - Iterator begin, Iterator end) const - { - Iterator iter = begin; - std::size_t accumulated_size = 0; - - for (;;) - { - engine::want want = eng.handshake(type_, ec); - if (want != engine::want_input_and_retry - || bytes_transferred == total_buffer_size_) - return want; - - // Find the next buffer piece to be fed to the engine. - while (iter != end) - { - const_buffer buffer(*iter); - - // Skip over any buffers which have already been consumed by the engine. - if (bytes_transferred >= accumulated_size + buffer.size()) - { - accumulated_size += buffer.size(); - ++iter; - continue; - } - - // The current buffer may have been partially consumed by the engine on - // a previous iteration. If so, adjust the buffer to point to the - // unused portion. - if (bytes_transferred > accumulated_size) - buffer = buffer + (bytes_transferred - accumulated_size); - - // Pass the buffer to the engine, and update the bytes transferred to - // reflect the total number of bytes consumed so far. - bytes_transferred += buffer.size(); - buffer = eng.put_input(buffer); - bytes_transferred -= buffer.size(); - break; - } - } - } - - stream_base::handshake_type type_; - ConstBufferSequence buffers_; - std::size_t total_buffer_size_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_BUFFERED_HANDSHAKE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/engine.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/engine.hpp deleted file mode 100644 index 2f033d6..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/engine.hpp +++ /dev/null @@ -1,160 +0,0 @@ -// -// ssl/detail/engine.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_ENGINE_HPP -#define ASIO_SSL_DETAIL_ENGINE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/buffer.hpp" -#include "asio/detail/static_mutex.hpp" -#include "asio/ssl/detail/openssl_types.hpp" -#include "asio/ssl/detail/verify_callback.hpp" -#include "asio/ssl/stream_base.hpp" -#include "asio/ssl/verify_mode.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class engine -{ -public: - enum want - { - // Returned by functions to indicate that the engine wants input. The input - // buffer should be updated to point to the data. The engine then needs to - // be called again to retry the operation. - want_input_and_retry = -2, - - // Returned by functions to indicate that the engine wants to write output. - // The output buffer points to the data to be written. The engine then - // needs to be called again to retry the operation. - want_output_and_retry = -1, - - // Returned by functions to indicate that the engine doesn't need input or - // output. - want_nothing = 0, - - // Returned by functions to indicate that the engine wants to write output. - // The output buffer points to the data to be written. After that the - // operation is complete, and the engine does not need to be called again. - want_output = 1 - }; - - // Construct a new engine for the specified context. - ASIO_DECL explicit engine(SSL_CTX* context); - - // Destructor. - ASIO_DECL ~engine(); - - // Get the underlying implementation in the native type. - ASIO_DECL SSL* native_handle(); - - // Set the peer verification mode. - ASIO_DECL asio::error_code set_verify_mode( - verify_mode v, asio::error_code& ec); - - // Set the peer verification depth. - ASIO_DECL asio::error_code set_verify_depth( - int depth, asio::error_code& ec); - - // Set a peer certificate verification callback. - ASIO_DECL asio::error_code set_verify_callback( - verify_callback_base* callback, asio::error_code& ec); - - // Perform an SSL handshake using either SSL_connect (client-side) or - // SSL_accept (server-side). - ASIO_DECL want handshake( - stream_base::handshake_type type, asio::error_code& ec); - - // Perform a graceful shutdown of the SSL session. - ASIO_DECL want shutdown(asio::error_code& ec); - - // Write bytes to the SSL session. - ASIO_DECL want write(const asio::const_buffer& data, - asio::error_code& ec, std::size_t& bytes_transferred); - - // Read bytes from the SSL session. - ASIO_DECL want read(const asio::mutable_buffer& data, - asio::error_code& ec, std::size_t& bytes_transferred); - - // Get output data to be written to the transport. - ASIO_DECL asio::mutable_buffer get_output( - const asio::mutable_buffer& data); - - // Put input data that was read from the transport. - ASIO_DECL asio::const_buffer put_input( - const asio::const_buffer& data); - - // Map an error::eof code returned by the underlying transport according to - // the type and state of the SSL session. Returns a const reference to the - // error code object, suitable for passing to a completion handler. - ASIO_DECL const asio::error_code& map_error_code( - asio::error_code& ec) const; - -private: - // Disallow copying and assignment. - engine(const engine&); - engine& operator=(const engine&); - - // Callback used when the SSL implementation wants to verify a certificate. - ASIO_DECL static int verify_callback_function( - int preverified, X509_STORE_CTX* ctx); - -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - // The SSL_accept function may not be thread safe. This mutex is used to - // protect all calls to the SSL_accept function. - ASIO_DECL static asio::detail::static_mutex& accept_mutex(); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - - // Perform one operation. Returns >= 0 on success or error, want_read if the - // operation needs more input, or want_write if it needs to write some output - // before the operation can complete. - ASIO_DECL want perform(int (engine::* op)(void*, std::size_t), - void* data, std::size_t length, asio::error_code& ec, - std::size_t* bytes_transferred); - - // Adapt the SSL_accept function to the signature needed for perform(). - ASIO_DECL int do_accept(void*, std::size_t); - - // Adapt the SSL_connect function to the signature needed for perform(). - ASIO_DECL int do_connect(void*, std::size_t); - - // Adapt the SSL_shutdown function to the signature needed for perform(). - ASIO_DECL int do_shutdown(void*, std::size_t); - - // Adapt the SSL_read function to the signature needed for perform(). - ASIO_DECL int do_read(void* data, std::size_t length); - - // Adapt the SSL_write function to the signature needed for perform(). - ASIO_DECL int do_write(void* data, std::size_t length); - - SSL* ssl_; - BIO* ext_bio_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/detail/impl/engine.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_DETAIL_ENGINE_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/handshake_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/handshake_op.hpp deleted file mode 100644 index f782023..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/handshake_op.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// ssl/detail/handshake_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_HANDSHAKE_OP_HPP -#define ASIO_SSL_DETAIL_HANDSHAKE_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class handshake_op -{ -public: - handshake_op(stream_base::handshake_type type) - : type_(type) - { - } - - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - bytes_transferred = 0; - return eng.handshake(type_, ec); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t&) const - { - handler(ec); - } - -private: - stream_base::handshake_type type_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_HANDSHAKE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/impl/engine.ipp b/Sources/Vendor/asio/include/asio/ssl/detail/impl/engine.ipp deleted file mode 100644 index e60e8d6..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/impl/engine.ipp +++ /dev/null @@ -1,322 +0,0 @@ -// -// ssl/detail/impl/engine.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_IMPL_ENGINE_IPP -#define ASIO_SSL_DETAIL_IMPL_ENGINE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/ssl/detail/engine.hpp" -#include "asio/ssl/error.hpp" -#include "asio/ssl/verify_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -engine::engine(SSL_CTX* context) - : ssl_(::SSL_new(context)) -{ - if (!ssl_) - { - asio::error_code ec( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - asio::detail::throw_error(ec, "engine"); - } - -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - accept_mutex().init(); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - - ::SSL_set_mode(ssl_, SSL_MODE_ENABLE_PARTIAL_WRITE); - ::SSL_set_mode(ssl_, SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); -#if defined(SSL_MODE_RELEASE_BUFFERS) - ::SSL_set_mode(ssl_, SSL_MODE_RELEASE_BUFFERS); -#endif // defined(SSL_MODE_RELEASE_BUFFERS) - - ::BIO* int_bio = 0; - ::BIO_new_bio_pair(&int_bio, 0, &ext_bio_, 0); - ::SSL_set_bio(ssl_, int_bio, int_bio); -} - -engine::~engine() -{ - if (SSL_get_app_data(ssl_)) - { - delete static_cast(SSL_get_app_data(ssl_)); - SSL_set_app_data(ssl_, 0); - } - - ::BIO_free(ext_bio_); - ::SSL_free(ssl_); -} - -SSL* engine::native_handle() -{ - return ssl_; -} - -asio::error_code engine::set_verify_mode( - verify_mode v, asio::error_code& ec) -{ - ::SSL_set_verify(ssl_, v, ::SSL_get_verify_callback(ssl_)); - - ec = asio::error_code(); - return ec; -} - -asio::error_code engine::set_verify_depth( - int depth, asio::error_code& ec) -{ - ::SSL_set_verify_depth(ssl_, depth); - - ec = asio::error_code(); - return ec; -} - -asio::error_code engine::set_verify_callback( - verify_callback_base* callback, asio::error_code& ec) -{ - if (SSL_get_app_data(ssl_)) - delete static_cast(SSL_get_app_data(ssl_)); - - SSL_set_app_data(ssl_, callback); - - ::SSL_set_verify(ssl_, ::SSL_get_verify_mode(ssl_), - &engine::verify_callback_function); - - ec = asio::error_code(); - return ec; -} - -int engine::verify_callback_function(int preverified, X509_STORE_CTX* ctx) -{ - if (ctx) - { - if (SSL* ssl = static_cast( - ::X509_STORE_CTX_get_ex_data( - ctx, ::SSL_get_ex_data_X509_STORE_CTX_idx()))) - { - if (SSL_get_app_data(ssl)) - { - verify_callback_base* callback = - static_cast( - SSL_get_app_data(ssl)); - - verify_context verify_ctx(ctx); - return callback->call(preverified != 0, verify_ctx) ? 1 : 0; - } - } - } - - return 0; -} - -engine::want engine::handshake( - stream_base::handshake_type type, asio::error_code& ec) -{ - return perform((type == asio::ssl::stream_base::client) - ? &engine::do_connect : &engine::do_accept, 0, 0, ec, 0); -} - -engine::want engine::shutdown(asio::error_code& ec) -{ - return perform(&engine::do_shutdown, 0, 0, ec, 0); -} - -engine::want engine::write(const asio::const_buffer& data, - asio::error_code& ec, std::size_t& bytes_transferred) -{ - if (data.size() == 0) - { - ec = asio::error_code(); - return engine::want_nothing; - } - - return perform(&engine::do_write, - const_cast(data.data()), - data.size(), ec, &bytes_transferred); -} - -engine::want engine::read(const asio::mutable_buffer& data, - asio::error_code& ec, std::size_t& bytes_transferred) -{ - if (data.size() == 0) - { - ec = asio::error_code(); - return engine::want_nothing; - } - - return perform(&engine::do_read, data.data(), - data.size(), ec, &bytes_transferred); -} - -asio::mutable_buffer engine::get_output( - const asio::mutable_buffer& data) -{ - int length = ::BIO_read(ext_bio_, - data.data(), static_cast(data.size())); - - return asio::buffer(data, - length > 0 ? static_cast(length) : 0); -} - -asio::const_buffer engine::put_input( - const asio::const_buffer& data) -{ - int length = ::BIO_write(ext_bio_, - data.data(), static_cast(data.size())); - - return asio::buffer(data + - (length > 0 ? static_cast(length) : 0)); -} - -const asio::error_code& engine::map_error_code( - asio::error_code& ec) const -{ - // We only want to map the error::eof code. - if (ec != asio::error::eof) - return ec; - - // If there's data yet to be read, it's an error. - if (BIO_wpending(ext_bio_)) - { - ec = asio::ssl::error::stream_truncated; - return ec; - } - - // SSL v2 doesn't provide a protocol-level shutdown, so an eof on the - // underlying transport is passed through. -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - if (SSL_version(ssl_) == SSL2_VERSION) - return ec; -#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) - - // Otherwise, the peer should have negotiated a proper shutdown. - if ((::SSL_get_shutdown(ssl_) & SSL_RECEIVED_SHUTDOWN) == 0) - { - ec = asio::ssl::error::stream_truncated; - } - - return ec; -} - -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) -asio::detail::static_mutex& engine::accept_mutex() -{ - static asio::detail::static_mutex mutex = ASIO_STATIC_MUTEX_INIT; - return mutex; -} -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - -engine::want engine::perform(int (engine::* op)(void*, std::size_t), - void* data, std::size_t length, asio::error_code& ec, - std::size_t* bytes_transferred) -{ - std::size_t pending_output_before = ::BIO_ctrl_pending(ext_bio_); - ::ERR_clear_error(); - int result = (this->*op)(data, length); - int ssl_error = ::SSL_get_error(ssl_, result); - int sys_error = static_cast(::ERR_get_error()); - std::size_t pending_output_after = ::BIO_ctrl_pending(ext_bio_); - - if (ssl_error == SSL_ERROR_SSL) - { - ec = asio::error_code(sys_error, - asio::error::get_ssl_category()); - return want_nothing; - } - - if (ssl_error == SSL_ERROR_SYSCALL) - { - ec = asio::error_code(sys_error, - asio::error::get_system_category()); - return want_nothing; - } - - if (result > 0 && bytes_transferred) - *bytes_transferred = static_cast(result); - - if (ssl_error == SSL_ERROR_WANT_WRITE) - { - ec = asio::error_code(); - return want_output_and_retry; - } - else if (pending_output_after > pending_output_before) - { - ec = asio::error_code(); - return result > 0 ? want_output : want_output_and_retry; - } - else if (ssl_error == SSL_ERROR_WANT_READ) - { - ec = asio::error_code(); - return want_input_and_retry; - } - else if (::SSL_get_shutdown(ssl_) & SSL_RECEIVED_SHUTDOWN) - { - ec = asio::error::eof; - return want_nothing; - } - else - { - ec = asio::error_code(); - return want_nothing; - } -} - -int engine::do_accept(void*, std::size_t) -{ -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - asio::detail::static_mutex::scoped_lock lock(accept_mutex()); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - return ::SSL_accept(ssl_); -} - -int engine::do_connect(void*, std::size_t) -{ - return ::SSL_connect(ssl_); -} - -int engine::do_shutdown(void*, std::size_t) -{ - int result = ::SSL_shutdown(ssl_); - if (result == 0) - result = ::SSL_shutdown(ssl_); - return result; -} - -int engine::do_read(void* data, std::size_t length) -{ - return ::SSL_read(ssl_, data, - length < INT_MAX ? static_cast(length) : INT_MAX); -} - -int engine::do_write(void* data, std::size_t length) -{ - return ::SSL_write(ssl_, data, - length < INT_MAX ? static_cast(length) : INT_MAX); -} - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_IMPL_ENGINE_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/impl/openssl_init.ipp b/Sources/Vendor/asio/include/asio/ssl/detail/impl/openssl_init.ipp deleted file mode 100644 index fb0fff9..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/impl/openssl_init.ipp +++ /dev/null @@ -1,165 +0,0 @@ -// -// ssl/detail/impl/openssl_init.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com -// Copyright (c) 2005-2018 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_SSL_DETAIL_IMPL_OPENSSL_INIT_IPP -#define ASIO_SSL_DETAIL_IMPL_OPENSSL_INIT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/assert.hpp" -#include "asio/detail/mutex.hpp" -#include "asio/detail/tss_ptr.hpp" -#include "asio/ssl/detail/openssl_init.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class openssl_init_base::do_init -{ -public: - do_init() - { -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::SSL_library_init(); - ::SSL_load_error_strings(); - ::OpenSSL_add_all_algorithms(); - - mutexes_.resize(::CRYPTO_num_locks()); - for (size_t i = 0; i < mutexes_.size(); ++i) - mutexes_[i].reset(new asio::detail::mutex); - ::CRYPTO_set_locking_callback(&do_init::openssl_locking_func); -#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - ::CRYPTO_set_id_callback(&do_init::openssl_id_func); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - null_compression_methods_ = sk_SSL_COMP_new_null(); -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - } - - ~do_init() - { -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - sk_SSL_COMP_free(null_compression_methods_); -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - ::CRYPTO_set_id_callback(0); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::CRYPTO_set_locking_callback(0); - ::ERR_free_strings(); - ::EVP_cleanup(); - ::CRYPTO_cleanup_all_ex_data(); -#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - ::ERR_remove_state(0); -#elif (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::ERR_remove_thread_state(NULL); -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) -#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) \ - && (OPENSSL_VERSION_NUMBER < 0x10100000L) \ - && !defined(SSL_OP_NO_COMPRESSION) - ::SSL_COMP_free_compression_methods(); -#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L) - // && (OPENSSL_VERSION_NUMBER < 0x10100000L) - // && !defined(SSL_OP_NO_COMPRESSION) -#if !defined(OPENSSL_IS_BORINGSSL) - ::CONF_modules_unload(1); -#endif // !defined(OPENSSL_IS_BORINGSSL) -#if !defined(OPENSSL_NO_ENGINE) \ - && (OPENSSL_VERSION_NUMBER < 0x10100000L) - ::ENGINE_cleanup(); -#endif // !defined(OPENSSL_NO_ENGINE) - // && (OPENSSL_VERSION_NUMBER < 0x10100000L) - } - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - STACK_OF(SSL_COMP)* get_null_compression_methods() const - { - return null_compression_methods_; - } -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -private: -#if (OPENSSL_VERSION_NUMBER < 0x10000000L) - static unsigned long openssl_id_func() - { -#if defined(ASIO_WINDOWS) || defined(__CYGWIN__) - return ::GetCurrentThreadId(); -#else // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - void* id = &errno; - ASIO_ASSERT(sizeof(unsigned long) >= sizeof(void*)); - return reinterpret_cast(id); -#endif // defined(ASIO_WINDOWS) || defined(__CYGWIN__) - } -#endif // (OPENSSL_VERSION_NUMBER < 0x10000000L) - -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) - static void openssl_locking_func(int mode, int n, - const char* /*file*/, int /*line*/) - { - if (mode & CRYPTO_LOCK) - instance()->mutexes_[n]->lock(); - else - instance()->mutexes_[n]->unlock(); - } - - // Mutexes to be used in locking callbacks. - std::vector > mutexes_; -#endif // (OPENSSL_VERSION_NUMBER < 0x10100000L) - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - STACK_OF(SSL_COMP)* null_compression_methods_; -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) -}; - -asio::detail::shared_ptr -openssl_init_base::instance() -{ - static asio::detail::shared_ptr init(new do_init); - return init; -} - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) -STACK_OF(SSL_COMP)* openssl_init_base::get_null_compression_methods() -{ - return instance()->get_null_compression_methods(); -} -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_IMPL_OPENSSL_INIT_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/io.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/io.hpp deleted file mode 100644 index 0b0e51a..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/io.hpp +++ /dev/null @@ -1,372 +0,0 @@ -// -// ssl/detail/io.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_IO_HPP -#define ASIO_SSL_DETAIL_IO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/detail/engine.hpp" -#include "asio/ssl/detail/stream_core.hpp" -#include "asio/write.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -template -std::size_t io(Stream& next_layer, stream_core& core, - const Operation& op, asio::error_code& ec) -{ - std::size_t bytes_transferred = 0; - do switch (op(core.engine_, ec, bytes_transferred)) - { - case engine::want_input_and_retry: - - // If the input buffer is empty then we need to read some more data from - // the underlying transport. - if (core.input_.size() == 0) - core.input_ = asio::buffer(core.input_buffer_, - next_layer.read_some(core.input_buffer_, ec)); - - // Pass the new input data to the engine. - core.input_ = core.engine_.put_input(core.input_); - - // Try the operation again. - continue; - - case engine::want_output_and_retry: - - // Get output data from the engine and write it to the underlying - // transport. - asio::write(next_layer, - core.engine_.get_output(core.output_buffer_), ec); - - // Try the operation again. - continue; - - case engine::want_output: - - // Get output data from the engine and write it to the underlying - // transport. - asio::write(next_layer, - core.engine_.get_output(core.output_buffer_), ec); - - // Operation is complete. Return result to caller. - core.engine_.map_error_code(ec); - return bytes_transferred; - - default: - - // Operation is complete. Return result to caller. - core.engine_.map_error_code(ec); - return bytes_transferred; - - } while (!ec); - - // Operation failed. Return result to caller. - core.engine_.map_error_code(ec); - return 0; -} - -template -class io_op -{ -public: - io_op(Stream& next_layer, stream_core& core, - const Operation& op, Handler& handler) - : next_layer_(next_layer), - core_(core), - op_(op), - start_(0), - want_(engine::want_nothing), - bytes_transferred_(0), - handler_(ASIO_MOVE_CAST(Handler)(handler)) - { - } - -#if defined(ASIO_HAS_MOVE) - io_op(const io_op& other) - : next_layer_(other.next_layer_), - core_(other.core_), - op_(other.op_), - start_(other.start_), - want_(other.want_), - ec_(other.ec_), - bytes_transferred_(other.bytes_transferred_), - handler_(other.handler_) - { - } - - io_op(io_op&& other) - : next_layer_(other.next_layer_), - core_(other.core_), - op_(ASIO_MOVE_CAST(Operation)(other.op_)), - start_(other.start_), - want_(other.want_), - ec_(other.ec_), - bytes_transferred_(other.bytes_transferred_), - handler_(ASIO_MOVE_CAST(Handler)(other.handler_)) - { - } -#endif // defined(ASIO_HAS_MOVE) - - void operator()(asio::error_code ec, - std::size_t bytes_transferred = ~std::size_t(0), int start = 0) - { - switch (start_ = start) - { - case 1: // Called after at least one async operation. - do - { - switch (want_ = op_(core_.engine_, ec_, bytes_transferred_)) - { - case engine::want_input_and_retry: - - // If the input buffer already has data in it we can pass it to the - // engine and then retry the operation immediately. - if (core_.input_.size() != 0) - { - core_.input_ = core_.engine_.put_input(core_.input_); - continue; - } - - // The engine wants more data to be read from input. However, we - // cannot allow more than one read operation at a time on the - // underlying transport. The pending_read_ timer's expiry is set to - // pos_infin if a read is in progress, and neg_infin otherwise. - if (core_.expiry(core_.pending_read_) == core_.neg_infin()) - { - // Prevent other read operations from being started. - core_.pending_read_.expires_at(core_.pos_infin()); - - // Start reading some data from the underlying transport. - next_layer_.async_read_some( - asio::buffer(core_.input_buffer_), - ASIO_MOVE_CAST(io_op)(*this)); - } - else - { - // Wait until the current read operation completes. - core_.pending_read_.async_wait(ASIO_MOVE_CAST(io_op)(*this)); - } - - // Yield control until asynchronous operation completes. Control - // resumes at the "default:" label below. - return; - - case engine::want_output_and_retry: - case engine::want_output: - - // The engine wants some data to be written to the output. However, we - // cannot allow more than one write operation at a time on the - // underlying transport. The pending_write_ timer's expiry is set to - // pos_infin if a write is in progress, and neg_infin otherwise. - if (core_.expiry(core_.pending_write_) == core_.neg_infin()) - { - // Prevent other write operations from being started. - core_.pending_write_.expires_at(core_.pos_infin()); - - // Start writing all the data to the underlying transport. - asio::async_write(next_layer_, - core_.engine_.get_output(core_.output_buffer_), - ASIO_MOVE_CAST(io_op)(*this)); - } - else - { - // Wait until the current write operation completes. - core_.pending_write_.async_wait(ASIO_MOVE_CAST(io_op)(*this)); - } - - // Yield control until asynchronous operation completes. Control - // resumes at the "default:" label below. - return; - - default: - - // The SSL operation is done and we can invoke the handler, but we - // have to keep in mind that this function might be being called from - // the async operation's initiating function. In this case we're not - // allowed to call the handler directly. Instead, issue a zero-sized - // read so the handler runs "as-if" posted using io_context::post(). - if (start) - { - next_layer_.async_read_some( - asio::buffer(core_.input_buffer_, 0), - ASIO_MOVE_CAST(io_op)(*this)); - - // Yield control until asynchronous operation completes. Control - // resumes at the "default:" label below. - return; - } - else - { - // Continue on to run handler directly. - break; - } - } - - default: - if (bytes_transferred == ~std::size_t(0)) - bytes_transferred = 0; // Timer cancellation, no data transferred. - else if (!ec_) - ec_ = ec; - - switch (want_) - { - case engine::want_input_and_retry: - - // Add received data to the engine's input. - core_.input_ = asio::buffer( - core_.input_buffer_, bytes_transferred); - core_.input_ = core_.engine_.put_input(core_.input_); - - // Release any waiting read operations. - core_.pending_read_.expires_at(core_.neg_infin()); - - // Try the operation again. - continue; - - case engine::want_output_and_retry: - - // Release any waiting write operations. - core_.pending_write_.expires_at(core_.neg_infin()); - - // Try the operation again. - continue; - - case engine::want_output: - - // Release any waiting write operations. - core_.pending_write_.expires_at(core_.neg_infin()); - - // Fall through to call handler. - - default: - - // Pass the result to the handler. - op_.call_handler(handler_, - core_.engine_.map_error_code(ec_), - ec_ ? 0 : bytes_transferred_); - - // Our work here is done. - return; - } - } while (!ec_); - - // Operation failed. Pass the result to the handler. - op_.call_handler(handler_, core_.engine_.map_error_code(ec_), 0); - } - } - -//private: - Stream& next_layer_; - stream_core& core_; - Operation op_; - int start_; - engine::want want_; - asio::error_code ec_; - std::size_t bytes_transferred_; - Handler handler_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - io_op* this_handler) -{ - return asio_handler_alloc_helpers::allocate( - size, this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - io_op* this_handler) -{ - asio_handler_alloc_helpers::deallocate( - pointer, size, this_handler->handler_); -} - -template -inline bool asio_handler_is_continuation( - io_op* this_handler) -{ - return this_handler->start_ == 0 ? true - : asio_handler_cont_helpers::is_continuation(this_handler->handler_); -} - -template -inline void asio_handler_invoke(Function& function, - io_op* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - io_op* this_handler) -{ - asio_handler_invoke_helpers::invoke( - function, this_handler->handler_); -} - -template -inline void async_io(Stream& next_layer, stream_core& core, - const Operation& op, Handler& handler) -{ - io_op( - next_layer, core, op, handler)( - asio::error_code(), 0, 1); -} - -} // namespace detail -} // namespace ssl - -template -struct associated_allocator< - ssl::detail::io_op, Allocator> -{ - typedef typename associated_allocator::type type; - - static type get(const ssl::detail::io_op& h, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return associated_allocator::get(h.handler_, a); - } -}; - -template -struct associated_executor< - ssl::detail::io_op, Executor> -{ - typedef typename associated_executor::type type; - - static type get(const ssl::detail::io_op& h, - const Executor& ex = Executor()) ASIO_NOEXCEPT - { - return associated_executor::get(h.handler_, ex); - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_IO_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/openssl_init.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/openssl_init.hpp deleted file mode 100644 index c3e4727..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/openssl_init.hpp +++ /dev/null @@ -1,101 +0,0 @@ -// -// ssl/detail/openssl_init.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_OPENSSL_INIT_HPP -#define ASIO_SSL_DETAIL_OPENSSL_INIT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/detail/memory.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class openssl_init_base - : private noncopyable -{ -protected: - // Class that performs the actual initialisation. - class do_init; - - // Helper function to manage a do_init singleton. The static instance of the - // openssl_init object ensures that this function is always called before - // main, and therefore before any other threads can get started. The do_init - // instance must be static in this function to ensure that it gets - // initialised before any other global objects try to use it. - ASIO_DECL static asio::detail::shared_ptr instance(); - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - // Get an empty stack of compression methods, to be used when disabling - // compression. - ASIO_DECL static STACK_OF(SSL_COMP)* get_null_compression_methods(); -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) -}; - -template -class openssl_init : private openssl_init_base -{ -public: - // Constructor. - openssl_init() - : ref_(instance()) - { - using namespace std; // For memmove. - - // Ensure openssl_init::instance_ is linked in. - openssl_init* tmp = &instance_; - memmove(&tmp, &tmp, sizeof(openssl_init*)); - } - - // Destructor. - ~openssl_init() - { - } - -#if !defined(SSL_OP_NO_COMPRESSION) \ - && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - using openssl_init_base::get_null_compression_methods; -#endif // !defined(SSL_OP_NO_COMPRESSION) - // && (OPENSSL_VERSION_NUMBER >= 0x00908000L) - -private: - // Instance to force initialisation of openssl at global scope. - static openssl_init instance_; - - // Reference to singleton do_init object to ensure that openssl does not get - // cleaned up until the last user has finished with it. - asio::detail::shared_ptr ref_; -}; - -template -openssl_init openssl_init::instance_; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/detail/impl/openssl_init.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_DETAIL_OPENSSL_INIT_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/openssl_types.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/openssl_types.hpp deleted file mode 100644 index a044af3..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/openssl_types.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// ssl/detail/openssl_types.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_OPENSSL_TYPES_HPP -#define ASIO_SSL_DETAIL_OPENSSL_TYPES_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/socket_types.hpp" -#include -#include -#if !defined(OPENSSL_NO_ENGINE) -# include -#endif // !defined(OPENSSL_NO_ENGINE) -#include -#include -#include -#include - -#endif // ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/password_callback.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/password_callback.hpp deleted file mode 100644 index 9b1dbee..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/password_callback.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// ssl/detail/password_callback.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_PASSWORD_CALLBACK_HPP -#define ASIO_SSL_DETAIL_PASSWORD_CALLBACK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/ssl/context_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class password_callback_base -{ -public: - virtual ~password_callback_base() - { - } - - virtual std::string call(std::size_t size, - context_base::password_purpose purpose) = 0; -}; - -template -class password_callback : public password_callback_base -{ -public: - explicit password_callback(PasswordCallback callback) - : callback_(callback) - { - } - - virtual std::string call(std::size_t size, - context_base::password_purpose purpose) - { - return callback_(size, purpose); - } - -private: - PasswordCallback callback_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_PASSWORD_CALLBACK_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/read_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/read_op.hpp deleted file mode 100644 index b0d6de2..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/read_op.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ssl/detail/read_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_READ_OP_HPP -#define ASIO_SSL_DETAIL_READ_OP_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/buffer_sequence_adapter.hpp" -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -template -class read_op -{ -public: - read_op(const MutableBufferSequence& buffers) - : buffers_(buffers) - { - } - - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - asio::mutable_buffer buffer = - asio::detail::buffer_sequence_adapter::first(buffers_); - - return eng.read(buffer, ec, bytes_transferred); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t& bytes_transferred) const - { - handler(ec, bytes_transferred); - } - -private: - MutableBufferSequence buffers_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_READ_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/shutdown_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/shutdown_op.hpp deleted file mode 100644 index d20b430..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/shutdown_op.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// ssl/detail/shutdown_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_SHUTDOWN_OP_HPP -#define ASIO_SSL_DETAIL_SHUTDOWN_OP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class shutdown_op -{ -public: - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - bytes_transferred = 0; - return eng.shutdown(ec); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t&) const - { - handler(ec); - } -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_SHUTDOWN_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/stream_core.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/stream_core.hpp deleted file mode 100644 index 13fde74..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/stream_core.hpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// ssl/detail/stream_core.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_STREAM_CORE_HPP -#define ASIO_SSL_DETAIL_STREAM_CORE_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_BOOST_DATE_TIME) -# include "asio/deadline_timer.hpp" -#else // defined(ASIO_HAS_BOOST_DATE_TIME) -# include "asio/steady_timer.hpp" -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) -#include "asio/ssl/detail/engine.hpp" -#include "asio/buffer.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -struct stream_core -{ - // According to the OpenSSL documentation, this is the buffer size that is - // sufficient to hold the largest possible TLS record. - enum { max_tls_record_size = 17 * 1024 }; - - stream_core(SSL_CTX* context, asio::io_context& io_context) - : engine_(context), - pending_read_(io_context), - pending_write_(io_context), - output_buffer_space_(max_tls_record_size), - output_buffer_(asio::buffer(output_buffer_space_)), - input_buffer_space_(max_tls_record_size), - input_buffer_(asio::buffer(input_buffer_space_)) - { - pending_read_.expires_at(neg_infin()); - pending_write_.expires_at(neg_infin()); - } - - ~stream_core() - { - } - - // The SSL engine. - engine engine_; - -#if defined(ASIO_HAS_BOOST_DATE_TIME) - // Timer used for storing queued read operations. - asio::deadline_timer pending_read_; - - // Timer used for storing queued write operations. - asio::deadline_timer pending_write_; - - // Helper function for obtaining a time value that always fires. - static asio::deadline_timer::time_type neg_infin() - { - return boost::posix_time::neg_infin; - } - - // Helper function for obtaining a time value that never fires. - static asio::deadline_timer::time_type pos_infin() - { - return boost::posix_time::pos_infin; - } - - // Helper function to get a timer's expiry time. - static asio::deadline_timer::time_type expiry( - const asio::deadline_timer& timer) - { - return timer.expires_at(); - } -#else // defined(ASIO_HAS_BOOST_DATE_TIME) - // Timer used for storing queued read operations. - asio::steady_timer pending_read_; - - // Timer used for storing queued write operations. - asio::steady_timer pending_write_; - - // Helper function for obtaining a time value that always fires. - static asio::steady_timer::time_point neg_infin() - { - return (asio::steady_timer::time_point::min)(); - } - - // Helper function for obtaining a time value that never fires. - static asio::steady_timer::time_point pos_infin() - { - return (asio::steady_timer::time_point::max)(); - } - - // Helper function to get a timer's expiry time. - static asio::steady_timer::time_point expiry( - const asio::steady_timer& timer) - { - return timer.expiry(); - } -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - - // Buffer space used to prepare output intended for the transport. - std::vector output_buffer_space_; - - // A buffer that may be used to prepare output intended for the transport. - const asio::mutable_buffer output_buffer_; - - // Buffer space used to read input intended for the engine. - std::vector input_buffer_space_; - - // A buffer that may be used to read input intended for the engine. - const asio::mutable_buffer input_buffer_; - - // The buffer pointing to the engine's unconsumed input. - asio::const_buffer input_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_STREAM_CORE_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/verify_callback.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/verify_callback.hpp deleted file mode 100644 index 1c56a27..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/verify_callback.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// ssl/detail/verify_callback.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_VERIFY_CALLBACK_HPP -#define ASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/ssl/verify_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -class verify_callback_base -{ -public: - virtual ~verify_callback_base() - { - } - - virtual bool call(bool preverified, verify_context& ctx) = 0; -}; - -template -class verify_callback : public verify_callback_base -{ -public: - explicit verify_callback(VerifyCallback callback) - : callback_(callback) - { - } - - virtual bool call(bool preverified, verify_context& ctx) - { - return callback_(preverified, ctx); - } - -private: - VerifyCallback callback_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_VERIFY_CALLBACK_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/detail/write_op.hpp b/Sources/Vendor/asio/include/asio/ssl/detail/write_op.hpp deleted file mode 100644 index 1d341c0..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/detail/write_op.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ssl/detail/write_op.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_DETAIL_WRITE_OP_HPP -#define ASIO_SSL_DETAIL_WRITE_OP_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/buffer_sequence_adapter.hpp" -#include "asio/ssl/detail/engine.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { -namespace detail { - -template -class write_op -{ -public: - write_op(const ConstBufferSequence& buffers) - : buffers_(buffers) - { - } - - engine::want operator()(engine& eng, - asio::error_code& ec, - std::size_t& bytes_transferred) const - { - asio::const_buffer buffer = - asio::detail::buffer_sequence_adapter::first(buffers_); - - return eng.write(buffer, ec, bytes_transferred); - } - - template - void call_handler(Handler& handler, - const asio::error_code& ec, - const std::size_t& bytes_transferred) const - { - handler(ec, bytes_transferred); - } - -private: - ConstBufferSequence buffers_; -}; - -} // namespace detail -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_DETAIL_WRITE_OP_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/error.hpp b/Sources/Vendor/asio/include/asio/ssl/error.hpp deleted file mode 100644 index 6165c5c..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/error.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// ssl/error.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_ERROR_HPP -#define ASIO_SSL_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/error_code.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace error { - -enum ssl_errors -{ - // Error numbers are those produced by openssl. -}; - -extern ASIO_DECL -const asio::error_category& get_ssl_category(); - -static const asio::error_category& - ssl_category ASIO_UNUSED_VARIABLE - = asio::error::get_ssl_category(); - -} // namespace error -namespace ssl { -namespace error { - -enum stream_errors -{ -#if defined(GENERATING_DOCUMENTATION) - /// The underlying stream closed before the ssl stream gracefully shut down. - stream_truncated -#elif (OPENSSL_VERSION_NUMBER < 0x10100000L) && !defined(OPENSSL_IS_BORINGSSL) - stream_truncated = ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ) -#else - stream_truncated = 1 -#endif -}; - -extern ASIO_DECL -const asio::error_category& get_stream_category(); - -static const asio::error_category& - stream_category ASIO_UNUSED_VARIABLE - = asio::ssl::error::get_stream_category(); - -} // namespace error -} // namespace ssl -} // namespace asio - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) -namespace std { - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -} // namespace std -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -namespace asio { -namespace error { - -inline asio::error_code make_error_code(ssl_errors e) -{ - return asio::error_code( - static_cast(e), get_ssl_category()); -} - -} // namespace error -namespace ssl { -namespace error { - -inline asio::error_code make_error_code(stream_errors e) -{ - return asio::error_code( - static_cast(e), get_stream_category()); -} - -} // namespace error -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/impl/error.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/context.hpp b/Sources/Vendor/asio/include/asio/ssl/impl/context.hpp deleted file mode 100644 index 40199c1..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/context.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ssl/impl/context.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com -// Copyright (c) 2005-2018 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_SSL_IMPL_CONTEXT_HPP -#define ASIO_SSL_IMPL_CONTEXT_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/throw_error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -template -void context::set_verify_callback(VerifyCallback callback) -{ - asio::error_code ec; - this->set_verify_callback(callback, ec); - asio::detail::throw_error(ec, "set_verify_callback"); -} - -template -ASIO_SYNC_OP_VOID context::set_verify_callback( - VerifyCallback callback, asio::error_code& ec) -{ - do_set_verify_callback( - new detail::verify_callback(callback), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -template -void context::set_password_callback(PasswordCallback callback) -{ - asio::error_code ec; - this->set_password_callback(callback, ec); - asio::detail::throw_error(ec, "set_password_callback"); -} - -template -ASIO_SYNC_OP_VOID context::set_password_callback( - PasswordCallback callback, asio::error_code& ec) -{ - do_set_password_callback( - new detail::password_callback(callback), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_IMPL_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/context.ipp b/Sources/Vendor/asio/include/asio/ssl/impl/context.ipp deleted file mode 100644 index 3bc3f29..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/context.ipp +++ /dev/null @@ -1,1204 +0,0 @@ -// -// ssl/impl/context.ipp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com -// Copyright (c) 2005-2018 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_SSL_IMPL_CONTEXT_IPP -#define ASIO_SSL_IMPL_CONTEXT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/ssl/context.hpp" -#include "asio/ssl/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -struct context::bio_cleanup -{ - BIO* p; - ~bio_cleanup() { if (p) ::BIO_free(p); } -}; - -struct context::x509_cleanup -{ - X509* p; - ~x509_cleanup() { if (p) ::X509_free(p); } -}; - -struct context::evp_pkey_cleanup -{ - EVP_PKEY* p; - ~evp_pkey_cleanup() { if (p) ::EVP_PKEY_free(p); } -}; - -struct context::rsa_cleanup -{ - RSA* p; - ~rsa_cleanup() { if (p) ::RSA_free(p); } -}; - -struct context::dh_cleanup -{ - DH* p; - ~dh_cleanup() { if (p) ::DH_free(p); } -}; - -context::context(context::method m) - : handle_(0) -{ - ::ERR_clear_error(); - - switch (m) - { - // SSL v2. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(OPENSSL_NO_SSL2) - case context::sslv2: - case context::sslv2_client: - case context::sslv2_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(OPENSSL_NO_SSL2) - case context::sslv2: - handle_ = ::SSL_CTX_new(::SSLv2_method()); - break; - case context::sslv2_client: - handle_ = ::SSL_CTX_new(::SSLv2_client_method()); - break; - case context::sslv2_server: - handle_ = ::SSL_CTX_new(::SSLv2_server_method()); - break; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) || defined(OPENSSL_NO_SSL2) - - // SSL v3. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::sslv3: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, SSL3_VERSION); - SSL_CTX_set_max_proto_version(handle_, SSL3_VERSION); - } - break; - case context::sslv3_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, SSL3_VERSION); - SSL_CTX_set_max_proto_version(handle_, SSL3_VERSION); - } - break; - case context::sslv3_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, SSL3_VERSION); - SSL_CTX_set_max_proto_version(handle_, SSL3_VERSION); - } - break; -#elif defined(OPENSSL_NO_SSL3) - case context::sslv3: - case context::sslv3_client: - case context::sslv3_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#else // defined(OPENSSL_NO_SSL3) - case context::sslv3: - handle_ = ::SSL_CTX_new(::SSLv3_method()); - break; - case context::sslv3_client: - handle_ = ::SSL_CTX_new(::SSLv3_client_method()); - break; - case context::sslv3_server: - handle_ = ::SSL_CTX_new(::SSLv3_server_method()); - break; -#endif // defined(OPENSSL_NO_SSL3) - - // TLS v1.0. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv1: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_VERSION); - } - break; - case context::tlsv1_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_VERSION); - } - break; - case context::tlsv1_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_VERSION); - } - break; -#elif defined(SSL_TXT_TLSV1) - case context::tlsv1: - handle_ = ::SSL_CTX_new(::TLSv1_method()); - break; - case context::tlsv1_client: - handle_ = ::SSL_CTX_new(::TLSv1_client_method()); - break; - case context::tlsv1_server: - handle_ = ::SSL_CTX_new(::TLSv1_server_method()); - break; -#else // defined(SSL_TXT_TLSV1) - case context::tlsv1: - case context::tlsv1_client: - case context::tlsv1_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#endif // defined(SSL_TXT_TLSV1) - - // TLS v1.1. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv11: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_1_VERSION); - } - break; - case context::tlsv11_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_1_VERSION); - } - break; - case context::tlsv11_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_1_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_1_VERSION); - } - break; -#elif defined(SSL_TXT_TLSV1_1) - case context::tlsv11: - handle_ = ::SSL_CTX_new(::TLSv1_1_method()); - break; - case context::tlsv11_client: - handle_ = ::SSL_CTX_new(::TLSv1_1_client_method()); - break; - case context::tlsv11_server: - handle_ = ::SSL_CTX_new(::TLSv1_1_server_method()); - break; -#else // defined(SSL_TXT_TLSV1_1) - case context::tlsv11: - case context::tlsv11_client: - case context::tlsv11_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#endif // defined(SSL_TXT_TLSV1_1) - - // TLS v1.2. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv12: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_2_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_2_VERSION); - } - break; - case context::tlsv12_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_2_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_2_VERSION); - } - break; - case context::tlsv12_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_2_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_2_VERSION); - } - break; -#elif defined(SSL_TXT_TLSV1_2) - case context::tlsv12: - handle_ = ::SSL_CTX_new(::TLSv1_2_method()); - break; - case context::tlsv12_client: - handle_ = ::SSL_CTX_new(::TLSv1_2_client_method()); - break; - case context::tlsv12_server: - handle_ = ::SSL_CTX_new(::TLSv1_2_server_method()); - break; -#else // defined(SSL_TXT_TLSV1_2) - case context::tlsv12: - case context::tlsv12_client: - case context::tlsv12_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#endif // defined(SSL_TXT_TLSV1_2) - - // TLS v1.3. -#if (OPENSSL_VERSION_NUMBER >= 0x10101000L) \ - && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv13: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION); - } - break; - case context::tlsv13_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION); - } - break; - case context::tlsv13_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - { - SSL_CTX_set_min_proto_version(handle_, TLS1_3_VERSION); - SSL_CTX_set_max_proto_version(handle_, TLS1_3_VERSION); - } - break; -#else // (OPENSSL_VERSION_NUMBER >= 0x10101000L) - // && !defined(LIBRESSL_VERSION_NUMBER) - case context::tlsv13: - case context::tlsv13_client: - case context::tlsv13_server: - asio::detail::throw_error( - asio::error::invalid_argument, "context"); - break; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10101000L) - // && !defined(LIBRESSL_VERSION_NUMBER) - - // Any supported SSL/TLS version. - case context::sslv23: - handle_ = ::SSL_CTX_new(::SSLv23_method()); - break; - case context::sslv23_client: - handle_ = ::SSL_CTX_new(::SSLv23_client_method()); - break; - case context::sslv23_server: - handle_ = ::SSL_CTX_new(::SSLv23_server_method()); - break; - - // Any supported TLS version. -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - case context::tls: - handle_ = ::SSL_CTX_new(::TLS_method()); - if (handle_) - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - break; - case context::tls_client: - handle_ = ::SSL_CTX_new(::TLS_client_method()); - if (handle_) - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - break; - case context::tls_server: - handle_ = ::SSL_CTX_new(::TLS_server_method()); - if (handle_) - SSL_CTX_set_min_proto_version(handle_, TLS1_VERSION); - break; -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - case context::tls: - handle_ = ::SSL_CTX_new(::SSLv23_method()); - if (handle_) - SSL_CTX_set_options(handle_, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); - break; - case context::tls_client: - handle_ = ::SSL_CTX_new(::SSLv23_client_method()); - if (handle_) - SSL_CTX_set_options(handle_, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); - break; - case context::tls_server: - handle_ = ::SSL_CTX_new(::SSLv23_server_method()); - if (handle_) - SSL_CTX_set_options(handle_, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); - break; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - - default: - handle_ = ::SSL_CTX_new(0); - break; - } - - if (handle_ == 0) - { - asio::error_code ec( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - asio::detail::throw_error(ec, "context"); - } - - set_options(no_compression); -} - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) -context::context(context&& other) -{ - handle_ = other.handle_; - other.handle_ = 0; -} - -context& context::operator=(context&& other) -{ - context tmp(ASIO_MOVE_CAST(context)(*this)); - handle_ = other.handle_; - other.handle_ = 0; - return *this; -} -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -context::~context() -{ - if (handle_) - { -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - void* cb_userdata = handle_->default_passwd_callback_userdata; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - if (cb_userdata) - { - detail::password_callback_base* callback = - static_cast( - cb_userdata); - delete callback; -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - ::SSL_CTX_set_default_passwd_cb_userdata(handle_, 0); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - handle_->default_passwd_callback_userdata = 0; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - } - - if (SSL_CTX_get_app_data(handle_)) - { - detail::verify_callback_base* callback = - static_cast( - SSL_CTX_get_app_data(handle_)); - delete callback; - SSL_CTX_set_app_data(handle_, 0); - } - - ::SSL_CTX_free(handle_); - } -} - -context::native_handle_type context::native_handle() -{ - return handle_; -} - -void context::clear_options(context::options o) -{ - asio::error_code ec; - clear_options(o, ec); - asio::detail::throw_error(ec, "clear_options"); -} - -ASIO_SYNC_OP_VOID context::clear_options( - context::options o, asio::error_code& ec) -{ -#if (OPENSSL_VERSION_NUMBER >= 0x009080DFL) \ - && (OPENSSL_VERSION_NUMBER != 0x00909000L) -# if !defined(SSL_OP_NO_COMPRESSION) - if ((o & context::no_compression) != 0) - { -# if (OPENSSL_VERSION_NUMBER >= 0x00908000L) - handle_->comp_methods = SSL_COMP_get_compression_methods(); -# endif // (OPENSSL_VERSION_NUMBER >= 0x00908000L) - o ^= context::no_compression; - } -# endif // !defined(SSL_OP_NO_COMPRESSION) - - ::SSL_CTX_clear_options(handle_, o); - - ec = asio::error_code(); -#else // (OPENSSL_VERSION_NUMBER >= 0x009080DFL) - // && (OPENSSL_VERSION_NUMBER != 0x00909000L) - (void)o; - ec = asio::error::operation_not_supported; -#endif // (OPENSSL_VERSION_NUMBER >= 0x009080DFL) - // && (OPENSSL_VERSION_NUMBER != 0x00909000L) - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::set_options(context::options o) -{ - asio::error_code ec; - set_options(o, ec); - asio::detail::throw_error(ec, "set_options"); -} - -ASIO_SYNC_OP_VOID context::set_options( - context::options o, asio::error_code& ec) -{ -#if !defined(SSL_OP_NO_COMPRESSION) - if ((o & context::no_compression) != 0) - { -#if (OPENSSL_VERSION_NUMBER >= 0x00908000L) - handle_->comp_methods = - asio::ssl::detail::openssl_init<>::get_null_compression_methods(); -#endif // (OPENSSL_VERSION_NUMBER >= 0x00908000L) - o ^= context::no_compression; - } -#endif // !defined(SSL_OP_NO_COMPRESSION) - - ::SSL_CTX_set_options(handle_, o); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::set_verify_mode(verify_mode v) -{ - asio::error_code ec; - set_verify_mode(v, ec); - asio::detail::throw_error(ec, "set_verify_mode"); -} - -ASIO_SYNC_OP_VOID context::set_verify_mode( - verify_mode v, asio::error_code& ec) -{ - ::SSL_CTX_set_verify(handle_, v, ::SSL_CTX_get_verify_callback(handle_)); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::set_verify_depth(int depth) -{ - asio::error_code ec; - set_verify_depth(depth, ec); - asio::detail::throw_error(ec, "set_verify_depth"); -} - -ASIO_SYNC_OP_VOID context::set_verify_depth( - int depth, asio::error_code& ec) -{ - ::SSL_CTX_set_verify_depth(handle_, depth); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::load_verify_file(const std::string& filename) -{ - asio::error_code ec; - load_verify_file(filename, ec); - asio::detail::throw_error(ec, "load_verify_file"); -} - -ASIO_SYNC_OP_VOID context::load_verify_file( - const std::string& filename, asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (::SSL_CTX_load_verify_locations(handle_, filename.c_str(), 0) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::add_certificate_authority(const const_buffer& ca) -{ - asio::error_code ec; - add_certificate_authority(ca, ec); - asio::detail::throw_error(ec, "add_certificate_authority"); -} - -ASIO_SYNC_OP_VOID context::add_certificate_authority( - const const_buffer& ca, asio::error_code& ec) -{ - ::ERR_clear_error(); - - bio_cleanup bio = { make_buffer_bio(ca) }; - if (bio.p) - { - if (X509_STORE* store = ::SSL_CTX_get_cert_store(handle_)) - { - for (;;) - { - x509_cleanup cert = { ::PEM_read_bio_X509(bio.p, 0, 0, 0) }; - if (!cert.p) - break; - - if (::X509_STORE_add_cert(store, cert.p) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - } - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::set_default_verify_paths() -{ - asio::error_code ec; - set_default_verify_paths(ec); - asio::detail::throw_error(ec, "set_default_verify_paths"); -} - -ASIO_SYNC_OP_VOID context::set_default_verify_paths( - asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (::SSL_CTX_set_default_verify_paths(handle_) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::add_verify_path(const std::string& path) -{ - asio::error_code ec; - add_verify_path(path, ec); - asio::detail::throw_error(ec, "add_verify_path"); -} - -ASIO_SYNC_OP_VOID context::add_verify_path( - const std::string& path, asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (::SSL_CTX_load_verify_locations(handle_, 0, path.c_str()) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_certificate( - const const_buffer& certificate, file_format format) -{ - asio::error_code ec; - use_certificate(certificate, format, ec); - asio::detail::throw_error(ec, "use_certificate"); -} - -ASIO_SYNC_OP_VOID context::use_certificate( - const const_buffer& certificate, file_format format, - asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (format == context_base::asn1) - { - if (::SSL_CTX_use_certificate_ASN1(handle_, - static_cast(certificate.size()), - static_cast(certificate.data())) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - else if (format == context_base::pem) - { - bio_cleanup bio = { make_buffer_bio(certificate) }; - if (bio.p) - { - x509_cleanup cert = { ::PEM_read_bio_X509(bio.p, 0, 0, 0) }; - if (cert.p) - { - if (::SSL_CTX_use_certificate(handle_, cert.p) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - } - } - else - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_certificate_file( - const std::string& filename, file_format format) -{ - asio::error_code ec; - use_certificate_file(filename, format, ec); - asio::detail::throw_error(ec, "use_certificate_file"); -} - -ASIO_SYNC_OP_VOID context::use_certificate_file( - const std::string& filename, file_format format, - asio::error_code& ec) -{ - int file_type; - switch (format) - { - case context_base::asn1: - file_type = SSL_FILETYPE_ASN1; - break; - case context_base::pem: - file_type = SSL_FILETYPE_PEM; - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ::ERR_clear_error(); - - if (::SSL_CTX_use_certificate_file(handle_, filename.c_str(), file_type) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_certificate_chain(const const_buffer& chain) -{ - asio::error_code ec; - use_certificate_chain(chain, ec); - asio::detail::throw_error(ec, "use_certificate_chain"); -} - -ASIO_SYNC_OP_VOID context::use_certificate_chain( - const const_buffer& chain, asio::error_code& ec) -{ - ::ERR_clear_error(); - - bio_cleanup bio = { make_buffer_bio(chain) }; - if (bio.p) - { -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); - void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - pem_password_cb* callback = handle_->default_passwd_callback; - void* cb_userdata = handle_->default_passwd_callback_userdata; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - x509_cleanup cert = { - ::PEM_read_bio_X509_AUX(bio.p, 0, - callback, - cb_userdata) }; - if (!cert.p) - { - ec = asio::error_code(ERR_R_PEM_LIB, - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - int result = ::SSL_CTX_use_certificate(handle_, cert.p); - if (result == 0 || ::ERR_peek_error() != 0) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - -#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) && !defined(LIBRESSL_VERSION_NUMBER) - ::SSL_CTX_clear_chain_certs(handle_); -#else - if (handle_->extra_certs) - { - ::sk_X509_pop_free(handle_->extra_certs, X509_free); - handle_->extra_certs = 0; - } -#endif // (OPENSSL_VERSION_NUMBER >= 0x10002000L) - - while (X509* cacert = ::PEM_read_bio_X509(bio.p, 0, - callback, - cb_userdata)) - { - if (!::SSL_CTX_add_extra_chain_cert(handle_, cacert)) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - result = ::ERR_peek_last_error(); - if ((ERR_GET_LIB(result) == ERR_LIB_PEM) - && (ERR_GET_REASON(result) == PEM_R_NO_START_LINE)) - { - ::ERR_clear_error(); - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_certificate_chain_file(const std::string& filename) -{ - asio::error_code ec; - use_certificate_chain_file(filename, ec); - asio::detail::throw_error(ec, "use_certificate_chain_file"); -} - -ASIO_SYNC_OP_VOID context::use_certificate_chain_file( - const std::string& filename, asio::error_code& ec) -{ - ::ERR_clear_error(); - - if (::SSL_CTX_use_certificate_chain_file(handle_, filename.c_str()) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_private_key( - const const_buffer& private_key, context::file_format format) -{ - asio::error_code ec; - use_private_key(private_key, format, ec); - asio::detail::throw_error(ec, "use_private_key"); -} - -ASIO_SYNC_OP_VOID context::use_private_key( - const const_buffer& private_key, context::file_format format, - asio::error_code& ec) -{ - ::ERR_clear_error(); - -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); - void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - pem_password_cb* callback = handle_->default_passwd_callback; - void* cb_userdata = handle_->default_passwd_callback_userdata; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - - bio_cleanup bio = { make_buffer_bio(private_key) }; - if (bio.p) - { - evp_pkey_cleanup evp_private_key = { 0 }; - switch (format) - { - case context_base::asn1: - evp_private_key.p = ::d2i_PrivateKey_bio(bio.p, 0); - break; - case context_base::pem: - evp_private_key.p = ::PEM_read_bio_PrivateKey( - bio.p, 0, callback, - cb_userdata); - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - if (evp_private_key.p) - { - if (::SSL_CTX_use_PrivateKey(handle_, evp_private_key.p) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_private_key_file( - const std::string& filename, context::file_format format) -{ - asio::error_code ec; - use_private_key_file(filename, format, ec); - asio::detail::throw_error(ec, "use_private_key_file"); -} - -void context::use_rsa_private_key( - const const_buffer& private_key, context::file_format format) -{ - asio::error_code ec; - use_rsa_private_key(private_key, format, ec); - asio::detail::throw_error(ec, "use_rsa_private_key"); -} - -ASIO_SYNC_OP_VOID context::use_rsa_private_key( - const const_buffer& private_key, context::file_format format, - asio::error_code& ec) -{ - ::ERR_clear_error(); - -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - pem_password_cb* callback = ::SSL_CTX_get_default_passwd_cb(handle_); - void* cb_userdata = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - pem_password_cb* callback = handle_->default_passwd_callback; - void* cb_userdata = handle_->default_passwd_callback_userdata; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - - bio_cleanup bio = { make_buffer_bio(private_key) }; - if (bio.p) - { - rsa_cleanup rsa_private_key = { 0 }; - switch (format) - { - case context_base::asn1: - rsa_private_key.p = ::d2i_RSAPrivateKey_bio(bio.p, 0); - break; - case context_base::pem: - rsa_private_key.p = ::PEM_read_bio_RSAPrivateKey( - bio.p, 0, callback, - cb_userdata); - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - if (rsa_private_key.p) - { - if (::SSL_CTX_use_RSAPrivateKey(handle_, rsa_private_key.p) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID context::use_private_key_file( - const std::string& filename, context::file_format format, - asio::error_code& ec) -{ - int file_type; - switch (format) - { - case context_base::asn1: - file_type = SSL_FILETYPE_ASN1; - break; - case context_base::pem: - file_type = SSL_FILETYPE_PEM; - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ::ERR_clear_error(); - - if (::SSL_CTX_use_PrivateKey_file(handle_, filename.c_str(), file_type) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_rsa_private_key_file( - const std::string& filename, context::file_format format) -{ - asio::error_code ec; - use_rsa_private_key_file(filename, format, ec); - asio::detail::throw_error(ec, "use_rsa_private_key_file"); -} - -ASIO_SYNC_OP_VOID context::use_rsa_private_key_file( - const std::string& filename, context::file_format format, - asio::error_code& ec) -{ - int file_type; - switch (format) - { - case context_base::asn1: - file_type = SSL_FILETYPE_ASN1; - break; - case context_base::pem: - file_type = SSL_FILETYPE_PEM; - break; - default: - { - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ::ERR_clear_error(); - - if (::SSL_CTX_use_RSAPrivateKey_file( - handle_, filename.c_str(), file_type) != 1) - { - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_tmp_dh(const const_buffer& dh) -{ - asio::error_code ec; - use_tmp_dh(dh, ec); - asio::detail::throw_error(ec, "use_tmp_dh"); -} - -ASIO_SYNC_OP_VOID context::use_tmp_dh( - const const_buffer& dh, asio::error_code& ec) -{ - ::ERR_clear_error(); - - bio_cleanup bio = { make_buffer_bio(dh) }; - if (bio.p) - { - return do_use_tmp_dh(bio.p, ec); - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -void context::use_tmp_dh_file(const std::string& filename) -{ - asio::error_code ec; - use_tmp_dh_file(filename, ec); - asio::detail::throw_error(ec, "use_tmp_dh_file"); -} - -ASIO_SYNC_OP_VOID context::use_tmp_dh_file( - const std::string& filename, asio::error_code& ec) -{ - ::ERR_clear_error(); - - bio_cleanup bio = { ::BIO_new_file(filename.c_str(), "r") }; - if (bio.p) - { - return do_use_tmp_dh(bio.p, ec); - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID context::do_use_tmp_dh( - BIO* bio, asio::error_code& ec) -{ - ::ERR_clear_error(); - - dh_cleanup dh = { ::PEM_read_bio_DHparams(bio, 0, 0, 0) }; - if (dh.p) - { - if (::SSL_CTX_set_tmp_dh(handle_, dh.p) == 1) - { - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - } - - ec = asio::error_code( - static_cast(::ERR_get_error()), - asio::error::get_ssl_category()); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -ASIO_SYNC_OP_VOID context::do_set_verify_callback( - detail::verify_callback_base* callback, asio::error_code& ec) -{ - if (SSL_CTX_get_app_data(handle_)) - { - delete static_cast( - SSL_CTX_get_app_data(handle_)); - } - - SSL_CTX_set_app_data(handle_, callback); - - ::SSL_CTX_set_verify(handle_, - ::SSL_CTX_get_verify_mode(handle_), - &context::verify_callback_function); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -int context::verify_callback_function(int preverified, X509_STORE_CTX* ctx) -{ - if (ctx) - { - if (SSL* ssl = static_cast( - ::X509_STORE_CTX_get_ex_data( - ctx, ::SSL_get_ex_data_X509_STORE_CTX_idx()))) - { - if (SSL_CTX* handle = ::SSL_get_SSL_CTX(ssl)) - { - if (SSL_CTX_get_app_data(handle)) - { - detail::verify_callback_base* callback = - static_cast( - SSL_CTX_get_app_data(handle)); - - verify_context verify_ctx(ctx); - return callback->call(preverified != 0, verify_ctx) ? 1 : 0; - } - } - } - } - - return 0; -} - -ASIO_SYNC_OP_VOID context::do_set_password_callback( - detail::password_callback_base* callback, asio::error_code& ec) -{ -#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER) - void* old_callback = ::SSL_CTX_get_default_passwd_cb_userdata(handle_); - ::SSL_CTX_set_default_passwd_cb_userdata(handle_, callback); -#else // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - void* old_callback = handle_->default_passwd_callback_userdata; - handle_->default_passwd_callback_userdata = callback; -#endif // (OPENSSL_VERSION_NUMBER >= 0x10100000L) - - if (old_callback) - delete static_cast( - old_callback); - - SSL_CTX_set_default_passwd_cb(handle_, &context::password_callback_function); - - ec = asio::error_code(); - ASIO_SYNC_OP_VOID_RETURN(ec); -} - -int context::password_callback_function( - char* buf, int size, int purpose, void* data) -{ - using namespace std; // For strncat and strlen. - - if (data) - { - detail::password_callback_base* callback = - static_cast(data); - - std::string passwd = callback->call(static_cast(size), - purpose ? context_base::for_writing : context_base::for_reading); - -#if defined(ASIO_HAS_SECURE_RTL) - strcpy_s(buf, size, passwd.c_str()); -#else // defined(ASIO_HAS_SECURE_RTL) - *buf = '\0'; - if (size > 0) - strncat(buf, passwd.c_str(), size - 1); -#endif // defined(ASIO_HAS_SECURE_RTL) - - return static_cast(strlen(buf)); - } - - return 0; -} - -BIO* context::make_buffer_bio(const const_buffer& b) -{ - return ::BIO_new_mem_buf( - const_cast(b.data()), - static_cast(b.size())); -} - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_IMPL_CONTEXT_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/error.ipp b/Sources/Vendor/asio/include/asio/ssl/impl/error.ipp deleted file mode 100644 index 98e8c91..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/error.ipp +++ /dev/null @@ -1,100 +0,0 @@ -// -// ssl/impl/error.ipp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_IMPL_ERROR_IPP -#define ASIO_SSL_IMPL_ERROR_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ssl/error.hpp" -#include "asio/ssl/detail/openssl_init.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace error { -namespace detail { - -class ssl_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.ssl"; - } - - std::string message(int value) const - { - const char* s = ::ERR_reason_error_string(value); - return s ? s : "asio.ssl error"; - } -}; - -} // namespace detail - -const asio::error_category& get_ssl_category() -{ - static detail::ssl_category instance; - return instance; -} - -} // namespace error -namespace ssl { -namespace error { - -#if (OPENSSL_VERSION_NUMBER < 0x10100000L) && !defined(OPENSSL_IS_BORINGSSL) - -const asio::error_category& get_stream_category() -{ - return asio::error::get_ssl_category(); -} - -#else - -namespace detail { - -class stream_category : public asio::error_category -{ -public: - const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT - { - return "asio.ssl.stream"; - } - - std::string message(int value) const - { - switch (value) - { - case stream_truncated: return "stream truncated"; - default: return "asio.ssl.stream error"; - } - } -}; - -} // namespace detail - -const asio::error_category& get_stream_category() -{ - static detail::stream_category instance; - return instance; -} - -#endif - -} // namespace error -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_IMPL_ERROR_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/rfc2818_verification.ipp b/Sources/Vendor/asio/include/asio/ssl/impl/rfc2818_verification.ipp deleted file mode 100644 index 577e4a1..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/rfc2818_verification.ipp +++ /dev/null @@ -1,160 +0,0 @@ -// -// ssl/impl/rfc2818_verification.ipp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_IMPL_RFC2818_VERIFICATION_IPP -#define ASIO_SSL_IMPL_RFC2818_VERIFICATION_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include -#include "asio/ip/address.hpp" -#include "asio/ssl/rfc2818_verification.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -bool rfc2818_verification::operator()( - bool preverified, verify_context& ctx) const -{ - using namespace std; // For memcmp. - - // Don't bother looking at certificates that have failed pre-verification. - if (!preverified) - return false; - - // We're only interested in checking the certificate at the end of the chain. - int depth = X509_STORE_CTX_get_error_depth(ctx.native_handle()); - if (depth > 0) - return true; - - // Try converting the host name to an address. If it is an address then we - // need to look for an IP address in the certificate rather than a host name. - asio::error_code ec; - ip::address address = ip::make_address(host_, ec); - bool is_address = !ec; - - X509* cert = X509_STORE_CTX_get_current_cert(ctx.native_handle()); - - // Go through the alternate names in the certificate looking for matching DNS - // or IP address entries. - GENERAL_NAMES* gens = static_cast( - X509_get_ext_d2i(cert, NID_subject_alt_name, 0, 0)); - for (int i = 0; i < sk_GENERAL_NAME_num(gens); ++i) - { - GENERAL_NAME* gen = sk_GENERAL_NAME_value(gens, i); - if (gen->type == GEN_DNS && !is_address) - { - ASN1_IA5STRING* domain = gen->d.dNSName; - if (domain->type == V_ASN1_IA5STRING && domain->data && domain->length) - { - const char* pattern = reinterpret_cast(domain->data); - std::size_t pattern_length = domain->length; - if (match_pattern(pattern, pattern_length, host_.c_str())) - { - GENERAL_NAMES_free(gens); - return true; - } - } - } - else if (gen->type == GEN_IPADD && is_address) - { - ASN1_OCTET_STRING* ip_address = gen->d.iPAddress; - if (ip_address->type == V_ASN1_OCTET_STRING && ip_address->data) - { - if (address.is_v4() && ip_address->length == 4) - { - ip::address_v4::bytes_type bytes = address.to_v4().to_bytes(); - if (memcmp(bytes.data(), ip_address->data, 4) == 0) - { - GENERAL_NAMES_free(gens); - return true; - } - } - else if (address.is_v6() && ip_address->length == 16) - { - ip::address_v6::bytes_type bytes = address.to_v6().to_bytes(); - if (memcmp(bytes.data(), ip_address->data, 16) == 0) - { - GENERAL_NAMES_free(gens); - return true; - } - } - } - } - } - GENERAL_NAMES_free(gens); - - // No match in the alternate names, so try the common names. We should only - // use the "most specific" common name, which is the last one in the list. - X509_NAME* name = X509_get_subject_name(cert); - int i = -1; - ASN1_STRING* common_name = 0; - while ((i = X509_NAME_get_index_by_NID(name, NID_commonName, i)) >= 0) - { - X509_NAME_ENTRY* name_entry = X509_NAME_get_entry(name, i); - common_name = X509_NAME_ENTRY_get_data(name_entry); - } - if (common_name && common_name->data && common_name->length) - { - const char* pattern = reinterpret_cast(common_name->data); - std::size_t pattern_length = common_name->length; - if (match_pattern(pattern, pattern_length, host_.c_str())) - return true; - } - - return false; -} - -bool rfc2818_verification::match_pattern(const char* pattern, - std::size_t pattern_length, const char* host) -{ - using namespace std; // For tolower. - - const char* p = pattern; - const char* p_end = p + pattern_length; - const char* h = host; - - while (p != p_end && *h) - { - if (*p == '*') - { - ++p; - while (*h && *h != '.') - if (match_pattern(p, p_end - p, h++)) - return true; - } - else if (tolower(*p) == tolower(*h)) - { - ++p; - ++h; - } - else - { - return false; - } - } - - return p == p_end && !*h; -} - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_IMPL_RFC2818_VERIFICATION_IPP diff --git a/Sources/Vendor/asio/include/asio/ssl/impl/src.hpp b/Sources/Vendor/asio/include/asio/ssl/impl/src.hpp deleted file mode 100644 index 9a1b038..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/impl/src.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// impl/ssl/src.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_IMPL_SRC_HPP -#define ASIO_SSL_IMPL_SRC_HPP - -#define ASIO_SOURCE - -#include "asio/detail/config.hpp" - -#if defined(ASIO_HEADER_ONLY) -# error Do not compile Asio library source with ASIO_HEADER_ONLY defined -#endif - -#include "asio/ssl/impl/context.ipp" -#include "asio/ssl/impl/error.ipp" -#include "asio/ssl/detail/impl/engine.ipp" -#include "asio/ssl/detail/impl/openssl_init.ipp" -#include "asio/ssl/impl/rfc2818_verification.ipp" - -#endif // ASIO_SSL_IMPL_SRC_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/rfc2818_verification.hpp b/Sources/Vendor/asio/include/asio/ssl/rfc2818_verification.hpp deleted file mode 100644 index 3589f53..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/rfc2818_verification.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// ssl/rfc2818_verification.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_RFC2818_VERIFICATION_HPP -#define ASIO_SSL_RFC2818_VERIFICATION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include -#include "asio/ssl/detail/openssl_types.hpp" -#include "asio/ssl/verify_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// Verifies a certificate against a hostname according to the rules described -/// in RFC 2818. -/** - * @par Example - * The following example shows how to synchronously open a secure connection to - * a given host name: - * @code - * using asio::ip::tcp; - * namespace ssl = asio::ssl; - * typedef ssl::stream ssl_socket; - * - * // Create a context that uses the default paths for finding CA certificates. - * ssl::context ctx(ssl::context::sslv23); - * ctx.set_default_verify_paths(); - * - * // Open a socket and connect it to the remote host. - * asio::io_context io_context; - * ssl_socket sock(io_context, ctx); - * tcp::resolver resolver(io_context); - * tcp::resolver::query query("host.name", "https"); - * asio::connect(sock.lowest_layer(), resolver.resolve(query)); - * sock.lowest_layer().set_option(tcp::no_delay(true)); - * - * // Perform SSL handshake and verify the remote host's certificate. - * sock.set_verify_mode(ssl::verify_peer); - * sock.set_verify_callback(ssl::rfc2818_verification("host.name")); - * sock.handshake(ssl_socket::client); - * - * // ... read and write as normal ... - * @endcode - */ -class rfc2818_verification -{ -public: - /// The type of the function object's result. - typedef bool result_type; - - /// Constructor. - explicit rfc2818_verification(const std::string& host) - : host_(host) - { - } - - /// Perform certificate verification. - ASIO_DECL bool operator()(bool preverified, verify_context& ctx) const; - -private: - // Helper function to check a host name against a pattern. - ASIO_DECL static bool match_pattern(const char* pattern, - std::size_t pattern_length, const char* host); - - // Helper function to check a host name against an IPv4 address - // The host name to be checked. - std::string host_; -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#if defined(ASIO_HEADER_ONLY) -# include "asio/ssl/impl/rfc2818_verification.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SSL_RFC2818_VERIFICATION_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/stream.hpp b/Sources/Vendor/asio/include/asio/ssl/stream.hpp deleted file mode 100644 index a05ee88..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/stream.hpp +++ /dev/null @@ -1,762 +0,0 @@ -// -// ssl/stream.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_STREAM_HPP -#define ASIO_SSL_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" - -#include "asio/async_result.hpp" -#include "asio/detail/buffer_sequence_adapter.hpp" -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/ssl/context.hpp" -#include "asio/ssl/detail/buffered_handshake_op.hpp" -#include "asio/ssl/detail/handshake_op.hpp" -#include "asio/ssl/detail/io.hpp" -#include "asio/ssl/detail/read_op.hpp" -#include "asio/ssl/detail/shutdown_op.hpp" -#include "asio/ssl/detail/stream_core.hpp" -#include "asio/ssl/detail/write_op.hpp" -#include "asio/ssl/stream_base.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// Provides stream-oriented functionality using SSL. -/** - * The stream class template provides asynchronous and blocking stream-oriented - * functionality using SSL. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. The application must also ensure that all - * asynchronous operations are performed within the same implicit or explicit - * strand. - * - * @par Example - * To use the SSL stream template with an ip::tcp::socket, you would write: - * @code - * asio::io_context io_context; - * asio::ssl::context ctx(asio::ssl::context::sslv23); - * asio::ssl::stream sock(io_context, ctx); - * @endcode - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class stream : - public stream_base, - private noncopyable -{ -public: - /// The native handle type of the SSL stream. - typedef SSL* native_handle_type; - - /// Structure for use with deprecated impl_type. - struct impl_struct - { - SSL* ssl; - }; - - /// The type of the next layer. - typedef typename remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// The type of the executor associated with the object. - typedef typename lowest_layer_type::executor_type executor_type; - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Construct a stream. - /** - * This constructor creates a stream and initialises the underlying stream - * object. - * - * @param arg The argument to be passed to initialise the underlying stream. - * - * @param ctx The SSL context to be used for the stream. - */ - template - stream(Arg&& arg, context& ctx) - : next_layer_(ASIO_MOVE_CAST(Arg)(arg)), - core_(ctx.native_handle(), - next_layer_.lowest_layer().get_executor().context()) - { - } -#else // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - template - stream(Arg& arg, context& ctx) - : next_layer_(arg), - core_(ctx.native_handle(), - next_layer_.lowest_layer().get_executor().context()) - { - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - /** - * @note A @c stream object must not be destroyed while there are pending - * asynchronous operations associated with it. - */ - ~stream() - { - } - - /// Get the executor associated with the object. - /** - * This function may be used to obtain the executor object that the stream - * uses to dispatch handlers for asynchronous operations. - * - * @return A copy of the executor that stream will use to dispatch handlers. - */ - executor_type get_executor() ASIO_NOEXCEPT - { - return next_layer_.lowest_layer().get_executor(); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_context() - { - return next_layer_.lowest_layer().get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - asio::io_context& get_io_service() - { - return next_layer_.lowest_layer().get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the underlying implementation in the native type. - /** - * This function may be used to obtain the underlying implementation of the - * context. This is intended to allow access to context functionality that is - * not otherwise provided. - * - * @par Example - * The native_handle() function returns a pointer of type @c SSL* that is - * suitable for passing to functions such as @c SSL_get_verify_result and - * @c SSL_get_peer_certificate: - * @code - * asio::ssl::stream sock(io_context, ctx); - * - * // ... establish connection and perform handshake ... - * - * if (X509* cert = SSL_get_peer_certificate(sock.native_handle())) - * { - * if (SSL_get_verify_result(sock.native_handle()) == X509_V_OK) - * { - * // ... - * } - * } - * @endcode - */ - native_handle_type native_handle() - { - return core_.engine_.native_handle(); - } - - /// Get a reference to the next layer. - /** - * This function returns a reference to the next layer in a stack of stream - * layers. - * - * @return A reference to the next layer in the stack of stream layers. - * Ownership is not transferred to the caller. - */ - const next_layer_type& next_layer() const - { - return next_layer_; - } - - /// Get a reference to the next layer. - /** - * This function returns a reference to the next layer in a stack of stream - * layers. - * - * @return A reference to the next layer in the stack of stream layers. - * Ownership is not transferred to the caller. - */ - next_layer_type& next_layer() - { - return next_layer_; - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * stream layers. - * - * @return A reference to the lowest layer in the stack of stream layers. - * Ownership is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return next_layer_.lowest_layer(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * stream layers. - * - * @return A reference to the lowest layer in the stack of stream layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return next_layer_.lowest_layer(); - } - - /// Set the peer verification mode. - /** - * This function may be used to configure the peer verification mode used by - * the stream. The new mode will override the mode inherited from the context. - * - * @param v A bitmask of peer verification modes. See @ref verify_mode for - * available values. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_set_verify. - */ - void set_verify_mode(verify_mode v) - { - asio::error_code ec; - set_verify_mode(v, ec); - asio::detail::throw_error(ec, "set_verify_mode"); - } - - /// Set the peer verification mode. - /** - * This function may be used to configure the peer verification mode used by - * the stream. The new mode will override the mode inherited from the context. - * - * @param v A bitmask of peer verification modes. See @ref verify_mode for - * available values. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_set_verify. - */ - ASIO_SYNC_OP_VOID set_verify_mode( - verify_mode v, asio::error_code& ec) - { - core_.engine_.set_verify_mode(v, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set the peer verification depth. - /** - * This function may be used to configure the maximum verification depth - * allowed by the stream. - * - * @param depth Maximum depth for the certificate chain verification that - * shall be allowed. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_set_verify_depth. - */ - void set_verify_depth(int depth) - { - asio::error_code ec; - set_verify_depth(depth, ec); - asio::detail::throw_error(ec, "set_verify_depth"); - } - - /// Set the peer verification depth. - /** - * This function may be used to configure the maximum verification depth - * allowed by the stream. - * - * @param depth Maximum depth for the certificate chain verification that - * shall be allowed. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_set_verify_depth. - */ - ASIO_SYNC_OP_VOID set_verify_depth( - int depth, asio::error_code& ec) - { - core_.engine_.set_verify_depth(depth, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Set the callback used to verify peer certificates. - /** - * This function is used to specify a callback function that will be called - * by the implementation when it needs to verify a peer certificate. - * - * @param callback The function object to be used for verifying a certificate. - * The function signature of the handler must be: - * @code bool verify_callback( - * bool preverified, // True if the certificate passed pre-verification. - * verify_context& ctx // The peer certificate and other context. - * ); @endcode - * The return value of the callback is true if the certificate has passed - * verification, false otherwise. - * - * @throws asio::system_error Thrown on failure. - * - * @note Calls @c SSL_set_verify. - */ - template - void set_verify_callback(VerifyCallback callback) - { - asio::error_code ec; - this->set_verify_callback(callback, ec); - asio::detail::throw_error(ec, "set_verify_callback"); - } - - /// Set the callback used to verify peer certificates. - /** - * This function is used to specify a callback function that will be called - * by the implementation when it needs to verify a peer certificate. - * - * @param callback The function object to be used for verifying a certificate. - * The function signature of the handler must be: - * @code bool verify_callback( - * bool preverified, // True if the certificate passed pre-verification. - * verify_context& ctx // The peer certificate and other context. - * ); @endcode - * The return value of the callback is true if the certificate has passed - * verification, false otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls @c SSL_set_verify. - */ - template - ASIO_SYNC_OP_VOID set_verify_callback(VerifyCallback callback, - asio::error_code& ec) - { - core_.engine_.set_verify_callback( - new detail::verify_callback(callback), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform SSL handshaking. - /** - * This function is used to perform SSL handshaking on the stream. The - * function call will block until handshaking is complete or an error occurs. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @throws asio::system_error Thrown on failure. - */ - void handshake(handshake_type type) - { - asio::error_code ec; - handshake(type, ec); - asio::detail::throw_error(ec, "handshake"); - } - - /// Perform SSL handshaking. - /** - * This function is used to perform SSL handshaking on the stream. The - * function call will block until handshaking is complete or an error occurs. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID handshake(handshake_type type, - asio::error_code& ec) - { - detail::io(next_layer_, core_, detail::handshake_op(type), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform SSL handshaking. - /** - * This function is used to perform SSL handshaking on the stream. The - * function call will block until handshaking is complete or an error occurs. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param buffers The buffered data to be reused for the handshake. - * - * @throws asio::system_error Thrown on failure. - */ - template - void handshake(handshake_type type, const ConstBufferSequence& buffers) - { - asio::error_code ec; - handshake(type, buffers, ec); - asio::detail::throw_error(ec, "handshake"); - } - - /// Perform SSL handshaking. - /** - * This function is used to perform SSL handshaking on the stream. The - * function call will block until handshaking is complete or an error occurs. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param buffers The buffered data to be reused for the handshake. - * - * @param ec Set to indicate what error occurred, if any. - */ - template - ASIO_SYNC_OP_VOID handshake(handshake_type type, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - detail::io(next_layer_, core_, - detail::buffered_handshake_op(type, buffers), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous SSL handshake. - /** - * This function is used to asynchronously perform an SSL handshake on the - * stream. This function call always returns immediately. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param handler The handler to be called when the handshake operation - * completes. Copies will be made of the handler as required. The equivalent - * function signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(HandshakeHandler, - void (asio::error_code)) - async_handshake(handshake_type type, - ASIO_MOVE_ARG(HandshakeHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a HandshakeHandler. - ASIO_HANDSHAKE_HANDLER_CHECK(HandshakeHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, - detail::handshake_op(type), init.completion_handler); - - return init.result.get(); - } - - /// Start an asynchronous SSL handshake. - /** - * This function is used to asynchronously perform an SSL handshake on the - * stream. This function call always returns immediately. - * - * @param type The type of handshaking to be performed, i.e. as a client or as - * a server. - * - * @param buffers The buffered data to be reused for the handshake. Although - * the buffers object may be copied as necessary, ownership of the underlying - * buffers is retained by the caller, which must guarantee that they remain - * valid until the handler is called. - * - * @param handler The handler to be called when the handshake operation - * completes. Copies will be made of the handler as required. The equivalent - * function signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Amount of buffers used in handshake. - * ); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(BufferedHandshakeHandler, - void (asio::error_code, std::size_t)) - async_handshake(handshake_type type, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(BufferedHandshakeHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a BufferedHandshakeHandler. - ASIO_BUFFERED_HANDSHAKE_HANDLER_CHECK( - BufferedHandshakeHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, - detail::buffered_handshake_op(type, buffers), - init.completion_handler); - - return init.result.get(); - } - - /// Shut down SSL on the stream. - /** - * This function is used to shut down SSL on the stream. The function call - * will block until SSL has been shut down or an error occurs. - * - * @throws asio::system_error Thrown on failure. - */ - void shutdown() - { - asio::error_code ec; - shutdown(ec); - asio::detail::throw_error(ec, "shutdown"); - } - - /// Shut down SSL on the stream. - /** - * This function is used to shut down SSL on the stream. The function call - * will block until SSL has been shut down or an error occurs. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID shutdown(asio::error_code& ec) - { - detail::io(next_layer_, core_, detail::shutdown_op(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously shut down SSL on the stream. - /** - * This function is used to asynchronously shut down SSL on the stream. This - * function call always returns immediately. - * - * @param handler The handler to be called when the handshake operation - * completes. Copies will be made of the handler as required. The equivalent - * function signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - */ - template - ASIO_INITFN_RESULT_TYPE(ShutdownHandler, - void (asio::error_code)) - async_shutdown(ASIO_MOVE_ARG(ShutdownHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ShutdownHandler. - ASIO_SHUTDOWN_HANDLER_CHECK(ShutdownHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, detail::shutdown_op(), - init.completion_handler); - - return init.result.get(); - } - - /// Write some data to the stream. - /** - * This function is used to write data on the stream. The function call will - * block until one or more bytes of data has been written successfully, or - * until an error occurs. - * - * @param buffers The data to be written. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that all - * data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t n = write_some(buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return n; - } - - /// Write some data to the stream. - /** - * This function is used to write data on the stream. The function call will - * block until one or more bytes of data has been written successfully, or - * until an error occurs. - * - * @param buffers The data to be written to the stream. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that all - * data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return detail::io(next_layer_, core_, - detail::write_op(buffers), ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write one or more bytes of data to - * the stream. The function call always returns immediately. - * - * @param buffers The data to be written to the stream. Although the buffers - * object may be copied as necessary, ownership of the underlying buffers is - * retained by the caller, which must guarantee that they remain valid until - * the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The equivalent function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * - * @note The async_write_some operation may not transmit all of the data to - * the peer. Consider using the @ref async_write function if you need to - * ensure that all data is written before the asynchronous operation - * completes. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, - detail::write_op(buffers), - init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the stream. - /** - * This function is used to read data from the stream. The function call will - * block until one or more bytes of data has been read successfully, or until - * an error occurs. - * - * @param buffers The buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t n = read_some(buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return n; - } - - /// Read some data from the stream. - /** - * This function is used to read data from the stream. The function call will - * block until one or more bytes of data has been read successfully, or until - * an error occurs. - * - * @param buffers The buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return detail::io(next_layer_, core_, - detail::read_op(buffers), ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read one or more bytes of data from - * the stream. The function call always returns immediately. - * - * @param buffers The buffers into which the data will be read. Although the - * buffers object may be copied as necessary, ownership of the underlying - * buffers is retained by the caller, which must guarantee that they remain - * valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The equivalent function - * signature of the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * - * @note The async_read_some operation may not read all of the requested - * number of bytes. Consider using the @ref async_read function if you need to - * ensure that the requested amount of data is read before the asynchronous - * operation completes. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - asio::async_completion init(handler); - - detail::async_io(next_layer_, core_, - detail::read_op(buffers), - init.completion_handler); - - return init.result.get(); - } - -private: - Stream next_layer_; - detail::stream_core core_; -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_STREAM_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/stream_base.hpp b/Sources/Vendor/asio/include/asio/ssl/stream_base.hpp deleted file mode 100644 index 56873e4..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/stream_base.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// ssl/stream_base.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_STREAM_BASE_HPP -#define ASIO_SSL_STREAM_BASE_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 { -namespace ssl { - -/// The stream_base class is used as a base for the asio::ssl::stream -/// class template so that we have a common place to define various enums. -class stream_base -{ -public: - /// Different handshake types. - enum handshake_type - { - /// Perform handshaking as a client. - client, - - /// Perform handshaking as a server. - server - }; - -protected: - /// Protected destructor to prevent deletion through this type. - ~stream_base() - { - } -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_STREAM_BASE_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/verify_context.hpp b/Sources/Vendor/asio/include/asio/ssl/verify_context.hpp deleted file mode 100644 index e172697..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/verify_context.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// ssl/verify_context.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_VERIFY_CONTEXT_HPP -#define ASIO_SSL_VERIFY_CONTEXT_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/noncopyable.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// A simple wrapper around the X509_STORE_CTX type, used during verification of -/// a peer certificate. -/** - * @note The verify_context does not own the underlying X509_STORE_CTX object. - */ -class verify_context - : private noncopyable -{ -public: - /// The native handle type of the verification context. - typedef X509_STORE_CTX* native_handle_type; - - /// Constructor. - explicit verify_context(native_handle_type handle) - : handle_(handle) - { - } - - /// Get the underlying implementation in the native type. - /** - * This function may be used to obtain the underlying implementation of the - * context. This is intended to allow access to context functionality that is - * not otherwise provided. - */ - native_handle_type native_handle() - { - return handle_; - } - -private: - // The underlying native implementation. - native_handle_type handle_; -}; - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_VERIFY_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/ssl/verify_mode.hpp b/Sources/Vendor/asio/include/asio/ssl/verify_mode.hpp deleted file mode 100644 index 8c4b394..0000000 --- a/Sources/Vendor/asio/include/asio/ssl/verify_mode.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// -// ssl/verify_mode.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SSL_VERIFY_MODE_HPP -#define ASIO_SSL_VERIFY_MODE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/ssl/detail/openssl_types.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace ssl { - -/// Bitmask type for peer verification. -/** - * Possible values are: - * - * @li @ref verify_none - * @li @ref verify_peer - * @li @ref verify_fail_if_no_peer_cert - * @li @ref verify_client_once - */ -typedef int verify_mode; - -#if defined(GENERATING_DOCUMENTATION) -/// No verification. -const int verify_none = implementation_defined; - -/// Verify the peer. -const int verify_peer = implementation_defined; - -/// Fail verification if the peer has no certificate. Ignored unless -/// @ref verify_peer is set. -const int verify_fail_if_no_peer_cert = implementation_defined; - -/// Do not request client certificate on renegotiation. Ignored unless -/// @ref verify_peer is set. -const int verify_client_once = implementation_defined; -#else -const int verify_none = SSL_VERIFY_NONE; -const int verify_peer = SSL_VERIFY_PEER; -const int verify_fail_if_no_peer_cert = SSL_VERIFY_FAIL_IF_NO_PEER_CERT; -const int verify_client_once = SSL_VERIFY_CLIENT_ONCE; -#endif - -} // namespace ssl -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SSL_VERIFY_MODE_HPP diff --git a/Sources/Vendor/asio/include/asio/steady_timer.hpp b/Sources/Vendor/asio/include/asio/steady_timer.hpp deleted file mode 100644 index 3ede208..0000000 --- a/Sources/Vendor/asio/include/asio/steady_timer.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// steady_timer.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_STEADY_TIMER_HPP -#define ASIO_STEADY_TIMER_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_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_waitable_timer.hpp" -#include "asio/detail/chrono.hpp" - -namespace asio { - -/// Typedef for a timer based on the steady clock. -/** - * This typedef uses the C++11 @c <chrono> standard library facility, if - * available. Otherwise, it may use the Boost.Chrono library. To explicitly - * utilise Boost.Chrono, use the basic_waitable_timer template directly: - * @code - * typedef basic_waitable_timer timer; - * @endcode - */ -typedef basic_waitable_timer steady_timer; - -} // namespace asio - -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_STEADY_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/strand.hpp b/Sources/Vendor/asio/include/asio/strand.hpp deleted file mode 100644 index ea78ef0..0000000 --- a/Sources/Vendor/asio/include/asio/strand.hpp +++ /dev/null @@ -1,286 +0,0 @@ -// -// strand.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_STRAND_HPP -#define ASIO_STRAND_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/strand_executor_service.hpp" -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Provides serialised function invocation for any executor type. -template -class strand -{ -public: - /// The type of the underlying executor. - typedef Executor inner_executor_type; - - /// Default constructor. - /** - * This constructor is only valid if the underlying executor type is default - * constructible. - */ - strand() - : executor_(), - impl_(use_service( - executor_.context()).create_implementation()) - { - } - - /// Construct a strand for the specified executor. - explicit strand(const Executor& e) - : executor_(e), - impl_(use_service( - executor_.context()).create_implementation()) - { - } - - /// Copy constructor. - strand(const strand& other) ASIO_NOEXCEPT - : executor_(other.executor_), - impl_(other.impl_) - { - } - - /// Converting constructor. - /** - * This constructor is only valid if the @c OtherExecutor type is convertible - * to @c Executor. - */ - template - strand( - const strand& other) ASIO_NOEXCEPT - : executor_(other.executor_), - impl_(other.impl_) - { - } - - /// Assignment operator. - strand& operator=(const strand& other) ASIO_NOEXCEPT - { - executor_ = other.executor_; - impl_ = other.impl_; - return *this; - } - - /// Converting assignment operator. - /** - * This assignment operator is only valid if the @c OtherExecutor type is - * convertible to @c Executor. - */ - template - strand& operator=( - const strand& other) ASIO_NOEXCEPT - { - executor_ = other.executor_; - impl_ = other.impl_; - return *this; - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move constructor. - strand(strand&& other) ASIO_NOEXCEPT - : executor_(ASIO_MOVE_CAST(Executor)(other.executor_)), - impl_(ASIO_MOVE_CAST(implementation_type)(other.impl_)) - { - } - - /// Converting move constructor. - /** - * This constructor is only valid if the @c OtherExecutor type is convertible - * to @c Executor. - */ - template - strand(strand&& other) ASIO_NOEXCEPT - : executor_(ASIO_MOVE_CAST(OtherExecutor)(other)), - impl_(ASIO_MOVE_CAST(implementation_type)(other.impl_)) - { - } - - /// Move assignment operator. - strand& operator=(strand&& other) ASIO_NOEXCEPT - { - executor_ = ASIO_MOVE_CAST(Executor)(other); - impl_ = ASIO_MOVE_CAST(implementation_type)(other.impl_); - return *this; - } - - /// Converting move assignment operator. - /** - * This assignment operator is only valid if the @c OtherExecutor type is - * convertible to @c Executor. - */ - template - strand& operator=( - const strand&& other) ASIO_NOEXCEPT - { - executor_ = ASIO_MOVE_CAST(OtherExecutor)(other); - impl_ = ASIO_MOVE_CAST(implementation_type)(other.impl_); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destructor. - ~strand() - { - } - - /// Obtain the underlying executor. - inner_executor_type get_inner_executor() const ASIO_NOEXCEPT - { - return executor_; - } - - /// Obtain the underlying execution context. - execution_context& context() const ASIO_NOEXCEPT - { - return executor_.context(); - } - - /// Inform the strand that it has some outstanding work to do. - /** - * The strand delegates this call to its underlying executor. - */ - void on_work_started() const ASIO_NOEXCEPT - { - executor_.on_work_started(); - } - - /// Inform the strand that some work is no longer outstanding. - /** - * The strand delegates this call to its underlying executor. - */ - void on_work_finished() const ASIO_NOEXCEPT - { - executor_.on_work_finished(); - } - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the strand to execute the given function - * object on its underlying executor. The function object will be executed - * inside this function if the strand is not otherwise busy and if the - * underlying executor's @c dispatch() function is also able to execute the - * function before returning. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - detail::strand_executor_service::dispatch(impl_, - executor_, ASIO_MOVE_CAST(Function)(f), a); - } - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled by the underlying executor's defer function. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - detail::strand_executor_service::post(impl_, - executor_, ASIO_MOVE_CAST(Function)(f), a); - } - - /// Request the strand to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled by the underlying executor's defer function. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const - { - detail::strand_executor_service::defer(impl_, - executor_, ASIO_MOVE_CAST(Function)(f), a); - } - - /// Determine whether the strand is running in the current thread. - /** - * @return @c true if the current thread is executing a function that was - * submitted to the strand using post(), dispatch() or defer(). Otherwise - * returns @c false. - */ - bool running_in_this_thread() const ASIO_NOEXCEPT - { - return detail::strand_executor_service::running_in_this_thread(impl_); - } - - /// Compare two strands for equality. - /** - * Two strands are equal if they refer to the same ordered, non-concurrent - * state. - */ - friend bool operator==(const strand& a, const strand& b) ASIO_NOEXCEPT - { - return a.impl_ == b.impl_; - } - - /// Compare two strands for inequality. - /** - * Two strands are equal if they refer to the same ordered, non-concurrent - * state. - */ - friend bool operator!=(const strand& a, const strand& b) ASIO_NOEXCEPT - { - return a.impl_ != b.impl_; - } - -private: - Executor executor_; - typedef detail::strand_executor_service::implementation_type - implementation_type; - implementation_type impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -// If both io_context.hpp and strand.hpp have been included, automatically -// include the header file needed for the io_context::strand class. -#if !defined(ASIO_NO_EXTENSIONS) -# if defined(ASIO_IO_CONTEXT_HPP) -# include "asio/io_context_strand.hpp" -# endif // defined(ASIO_IO_CONTEXT_HPP) -#endif // !defined(ASIO_NO_EXTENSIONS) - -#endif // ASIO_STRAND_HPP diff --git a/Sources/Vendor/asio/include/asio/stream_socket_service.hpp b/Sources/Vendor/asio/include/asio/stream_socket_service.hpp deleted file mode 100644 index 91b0a71..0000000 --- a/Sources/Vendor/asio/include/asio/stream_socket_service.hpp +++ /dev/null @@ -1,412 +0,0 @@ -// -// stream_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_STREAM_SOCKET_SERVICE_HPP -#define ASIO_STREAM_SOCKET_SERVICE_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_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/type_traits.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_WINDOWS_RUNTIME) -# include "asio/detail/winrt_ssocket_service.hpp" -#elif defined(ASIO_HAS_IOCP) -# include "asio/detail/win_iocp_socket_service.hpp" -#else -# include "asio/detail/reactive_socket_service.hpp" -#endif - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a stream socket. -template -class stream_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(ASIO_WINDOWS_RUNTIME) - typedef detail::winrt_ssocket_service service_impl_type; -#elif defined(ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#else - typedef detail::reactive_socket_service service_impl_type; -#endif - -public: - /// The type of a stream socket implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef typename service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new stream socket service for the specified io_context. - explicit stream_socket_service(asio::io_context& io_context) - : asio::detail::service_base< - stream_socket_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new stream socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new stream socket implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another stream socket implementation. - void move_assign(implementation_type& impl, - stream_socket_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } - - // All socket services have access to each other's implementations. - template friend class stream_socket_service; - - /// Move-construct a new stream socket implementation from another protocol - /// type. - template - void converting_move_construct(implementation_type& impl, - stream_socket_service& other_service, - typename stream_socket_service< - Protocol1>::implementation_type& other_impl, - typename enable_if::value>::type* = 0) - { - service_impl_.template converting_move_construct( - impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a stream socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a stream socket. - ASIO_SYNC_OP_VOID open(implementation_type& impl, - const protocol_type& protocol, asio::error_code& ec) - { - if (protocol.type() == ASIO_OS_DEF(SOCK_STREAM)) - service_impl_.open(impl, protocol, ec); - else - ec = asio::error::invalid_argument; - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Assign an existing native socket to a stream socket. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const protocol_type& protocol, const native_handle_type& native_socket, - asio::error_code& ec) - { - service_impl_.assign(impl, protocol, native_socket, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream socket implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Release ownership of the underlying socket. - native_handle_type release(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.release(impl, ec); - } - - /// Get the native socket implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - /// Bind the stream socket to the specified local endpoint. - ASIO_SYNC_OP_VOID bind(implementation_type& impl, - const endpoint_type& endpoint, asio::error_code& ec) - { - service_impl_.bind(impl, endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Connect the stream socket to the specified endpoint. - ASIO_SYNC_OP_VOID connect(implementation_type& impl, - const endpoint_type& peer_endpoint, asio::error_code& ec) - { - service_impl_.connect(impl, peer_endpoint, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Start an asynchronous connect. - template - ASIO_INITFN_RESULT_TYPE(ConnectHandler, - void (asio::error_code)) - async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, - ASIO_MOVE_ARG(ConnectHandler) handler) - { - async_completion init(handler); - - service_impl_.async_connect(impl, peer_endpoint, init.completion_handler); - - return init.result.get(); - } - - /// Set a socket option. - template - ASIO_SYNC_OP_VOID set_option(implementation_type& impl, - const SettableSocketOption& option, asio::error_code& ec) - { - service_impl_.set_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get a socket option. - template - ASIO_SYNC_OP_VOID get_option(const implementation_type& impl, - GettableSocketOption& option, asio::error_code& ec) const - { - service_impl_.get_option(impl, option, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform an IO control command on the socket. - template - ASIO_SYNC_OP_VOID io_control(implementation_type& impl, - IoControlCommand& command, asio::error_code& ec) - { - service_impl_.io_control(impl, command, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the socket. - bool non_blocking(const implementation_type& impl) const - { - return service_impl_.non_blocking(impl); - } - - /// Sets the non-blocking mode of the socket. - ASIO_SYNC_OP_VOID non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Gets the non-blocking mode of the native socket implementation. - bool native_non_blocking(const implementation_type& impl) const - { - return service_impl_.native_non_blocking(impl); - } - - /// Sets the non-blocking mode of the native socket implementation. - ASIO_SYNC_OP_VOID native_non_blocking(implementation_type& impl, - bool mode, asio::error_code& ec) - { - service_impl_.native_non_blocking(impl, mode, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - asio::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - ASIO_SYNC_OP_VOID shutdown(implementation_type& impl, - socket_base::shutdown_type what, asio::error_code& ec) - { - service_impl_.shutdown(impl, what, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Wait for the socket to become ready to read, ready to write, or to have - /// pending error conditions. - ASIO_SYNC_OP_VOID wait(implementation_type& impl, - socket_base::wait_type w, asio::error_code& ec) - { - service_impl_.wait(impl, w, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Asynchronously wait for the socket to become ready to read, ready to - /// write, or to have pending error conditions. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, socket_base::wait_type w, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, w, init.completion_handler); - - return init.result.get(); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(WriteHandler) handler) - { - async_completion init(handler); - - service_impl_.async_send(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, asio::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, - ASIO_MOVE_ARG(ReadHandler) handler) - { - async_completion init(handler); - - service_impl_.async_receive(impl, buffers, flags, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_STREAM_SOCKET_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/streambuf.hpp b/Sources/Vendor/asio/include/asio/streambuf.hpp deleted file mode 100644 index cb3f35f..0000000 --- a/Sources/Vendor/asio/include/asio/streambuf.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// streambuf.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_STREAMBUF_HPP -#define ASIO_STREAMBUF_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_NO_IOSTREAM) - -#include "asio/basic_streambuf.hpp" - -namespace asio { - -/// Typedef for the typical usage of basic_streambuf. -typedef basic_streambuf<> streambuf; - -} // namespace asio - -#endif // !defined(ASIO_NO_IOSTREAM) - -#endif // ASIO_STREAMBUF_HPP diff --git a/Sources/Vendor/asio/include/asio/system_context.hpp b/Sources/Vendor/asio/include/asio/system_context.hpp deleted file mode 100644 index ccd1113..0000000 --- a/Sources/Vendor/asio/include/asio/system_context.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// system_context.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SYSTEM_CONTEXT_HPP -#define ASIO_SYSTEM_CONTEXT_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/scheduler.hpp" -#include "asio/detail/thread_group.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class system_executor; - -/// The executor context for the system executor. -class system_context : public execution_context -{ -public: - /// The executor type associated with the context. - typedef system_executor executor_type; - - /// Destructor shuts down all threads in the system thread pool. - ASIO_DECL ~system_context(); - - /// Obtain an executor for the context. - executor_type get_executor() ASIO_NOEXCEPT; - - /// Signal all threads in the system thread pool to stop. - ASIO_DECL void stop(); - - /// Determine whether the system thread pool has been stopped. - ASIO_DECL bool stopped() const ASIO_NOEXCEPT; - - /// Join all threads in the system thread pool. - ASIO_DECL void join(); - -#if defined(GENERATING_DOCUMENTATION) -private: -#endif // defined(GENERATING_DOCUMENTATION) - // Constructor creates all threads in the system thread pool. - ASIO_DECL system_context(); - -private: - friend class system_executor; - - struct thread_function; - - // The underlying scheduler. - detail::scheduler& scheduler_; - - // The threads in the system thread pool. - detail::thread_group threads_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/system_context.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/system_context.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_SYSTEM_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/system_error.hpp b/Sources/Vendor/asio/include/asio/system_error.hpp deleted file mode 100644 index 6390894..0000000 --- a/Sources/Vendor/asio/include/asio/system_error.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// -// system_error.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SYSTEM_ERROR_HPP -#define ASIO_SYSTEM_ERROR_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_SYSTEM_ERROR) -# include -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) -# include -# include -# include -# include "asio/error_code.hpp" -# include "asio/detail/scoped_ptr.hpp" -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -#if defined(ASIO_HAS_STD_SYSTEM_ERROR) - -typedef std::system_error system_error; - -#else // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -/// The system_error class is used to represent system conditions that -/// prevent the library from operating correctly. -class system_error - : public std::exception -{ -public: - /// Construct with an error code. - system_error(const error_code& ec) - : code_(ec), - context_() - { - } - - /// Construct with an error code and context. - system_error(const error_code& ec, const std::string& context) - : code_(ec), - context_(context) - { - } - - /// Copy constructor. - system_error(const system_error& other) - : std::exception(other), - code_(other.code_), - context_(other.context_), - what_() - { - } - - /// Destructor. - virtual ~system_error() throw () - { - } - - /// Assignment operator. - system_error& operator=(const system_error& e) - { - context_ = e.context_; - code_ = e.code_; - what_.reset(); - return *this; - } - - /// Get a string representation of the exception. - virtual const char* what() const throw () - { -#if !defined(ASIO_NO_EXCEPTIONS) - try -#endif // !defined(ASIO_NO_EXCEPTIONS) - { - if (!what_.get()) - { - std::string tmp(context_); - if (tmp.length()) - tmp += ": "; - tmp += code_.message(); - what_.reset(new std::string(tmp)); - } - return what_->c_str(); - } -#if !defined(ASIO_NO_EXCEPTIONS) - catch (std::exception&) - { - return "system_error"; - } -#endif // !defined(ASIO_NO_EXCEPTIONS) - } - - /// Get the error code associated with the exception. - error_code code() const - { - return code_; - } - -private: - // The code associated with the error. - error_code code_; - - // The context associated with the error. - std::string context_; - - // The string representation of the error. - mutable asio::detail::scoped_ptr what_; -}; - -#endif // defined(ASIO_HAS_STD_SYSTEM_ERROR) - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_SYSTEM_ERROR_HPP diff --git a/Sources/Vendor/asio/include/asio/system_executor.hpp b/Sources/Vendor/asio/include/asio/system_executor.hpp deleted file mode 100644 index b588a21..0000000 --- a/Sources/Vendor/asio/include/asio/system_executor.hpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// system_executor.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SYSTEM_EXECUTOR_HPP -#define ASIO_SYSTEM_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/detail/push_options.hpp" - -namespace asio { - -class system_context; - -/// An executor that uses arbitrary threads. -/** - * The system executor represents an execution context where functions are - * permitted to run on arbitrary threads. The post() and defer() functions - * schedule the function to run on an unspecified system thread pool, and - * dispatch() invokes the function immediately. - */ -class system_executor -{ -public: - /// Obtain the underlying execution context. - system_context& context() const ASIO_NOEXCEPT; - - /// Inform the executor that it has some outstanding work to do. - /** - * For the system executor, this is a no-op. - */ - void on_work_started() const ASIO_NOEXCEPT - { - } - - /// Inform the executor that some work is no longer outstanding. - /** - * For the system executor, this is a no-op. - */ - void on_work_finished() const ASIO_NOEXCEPT - { - } - - /// Request the system executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will always be executed inside this function. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the system executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled to run on an unspecified system thread pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the system executor to invoke the given function object. - /** - * This function is used to ask the executor to execute the given function - * object. The function object will never be executed inside this function. - * Instead, it will be scheduled to run on an unspecified system thread pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Compare two executors for equality. - /** - * System executors always compare equal. - */ - friend bool operator==(const system_executor&, - const system_executor&) ASIO_NOEXCEPT - { - return true; - } - - /// Compare two executors for inequality. - /** - * System executors always compare equal. - */ - friend bool operator!=(const system_executor&, - const system_executor&) ASIO_NOEXCEPT - { - return false; - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/system_executor.hpp" - -#endif // ASIO_SYSTEM_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/system_timer.hpp b/Sources/Vendor/asio/include/asio/system_timer.hpp deleted file mode 100644 index e75e7d4..0000000 --- a/Sources/Vendor/asio/include/asio/system_timer.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// system_timer.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_SYSTEM_TIMER_HPP -#define ASIO_SYSTEM_TIMER_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_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_waitable_timer.hpp" -#include "asio/detail/chrono.hpp" - -namespace asio { - -/// Typedef for a timer based on the system clock. -/** - * This typedef uses the C++11 @c <chrono> standard library facility, if - * available. Otherwise, it may use the Boost.Chrono library. To explicitly - * utilise Boost.Chrono, use the basic_waitable_timer template directly: - * @code - * typedef basic_waitable_timer timer; - * @endcode - */ -typedef basic_waitable_timer system_timer; - -} // namespace asio - -#endif // defined(ASIO_HAS_CHRONO) || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_SYSTEM_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/thread.hpp b/Sources/Vendor/asio/include/asio/thread.hpp deleted file mode 100644 index eeeef7b..0000000 --- a/Sources/Vendor/asio/include/asio/thread.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// thread.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_THREAD_HPP -#define ASIO_THREAD_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/noncopyable.hpp" -#include "asio/detail/thread.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// A simple abstraction for starting threads. -/** - * The asio::thread class implements the smallest possible subset of the - * functionality of boost::thread. It is intended to be used only for starting - * a thread and waiting for it to exit. If more extensive threading - * capabilities are required, you are strongly advised to use something else. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * A typical use of asio::thread would be to launch a thread to run an - * io_context's event processing loop: - * - * @par - * @code asio::io_context io_context; - * // ... - * asio::thread t(boost::bind(&asio::io_context::run, &io_context)); - * // ... - * t.join(); @endcode - */ -class thread - : private noncopyable -{ -public: - /// Start a new thread that executes the supplied function. - /** - * This constructor creates a new thread that will execute the given function - * or function object. - * - * @param f The function or function object to be run in the thread. The - * function signature must be: @code void f(); @endcode - */ - template - explicit thread(Function f) - : impl_(f) - { - } - - /// Destructor. - ~thread() - { - } - - /// Wait for the thread to exit. - /** - * This function will block until the thread has exited. - * - * If this function is not called before the thread object is destroyed, the - * thread itself will continue to run until completion. You will, however, - * no longer have the ability to wait for it to exit. - */ - void join() - { - impl_.join(); - } - -private: - detail::thread impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_THREAD_HPP diff --git a/Sources/Vendor/asio/include/asio/thread_pool.hpp b/Sources/Vendor/asio/include/asio/thread_pool.hpp deleted file mode 100644 index 1a86bcd..0000000 --- a/Sources/Vendor/asio/include/asio/thread_pool.hpp +++ /dev/null @@ -1,232 +0,0 @@ -// -// thread_pool.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_THREAD_POOL_HPP -#define ASIO_THREAD_POOL_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/noncopyable.hpp" -#include "asio/detail/scheduler.hpp" -#include "asio/detail/thread_group.hpp" -#include "asio/execution_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// A simple fixed-size thread pool. -/** - * The thread pool class is an execution context where functions are permitted - * to run on one of a fixed number of threads. - * - * @par Submitting tasks to the pool - * - * To submit functions to the thread_pool, use the @ref asio::dispatch, - * @ref asio::post or @ref asio::defer free functions. - * - * For example: - * - * @code void my_task() - * { - * ... - * } - * - * ... - * - * // Launch the pool with four threads. - * asio::thread_pool pool(4); - * - * // Submit a function to the pool. - * asio::post(pool, my_task); - * - * // Submit a lambda object to the pool. - * asio::post(pool, - * []() - * { - * ... - * }); - * - * // Wait for all tasks in the pool to complete. - * pool.join(); @endcode - */ -class thread_pool - : public execution_context -{ -public: - class executor_type; - - /// Constructs a pool with an automatically determined number of threads. - ASIO_DECL thread_pool(); - - /// Constructs a pool with a specified number of threads. - ASIO_DECL thread_pool(std::size_t num_threads); - - /// Destructor. - /** - * Automatically stops and joins the pool, if not explicitly done beforehand. - */ - ASIO_DECL ~thread_pool(); - - /// Obtains the executor associated with the pool. - executor_type get_executor() ASIO_NOEXCEPT; - - /// Stops the threads. - /** - * This function stops the threads as soon as possible. As a result of calling - * @c stop(), pending function objects may be never be invoked. - */ - ASIO_DECL void stop(); - - /// Joins the threads. - /** - * This function blocks until the threads in the pool have completed. If @c - * stop() is not called prior to @c join(), the @c join() call will wait - * until the pool has no more outstanding work. - */ - ASIO_DECL void join(); - -private: - friend class executor_type; - struct thread_function; - - // The underlying scheduler. - detail::scheduler& scheduler_; - - // The threads in the pool. - detail::thread_group threads_; -}; - -/// Executor used to submit functions to a thread pool. -class thread_pool::executor_type -{ -public: - /// Obtain the underlying execution context. - thread_pool& context() const ASIO_NOEXCEPT; - - /// Inform the thread pool that it has some outstanding work to do. - /** - * This function is used to inform the thread pool that some work has begun. - * This ensures that the thread pool's join() function will not return while - * the work is underway. - */ - void on_work_started() const ASIO_NOEXCEPT; - - /// Inform the thread pool that some work is no longer outstanding. - /** - * This function is used to inform the thread pool that some work has - * finished. Once the count of unfinished work reaches zero, the thread - * pool's join() function is permitted to exit. - */ - void on_work_finished() const ASIO_NOEXCEPT; - - /// Request the thread pool to invoke the given function object. - /** - * This function is used to ask the thread pool to execute the given function - * object. If the current thread belongs to the pool, @c dispatch() executes - * the function before returning. Otherwise, the function will be scheduled - * to run on the thread pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the thread pool to invoke the given function object. - /** - * This function is used to ask the thread pool to execute the given function - * object. The function object will never be executed inside @c post(). - * Instead, it will be scheduled to run on the thread pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void post(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Request the thread pool to invoke the given function object. - /** - * This function is used to ask the thread pool to execute the given function - * object. The function object will never be executed inside @c defer(). - * Instead, it will be scheduled to run on the thread pool. - * - * If the current thread belongs to the thread pool, @c defer() will delay - * scheduling the function object until the current thread returns control to - * the pool. - * - * @param f The function object to be called. The executor will make - * a copy of the handler object as required. The function signature of the - * function object must be: @code void function(); @endcode - * - * @param a An allocator that may be used by the executor to allocate the - * internal storage needed for function invocation. - */ - template - void defer(ASIO_MOVE_ARG(Function) f, const Allocator& a) const; - - /// Determine whether the thread pool is running in the current thread. - /** - * @return @c true if the current thread belongs to the pool. Otherwise - * returns @c false. - */ - bool running_in_this_thread() const ASIO_NOEXCEPT; - - /// Compare two executors for equality. - /** - * Two executors are equal if they refer to the same underlying thread pool. - */ - friend bool operator==(const executor_type& a, - const executor_type& b) ASIO_NOEXCEPT - { - return &a.pool_ == &b.pool_; - } - - /// Compare two executors for inequality. - /** - * Two executors are equal if they refer to the same underlying thread pool. - */ - friend bool operator!=(const executor_type& a, - const executor_type& b) ASIO_NOEXCEPT - { - return &a.pool_ != &b.pool_; - } - -private: - friend class thread_pool; - - // Constructor. - explicit executor_type(thread_pool& p) : pool_(p) {} - - // The underlying thread pool. - thread_pool& pool_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/thread_pool.hpp" -#if defined(ASIO_HEADER_ONLY) -# include "asio/impl/thread_pool.ipp" -#endif // defined(ASIO_HEADER_ONLY) - -#endif // ASIO_THREAD_POOL_HPP diff --git a/Sources/Vendor/asio/include/asio/time_traits.hpp b/Sources/Vendor/asio/include/asio/time_traits.hpp deleted file mode 100644 index 72f4aab..0000000 --- a/Sources/Vendor/asio/include/asio/time_traits.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// -// time_traits.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TIME_TRAITS_HPP -#define ASIO_TIME_TRAITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/socket_types.hpp" // Must come before posix_time. - -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - -#include - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Time traits suitable for use with the deadline timer. -template -struct time_traits; - -/// Time traits specialised for posix_time. -template <> -struct time_traits -{ - /// The time type. - typedef boost::posix_time::ptime time_type; - - /// The duration type. - typedef boost::posix_time::time_duration duration_type; - - /// Get the current time. - static time_type now() - { -#if defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK) - return boost::posix_time::microsec_clock::universal_time(); -#else // defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK) - return boost::posix_time::second_clock::universal_time(); -#endif // defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK) - } - - /// Add a duration to a time. - static time_type add(const time_type& t, const duration_type& d) - { - return t + d; - } - - /// Subtract one time from another. - static duration_type subtract(const time_type& t1, const time_type& t2) - { - return t1 - t2; - } - - /// Test whether one time is less than another. - static bool less_than(const time_type& t1, const time_type& t2) - { - return t1 < t2; - } - - /// Convert to POSIX duration type. - static boost::posix_time::time_duration to_posix_duration( - const duration_type& d) - { - return d; - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_TIME_TRAITS_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/buffer.hpp b/Sources/Vendor/asio/include/asio/ts/buffer.hpp deleted file mode 100644 index faf08a4..0000000 --- a/Sources/Vendor/asio/include/asio/ts/buffer.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// -// ts/buffer.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TS_BUFFER_HPP -#define ASIO_TS_BUFFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/buffer.hpp" -#include "asio/completion_condition.hpp" -#include "asio/read.hpp" -#include "asio/write.hpp" -#include "asio/read_until.hpp" - -#endif // ASIO_TS_BUFFER_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/executor.hpp b/Sources/Vendor/asio/include/asio/ts/executor.hpp deleted file mode 100644 index 8669cb6..0000000 --- a/Sources/Vendor/asio/include/asio/ts/executor.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// ts/executor.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TS_EXECUTOR_HPP -#define ASIO_TS_EXECUTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/handler_type.hpp" -#include "asio/async_result.hpp" -#include "asio/associated_allocator.hpp" -#include "asio/execution_context.hpp" -#include "asio/is_executor.hpp" -#include "asio/associated_executor.hpp" -#include "asio/bind_executor.hpp" -#include "asio/executor_work_guard.hpp" -#include "asio/system_executor.hpp" -#include "asio/executor.hpp" -#include "asio/dispatch.hpp" -#include "asio/post.hpp" -#include "asio/defer.hpp" -#include "asio/strand.hpp" -#include "asio/packaged_task.hpp" -#include "asio/use_future.hpp" - -#endif // ASIO_TS_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/internet.hpp b/Sources/Vendor/asio/include/asio/ts/internet.hpp deleted file mode 100644 index 6282e90..0000000 --- a/Sources/Vendor/asio/include/asio/ts/internet.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// ts/internet.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TS_INTERNET_HPP -#define ASIO_TS_INTERNET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/ip/address.hpp" -#include "asio/ip/address_v4.hpp" -#include "asio/ip/address_v4_iterator.hpp" -#include "asio/ip/address_v4_range.hpp" -#include "asio/ip/address_v6.hpp" -#include "asio/ip/address_v6_iterator.hpp" -#include "asio/ip/address_v6_range.hpp" -#include "asio/ip/bad_address_cast.hpp" -#include "asio/ip/basic_endpoint.hpp" -#include "asio/ip/basic_resolver_query.hpp" -#include "asio/ip/basic_resolver_entry.hpp" -#include "asio/ip/basic_resolver_iterator.hpp" -#include "asio/ip/basic_resolver.hpp" -#include "asio/ip/host_name.hpp" -#include "asio/ip/network_v4.hpp" -#include "asio/ip/network_v6.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/ip/v6_only.hpp" -#include "asio/ip/unicast.hpp" -#include "asio/ip/multicast.hpp" - -#endif // ASIO_TS_INTERNET_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/io_context.hpp b/Sources/Vendor/asio/include/asio/ts/io_context.hpp deleted file mode 100644 index b967cd6..0000000 --- a/Sources/Vendor/asio/include/asio/ts/io_context.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// -// ts/io_context.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TS_IO_CONTEXT_HPP -#define ASIO_TS_IO_CONTEXT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/io_context.hpp" - -#endif // ASIO_TS_IO_CONTEXT_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/net.hpp b/Sources/Vendor/asio/include/asio/ts/net.hpp deleted file mode 100644 index f96075d..0000000 --- a/Sources/Vendor/asio/include/asio/ts/net.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// -// ts/net.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TS_NET_HPP -#define ASIO_TS_NET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/ts/netfwd.hpp" -#include "asio/ts/executor.hpp" -#include "asio/ts/io_context.hpp" -#include "asio/ts/timer.hpp" -#include "asio/ts/buffer.hpp" -#include "asio/ts/socket.hpp" -#include "asio/ts/internet.hpp" - -#endif // ASIO_TS_NET_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/netfwd.hpp b/Sources/Vendor/asio/include/asio/ts/netfwd.hpp deleted file mode 100644 index 657a21d..0000000 --- a/Sources/Vendor/asio/include/asio/ts/netfwd.hpp +++ /dev/null @@ -1,197 +0,0 @@ -// -// ts/netfwd.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TS_NETFWD_HPP -#define ASIO_TS_NETFWD_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_CHRONO) -# include "asio/detail/chrono.hpp" -#endif // defined(ASIO_HAS_CHRONO) - -#if defined(ASIO_HAS_BOOST_DATE_TIME) -# include "asio/detail/date_time_fwd.hpp" -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#if !defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -class execution_context; - -template -class executor_binder; - -template -class executor_work_guard; - -class system_executor; - -class executor; - -template -class strand; - -class io_context; - -template -struct wait_traits; - -#if defined(ASIO_HAS_BOOST_DATE_TIME) - -template -struct time_traits; - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#if defined(ASIO_ENABLE_OLD_SERVICES) - -template -class waitable_timer_service; - -#if defined(ASIO_HAS_BOOST_DATE_TIME) - -template -class deadline_timer_service; - -#endif // defined(ASIO_HAS_BOOST_DATE_TIME) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#if !defined(ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) -#define ASIO_BASIC_WAITABLE_TIMER_FWD_DECL - -template - ASIO_SVC_TPARAM_DEF2(= waitable_timer_service)> -class basic_waitable_timer; - -#endif // !defined(ASIO_BASIC_WAITABLE_TIMER_FWD_DECL) - -#if defined(ASIO_HAS_CHRONO) - -typedef basic_waitable_timer system_timer; - -typedef basic_waitable_timer steady_timer; - -typedef basic_waitable_timer - high_resolution_timer; - -#endif // defined(ASIO_HAS_CHRONO) - -template -class basic_socket; - -template -class basic_datagram_socket; - -template -class basic_stream_socket; - -template -class basic_socket_acceptor; - -#if !defined(ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) -#define ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL - -// Forward declaration with defaulted arguments. -template ), -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - typename Clock = boost::posix_time::ptime, - typename WaitTraits = time_traits - ASIO_SVC_TPARAM1_DEF2(= deadline_timer_service)> -#else - typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits - ASIO_SVC_TPARAM1_DEF1(= steady_timer::service_type)> -#endif -class basic_socket_streambuf; - -#endif // !defined(ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL) - -#if !defined(ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) -#define ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL - -// Forward declaration with defaulted arguments. -template ), -#if defined(ASIO_HAS_BOOST_DATE_TIME) \ - || defined(GENERATING_DOCUMENTATION) - typename Clock = boost::posix_time::ptime, - typename WaitTraits = time_traits - ASIO_SVC_TPARAM1_DEF2(= deadline_timer_service)> -#else - typename Clock = chrono::steady_clock, - typename WaitTraits = wait_traits - ASIO_SVC_TPARAM1_DEF1(= steady_timer::service_type)> -#endif -class basic_socket_iostream; - -#endif // !defined(ASIO_BASIC_SOCKET_IOSTREAM_FWD_DECL) - -namespace ip { - -class address; - -class address_v4; - -class address_v6; - -template -class basic_address_iterator; - -typedef basic_address_iterator address_v4_iterator; - -typedef basic_address_iterator address_v6_iterator; - -template -class basic_address_range; - -typedef basic_address_range address_v4_range; - -typedef basic_address_range address_v6_range; - -class network_v4; - -class network_v6; - -template -class basic_endpoint; - -template -class basic_resolver_entry; - -template -class basic_resolver_results; - -template -class basic_resolver; - -class tcp; - -class udp; - -} // namespace ip -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // !defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_TS_NETFWD_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/socket.hpp b/Sources/Vendor/asio/include/asio/ts/socket.hpp deleted file mode 100644 index a542734..0000000 --- a/Sources/Vendor/asio/include/asio/ts/socket.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// ts/socket.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TS_SOCKET_HPP -#define ASIO_TS_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/socket_base.hpp" -#include "asio/basic_socket.hpp" -#include "asio/basic_datagram_socket.hpp" -#include "asio/basic_stream_socket.hpp" -#include "asio/basic_socket_acceptor.hpp" -#include "asio/basic_socket_streambuf.hpp" -#include "asio/basic_socket_iostream.hpp" -#include "asio/connect.hpp" - -#endif // ASIO_TS_SOCKET_HPP diff --git a/Sources/Vendor/asio/include/asio/ts/timer.hpp b/Sources/Vendor/asio/include/asio/ts/timer.hpp deleted file mode 100644 index 872be8b..0000000 --- a/Sources/Vendor/asio/include/asio/ts/timer.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// -// ts/timer.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_TS_TIMER_HPP -#define ASIO_TS_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/chrono.hpp" - -#include "asio/wait_traits.hpp" -#include "asio/basic_waitable_timer.hpp" -#include "asio/system_timer.hpp" -#include "asio/steady_timer.hpp" -#include "asio/high_resolution_timer.hpp" - -#endif // ASIO_TS_TIMER_HPP diff --git a/Sources/Vendor/asio/include/asio/unyield.hpp b/Sources/Vendor/asio/include/asio/unyield.hpp deleted file mode 100644 index de3ed02..0000000 --- a/Sources/Vendor/asio/include/asio/unyield.hpp +++ /dev/null @@ -1,21 +0,0 @@ -// -// unyield.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#ifdef reenter -# undef reenter -#endif - -#ifdef yield -# undef yield -#endif - -#ifdef fork -# undef fork -#endif diff --git a/Sources/Vendor/asio/include/asio/use_future.hpp b/Sources/Vendor/asio/include/asio/use_future.hpp deleted file mode 100644 index 3ac95a5..0000000 --- a/Sources/Vendor/asio/include/asio/use_future.hpp +++ /dev/null @@ -1,160 +0,0 @@ -// -// use_future.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_USE_FUTURE_HPP -#define ASIO_USE_FUTURE_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/future.hpp" - -#if defined(ASIO_HAS_STD_FUTURE_CLASS) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace detail { - -template -class packaged_token; - -template -class packaged_handler; - -} // namespace detail - -/// Class used to specify that an asynchronous operation should return a future. -/** - * The use_future_t class is used to indicate that an asynchronous operation - * should return a std::future object. A use_future_t object may be passed as a - * handler to an asynchronous operation, typically using the special value @c - * asio::use_future. For example: - * - * @code std::future my_future - * = my_socket.async_read_some(my_buffer, asio::use_future); @endcode - * - * The initiating function (async_read_some in the above example) returns a - * future that will receive the result of the operation. If the operation - * completes with an error_code indicating failure, it is converted into a - * system_error and passed back to the caller via the future. - */ -template > -class use_future_t -{ -public: - /// The allocator type. The allocator is used when constructing the - /// @c std::promise object for a given asynchronous operation. - typedef Allocator allocator_type; - - /// Construct using default-constructed allocator. - ASIO_CONSTEXPR use_future_t() - { - } - - /// Construct using specified allocator. - explicit use_future_t(const Allocator& allocator) - : allocator_(allocator) - { - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use rebind().) Specify an alternate allocator. - template - use_future_t operator[](const OtherAllocator& allocator) const - { - return use_future_t(allocator); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Specify an alternate allocator. - template - use_future_t rebind(const OtherAllocator& allocator) const - { - return use_future_t(allocator); - } - - /// Obtain allocator. - allocator_type get_allocator() const - { - return allocator_; - } - - /// Wrap a function object in a packaged task. - /** - * The @c package function is used to adapt a function object as a packaged - * task. When this adapter is passed as a completion token to an asynchronous - * operation, the result of the function object is retuned via a std::future. - * - * @par Example - * - * @code std::future fut = - * my_socket.async_read_some(buffer, - * use_future([](asio::error_code ec, std::size_t n) - * { - * return ec ? 0 : n; - * })); - * ... - * std::size_t n = fut.get(); @endcode - */ - template -#if defined(GENERATING_DOCUMENTATION) - unspecified -#else // defined(GENERATING_DOCUMENTATION) - detail::packaged_token::type, Allocator> -#endif // defined(GENERATING_DOCUMENTATION) - operator()(ASIO_MOVE_ARG(Function) f) const; - -private: - // Helper type to ensure that use_future can be constexpr default-constructed - // even when std::allocator can't be. - struct std_allocator_void - { - ASIO_CONSTEXPR std_allocator_void() - { - } - - operator std::allocator() const - { - return std::allocator(); - } - }; - - typename conditional< - is_same, Allocator>::value, - std_allocator_void, Allocator>::type allocator_; -}; - -/// A special value, similar to std::nothrow. -/** - * See the documentation for asio::use_future_t for a usage example. - */ -#if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION) -constexpr use_future_t<> use_future; -#elif defined(ASIO_MSVC) -__declspec(selectany) use_future_t<> use_future; -#endif - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/use_future.hpp" - -#endif // defined(ASIO_HAS_STD_FUTURE_CLASS) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_USE_FUTURE_HPP diff --git a/Sources/Vendor/asio/include/asio/uses_executor.hpp b/Sources/Vendor/asio/include/asio/uses_executor.hpp deleted file mode 100644 index e985c28..0000000 --- a/Sources/Vendor/asio/include/asio/uses_executor.hpp +++ /dev/null @@ -1,71 +0,0 @@ -// -// uses_executor.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_USES_EXECUTOR_HPP -#define ASIO_USES_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/detail/type_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// A special type, similar to std::nothrow_t, used to disambiguate -/// constructors that accept executor arguments. -/** - * The executor_arg_t struct is an empty structure type used as a unique type - * to disambiguate constructor and function overloading. Specifically, some - * types have constructors with executor_arg_t as the first argument, - * immediately followed by an argument of a type that satisfies the Executor - * type requirements. - */ -struct executor_arg_t -{ - /// Constructor. - ASIO_CONSTEXPR executor_arg_t() ASIO_NOEXCEPT - { - } -}; - -/// A special value, similar to std::nothrow, used to disambiguate constructors -/// that accept executor arguments. -/** - * See asio::executor_arg_t and asio::uses_executor - * for more information. - */ -#if defined(ASIO_HAS_CONSTEXPR) || defined(GENERATING_DOCUMENTATION) -constexpr executor_arg_t executor_arg; -#elif defined(ASIO_MSVC) -__declspec(selectany) executor_arg_t executor_arg; -#endif - -/// The uses_executor trait detects whether a type T has an associated executor -/// that is convertible from type Executor. -/** - * Meets the BinaryTypeTrait requirements. The Asio library provides a - * definition that is derived from false_type. A program may specialize this - * template to derive from true_type for a user-defined type T that can be - * constructed with an executor, where the first argument of a constructor has - * type executor_arg_t and the second argument is convertible from type - * Executor. - */ -template -struct uses_executor : false_type {}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_USES_EXECUTOR_HPP diff --git a/Sources/Vendor/asio/include/asio/version.hpp b/Sources/Vendor/asio/include/asio/version.hpp deleted file mode 100644 index 82ceb16..0000000 --- a/Sources/Vendor/asio/include/asio/version.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// -// version.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_VERSION_HPP -#define ASIO_VERSION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -// ASIO_VERSION % 100 is the sub-minor version -// ASIO_VERSION / 100 % 1000 is the minor version -// ASIO_VERSION / 100000 is the major version -#define ASIO_VERSION 101202 // 1.12.2 - -#endif // ASIO_VERSION_HPP diff --git a/Sources/Vendor/asio/include/asio/wait_traits.hpp b/Sources/Vendor/asio/include/asio/wait_traits.hpp deleted file mode 100644 index a6016f7..0000000 --- a/Sources/Vendor/asio/include/asio/wait_traits.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// -// wait_traits.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WAIT_TRAITS_HPP -#define ASIO_WAIT_TRAITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Wait traits suitable for use with the basic_waitable_timer class template. -template -struct wait_traits -{ - /// Convert a clock duration into a duration used for waiting. - /** - * @returns @c d. - */ - static typename Clock::duration to_wait_duration( - const typename Clock::duration& d) - { - return d; - } - - /// Convert a clock duration into a duration used for waiting. - /** - * @returns @c d. - */ - static typename Clock::duration to_wait_duration( - const typename Clock::time_point& t) - { - typename Clock::time_point now = Clock::now(); - if (now + (Clock::duration::max)() < t) - return (Clock::duration::max)(); - if (now + (Clock::duration::min)() > t) - return (Clock::duration::min)(); - return t - now; - } -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // ASIO_WAIT_TRAITS_HPP diff --git a/Sources/Vendor/asio/include/asio/waitable_timer_service.hpp b/Sources/Vendor/asio/include/asio/waitable_timer_service.hpp deleted file mode 100644 index 75e496f..0000000 --- a/Sources/Vendor/asio/include/asio/waitable_timer_service.hpp +++ /dev/null @@ -1,210 +0,0 @@ -// -// waitable_timer_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WAITABLE_TIMER_SERVICE_HPP -#define ASIO_WAITABLE_TIMER_SERVICE_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_ENABLE_OLD_SERVICES) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/chrono_time_traits.hpp" -#include "asio/detail/deadline_timer_service.hpp" -#include "asio/io_context.hpp" -#include "asio/wait_traits.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/// Default service implementation for a timer. -template > -class waitable_timer_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base< - waitable_timer_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - - /// The clock type. - typedef Clock clock_type; - - /// The duration type of the clock. - typedef typename clock_type::duration duration; - - /// The time point type of the clock. - typedef typename clock_type::time_point time_point; - - /// The wait traits type. - typedef WaitTraits traits_type; - -private: - // The type of the platform-specific implementation. - typedef detail::deadline_timer_service< - detail::chrono_time_traits > service_impl_type; - -public: - /// The implementation type of the waitable timer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// Construct a new timer service for the specified io_context. - explicit waitable_timer_service(asio::io_context& io_context) - : asio::detail::service_base< - waitable_timer_service >(io_context), - service_impl_(io_context) - { - } - - /// Construct a new timer implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a timer implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new timer implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another timer implementation. - void move_assign(implementation_type& impl, - waitable_timer_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Cancel any asynchronous wait operations associated with the timer. - std::size_t cancel(implementation_type& impl, asio::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Cancels one asynchronous wait operation associated with the timer. - std::size_t cancel_one(implementation_type& impl, - asio::error_code& ec) - { - return service_impl_.cancel_one(impl, ec); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the expiry time for the timer as an - /// absolute time. - time_point expires_at(const implementation_type& impl) const - { - return service_impl_.expiry(impl); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the expiry time for the timer as an absolute time. - time_point expiry(const implementation_type& impl) const - { - return service_impl_.expiry(impl); - } - - /// Set the expiry time for the timer as an absolute time. - std::size_t expires_at(implementation_type& impl, - const time_point& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_at(impl, expiry_time, ec); - } - - /// Set the expiry time for the timer relative to now. - std::size_t expires_after(implementation_type& impl, - const duration& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_after(impl, expiry_time, ec); - } - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use expiry().) Get the expiry time for the timer relative to - /// now. - duration expires_from_now(const implementation_type& impl) const - { - typedef detail::chrono_time_traits traits; - return traits::subtract(service_impl_.expiry(impl), traits::now()); - } - - /// (Deprecated: Use expires_after().) Set the expiry time for the timer - /// relative to now. - std::size_t expires_from_now(implementation_type& impl, - const duration& expiry_time, asio::error_code& ec) - { - return service_impl_.expires_after(impl, expiry_time, ec); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - // Perform a blocking wait on the timer. - void wait(implementation_type& impl, asio::error_code& ec) - { - service_impl_.wait(impl, ec); - } - - // Start an asynchronous wait on the timer. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, - ASIO_MOVE_ARG(WaitHandler) handler) - { - async_completion init(handler); - - service_impl_.async_wait(impl, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WAITABLE_TIMER_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/basic_handle.hpp b/Sources/Vendor/asio/include/asio/windows/basic_handle.hpp deleted file mode 100644 index f7c9d0d..0000000 --- a/Sources/Vendor/asio/include/asio/windows/basic_handle.hpp +++ /dev/null @@ -1,273 +0,0 @@ -// -// windows/basic_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_BASIC_HANDLE_HPP -#define ASIO_WINDOWS_BASIC_HANDLE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/basic_io_object.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides Windows handle functionality. -/** - * The windows::basic_handle class template provides the ability to wrap a - * Windows handle. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_handle - : public basic_io_object -{ -public: - /// The native representation of a handle. - typedef typename HandleService::native_handle_type native_handle_type; - - /// A basic_handle is always the lowest layer. - typedef basic_handle lowest_layer_type; - - /// Construct a basic_handle without opening it. - /** - * This constructor creates a handle without opening it. - * - * @param io_context The io_context object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit basic_handle(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct a basic_handle on an existing native handle. - /** - * This constructor creates a handle object to hold an existing native handle. - * - * @param io_context The io_context object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - basic_handle(asio::io_context& io_context, - const native_handle_type& handle) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_handle from another. - /** - * This constructor moves a handle from one object to another. - * - * @param other The other basic_handle object from which the move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_handle(io_context&) constructor. - */ - basic_handle(basic_handle&& other) - : basic_io_object( - ASIO_MOVE_CAST(basic_handle)(other)) - { - } - - /// Move-assign a basic_handle from another. - /** - * This assignment operator moves a handle from one object to another. - * - * @param other The other basic_handle object from which the move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_handle(io_context&) constructor. - */ - basic_handle& operator=(basic_handle&& other) - { - basic_io_object::operator=( - ASIO_MOVE_CAST(basic_handle)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& handle) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& handle, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle representation. - /** - * This function may be used to obtain the underlying representation of the - * handle. This is intended to allow access to native handle functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - -protected: - /// Protected destructor to prevent deletion through this type. - ~basic_handle() - { - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_BASIC_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/basic_object_handle.hpp b/Sources/Vendor/asio/include/asio/windows/basic_object_handle.hpp deleted file mode 100644 index 4b29684..0000000 --- a/Sources/Vendor/asio/include/asio/windows/basic_object_handle.hpp +++ /dev/null @@ -1,182 +0,0 @@ -// -// windows/basic_object_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// 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_WINDOWS_BASIC_OBJECT_HANDLE_HPP -#define ASIO_WINDOWS_BASIC_OBJECT_HANDLE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/object_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides object-oriented handle functionality. -/** - * The windows::basic_object_handle class template provides asynchronous and - * blocking object-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_object_handle - : public basic_handle -{ -public: - /// The native representation of a handle. - typedef typename ObjectHandleService::native_handle_type native_handle_type; - - /// Construct a basic_object_handle without opening it. - /** - * This constructor creates an object handle without opening it. - * - * @param io_context The io_context object that the object handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit basic_object_handle(asio::io_context& io_context) - : basic_handle(io_context) - { - } - - /// Construct a basic_object_handle on an existing native handle. - /** - * This constructor creates an object handle object to hold an existing native - * handle. - * - * @param io_context The io_context object that the object handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param native_handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_object_handle(asio::io_context& io_context, - const native_handle_type& native_handle) - : basic_handle(io_context, native_handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_object_handle from another. - /** - * This constructor moves an object handle from one object to another. - * - * @param other The other basic_object_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_object_handle(io_context&) constructor. - */ - basic_object_handle(basic_object_handle&& other) - : basic_handle( - ASIO_MOVE_CAST(basic_object_handle)(other)) - { - } - - /// Move-assign a basic_object_handle from another. - /** - * This assignment operator moves an object handle from one object to another. - * - * @param other The other basic_object_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_object_handle(io_context&) constructor. - */ - basic_object_handle& operator=(basic_object_handle&& other) - { - basic_handle::operator=( - ASIO_MOVE_CAST(basic_object_handle)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Perform a blocking wait on the object handle. - /** - * This function is used to wait for the object handle to be set to the - * signalled state. This function blocks and does not return until the object - * handle has been set to the signalled state. - * - * @throws asio::system_error Thrown on failure. - */ - void wait() - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the object handle. - /** - * This function is used to wait for the object handle to be set to the - * signalled state. This function blocks and does not return until the object - * handle has been set to the signalled state. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), ec); - } - - /// Start an asynchronous wait on the object handle. - /** - * This function is be used to initiate an asynchronous wait against the - * object handle. It always returns immediately. - * - * @param handler The handler to be called when the object handle is set to - * the signalled state. Copies will be made of the handler as required. The - * function signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - return this->get_service().async_wait(this->get_implementation(), - ASIO_MOVE_CAST(WaitHandler)(handler)); - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_BASIC_OBJECT_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/basic_random_access_handle.hpp b/Sources/Vendor/asio/include/asio/windows/basic_random_access_handle.hpp deleted file mode 100644 index 4226977..0000000 --- a/Sources/Vendor/asio/include/asio/windows/basic_random_access_handle.hpp +++ /dev/null @@ -1,376 +0,0 @@ -// -// windows/basic_random_access_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_HPP -#define ASIO_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/random_access_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides random-access handle functionality. -/** - * The windows::basic_random_access_handle class template provides asynchronous - * and blocking random-access handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_random_access_handle - : public basic_handle -{ -public: - /// The native representation of a handle. - typedef typename RandomAccessHandleService::native_handle_type - native_handle_type; - - /// Construct a basic_random_access_handle without opening it. - /** - * This constructor creates a random-access handle without opening it. The - * handle needs to be opened before data can be written to or read from it. - * - * @param io_context The io_context object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - */ - explicit basic_random_access_handle(asio::io_context& io_context) - : basic_handle(io_context) - { - } - - /// Construct a basic_random_access_handle on an existing native handle. - /** - * This constructor creates a random-access handle object to hold an existing - * native handle. - * - * @param io_context The io_context object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - * - * @param handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_random_access_handle(asio::io_context& io_context, - const native_handle_type& handle) - : basic_handle(io_context, handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_random_access_handle from another. - /** - * This constructor moves a random-access handle from one object to another. - * - * @param other The other basic_random_access_handle object from which the - * move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_random_access_handle(io_context&) - * constructor. - */ - basic_random_access_handle(basic_random_access_handle&& other) - : basic_handle( - ASIO_MOVE_CAST(basic_random_access_handle)(other)) - { - } - - /// Move-assign a basic_random_access_handle from another. - /** - * This assignment operator moves a random-access handle from one object to - * another. - * - * @param other The other basic_random_access_handle object from which the - * move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_random_access_handle(io_context&) - * constructor. - */ - basic_random_access_handle& operator=(basic_random_access_handle&& other) - { - basic_handle::operator=( - ASIO_MOVE_CAST(basic_random_access_handle)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some_at operation may not write all of the data. Consider - * using the @ref write_at function if you need to ensure that all data is - * written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some_at(42, asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some_at(uint64_t offset, - const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some_at( - this->get_implementation(), offset, buffers, ec); - asio::detail::throw_error(ec, "write_some_at"); - return s; - } - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write_at function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return this->get_service().write_some_at( - this->get_implementation(), offset, buffers, ec); - } - - /// Start an asynchronous write at the specified offset. - /** - * This function is used to asynchronously write data to the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write_at function if you need to ensure that - * all data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some_at(42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some_at(this->get_implementation(), - offset, buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some_at(42, asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some_at(uint64_t offset, - const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some_at( - this->get_implementation(), offset, buffers, ec); - asio::detail::throw_error(ec, "read_some_at"); - return s; - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return this->get_service().read_some_at( - this->get_implementation(), offset, buffers, ec); - } - - /// Start an asynchronous read at the specified offset. - /** - * This function is used to asynchronously read data from the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read_at function if you need to ensure that - * the requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some_at(42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some_at(this->get_implementation(), - offset, buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/basic_stream_handle.hpp b/Sources/Vendor/asio/include/asio/windows/basic_stream_handle.hpp deleted file mode 100644 index 3bfce68..0000000 --- a/Sources/Vendor/asio/include/asio/windows/basic_stream_handle.hpp +++ /dev/null @@ -1,359 +0,0 @@ -// -// windows/basic_stream_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_BASIC_STREAM_HANDLE_HPP -#define ASIO_WINDOWS_BASIC_STREAM_HANDLE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/detail/handler_type_requirements.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/error.hpp" -#include "asio/windows/basic_handle.hpp" -#include "asio/windows/stream_handle_service.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides stream-oriented handle functionality. -/** - * The windows::basic_stream_handle class template provides asynchronous and - * blocking stream-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class basic_stream_handle - : public basic_handle -{ -public: - /// The native representation of a handle. - typedef typename StreamHandleService::native_handle_type native_handle_type; - - /// Construct a basic_stream_handle without opening it. - /** - * This constructor creates a stream handle without opening it. The handle - * needs to be opened and then connected or accepted before data can be sent - * or received on it. - * - * @param io_context The io_context object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit basic_stream_handle(asio::io_context& io_context) - : basic_handle(io_context) - { - } - - /// Construct a basic_stream_handle on an existing native handle. - /** - * This constructor creates a stream handle object to hold an existing native - * handle. - * - * @param io_context The io_context object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - basic_stream_handle(asio::io_context& io_context, - const native_handle_type& handle) - : basic_handle(io_context, handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a basic_stream_handle from another. - /** - * This constructor moves a stream handle from one object to another. - * - * @param other The other basic_stream_handle object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_handle(io_context&) constructor. - */ - basic_stream_handle(basic_stream_handle&& other) - : basic_handle( - ASIO_MOVE_CAST(basic_stream_handle)(other)) - { - } - - /// Move-assign a basic_stream_handle from another. - /** - * This assignment operator moves a stream handle from one object to - * another. - * - * @param other The other basic_stream_handle object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c basic_stream_handle(io_context&) constructor. - */ - basic_stream_handle& operator=(basic_stream_handle&& other) - { - basic_handle::operator=( - ASIO_MOVE_CAST(basic_stream_handle)(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - return this->get_service().async_write_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(WriteHandler)(handler)); - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - return this->get_service().async_read_some(this->get_implementation(), - buffers, ASIO_MOVE_CAST(ReadHandler)(handler)); - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_BASIC_STREAM_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/object_handle.hpp b/Sources/Vendor/asio/include/asio/windows/object_handle.hpp deleted file mode 100644 index 581b568..0000000 --- a/Sources/Vendor/asio/include/asio/windows/object_handle.hpp +++ /dev/null @@ -1,381 +0,0 @@ -// -// windows/object_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// 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_WINDOWS_OBJECT_HANDLE_HPP -#define ASIO_WINDOWS_OBJECT_HANDLE_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_WINDOWS_OBJECT_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_object_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/windows/basic_object_handle.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#define ASIO_SVC_T asio::detail::win_object_handle_service - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of an object handle. -typedef basic_object_handle<> object_handle; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides object-oriented handle functionality. -/** - * The windows::object_handle class provides asynchronous and blocking - * object-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class object_handle - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a handle. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// An object_handle is always the lowest layer. - typedef object_handle lowest_layer_type; - - /// Construct an object_handle without opening it. - /** - * This constructor creates an object handle without opening it. - * - * @param io_context The io_context object that the object handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit object_handle(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct an object_handle on an existing native handle. - /** - * This constructor creates an object handle object to hold an existing native - * handle. - * - * @param io_context The io_context object that the object handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param native_handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - object_handle(asio::io_context& io_context, - const native_handle_type& native_handle) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), native_handle, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct an object_handle from another. - /** - * This constructor moves an object handle from one object to another. - * - * @param other The other object_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c object_handle(io_context&) constructor. - */ - object_handle(object_handle&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign an object_handle from another. - /** - * This assignment operator moves an object handle from one object to another. - * - * @param other The other object_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c object_handle(io_context&) constructor. - */ - object_handle& operator=(object_handle&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since an object_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since an object_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& handle) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& handle, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle representation. - /** - * This function may be used to obtain the underlying representation of the - * handle. This is intended to allow access to native handle functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Perform a blocking wait on the object handle. - /** - * This function is used to wait for the object handle to be set to the - * signalled state. This function blocks and does not return until the object - * handle has been set to the signalled state. - * - * @throws asio::system_error Thrown on failure. - */ - void wait() - { - asio::error_code ec; - this->get_service().wait(this->get_implementation(), ec); - asio::detail::throw_error(ec, "wait"); - } - - /// Perform a blocking wait on the object handle. - /** - * This function is used to wait for the object handle to be set to the - * signalled state. This function blocks and does not return until the object - * handle has been set to the signalled state. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(asio::error_code& ec) - { - this->get_service().wait(this->get_implementation(), ec); - } - - /// Start an asynchronous wait on the object handle. - /** - * This function is be used to initiate an asynchronous wait against the - * object handle. It always returns immediately. - * - * @param handler The handler to be called when the object handle is set to - * the signalled state. Copies will be made of the handler as required. The - * function signature of the handler must be: - * @code void handler( - * const asio::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(ASIO_MOVE_ARG(WaitHandler) handler) - { - asio::async_completion init(handler); - - this->get_service().async_wait(this->get_implementation(), - init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_SVC_T - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_WINDOWS_OBJECT_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/object_handle_service.hpp b/Sources/Vendor/asio/include/asio/windows/object_handle_service.hpp deleted file mode 100644 index 95436d7..0000000 --- a/Sources/Vendor/asio/include/asio/windows/object_handle_service.hpp +++ /dev/null @@ -1,183 +0,0 @@ -// -// windows/object_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 Christopher M. Kohlhoff (chris at kohlhoff dot com) -// Copyright (c) 2011 Boris Schaeling (boris@highscore.de) -// -// 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_WINDOWS_OBJECT_HANDLE_SERVICE_HPP -#define ASIO_WINDOWS_OBJECT_HANDLE_SERVICE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/async_result.hpp" -#include "asio/detail/win_object_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Default service implementation for an object handle. -class object_handle_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::win_object_handle_service service_impl_type; - -public: - /// The type of an object handle implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new object handle service for the specified io_context. - explicit object_handle_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new object handle implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new object handle implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another object handle implementation. - void move_assign(implementation_type& impl, - object_handle_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy an object handle implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native handle to an object handle. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - service_impl_.assign(impl, handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close an object handle implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - // Wait for a signaled state. - void wait(implementation_type& impl, asio::error_code& ec) - { - service_impl_.wait(impl, ec); - } - - /// Start an asynchronous wait. - template - ASIO_INITFN_RESULT_TYPE(WaitHandler, - void (asio::error_code)) - async_wait(implementation_type& impl, - ASIO_MOVE_ARG(WaitHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_wait(impl, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_OBJECT_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_OBJECT_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/overlapped_handle.hpp b/Sources/Vendor/asio/include/asio/windows/overlapped_handle.hpp deleted file mode 100644 index 3d479ba..0000000 --- a/Sources/Vendor/asio/include/asio/windows/overlapped_handle.hpp +++ /dev/null @@ -1,331 +0,0 @@ -// -// windows/overlapped_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_OVERLAPPED_HANDLE_HPP -#define ASIO_WINDOWS_OVERLAPPED_HANDLE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/basic_io_object.hpp" -#include "asio/detail/throw_error.hpp" -#include "asio/detail/win_iocp_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#if defined(ASIO_HAS_MOVE) -# include -#endif // defined(ASIO_HAS_MOVE) - -#define ASIO_SVC_T asio::detail::win_iocp_handle_service - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Provides Windows handle functionality for objects that support -/// overlapped I/O. -/** - * The windows::overlapped_handle class provides the ability to wrap a Windows - * handle. The underlying object referred to by the handle must support - * overlapped I/O. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class overlapped_handle - : ASIO_SVC_ACCESS basic_io_object -{ -public: - /// The type of the executor associated with the object. - typedef io_context::executor_type executor_type; - - /// The native representation of a handle. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef ASIO_SVC_T::native_handle_type native_handle_type; -#endif - - /// An overlapped_handle is always the lowest layer. - typedef overlapped_handle lowest_layer_type; - - /// Construct an overlapped_handle without opening it. - /** - * This constructor creates a handle without opening it. - * - * @param io_context The io_context object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit overlapped_handle(asio::io_context& io_context) - : basic_io_object(io_context) - { - } - - /// Construct an overlapped_handle on an existing native handle. - /** - * This constructor creates a handle object to hold an existing native handle. - * - * @param io_context The io_context object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - overlapped_handle(asio::io_context& io_context, - const native_handle_type& handle) - : basic_io_object(io_context) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct an overlapped_handle from another. - /** - * This constructor moves a handle from one object to another. - * - * @param other The other overlapped_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c overlapped_handle(io_context&) constructor. - */ - overlapped_handle(overlapped_handle&& other) - : basic_io_object(std::move(other)) - { - } - - /// Move-assign an overlapped_handle from another. - /** - * This assignment operator moves a handle from one object to another. - * - * @param other The other overlapped_handle object from which the move will - * occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c overlapped_handle(io_context&) constructor. - */ - overlapped_handle& operator=(overlapped_handle&& other) - { - basic_io_object::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - -#if !defined(ASIO_NO_DEPRECATED) - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_context() - { - return basic_io_object::get_io_context(); - } - - /// (Deprecated: Use get_executor().) Get the io_context associated with the - /// object. - /** - * This function may be used to obtain the io_context object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_context object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - asio::io_context& get_io_service() - { - return basic_io_object::get_io_service(); - } -#endif // !defined(ASIO_NO_DEPRECATED) - - /// Get the executor associated with the object. - executor_type get_executor() ASIO_NOEXCEPT - { - return basic_io_object::get_executor(); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since an overlapped_handle cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since an overlapped_handle cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @throws asio::system_error Thrown on failure. - */ - void assign(const native_handle_type& handle) - { - asio::error_code ec; - this->get_service().assign(this->get_implementation(), handle, ec); - asio::detail::throw_error(ec, "assign"); - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param handle A native handle. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID assign(const native_handle_type& handle, - asio::error_code& ec) - { - this->get_service().assign(this->get_implementation(), handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open() const - { - return this->get_service().is_open(this->get_implementation()); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void close() - { - asio::error_code ec; - this->get_service().close(this->get_implementation(), ec); - asio::detail::throw_error(ec, "close"); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID close(asio::error_code& ec) - { - this->get_service().close(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle representation. - /** - * This function may be used to obtain the underlying representation of the - * handle. This is intended to allow access to native handle functionality - * that is not otherwise provided. - */ - native_handle_type native_handle() - { - return this->get_service().native_handle(this->get_implementation()); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @throws asio::system_error Thrown on failure. - */ - void cancel() - { - asio::error_code ec; - this->get_service().cancel(this->get_implementation(), ec); - asio::detail::throw_error(ec, "cancel"); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - ASIO_SYNC_OP_VOID cancel(asio::error_code& ec) - { - this->get_service().cancel(this->get_implementation(), ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - -protected: - /// Protected destructor to prevent deletion through this type. - /** - * This function destroys the handle, cancelling any outstanding asynchronous - * wait operations associated with the handle as if by calling @c cancel. - */ - ~overlapped_handle() - { - } -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#undef ASIO_SVC_T - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // !defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_OVERLAPPED_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/overlapped_ptr.hpp b/Sources/Vendor/asio/include/asio/windows/overlapped_ptr.hpp deleted file mode 100644 index ce0b2a4..0000000 --- a/Sources/Vendor/asio/include/asio/windows/overlapped_ptr.hpp +++ /dev/null @@ -1,116 +0,0 @@ -// -// windows/overlapped_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_OVERLAPPED_PTR_HPP -#define ASIO_WINDOWS_OVERLAPPED_PTR_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_WINDOWS_OVERLAPPED_PTR) \ - || defined(GENERATING_DOCUMENTATION) - -#include "asio/detail/noncopyable.hpp" -#include "asio/detail/win_iocp_overlapped_ptr.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Wraps a handler to create an OVERLAPPED object for use with overlapped I/O. -/** - * A special-purpose smart pointer used to wrap an application handler so that - * it can be passed as the LPOVERLAPPED argument to overlapped I/O functions. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class overlapped_ptr - : private noncopyable -{ -public: - /// Construct an empty overlapped_ptr. - overlapped_ptr() - : impl_() - { - } - - /// Construct an overlapped_ptr to contain the specified handler. - template - explicit overlapped_ptr(asio::io_context& io_context, - ASIO_MOVE_ARG(Handler) handler) - : impl_(io_context, ASIO_MOVE_CAST(Handler)(handler)) - { - } - - /// Destructor automatically frees the OVERLAPPED object unless released. - ~overlapped_ptr() - { - } - - /// Reset to empty. - void reset() - { - impl_.reset(); - } - - /// Reset to contain the specified handler, freeing any current OVERLAPPED - /// object. - template - void reset(asio::io_context& io_context, - ASIO_MOVE_ARG(Handler) handler) - { - impl_.reset(io_context, ASIO_MOVE_CAST(Handler)(handler)); - } - - /// Get the contained OVERLAPPED object. - OVERLAPPED* get() - { - return impl_.get(); - } - - /// Get the contained OVERLAPPED object. - const OVERLAPPED* get() const - { - return impl_.get(); - } - - /// Release ownership of the OVERLAPPED object. - OVERLAPPED* release() - { - return impl_.release(); - } - - /// Post completion notification for overlapped operation. Releases ownership. - void complete(const asio::error_code& ec, - std::size_t bytes_transferred) - { - impl_.complete(ec, bytes_transferred); - } - -private: - detail::win_iocp_overlapped_ptr impl_; -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_WINDOWS_OVERLAPPED_PTR_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/random_access_handle.hpp b/Sources/Vendor/asio/include/asio/windows/random_access_handle.hpp deleted file mode 100644 index 301d5f8..0000000 --- a/Sources/Vendor/asio/include/asio/windows/random_access_handle.hpp +++ /dev/null @@ -1,378 +0,0 @@ -// -// windows/random_access_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_RANDOM_ACCESS_HANDLE_HPP -#define ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/windows/overlapped_handle.hpp" - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/windows/basic_random_access_handle.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a random-access handle. -typedef basic_random_access_handle<> random_access_handle; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides random-access handle functionality. -/** - * The windows::random_access_handle class provides asynchronous and - * blocking random-access handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class random_access_handle - : public overlapped_handle -{ -public: - /// Construct a random_access_handle without opening it. - /** - * This constructor creates a random-access handle without opening it. The - * handle needs to be opened before data can be written to or read from it. - * - * @param io_context The io_context object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - */ - explicit random_access_handle(asio::io_context& io_context) - : overlapped_handle(io_context) - { - } - - /// Construct a random_access_handle on an existing native handle. - /** - * This constructor creates a random-access handle object to hold an existing - * native handle. - * - * @param io_context The io_context object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - * - * @param handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - random_access_handle(asio::io_context& io_context, - const native_handle_type& handle) - : overlapped_handle(io_context, handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a random_access_handle from another. - /** - * This constructor moves a random-access handle from one object to another. - * - * @param other The other random_access_handle object from which the - * move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c random_access_handle(io_context&) - * constructor. - */ - random_access_handle(random_access_handle&& other) - : overlapped_handle(std::move(other)) - { - } - - /// Move-assign a random_access_handle from another. - /** - * This assignment operator moves a random-access handle from one object to - * another. - * - * @param other The other random_access_handle object from which the - * move will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c random_access_handle(io_context&) - * constructor. - */ - random_access_handle& operator=(random_access_handle&& other) - { - overlapped_handle::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some_at operation may not write all of the data. Consider - * using the @ref write_at function if you need to ensure that all data is - * written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some_at(42, asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some_at(uint64_t offset, - const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some_at( - this->get_implementation(), offset, buffers, ec); - asio::detail::throw_error(ec, "write_some_at"); - return s; - } - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write_at function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return this->get_service().write_some_at( - this->get_implementation(), offset, buffers, ec); - } - - /// Start an asynchronous write at the specified offset. - /** - * This function is used to asynchronously write data to the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write_at function if you need to ensure that - * all data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some_at(42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some_at(uint64_t offset, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_write_some_at(this->get_implementation(), - offset, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some_at(42, asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some_at(uint64_t offset, - const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some_at( - this->get_implementation(), offset, buffers, ec); - asio::detail::throw_error(ec, "read_some_at"); - return s; - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return this->get_service().read_some_at( - this->get_implementation(), offset, buffers, ec); - } - - /// Start an asynchronous read at the specified offset. - /** - * This function is used to asynchronously read data from the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read_at function if you need to ensure that - * the requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some_at(42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some_at(uint64_t offset, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_read_some_at(this->get_implementation(), - offset, buffers, init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/random_access_handle_service.hpp b/Sources/Vendor/asio/include/asio/windows/random_access_handle_service.hpp deleted file mode 100644 index ebccf3e..0000000 --- a/Sources/Vendor/asio/include/asio/windows/random_access_handle_service.hpp +++ /dev/null @@ -1,214 +0,0 @@ -// -// windows/random_access_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_HPP -#define ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/detail/win_iocp_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Default service implementation for a random-access handle. -class random_access_handle_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::win_iocp_handle_service service_impl_type; - -public: - /// The type of a random-access handle implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new random-access handle service for the specified io_context. - explicit random_access_handle_service(asio::io_context& io_context) - : asio::detail::service_base< - random_access_handle_service>(io_context), - service_impl_(io_context) - { - } - - /// Construct a new random-access handle implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new random-access handle implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another random-access handle implementation. - void move_assign(implementation_type& impl, - random_access_handle_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a random-access handle implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native handle to a random-access handle. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - service_impl_.assign(impl, handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a random-access handle implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write the given data at the specified offset. - template - std::size_t write_some_at(implementation_type& impl, uint64_t offset, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.write_some_at(impl, offset, buffers, ec); - } - - /// Start an asynchronous write at the specified offset. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some_at(implementation_type& impl, - uint64_t offset, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_write_some_at(impl, - offset, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the specified offset. - template - std::size_t read_some_at(implementation_type& impl, uint64_t offset, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.read_some_at(impl, offset, buffers, ec); - } - - /// Start an asynchronous read at the specified offset. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some_at(implementation_type& impl, - uint64_t offset, const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_read_some_at(impl, - offset, buffers, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/stream_handle.hpp b/Sources/Vendor/asio/include/asio/windows/stream_handle.hpp deleted file mode 100644 index 8f0a21b..0000000 --- a/Sources/Vendor/asio/include/asio/windows/stream_handle.hpp +++ /dev/null @@ -1,362 +0,0 @@ -// -// windows/stream_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_STREAM_HANDLE_HPP -#define ASIO_WINDOWS_STREAM_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include "asio/windows/overlapped_handle.hpp" - -#if defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#if defined(ASIO_ENABLE_OLD_SERVICES) -# include "asio/windows/basic_stream_handle.hpp" -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -#if defined(ASIO_ENABLE_OLD_SERVICES) -// Typedef for the typical usage of a stream-oriented handle. -typedef basic_stream_handle<> stream_handle; -#else // defined(ASIO_ENABLE_OLD_SERVICES) -/// Provides stream-oriented handle functionality. -/** - * The windows::stream_handle class provides asynchronous and blocking - * stream-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -class stream_handle - : public overlapped_handle -{ -public: - /// Construct a stream_handle without opening it. - /** - * This constructor creates a stream handle without opening it. The handle - * needs to be opened and then connected or accepted before data can be sent - * or received on it. - * - * @param io_context The io_context object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit stream_handle(asio::io_context& io_context) - : overlapped_handle(io_context) - { - } - - /// Construct a stream_handle on an existing native handle. - /** - * This constructor creates a stream handle object to hold an existing native - * handle. - * - * @param io_context The io_context object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param handle The new underlying handle implementation. - * - * @throws asio::system_error Thrown on failure. - */ - stream_handle(asio::io_context& io_context, - const native_handle_type& handle) - : overlapped_handle(io_context, handle) - { - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a stream_handle from another. - /** - * This constructor moves a stream handle from one object to another. - * - * @param other The other stream_handle object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c stream_handle(io_context&) constructor. - */ - stream_handle(stream_handle&& other) - : overlapped_handle(std::move(other)) - { - } - - /// Move-assign a stream_handle from another. - /** - * This assignment operator moves a stream handle from one object to - * another. - * - * @param other The other stream_handle object from which the move - * will occur. - * - * @note Following the move, the moved-from object is in the same state as if - * constructed using the @c stream_handle(io_context&) constructor. - */ - stream_handle& operator=(stream_handle&& other) - { - overlapped_handle::operator=(std::move(other)); - return *this; - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().write_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "write_some"); - return s; - } - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().write_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a WriteHandler. - ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_write_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws asio::system_error Thrown on failure. An error code of - * asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some(asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - asio::error_code ec; - std::size_t s = this->get_service().read_some( - this->get_implementation(), buffers, ec); - asio::detail::throw_error(ec, "read_some"); - return s; - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - asio::error_code& ec) - { - return this->get_service().read_some( - this->get_implementation(), buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some(asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - // If you get an error on the following line it means that your handler does - // not meet the documented type requirements for a ReadHandler. - ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check; - - asio::async_completion init(handler); - - this->get_service().async_read_some( - this->get_implementation(), buffers, init.completion_handler); - - return init.result.get(); - } -}; -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // ASIO_WINDOWS_STREAM_HANDLE_HPP diff --git a/Sources/Vendor/asio/include/asio/windows/stream_handle_service.hpp b/Sources/Vendor/asio/include/asio/windows/stream_handle_service.hpp deleted file mode 100644 index 1c665d5..0000000 --- a/Sources/Vendor/asio/include/asio/windows/stream_handle_service.hpp +++ /dev/null @@ -1,210 +0,0 @@ -// -// windows/stream_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WINDOWS_STREAM_HANDLE_SERVICE_HPP -#define ASIO_WINDOWS_STREAM_HANDLE_SERVICE_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_ENABLE_OLD_SERVICES) - -#if defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -#include -#include "asio/async_result.hpp" -#include "asio/detail/win_iocp_handle_service.hpp" -#include "asio/error.hpp" -#include "asio/io_context.hpp" - -#include "asio/detail/push_options.hpp" - -namespace asio { -namespace windows { - -/// Default service implementation for a stream handle. -class stream_handle_service -#if defined(GENERATING_DOCUMENTATION) - : public asio::io_context::service -#else - : public asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static asio::io_context::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::win_iocp_handle_service service_impl_type; - -public: - /// The type of a stream handle implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_handle_type; -#else - typedef service_impl_type::native_handle_type native_handle_type; -#endif - - /// Construct a new stream handle service for the specified io_context. - explicit stream_handle_service(asio::io_context& io_context) - : asio::detail::service_base(io_context), - service_impl_(io_context) - { - } - - /// Construct a new stream handle implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - -#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - /// Move-construct a new stream handle implementation. - void move_construct(implementation_type& impl, - implementation_type& other_impl) - { - service_impl_.move_construct(impl, other_impl); - } - - /// Move-assign from another stream handle implementation. - void move_assign(implementation_type& impl, - stream_handle_service& other_service, - implementation_type& other_impl) - { - service_impl_.move_assign(impl, other_service.service_impl_, other_impl); - } -#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) - - /// Destroy a stream handle implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native handle to a stream handle. - ASIO_SYNC_OP_VOID assign(implementation_type& impl, - const native_handle_type& handle, asio::error_code& ec) - { - service_impl_.assign(impl, handle, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream handle implementation. - ASIO_SYNC_OP_VOID close(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.close(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Get the native handle implementation. - native_handle_type native_handle(implementation_type& impl) - { - return service_impl_.native_handle(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - ASIO_SYNC_OP_VOID cancel(implementation_type& impl, - asio::error_code& ec) - { - service_impl_.cancel(impl, ec); - ASIO_SYNC_OP_VOID_RETURN(ec); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) - async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_write_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, asio::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - ASIO_INITFN_RESULT_TYPE(ReadHandler, - void (asio::error_code, std::size_t)) - async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, - ASIO_MOVE_ARG(ReadHandler) handler) - { - asio::async_completion init(handler); - - service_impl_.async_read_some(impl, buffers, init.completion_handler); - - return init.result.get(); - } - -private: - // Destroy all user-defined handler objects owned by the service. - void shutdown() - { - service_impl_.shutdown(); - } - - // The platform-specific implementation. - service_impl_type service_impl_; -}; - -} // namespace windows -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#endif // defined(ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#endif // defined(ASIO_ENABLE_OLD_SERVICES) - -#endif // ASIO_WINDOWS_STREAM_HANDLE_SERVICE_HPP diff --git a/Sources/Vendor/asio/include/asio/write.hpp b/Sources/Vendor/asio/include/asio/write.hpp deleted file mode 100644 index 7f9251a..0000000 --- a/Sources/Vendor/asio/include/asio/write.hpp +++ /dev/null @@ -1,928 +0,0 @@ -// -// write.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WRITE_HPP -#define ASIO_WRITE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/buffer.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** - * @defgroup write asio::write - * - * @brief The @c write function is a composed operation that writes a certain - * amount of data to a stream before returning. - */ -/*@{*/ - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write(s, asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write(s, asio::buffer(data, size), ec); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - asio::error_code& ec, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write(s, asio::buffer(data, size), - * asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Successfully written data is automatically consumed from the buffers. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Successfully written data is automatically consumed from the buffers. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Successfully written data is automatically consumed from the buffers. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Successfully written data is automatically consumed from the buffers. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write(SyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, asio::error_code& ec, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, b, - * asio::transfer_all()); @endcode - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::write( - * s, b, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b, - asio::error_code& ec); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition, asio::error_code& ec); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_write asio::async_write - * - * @brief The @c async_write function is a composed asynchronous operation that - * writes a certain amount of data to a stream before completion. - */ -/*@{*/ - -/// Start an asynchronous operation to write all of the supplied data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other write operations (such - * as async_write, the stream's async_write_some function, or any other composed - * operations that perform writes) until this operation completes. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * asio::async_write(s, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Start an asynchronous operation to write a certain amount of data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other write operations (such - * as async_write, the stream's async_write_some function, or any other composed - * operations that perform writes) until this operation completes. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's async_write_some function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::async_write(s, - * asio::buffer(data, size), - * asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_const_buffer_sequence::value - >::type* = 0); - -/// Start an asynchronous operation to write all of the supplied data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other write operations (such - * as async_write, the stream's async_write_some function, or any other composed - * operations that perform writes) until this operation completes. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. Successfully written - * data is automatically consumed from the buffers. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -/// Start an asynchronous operation to write a certain amount of data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied dynamic buffer sequence has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other write operations (such - * as async_write, the stream's async_write_some function, or any other composed - * operations that perform writes) until this operation completes. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers The dynamic buffer sequence from which data will be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. Successfully written - * data is automatically consumed from the buffers. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's async_write_some function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, - ASIO_MOVE_ARG(DynamicBuffer) buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler, - typename enable_if< - is_dynamic_buffer::type>::value - >::type* = 0); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to write all of the supplied data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other write operations (such - * as async_write, the stream's async_write_some function, or any other composed - * operations that perform writes) until this operation completes. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, basic_streambuf& b, - ASIO_MOVE_ARG(WriteHandler) handler); - -/// Start an asynchronous operation to write a certain amount of data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function, and is known as a composed operation. The - * program must ensure that the stream performs no other write operations (such - * as async_write, the stream's async_write_some function, or any other composed - * operations that perform writes) until this operation completes. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's async_write_some function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const asio::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write(AsyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/write.hpp" - -#endif // ASIO_WRITE_HPP diff --git a/Sources/Vendor/asio/include/asio/write_at.hpp b/Sources/Vendor/asio/include/asio/write_at.hpp deleted file mode 100644 index b7e5da4..0000000 --- a/Sources/Vendor/asio/include/asio/write_at.hpp +++ /dev/null @@ -1,679 +0,0 @@ -// -// write_at.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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_WRITE_AT_HPP -#define ASIO_WRITE_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include "asio/detail/config.hpp" -#include -#include "asio/async_result.hpp" -#include "asio/detail/cstdint.hpp" -#include "asio/error.hpp" - -#if !defined(ASIO_NO_EXTENSIONS) -# include "asio/basic_streambuf_fwd.hpp" -#endif // !defined(ASIO_NO_EXTENSIONS) - -#include "asio/detail/push_options.hpp" - -namespace asio { - -/** - * @defgroup write_at asio::write_at - * - * @brief The @c write_at function is a composed operation that writes a - * certain amount of data at a specified offset before returning. - */ -/*@{*/ - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write_at(d, 42, asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::write_at( - * d, offset, buffers, - * asio::transfer_all()); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers); - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write_at(d, 42, - * asio::buffer(data, size), ec); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code asio::write_at( - * d, offset, buffers, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - asio::error_code& ec); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::write_at(d, 42, asio::buffer(data, size), - * asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, asio::error_code& ec); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code asio::write_at( - * d, 42, b, - * asio::transfer_all()); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, basic_streambuf& b); - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes transferred. - * - * @note This overload is equivalent to calling: - * @code asio::write_at( - * d, 42, b, - * asio::transfer_all(), ec); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - uint64_t offset, basic_streambuf& b, - asio::error_code& ec); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws asio::system_error Thrown on failure. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition, - asio::error_code& ec); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ -/** - * @defgroup async_write_at asio::async_write_at - * - * @brief The @c async_write_at function is a composed asynchronous operation - * that writes a certain amount of data at the specified offset before - * completion. - */ -/*@{*/ - -/// Start an asynchronous operation to write all of the supplied data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_write_some_at function, and is known as a composed operation. - * The program must ensure that the device performs no overlapping - * write operations (such as async_write_at, the device's async_write_some_at - * function, or any other composed operations that perform writes) until this - * operation completes. Operations are overlapping if the regions defined by - * their offsets, and the numbers of bytes to write, intersect. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * asio::async_write_at(d, 42, asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, uint64_t offset, - const ConstBufferSequence& buffers, - ASIO_MOVE_ARG(WriteHandler) handler); - -/// Start an asynchronous operation to write a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_write_some_at function, and is known as a composed operation. - * The program must ensure that the device performs no overlapping - * write operations (such as async_write_at, the device's async_write_some_at - * function, or any other composed operations that perform writes) until this - * operation completes. Operations are overlapping if the regions defined by - * their offsets, and the numbers of bytes to write, intersect. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's async_write_some_at function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code asio::async_write_at(d, 42, - * asio::buffer(data, size), - * asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, - uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler); - -#if !defined(ASIO_NO_EXTENSIONS) -#if !defined(ASIO_NO_IOSTREAM) - -/// Start an asynchronous operation to write all of the supplied data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_write_some_at function, and is known as a composed operation. - * The program must ensure that the device performs no overlapping - * write operations (such as async_write_at, the device's async_write_some_at - * function, or any other composed operations that perform writes) until this - * operation completes. Operations are overlapping if the regions defined by - * their offsets, and the numbers of bytes to write, intersect. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, uint64_t offset, - basic_streambuf& b, ASIO_MOVE_ARG(WriteHandler) handler); - -/// Start an asynchronous operation to write a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_write_some_at function, and is known as a composed operation. - * The program must ensure that the device performs no overlapping - * write operations (such as async_write_at, the device's async_write_some_at - * function, or any other composed operations that perform writes) until this - * operation completes. Operations are overlapping if the regions defined by - * their offsets, and the numbers of bytes to write, intersect. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some_at operation. - * const asio::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's async_write_some_at function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const asio::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * asio::io_context::post(). - */ -template -ASIO_INITFN_RESULT_TYPE(WriteHandler, - void (asio::error_code, std::size_t)) -async_write_at(AsyncRandomAccessWriteDevice& d, uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition, - ASIO_MOVE_ARG(WriteHandler) handler); - -#endif // !defined(ASIO_NO_IOSTREAM) -#endif // !defined(ASIO_NO_EXTENSIONS) - -/*@}*/ - -} // namespace asio - -#include "asio/detail/pop_options.hpp" - -#include "asio/impl/write_at.hpp" - -#endif // ASIO_WRITE_AT_HPP diff --git a/Sources/Vendor/asio/include/asio/yield.hpp b/Sources/Vendor/asio/include/asio/yield.hpp deleted file mode 100644 index b527ac9..0000000 --- a/Sources/Vendor/asio/include/asio/yield.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// -// yield.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "coroutine.hpp" - -#ifndef reenter -# define reenter(c) ASIO_CORO_REENTER(c) -#endif - -#ifndef yield -# define yield ASIO_CORO_YIELD -#endif - -#ifndef fork -# define fork ASIO_CORO_FORK -#endif diff --git a/Sources/Vendor/asio/install-sh b/Sources/Vendor/asio/install-sh deleted file mode 100755 index 8175c64..0000000 --- a/Sources/Vendor/asio/install-sh +++ /dev/null @@ -1,518 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2018-03-11.20; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# 'make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -tab=' ' -nl=' -' -IFS=" $tab$nl" - -# Set DOITPROG to "echo" to test this script. - -doit=${DOITPROG-} -doit_exec=${doit:-exec} - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -is_target_a_directory=possibly - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) - is_target_a_directory=always - dst_arg=$2 - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - shift;; - - -T) is_target_a_directory=never;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -# We allow the use of options -d and -T together, by making -d -# take the precedence; this is for compatibility with GNU install. - -if test -n "$dir_arg"; then - if test -n "$dst_arg"; then - echo "$0: target directory not allowed when installing a directory." >&2 - exit 1 - fi -fi - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - # Protect names problematic for 'test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call 'install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - if test $# -gt 1 || test "$is_target_a_directory" = always; then - if test ! -d "$dst_arg"; then - echo "$0: $dst_arg: Is not a directory." >&2 - exit 1 - fi - fi -fi - -if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names problematic for 'test' and other utilities. - case $src in - -* | [=\(\)!]) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - dst=$dst_arg - - # If destination is a directory, append the input filename. - if test -d "$dst"; then - if test "$is_target_a_directory" = never; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dstbase=`basename "$src"` - case $dst in - */) dst=$dst$dstbase;; - *) dst=$dst/$dstbase;; - esac - dstdir_status=0 - else - dstdir=`dirname "$dst"` - test -d "$dstdir" - dstdir_status=$? - fi - fi - - case $dstdir in - */) dstdirslash=$dstdir;; - *) dstdirslash=$dstdir/;; - esac - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - # Note that $RANDOM variable is not portable (e.g. dash); Use it - # here however when possible just to lower collision chance. - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - - trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - - # Because "mkdir -p" follows existing symlinks and we likely work - # directly in world-writeable /tmp, make sure that the '$tmpdir' - # directory is successfully created first before we actually test - # 'mkdir -p' feature. - if (umask $mkdir_umask && - $mkdirprog $mkdir_mode "$tmpdir" && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - test_tmpdir="$tmpdir/a" - ls_ld_tmpdir=`ls -ld "$test_tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - [-=\(\)!]*) prefix='./';; - *) prefix='';; - esac - - oIFS=$IFS - IFS=/ - set -f - set fnord $dstdir - shift - set +f - IFS=$oIFS - - prefixes= - - for d - do - test X"$d" = X && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=${dstdirslash}_inst.$$_ - rmtmp=${dstdirslash}_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - set +f && - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/Sources/Vendor/asio/missing b/Sources/Vendor/asio/missing deleted file mode 100755 index 625aeb1..0000000 --- a/Sources/Vendor/asio/missing +++ /dev/null @@ -1,215 +0,0 @@ -#! /bin/sh -# Common wrapper for a few potentially missing GNU programs. - -scriptversion=2018-03-07.03; # UTC - -# Copyright (C) 1996-2018 Free Software Foundation, Inc. -# Originally written by Fran,cois Pinard , 1996. - -# 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, 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 . - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try '$0 --help' for more information" - exit 1 -fi - -case $1 in - - --is-lightweight) - # Used by our autoconf macros to check whether the available missing - # script is modern enough. - exit 0 - ;; - - --run) - # Back-compat with the calling convention used by older automake. - shift - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due -to PROGRAM being missing or too old. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man - -Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and -'g' are ignored when checking the name. - -Send bug reports to ." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: unknown '$1' option" - echo 1>&2 "Try '$0 --help' for more information" - exit 1 - ;; - -esac - -# Run the given program, remember its exit status. -"$@"; st=$? - -# If it succeeded, we are done. -test $st -eq 0 && exit 0 - -# Also exit now if we it failed (or wasn't found), and '--version' was -# passed; such an option is passed most likely to detect whether the -# program is present and works. -case $2 in --version|--help) exit $st;; esac - -# Exit code 63 means version mismatch. This often happens when the user -# tries to use an ancient version of a tool on a file that requires a -# minimum version. -if test $st -eq 63; then - msg="probably too old" -elif test $st -eq 127; then - # Program was missing. - msg="missing on your system" -else - # Program was found and executed, but failed. Give up. - exit $st -fi - -perl_URL=https://www.perl.org/ -flex_URL=https://github.com/westes/flex -gnu_software_URL=https://www.gnu.org/software - -program_details () -{ - case $1 in - aclocal|automake) - echo "The '$1' program is part of the GNU Automake package:" - echo "<$gnu_software_URL/automake>" - echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/autoconf>" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - autoconf|autom4te|autoheader) - echo "The '$1' program is part of the GNU Autoconf package:" - echo "<$gnu_software_URL/autoconf/>" - echo "It also requires GNU m4 and Perl in order to run:" - echo "<$gnu_software_URL/m4/>" - echo "<$perl_URL>" - ;; - esac -} - -give_advice () -{ - # Normalize program name to check for. - normalized_program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - - printf '%s\n' "'$1' is $msg." - - configure_deps="'configure.ac' or m4 files included by 'configure.ac'" - case $normalized_program in - autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' - ;; - autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" - echo "$configure_deps." - program_details 'autoheader' - ;; - automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" - echo "$configure_deps." - program_details 'aclocal' - ;; - autom4te*) - echo "You might have modified some maintainer files that require" - echo "the 'autom4te' program to be rebuilt." - program_details 'autom4te' - ;; - bison*|yacc*) - echo "You should only need it if you modified a '.y' file." - echo "You may want to install the GNU Bison package:" - echo "<$gnu_software_URL/bison/>" - ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; - help2man*) - echo "You should only need it if you modified a dependency" \ - "of a man page." - echo "You may want to install the GNU Help2man package:" - echo "<$gnu_software_URL/help2man/>" - ;; - makeinfo*) - echo "You should only need it if you modified a '.texi' file, or" - echo "any other file indirectly affecting the aspect of the manual." - echo "You might want to install the Texinfo package:" - echo "<$gnu_software_URL/texinfo/>" - echo "The spurious makeinfo call might also be the consequence of" - echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" - echo "want to install GNU make:" - echo "<$gnu_software_URL/make/>" - ;; - *) - echo "You might have modified some files without having the proper" - echo "tools for further handling them. Check the 'README' file, it" - echo "often tells you about the needed prerequisites for installing" - echo "this package. You may also peek at any GNU archive site, in" - echo "case some other package contains this missing '$1' program." - ;; - esac -} - -give_advice "$1" | sed -e '1s/^/WARNING: /' \ - -e '2,$s/^/ /' >&2 - -# Propagate the correct exit status (expected to be 127 for a program -# not found, 63 for a program that failed due to version mismatch). -exit $st - -# Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC0" -# time-stamp-end: "; # UTC" -# End: diff --git a/Sources/Vendor/asio/src/Makefile.am b/Sources/Vendor/asio/src/Makefile.am deleted file mode 100644 index 4ec11cd..0000000 --- a/Sources/Vendor/asio/src/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -if !STANDALONE -EXAMPLES_CPP03 = examples/cpp03 -endif - -if HAVE_CXX11 -EXAMPLES_CPP11 = examples/cpp11 -endif - -if HAVE_CXX14 -EXAMPLES_CPP14 = examples/cpp14 -endif - -SUBDIRS = $(EXAMPLES_CPP03) $(EXAMPLES_CPP11) $(EXAMPLES_CPP14) tests - -DIST_SUBDIRS = examples/cpp03 examples/cpp11 examples/cpp14 examples/cpp17 tests - -EXTRA_DIST = \ - Makefile.mgw \ - Makefile.msc \ - tools/handlerviz.pl - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/Makefile.in b/Sources/Vendor/asio/src/Makefile.in deleted file mode 100644 index 144b2e7..0000000 --- a/Sources/Vendor/asio/src/Makefile.in +++ /dev/null @@ -1,605 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ - ctags-recursive dvi-recursive html-recursive info-recursive \ - install-data-recursive install-dvi-recursive \ - install-exec-recursive install-html-recursive \ - install-info-recursive install-pdf-recursive \ - install-ps-recursive install-recursive installcheck-recursive \ - installdirs-recursive pdf-recursive ps-recursive \ - tags-recursive uninstall-recursive -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -am__recursive_targets = \ - $(RECURSIVE_TARGETS) \ - $(RECURSIVE_CLEAN_TARGETS) \ - $(am__extra_recursive_targets) -AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ - distdir distdir-am -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -am__relativize = \ - dir0=`pwd`; \ - sed_first='s,^\([^/]*\)/.*$$,\1,'; \ - sed_rest='s,^[^/]*/*,,'; \ - sed_last='s,^.*/\([^/]*\)$$,\1,'; \ - sed_butlast='s,/*[^/]*$$,,'; \ - while test -n "$$dir1"; do \ - first=`echo "$$dir1" | sed -e "$$sed_first"`; \ - if test "$$first" != "."; then \ - if test "$$first" = ".."; then \ - dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ - dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ - else \ - first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ - if test "$$first2" = "$$first"; then \ - dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ - else \ - dir2="../$$dir2"; \ - fi; \ - dir0="$$dir0"/"$$first"; \ - fi; \ - fi; \ - dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ - done; \ - reldir="$$dir2" -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -@STANDALONE_FALSE@EXAMPLES_CPP03 = examples/cpp03 -@HAVE_CXX11_TRUE@EXAMPLES_CPP11 = examples/cpp11 -@HAVE_CXX14_TRUE@EXAMPLES_CPP14 = examples/cpp14 -SUBDIRS = $(EXAMPLES_CPP03) $(EXAMPLES_CPP11) $(EXAMPLES_CPP14) tests -DIST_SUBDIRS = examples/cpp03 examples/cpp11 examples/cpp14 examples/cpp17 tests -EXTRA_DIST = \ - Makefile.mgw \ - Makefile.msc \ - tools/handlerviz.pl - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -# This directory's subdirectories are mostly independent; you can cd -# into them and run 'make' without going through this Makefile. -# To change the values of 'make' variables: instead of editing Makefiles, -# (1) if the variable is set in 'config.status', edit 'config.status' -# (which will cause the Makefiles to be regenerated when you run 'make'); -# (2) otherwise, pass the desired values on the 'make' command line. -$(am__recursive_targets): - @fail=; \ - if $(am__make_keepgoing); then \ - failcom='fail=yes'; \ - else \ - failcom='exit 1'; \ - fi; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-recursive -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-recursive - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-recursive - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - $(am__make_dryrun) \ - || test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ - $(am__relativize); \ - new_distdir=$$reldir; \ - dir1=$$subdir; dir2="$(top_distdir)"; \ - $(am__relativize); \ - new_top_distdir=$$reldir; \ - echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ - echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ - ($(am__cd) $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$new_top_distdir" \ - distdir="$$new_distdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - am__skip_mode_fix=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -html-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-dvi: install-dvi-recursive - -install-dvi-am: - -install-exec-am: - -install-html: install-html-recursive - -install-html-am: - -install-info: install-info-recursive - -install-info-am: - -install-man: - -install-pdf: install-pdf-recursive - -install-pdf-am: - -install-ps: install-ps-recursive - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(am__recursive_targets) install-am install-strip - -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ - check-am clean clean-generic cscopelist-am ctags ctags-am \ - distclean distclean-generic distclean-tags distdir dvi dvi-am \ - html html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/Makefile.mgw b/Sources/Vendor/asio/src/Makefile.mgw deleted file mode 100644 index babd6dc..0000000 --- a/Sources/Vendor/asio/src/Makefile.mgw +++ /dev/null @@ -1,223 +0,0 @@ -ifndef BOOSTDIR -BOOSTDIR = ../../boost_1_34_1 -endif - -CXXFLAGS = -g -O2 -Wall -mthreads -I../include -I$(BOOSTDIR) -LDFLAGS = -g -O2 -mthreads -LIBS = -lws2_32 -lmswsock -DEFINES = -D_WIN32_WINNT=0x0501 - -PERFORMANCE_TEST_EXES = \ - tests/performance/client.exe \ - tests/performance/server.exe - -UNIT_TEST_EXES = \ - tests/unit/basic_datagram_socket.exe \ - tests/unit/basic_deadline_timer.exe \ - tests/unit/basic_raw_socket.exe \ - tests/unit/basic_seq_packet_socket.exe \ - tests/unit/basic_serial_port.exe \ - tests/unit/basic_signal_set.exe \ - tests/unit/basic_socket_acceptor.exe \ - tests/unit/basic_stream_socket.exe \ - tests/unit/basic_streambuf.exe \ - tests/unit/basic_waitable_timer.exe \ - tests/unit/buffered_read_stream.exe \ - tests/unit/buffered_stream.exe \ - tests/unit/buffered_write_stream.exe \ - tests/unit/buffer.exe \ - tests/unit/buffers_iterator.exe \ - tests/unit/completion_condition.exe \ - tests/unit/connect.exe \ - tests/unit/coroutine.exe \ - tests/unit/datagram_socket_service.exe \ - tests/unit/deadline_timer_service.exe \ - tests/unit/deadline_timer.exe \ - tests/unit/error.exe \ - tests/unit/generic/basic_endpoint.exe \ - tests/unit/generic/datagram_protocol.exe \ - tests/unit/generic/raw_protocol.exe \ - tests/unit/generic/seq_packet_protocol.exe \ - tests/unit/generic/stream_protocol.exe \ - tests/unit/high_resolution_timer.exe \ - tests/unit/io_context.exe \ - tests/unit/ip/address.exe \ - tests/unit/ip/address_v4.exe \ - tests/unit/ip/address_v6.exe \ - tests/unit/ip/basic_endpoint.exe \ - tests/unit/ip/basic_resolver.exe \ - tests/unit/ip/basic_resolver_entry.exe \ - tests/unit/ip/basic_resolver_iterator.exe \ - tests/unit/ip/basic_resolver_query.exe \ - tests/unit/ip/host_name.exe \ - tests/unit/ip/icmp.exe \ - tests/unit/ip/multicast.exe \ - tests/unit/ip/resolver_query_base.exe \ - tests/unit/ip/resolver_service.exe \ - tests/unit/ip/tcp.exe \ - tests/unit/ip/udp.exe \ - tests/unit/ip/unicast.exe \ - tests/unit/ip/v6_only.exe \ - tests/unit/is_read_buffered.exe \ - tests/unit/is_write_buffered.exe \ - tests/unit/placeholders.exe \ - tests/unit/raw_socket_service.exe \ - tests/unit/read.exe \ - tests/unit/read_at.exe \ - tests/unit/read_until.exe \ - tests/unit/seq_packet_socket_service.exe \ - tests/unit/serial_port.exe \ - tests/unit/serial_port_base.exe \ - tests/unit/serial_port_service.exe \ - tests/unit/signal_set.exe \ - tests/unit/signal_set_service.exe \ - tests/unit/socket_acceptor_service.exe \ - tests/unit/socket_base.exe \ - tests/unit/steady_timer.exe \ - tests/unit/strand.exe \ - tests/unit/stream_socket_service.exe \ - tests/unit/streambuf.exe \ - tests/unit/system_executor.exe \ - tests/unit/system_context.exe \ - tests/unit/system_timer.exe \ - tests/unit/thread.exe \ - tests/unit/time_traits.exe \ - tests/unit/ts/buffer.exe \ - tests/unit/ts/executor.exe \ - tests/unit/ts/internet.exe \ - tests/unit/ts/io_context.exe \ - tests/unit/ts/net.exe \ - tests/unit/ts/netfwd.exe \ - tests/unit/ts/socket.exe \ - tests/unit/ts/timer.exe \ - tests/unit/waitable_timer_service.exe \ - tests/unit/windows/basic_handle.exe \ - tests/unit/windows/basic_object_handle.exe \ - tests/unit/windows/basic_random_access_handle.exe \ - tests/unit/windows/basic_stream_handle.exe \ - tests/unit/windows/object_handle.exe \ - tests/unit/windows/object_handle_service.exe \ - tests/unit/windows/overlapped_ptr.exe \ - tests/unit/windows/random_access_handle.exe \ - tests/unit/windows/random_access_handle_service.exe \ - tests/unit/windows/stream_handle.exe \ - tests/unit/windows/stream_handle_service.exe \ - tests/unit/write.exe \ - tests/unit/write_at.exe - -EXAMPLE_EXES = \ - examples/cpp03/allocation/server.exe \ - examples/cpp03/buffers/reference_counted.exe \ - examples/cpp03/chat/chat_client.exe \ - examples/cpp03/chat/chat_server.exe \ - examples/cpp03/echo/async_tcp_echo_server.exe \ - examples/cpp03/echo/async_udp_echo_server.exe \ - examples/cpp03/echo/blocking_tcp_echo_client.exe \ - examples/cpp03/echo/blocking_tcp_echo_server.exe \ - examples/cpp03/echo/blocking_udp_echo_client.exe \ - examples/cpp03/echo/blocking_udp_echo_server.exe \ - examples/cpp03/http/client/async_client.exe \ - examples/cpp03/http/client/sync_client.exe \ - examples/cpp03/icmp/ping.exe \ - examples/cpp03/invocation/prioritised_handlers.exe \ - examples/cpp03/iostreams/daytime_client.exe \ - examples/cpp03/iostreams/daytime_server.exe \ - examples/cpp03/iostreams/http_client.exe \ - examples/cpp03/multicast/receiver.exe \ - examples/cpp03/multicast/sender.exe \ - examples/cpp03/socks4/sync_client.exe \ - examples/cpp03/timeouts/async_tcp_client.exe \ - examples/cpp03/timeouts/blocking_tcp_client.exe \ - examples/cpp03/timeouts/blocking_token_tcp_client.exe \ - examples/cpp03/timeouts/blocking_udp_client.exe \ - examples/cpp03/timeouts/server.exe \ - examples/cpp03/timers/time_t_timer.exe \ - examples/cpp03/tutorial/timer1/timer.exe \ - examples/cpp03/tutorial/timer2/timer.exe \ - examples/cpp03/tutorial/timer3/timer.exe \ - examples/cpp03/tutorial/timer4/timer.exe \ - examples/cpp03/tutorial/timer5/timer.exe \ - examples/cpp03/tutorial/daytime1/client.exe \ - examples/cpp03/tutorial/daytime2/server.exe \ - examples/cpp03/tutorial/daytime3/server.exe \ - examples/cpp03/tutorial/daytime4/client.exe \ - examples/cpp03/tutorial/daytime5/server.exe \ - examples/cpp03/tutorial/daytime6/server.exe \ - examples/cpp03/tutorial/daytime7/server.exe \ - examples/cpp03/windows/transmit_file.exe - -OTHER_EXAMPLE_EXES = \ - examples/cpp03/http/server/http_server.exe \ - examples/cpp03/http/server2/http_server.exe \ - examples/cpp03/http/server3/http_server.exe \ - examples/cpp03/services/daytime_client.exe - -all: \ - $(PERFORMANCE_TEST_EXES) \ - $(UNIT_TEST_EXES) \ - $(EXAMPLE_EXES) \ - $(OTHER_EXAMPLE_EXES) - -check: $(UNIT_TEST_EXES) $(addprefix run.,$(UNIT_TEST_EXES)) - -$(addprefix run.,$(UNIT_TEST_EXES)):: - @echo === Running $(@:run.%=%) === - @$(@:run.%=%) - @echo. - -clean: - -rm -f $(PERFORMANCE_TEST_EXES) - -rm -f $(PERFORMANCE_TEST_EXES:.exe=.o) - -rm -f $(UNIT_TEST_OBJ) - -rm -f $(UNIT_TEST_EXES) - -rm -f $(UNIT_TEST_EXES:.exe=.o) - -rm -f $(EXAMPLE_EXES) - -rm -f $(EXAMPLE_EXES:.exe=.o) - -rm -f $(OTHER_EXAMPLE_EXES) - -rm -f $(OTHER_EXAMPLE_EXES:.exe=.o) - -$(UNIT_TEST_EXES): %.exe: %.o - g++ -o$@ $(LDFLAGS) $< $(LIBS) - -$(PERFORMANCE_TEST_EXES) $(EXAMPLE_EXES): %.exe: %.o - g++ -o$@ $(LDFLAGS) $< $(LIBS) - -examples/cpp03/http/server/http_server.exe: \ - examples/cpp03/http/server/connection.o \ - examples/cpp03/http/server/connection_manager.o \ - examples/cpp03/http/server/main.o \ - examples/cpp03/http/server/mime_types.o \ - examples/cpp03/http/server/reply.o \ - examples/cpp03/http/server/request_handler.o \ - examples/cpp03/http/server/request_parser.o \ - examples/cpp03/http/server/server.o - g++ -o$@ $(LDFLAGS) $^ $(LIBS) - -examples/cpp03/http/server2/http_server.exe: \ - examples/cpp03/http/server2/connection.o \ - examples/cpp03/http/server2/io_context_pool.o \ - examples/cpp03/http/server2/main.o \ - examples/cpp03/http/server2/mime_types.o \ - examples/cpp03/http/server2/reply.o \ - examples/cpp03/http/server2/request_handler.o \ - examples/cpp03/http/server2/request_parser.o \ - examples/cpp03/http/server2/server.o - g++ -o$@ $(LDFLAGS) $^ $(LIBS) - -examples/cpp03/http/server3/http_server.exe: \ - examples/cpp03/http/server3/connection.o \ - examples/cpp03/http/server3/main.o \ - examples/cpp03/http/server3/mime_types.o \ - examples/cpp03/http/server3/reply.o \ - examples/cpp03/http/server3/request_handler.o \ - examples/cpp03/http/server3/request_parser.o \ - examples/cpp03/http/server3/server.o - g++ -o$@ $(LDFLAGS) $^ $(LIBS) - -examples/cpp03/services/daytime_client.exe: \ - examples/cpp03/services/daytime_client.o \ - examples/cpp03/services/logger_service.o - g++ -o$@ $(LDFLAGS) $^ $(LIBS) - -.cpp.o: - g++ -o$@ -c $(CXXFLAGS) $(DEFINES) $< diff --git a/Sources/Vendor/asio/src/Makefile.msc b/Sources/Vendor/asio/src/Makefile.msc deleted file mode 100644 index 04fbe51..0000000 --- a/Sources/Vendor/asio/src/Makefile.msc +++ /dev/null @@ -1,469 +0,0 @@ -!ifndef BOOSTDIR -BOOSTDIR = ../../boost_1_34_1 -!endif - -COMMON_CXXFLAGS = -nologo -EHac -GR -I. -I../include - -!ifdef WARNINGS -WARNINGS_CXXFLAGS = -W4 -wd4512 -wd4447 -!endif - -!ifdef STATICRTL -! ifdef DEBUG -DEBUG_CXXFLAGS = -Zi -MTd -! else -DEBUG_CXXFLAGS = -O2 -MT -! endif -!else -! ifdef DEBUG -DEBUG_CXXFLAGS = -Zi -MDd -! else -DEBUG_CXXFLAGS = -O2 -MD -! endif -!endif - -!ifdef UNICODE -UNICODE_CXXFLAGS = -DUNICODE -D_UNICODE -!endif - -!ifdef TRACKING -TRACKING_CXXFLAGS = -DASIO_ENABLE_HANDLER_TRACKING -!endif - -!ifndef _WIN32_WINNT -! ifdef STORE -_WIN32_WINNT=0x0603 -! else -_WIN32_WINNT=0x0501 -! endif -!endif - -!ifdef WIN9X -DEFINES = \ - -DASIO_DISABLE_IOCP \ - -D_WIN32_WINNT=$(_WIN32_WINNT) \ - -DBOOST_ALL_NO_LIB \ - -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING -!else -! ifdef STORE -DEFINES = \ - -DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP \ - -DBOOST_ALL_NO_LIB -D_WIN32_WINNT=$(_WIN32_WINNT) \ - -DUNICODE -D_UNICODE \ - -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING -! else -! ifdef WINRT -DEFINES = \ - -ZW -FI SDKDDKVer.h -FI winapifamily.h -DWINAPI_FAMILY=WINAPI_PARTITION_APP \ - -DBOOST_ALL_NO_LIB \ - -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING -! else -DEFINES = \ - -D_WIN32_WINNT=$(_WIN32_WINNT) \ - -DBOOST_ALL_NO_LIB \ - -DBOOST_CHRONO_DONT_PROVIDE_HYBRID_ERROR_HANDLING -! endif -! endif -!endif - -!ifdef SEPARATE_COMPILATION -LIBS = asio.lib -SEPARATE_COMPILATION_CXXFLAGS = \ - -DASIO_SEPARATE_COMPILATION \ - -DASIO_ENABLE_CANCELIO -!endif - -!ifdef STANDALONE -STANDALONE_CXXFLAGS = -DASIO_STANDALONE -!else -STANDALONE_CXXFLAGS = -I$(BOOSTDIR) -!endif - -CXXFLAGS = \ - $(COMMON_CXXFLAGS) \ - $(WARNINGS_CXXFLAGS) \ - $(DEBUG_CXXFLAGS) \ - $(UNICODE_CXXFLAGS) \ - $(TRACKING_CXXFLAGS) \ - $(SEPARATE_COMPILATION_CXXFLAGS) \ - $(STANDALONE_CXXFLAGS) - -!ifndef SSLDIR -SSLDIR = ../../openssl-0.9.8g -!endif - -SSL_CXXFLAGS = -I$(SSLDIR)/inc32 - -SSL_LIBS = \ - $(SSLDIR)/out32/libeay32.lib \ - $(SSLDIR)/out32/ssleay32.lib \ - user32.lib advapi32.lib gdi32.lib - -LATENCY_TEST_EXES = \ - tests\latency\tcp_client.exe \ - tests\latency\tcp_server.exe \ - tests\latency\udp_client.exe \ - tests\latency\udp_server.exe - -PERFORMANCE_TEST_EXES = \ - tests\performance\client.exe \ - tests\performance\server.exe - -UNIT_TEST_EXES = \ - tests\unit\basic_datagram_socket.exe \ - tests\unit\basic_deadline_timer.exe \ - tests\unit\basic_raw_socket.exe \ - tests\unit\basic_seq_packet_socket.exe \ - tests\unit\basic_serial_port.exe \ - tests\unit\basic_signal_set.exe \ - tests\unit\basic_socket_acceptor.exe \ - tests\unit\basic_stream_socket.exe \ - tests\unit\basic_streambuf.exe \ - tests\unit\basic_waitable_timer.exe \ - tests\unit\buffered_read_stream.exe \ - tests\unit\buffered_stream.exe \ - tests\unit\buffered_write_stream.exe \ - tests\unit\buffer.exe \ - tests\unit\buffers_iterator.exe \ - tests\unit\completion_condition.exe \ - tests\unit\connect.exe \ - tests\unit\coroutine.exe \ - tests\unit\datagram_socket_service.exe \ - tests\unit\deadline_timer_service.exe \ - tests\unit\deadline_timer.exe \ - tests\unit\error.exe \ - tests\unit\generic\basic_endpoint.exe \ - tests\unit\generic\datagram_protocol.exe \ - tests\unit\generic\raw_protocol.exe \ - tests\unit\generic\seq_packet_protocol.exe \ - tests\unit\generic\stream_protocol.exe \ - tests\unit\high_resolution_timer.exe \ - tests\unit\io_context.exe \ - tests\unit\ip\address.exe \ - tests\unit\ip\address_v4.exe \ - tests\unit\ip\address_v6.exe \ - tests\unit\ip\basic_endpoint.exe \ - tests\unit\ip\basic_resolver.exe \ - tests\unit\ip\basic_resolver_entry.exe \ - tests\unit\ip\basic_resolver_iterator.exe \ - tests\unit\ip\basic_resolver_query.exe \ - tests\unit\ip\host_name.exe \ - tests\unit\ip\icmp.exe \ - tests\unit\ip\multicast.exe \ - tests\unit\ip\resolver_query_base.exe \ - tests\unit\ip\resolver_service.exe \ - tests\unit\ip\tcp.exe \ - tests\unit\ip\udp.exe \ - tests\unit\ip\unicast.exe \ - tests\unit\ip\v6_only.exe \ - tests\unit\is_read_buffered.exe \ - tests\unit\is_write_buffered.exe \ - tests\unit\placeholders.exe \ - tests\unit\raw_socket_service.exe \ - tests\unit\read.exe \ - tests\unit\read_at.exe \ - tests\unit\read_until.exe \ - tests\unit\seq_packet_socket_service.exe \ - tests\unit\serial_port.exe \ - tests\unit\serial_port_base.exe \ - tests\unit\serial_port_service.exe \ - tests\unit\signal_set.exe \ - tests\unit\signal_set_service.exe \ - tests\unit\socket_acceptor_service.exe \ - tests\unit\socket_base.exe \ - tests\unit\strand.exe \ - tests\unit\steady_timer.exe \ - tests\unit\stream_socket_service.exe \ - tests\unit\streambuf.exe \ - tests\unit\system_context.exe \ - tests\unit\system_executor.exe \ - tests\unit\system_timer.exe \ - tests\unit\thread.exe \ - tests\unit\time_traits.exe \ - tests\unit\ts\buffer.exe \ - tests\unit\ts\executor.exe \ - tests\unit\ts\internet.exe \ - tests\unit\ts\io_context.exe \ - tests\unit\ts\net.exe \ - tests\unit\ts\netfwd.exe \ - tests\unit\ts\socket.exe \ - tests\unit\ts\timer.exe \ - tests\unit\waitable_timer_service.exe \ - tests\unit\windows\basic_handle.exe \ - tests\unit\windows\basic_object_handle.exe \ - tests\unit\windows\basic_random_access_handle.exe \ - tests\unit\windows\basic_stream_handle.exe \ - tests\unit\windows\object_handle.exe \ - tests\unit\windows\object_handle_service.exe \ - tests\unit\windows\overlapped_ptr.exe \ - tests\unit\windows\random_access_handle.exe \ - tests\unit\windows\random_access_handle_service.exe \ - tests\unit\windows\stream_handle.exe \ - tests\unit\windows\stream_handle_service.exe \ - tests\unit\write.exe \ - tests\unit\write_at.exe - -CPP03_EXAMPLE_EXES = \ - examples\cpp03\allocation\server.exe \ - examples\cpp03\buffers\reference_counted.exe \ - examples\cpp03\chat\chat_client.exe \ - examples\cpp03\chat\chat_server.exe \ - examples\cpp03\echo\async_tcp_echo_server.exe \ - examples\cpp03\echo\async_udp_echo_server.exe \ - examples\cpp03\echo\blocking_tcp_echo_client.exe \ - examples\cpp03\echo\blocking_tcp_echo_server.exe \ - examples\cpp03\echo\blocking_udp_echo_client.exe \ - examples\cpp03\echo\blocking_udp_echo_server.exe \ - examples\cpp03\http\client\async_client.exe \ - examples\cpp03\http\client\sync_client.exe \ - examples\cpp03\http\server\http_server.exe \ - examples\cpp03\http\server2\http_server.exe \ - examples\cpp03\http\server3\http_server.exe \ - examples\cpp03\http\server4\http_server.exe \ - examples\cpp03\icmp\ping.exe \ - examples\cpp03\invocation\prioritised_handlers.exe \ - examples\cpp03\iostreams\daytime_client.exe \ - examples\cpp03\iostreams\daytime_server.exe \ - examples\cpp03\iostreams\http_client.exe \ - examples\cpp03\multicast\receiver.exe \ - examples\cpp03\multicast\sender.exe \ - examples\cpp03\nonblocking\third_party_lib.exe \ - examples\cpp03\porthopper\client.exe \ - examples\cpp03\porthopper\server.exe \ - examples\cpp03\services\daytime_client.exe \ - examples\cpp03\socks4\sync_client.exe \ - examples\cpp03\timeouts\async_tcp_client.exe \ - examples\cpp03\timeouts\blocking_tcp_client.exe \ - examples\cpp03\timeouts\blocking_token_tcp_client.exe \ - examples\cpp03\timeouts\blocking_udp_client.exe \ - examples\cpp03\timeouts\server.exe \ - examples\cpp03\timers\time_t_timer.exe \ - examples\cpp03\tutorial\timer1\timer.exe \ - examples\cpp03\tutorial\timer2\timer.exe \ - examples\cpp03\tutorial\timer3\timer.exe \ - examples\cpp03\tutorial\timer4\timer.exe \ - examples\cpp03\tutorial\timer5\timer.exe \ - examples\cpp03\tutorial\daytime1\client.exe \ - examples\cpp03\tutorial\daytime2\server.exe \ - examples\cpp03\tutorial\daytime3\server.exe \ - examples\cpp03\tutorial\daytime4\client.exe \ - examples\cpp03\tutorial\daytime5\server.exe \ - examples\cpp03\tutorial\daytime6\server.exe \ - examples\cpp03\tutorial\daytime7\server.exe \ - examples\cpp03\windows\transmit_file.exe - -SSL_UNIT_TEST_EXES = \ - tests\unit\ssl\basic_context.exe \ - tests\unit\ssl\context.exe \ - tests\unit\ssl\context_base.exe \ - tests\unit\ssl\context_service.exe \ - tests\unit\ssl\rfc2818_verification.exe \ - tests\unit\ssl\stream.exe \ - tests\unit\ssl\stream_base.exe \ - tests\unit\ssl\stream_service.exe - -SSL_EXAMPLE_EXES = \ - examples\cpp03\ssl\client.exe \ - examples\cpp03\ssl\server.exe - -!ifdef SEPARATE_COMPILATION -all: asio.lib -asio.lib: asio.cpp - cl -Fe$@ -Foasio.obj $(CXXFLAGS) $(DEFINES) -c asio.cpp - lib -name:asio.lib asio.obj -!endif - -!ifdef STANDALONE -all: \ - $(UNIT_TEST_EXES) -!else -all: \ - $(LATENCY_TEST_EXES) \ - $(PERFORMANCE_TEST_EXES) \ - $(UNIT_TEST_EXES) \ - $(CPP03_EXAMPLE_EXES) -!endif - -ssl: \ - $(SSL_UNIT_TEST_EXES) \ - $(SSL_EXAMPLE_EXES) - -check: $(UNIT_TEST_EXES) - !@echo === Running $** === && $** && echo. - -{tests\latency}.cpp{tests\latency}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\performance}.cpp{tests\performance}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -tests\unit\unit_test.obj: tests\unit\unit_test.cpp - cl -Fe$@ -Fotests\unit\unit_test.obj $(CXXFLAGS) $(DEFINES) -c tests\unit\unit_test.cpp - -{tests\unit}.cpp{tests\unit}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\unit\generic}.cpp{tests\unit\generic}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\unit\ip}.cpp{tests\unit\ip}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\unit\ssl}.cpp{tests\unit\ssl}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(SSL_CXXFLAGS) $(DEFINES) $< $(SSL_LIBS) $(LIBS) -link -opt:ref - -{tests\unit\ts}.cpp{tests\unit\ts}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{tests\unit\windows}.cpp{tests\unit\windows}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\allocation}.cpp{examples\cpp03\allocation}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\buffers}.cpp{examples\cpp03\buffers}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\chat}.cpp{examples\cpp03\chat}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\echo}.cpp{examples\cpp03\echo}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\http\client}.cpp{examples\cpp03\http\client}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\icmp}.cpp{examples\cpp03\icmp}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\invocation}.cpp{examples\cpp03\invocation}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\iostreams}.cpp{examples\cpp03\iostreams}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\multicast}.cpp{examples\cpp03\multicast}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\nonblocking}.cpp{examples\cpp03\nonblocking}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\porthopper}.cpp{examples\cpp03\porthopper}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\socks4}.cpp{examples\cpp03\socks4}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\ssl}.cpp{examples\cpp03\ssl}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(SSL_CXXFLAGS) $(DEFINES) $< $(SSL_LIBS) $(LIBS) -link -opt:ref - -{examples\cpp03\timeouts}.cpp{examples\cpp03\timeouts}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\timers}.cpp{examples\cpp03\timers}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer1}.cpp{examples\cpp03\tutorial\timer1}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer2}.cpp{examples\cpp03\tutorial\timer2}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer3}.cpp{examples\cpp03\tutorial\timer3}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer4}.cpp{examples\cpp03\tutorial\timer4}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\timer5}.cpp{examples\cpp03\tutorial\timer5}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime1}.cpp{examples\cpp03\tutorial\daytime1}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime2}.cpp{examples\cpp03\tutorial\daytime2}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime3}.cpp{examples\cpp03\tutorial\daytime3}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime4}.cpp{examples\cpp03\tutorial\daytime4}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime5}.cpp{examples\cpp03\tutorial\daytime5}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime6}.cpp{examples\cpp03\tutorial\daytime6}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\tutorial\daytime7}.cpp{examples\cpp03\tutorial\daytime7}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp03\windows}.cpp{examples\cpp03\windows}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -{examples\cpp11\executors}.cpp{examples\cpp11\executors}.exe: - cl -Fe$@ -Fo$(<:.cpp=.obj) $(CXXFLAGS) $(DEFINES) $< $(LIBS) -link -opt:ref - -examples\cpp03\http\server\http_server.exe: \ - examples\cpp03\http\server\connection.cpp \ - examples\cpp03\http\server\connection_manager.cpp \ - examples\cpp03\http\server\main.cpp \ - examples\cpp03\http\server\mime_types.cpp \ - examples\cpp03\http\server\reply.cpp \ - examples\cpp03\http\server\request_handler.cpp \ - examples\cpp03\http\server\request_parser.cpp \ - examples\cpp03\http\server\server.cpp - cl -Fe$@ -Foexamples\cpp03\http\server\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -examples\cpp03\http\server2\http_server.exe: \ - examples\cpp03\http\server2\connection.cpp \ - examples\cpp03\http\server2\io_context_pool.cpp \ - examples\cpp03\http\server2\main.cpp \ - examples\cpp03\http\server2\mime_types.cpp \ - examples\cpp03\http\server2\reply.cpp \ - examples\cpp03\http\server2\request_handler.cpp \ - examples\cpp03\http\server2\request_parser.cpp \ - examples\cpp03\http\server2\server.cpp - cl -Fe$@ -Foexamples\cpp03\http\server2\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -examples\cpp03\http\server3\http_server.exe: \ - examples\cpp03\http\server3\connection.cpp \ - examples\cpp03\http\server3\main.cpp \ - examples\cpp03\http\server3\mime_types.cpp \ - examples\cpp03\http\server3\reply.cpp \ - examples\cpp03\http\server3\request_handler.cpp \ - examples\cpp03\http\server3\request_parser.cpp \ - examples\cpp03\http\server3\server.cpp - cl -Fe$@ -Foexamples\cpp03\http\server3\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -examples\cpp03\http\server4\http_server.exe: \ - examples\cpp03\http\server4\file_handler.cpp \ - examples\cpp03\http\server4\main.cpp \ - examples\cpp03\http\server4\mime_types.cpp \ - examples\cpp03\http\server4\reply.cpp \ - examples\cpp03\http\server4\request_parser.cpp \ - examples\cpp03\http\server4\server.cpp - cl -Fe$@ -Foexamples\cpp03\http\server4\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -examples\cpp03\services\daytime_client.exe: \ - examples\cpp03\services\daytime_client.cpp \ - examples\cpp03\services\logger_service.cpp - cl -Fe$@ -Foexamples\cpp03\services\ $(CXXFLAGS) $(DEFINES) $** $(LIBS) -link -opt:ref - -clean: - -del /q /s asio.lib - -del /q /s asio.obj - -del /q /s tests\*.exe - -del /q /s tests\*.exe.manifest - -del /q /s tests\*.exp - -del /q /s tests\*.ilk - -del /q /s tests\*.pdb - -del /q /s tests\*.obj - -del /q /s examples\*.exe - -del /q /s examples\*.exe.manifest - -del /q /s examples\*.exp - -del /q /s examples\*.ilk - -del /q /s examples\*.pdb - -del /q /s examples\*.obj - -del /q /s *.pdb diff --git a/Sources/Vendor/asio/src/asio.cpp b/Sources/Vendor/asio/src/asio.cpp deleted file mode 100644 index cccb6f8..0000000 --- a/Sources/Vendor/asio/src/asio.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// -// asio.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/impl/src.hpp" diff --git a/Sources/Vendor/asio/src/asio_ssl.cpp b/Sources/Vendor/asio/src/asio_ssl.cpp deleted file mode 100644 index dd3d6d3..0000000 --- a/Sources/Vendor/asio/src/asio_ssl.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// -// asio_ssl.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/ssl/impl/src.hpp" diff --git a/Sources/Vendor/asio/src/examples/cpp03/Makefile.am b/Sources/Vendor/asio/src/examples/cpp03/Makefile.am deleted file mode 100644 index 0e6e0d3..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/Makefile.am +++ /dev/null @@ -1,251 +0,0 @@ -AUTOMAKE_OPTIONS = subdir-objects - -if SEPARATE_COMPILATION -noinst_LIBRARIES = libasio.a -libasio_a_SOURCES = ../../asio.cpp -if HAVE_OPENSSL -libasio_a_SOURCES += ../../asio_ssl.cpp -endif -LDADD = libasio.a -endif - -noinst_PROGRAMS = \ - allocation/server \ - buffers/reference_counted \ - chat/chat_client \ - chat/chat_server \ - echo/async_tcp_echo_server \ - echo/async_udp_echo_server \ - echo/blocking_tcp_echo_client \ - echo/blocking_tcp_echo_server \ - echo/blocking_udp_echo_client \ - echo/blocking_udp_echo_server \ - http/client/async_client \ - http/client/sync_client \ - http/server/http_server \ - http/server2/http_server \ - http/server3/http_server \ - http/server4/http_server \ - icmp/ping \ - invocation/prioritised_handlers \ - iostreams/daytime_client \ - iostreams/daytime_server \ - iostreams/http_client \ - multicast/receiver \ - multicast/sender \ - nonblocking/third_party_lib \ - porthopper/client \ - porthopper/server \ - services/daytime_client \ - socks4/sync_client \ - timeouts/async_tcp_client \ - timeouts/blocking_tcp_client \ - timeouts/blocking_token_tcp_client \ - timeouts/blocking_udp_client \ - timeouts/server \ - timers/time_t_timer \ - tutorial/timer1/timer \ - tutorial/timer2/timer \ - tutorial/timer3/timer \ - tutorial/timer4/timer \ - tutorial/timer5/timer \ - tutorial/daytime1/client \ - tutorial/daytime2/server \ - tutorial/daytime3/server \ - tutorial/daytime4/client \ - tutorial/daytime5/server \ - tutorial/daytime6/server \ - tutorial/daytime7/server - -if !WINDOWS_TARGET -noinst_PROGRAMS += \ - chat/posix_chat_client \ - fork/daemon \ - fork/process_per_connection \ - local/connect_pair \ - local/iostream_client \ - local/stream_server \ - local/stream_client -endif - -if WINDOWS_TARGET -noinst_PROGRAMS += \ - windows/transmit_file -endif - -if HAVE_OPENSSL -noinst_PROGRAMS += \ - ssl/client \ - ssl/server -endif - -if HAVE_BOOST_COROUTINE -noinst_PROGRAMS += \ - spawn/echo_server \ - spawn/parallel_grep -endif - -noinst_HEADERS = \ - chat/chat_message.hpp \ - services/basic_logger.hpp \ - services/logger.hpp \ - services/logger_service.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../../include - -allocation_server_SOURCES = allocation/server.cpp -buffers_reference_counted_SOURCES = buffers/reference_counted.cpp -chat_chat_client_SOURCES = chat/chat_client.cpp -chat_chat_server_SOURCES = chat/chat_server.cpp -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -http_client_async_client_SOURCES = http/client/async_client.cpp -http_client_sync_client_SOURCES = http/client/sync_client.cpp -http_server_http_server_SOURCES = \ - http/server/connection.cpp \ - http/server/connection_manager.cpp \ - http/server/main.cpp \ - http/server/mime_types.cpp \ - http/server/reply.cpp \ - http/server/request_handler.cpp \ - http/server/request_parser.cpp \ - http/server/server.cpp -http_server2_http_server_SOURCES = \ - http/server2/connection.cpp \ - http/server2/io_context_pool.cpp \ - http/server2/main.cpp \ - http/server2/mime_types.cpp \ - http/server2/reply.cpp \ - http/server2/request_handler.cpp \ - http/server2/request_parser.cpp \ - http/server2/server.cpp -http_server3_http_server_SOURCES = \ - http/server3/connection.cpp \ - http/server3/main.cpp \ - http/server3/mime_types.cpp \ - http/server3/reply.cpp \ - http/server3/request_handler.cpp \ - http/server3/request_parser.cpp \ - http/server3/server.cpp -http_server4_http_server_SOURCES = \ - http/server4/file_handler.cpp \ - http/server4/main.cpp \ - http/server4/mime_types.cpp \ - http/server4/reply.cpp \ - http/server4/request_parser.cpp \ - http/server4/server.cpp -icmp_ping_SOURCES = icmp/ping.cpp -invocation_prioritised_handlers_SOURCES = invocation/prioritised_handlers.cpp -iostreams_daytime_client_SOURCES = iostreams/daytime_client.cpp -iostreams_daytime_server_SOURCES = iostreams/daytime_server.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -multicast_receiver_SOURCES = multicast/receiver.cpp -multicast_sender_SOURCES = multicast/sender.cpp -nonblocking_third_party_lib_SOURCES = nonblocking/third_party_lib.cpp -porthopper_client_SOURCES = porthopper/client.cpp -porthopper_server_SOURCES = porthopper/server.cpp -services_daytime_client_SOURCES = \ - services/daytime_client.cpp \ - services/logger_service.cpp -socks4_sync_client_SOURCES = socks4/sync_client.cpp -timeouts_async_tcp_client_SOURCES = timeouts/async_tcp_client.cpp -timeouts_blocking_tcp_client_SOURCES = timeouts/blocking_tcp_client.cpp -timeouts_blocking_token_tcp_client_SOURCES = timeouts/blocking_token_tcp_client.cpp -timeouts_blocking_udp_client_SOURCES = timeouts/blocking_udp_client.cpp -timeouts_server_SOURCES = timeouts/server.cpp -timers_time_t_timer_SOURCES = timers/time_t_timer.cpp -tutorial_timer1_timer_SOURCES = tutorial/timer1/timer.cpp -tutorial_timer2_timer_SOURCES = tutorial/timer2/timer.cpp -tutorial_timer3_timer_SOURCES = tutorial/timer3/timer.cpp -tutorial_timer4_timer_SOURCES = tutorial/timer4/timer.cpp -tutorial_timer5_timer_SOURCES = tutorial/timer5/timer.cpp -tutorial_daytime1_client_SOURCES = tutorial/daytime1/client.cpp -tutorial_daytime2_server_SOURCES = tutorial/daytime2/server.cpp -tutorial_daytime3_server_SOURCES = tutorial/daytime3/server.cpp -tutorial_daytime4_client_SOURCES = tutorial/daytime4/client.cpp -tutorial_daytime5_server_SOURCES = tutorial/daytime5/server.cpp -tutorial_daytime6_server_SOURCES = tutorial/daytime6/server.cpp -tutorial_daytime7_server_SOURCES = tutorial/daytime7/server.cpp - -if !WINDOWS_TARGET -chat_posix_chat_client_SOURCES = chat/posix_chat_client.cpp -fork_daemon_SOURCES = fork/daemon.cpp -fork_process_per_connection_SOURCES = fork/process_per_connection.cpp -local_connect_pair_SOURCES = local/connect_pair.cpp -local_iostream_client_SOURCES = local/iostream_client.cpp -local_stream_server_SOURCES = local/stream_server.cpp -local_stream_client_SOURCES = local/stream_client.cpp -endif - -if WINDOWS_TARGET -windows_transmit_file_SOURCES = windows/transmit_file.cpp -endif - -if HAVE_OPENSSL -ssl_client_SOURCES = ssl/client.cpp -ssl_server_SOURCES = ssl/server.cpp -endif - -if HAVE_BOOST_COROUTINE -spawn_echo_server_SOURCES = spawn/echo_server.cpp -spawn_echo_server_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -spawn_parallel_grep_SOURCES = spawn/parallel_grep.cpp -spawn_parallel_grep_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -endif - -EXTRA_DIST = \ - http/server/connection.hpp \ - http/server/connection_manager.hpp \ - http/server/header.hpp \ - http/server/mime_types.hpp \ - http/server/reply.hpp \ - http/server/request.hpp \ - http/server/request_handler.hpp \ - http/server/request_parser.hpp \ - http/server/server.hpp \ - http/server2/connection.hpp \ - http/server2/io_context_pool.hpp \ - http/server2/header.hpp \ - http/server2/mime_types.hpp \ - http/server2/reply.hpp \ - http/server2/request.hpp \ - http/server2/request_handler.hpp \ - http/server2/request_parser.hpp \ - http/server2/server.hpp \ - http/server3/connection.hpp \ - http/server3/header.hpp \ - http/server3/mime_types.hpp \ - http/server3/reply.hpp \ - http/server3/request.hpp \ - http/server3/request_handler.hpp \ - http/server3/request_parser.hpp \ - http/server3/server.hpp \ - http/server4/file_handler.hpp \ - http/server4/header.hpp \ - http/server4/mime_types.hpp \ - http/server4/reply.hpp \ - http/server4/request.hpp \ - http/server4/request_parser.hpp \ - http/server4/server.hpp \ - icmp/icmp_header.hpp \ - icmp/ipv4_header.hpp \ - porthopper/protocol.hpp \ - serialization/client.cpp \ - serialization/server.cpp \ - serialization/connection.hpp \ - serialization/stock.hpp \ - services/basic_logger.hpp \ - services/logger.hpp \ - services/logger_service.hpp \ - socks4/socks4.hpp \ - ssl/README \ - ssl/ca.pem \ - ssl/server.pem \ - ssl/dh2048.pem - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/examples/cpp03/Makefile.in b/Sources/Vendor/asio/src/examples/cpp03/Makefile.in deleted file mode 100644 index 2fc8903..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/Makefile.in +++ /dev/null @@ -1,2339 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../../asio_ssl.cpp -noinst_PROGRAMS = allocation/server$(EXEEXT) \ - buffers/reference_counted$(EXEEXT) chat/chat_client$(EXEEXT) \ - chat/chat_server$(EXEEXT) echo/async_tcp_echo_server$(EXEEXT) \ - echo/async_udp_echo_server$(EXEEXT) \ - echo/blocking_tcp_echo_client$(EXEEXT) \ - echo/blocking_tcp_echo_server$(EXEEXT) \ - echo/blocking_udp_echo_client$(EXEEXT) \ - echo/blocking_udp_echo_server$(EXEEXT) \ - http/client/async_client$(EXEEXT) \ - http/client/sync_client$(EXEEXT) \ - http/server/http_server$(EXEEXT) \ - http/server2/http_server$(EXEEXT) \ - http/server3/http_server$(EXEEXT) \ - http/server4/http_server$(EXEEXT) icmp/ping$(EXEEXT) \ - invocation/prioritised_handlers$(EXEEXT) \ - iostreams/daytime_client$(EXEEXT) \ - iostreams/daytime_server$(EXEEXT) \ - iostreams/http_client$(EXEEXT) multicast/receiver$(EXEEXT) \ - multicast/sender$(EXEEXT) nonblocking/third_party_lib$(EXEEXT) \ - porthopper/client$(EXEEXT) porthopper/server$(EXEEXT) \ - services/daytime_client$(EXEEXT) socks4/sync_client$(EXEEXT) \ - timeouts/async_tcp_client$(EXEEXT) \ - timeouts/blocking_tcp_client$(EXEEXT) \ - timeouts/blocking_token_tcp_client$(EXEEXT) \ - timeouts/blocking_udp_client$(EXEEXT) timeouts/server$(EXEEXT) \ - timers/time_t_timer$(EXEEXT) tutorial/timer1/timer$(EXEEXT) \ - tutorial/timer2/timer$(EXEEXT) tutorial/timer3/timer$(EXEEXT) \ - tutorial/timer4/timer$(EXEEXT) tutorial/timer5/timer$(EXEEXT) \ - tutorial/daytime1/client$(EXEEXT) \ - tutorial/daytime2/server$(EXEEXT) \ - tutorial/daytime3/server$(EXEEXT) \ - tutorial/daytime4/client$(EXEEXT) \ - tutorial/daytime5/server$(EXEEXT) \ - tutorial/daytime6/server$(EXEEXT) \ - tutorial/daytime7/server$(EXEEXT) $(am__EXEEXT_1) \ - $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) -@WINDOWS_TARGET_FALSE@am__append_2 = \ -@WINDOWS_TARGET_FALSE@ chat/posix_chat_client \ -@WINDOWS_TARGET_FALSE@ fork/daemon \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection \ -@WINDOWS_TARGET_FALSE@ local/connect_pair \ -@WINDOWS_TARGET_FALSE@ local/iostream_client \ -@WINDOWS_TARGET_FALSE@ local/stream_server \ -@WINDOWS_TARGET_FALSE@ local/stream_client - -@WINDOWS_TARGET_TRUE@am__append_3 = \ -@WINDOWS_TARGET_TRUE@ windows/transmit_file - -@HAVE_OPENSSL_TRUE@am__append_4 = \ -@HAVE_OPENSSL_TRUE@ ssl/client \ -@HAVE_OPENSSL_TRUE@ ssl/server - -@HAVE_BOOST_COROUTINE_TRUE@am__append_5 = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/echo_server \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep - -subdir = src/examples/cpp03 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -@WINDOWS_TARGET_FALSE@am__EXEEXT_1 = chat/posix_chat_client$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ fork/daemon$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/connect_pair$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/iostream_client$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/stream_server$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/stream_client$(EXEEXT) -@WINDOWS_TARGET_TRUE@am__EXEEXT_2 = windows/transmit_file$(EXEEXT) -@HAVE_OPENSSL_TRUE@am__EXEEXT_3 = ssl/client$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ ssl/server$(EXEEXT) -@HAVE_BOOST_COROUTINE_TRUE@am__EXEEXT_4 = spawn/echo_server$(EXEEXT) \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libasio_a_AR = $(AR) $(ARFLAGS) -libasio_a_LIBADD = -am__libasio_a_SOURCES_DIST = ../../asio.cpp ../../asio_ssl.cpp -am__dirstamp = $(am__leading_dot)dirstamp -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__objects_1 = ../../asio_ssl.$(OBJEXT) -@SEPARATE_COMPILATION_TRUE@am_libasio_a_OBJECTS = \ -@SEPARATE_COMPILATION_TRUE@ ../../asio.$(OBJEXT) \ -@SEPARATE_COMPILATION_TRUE@ $(am__objects_1) -libasio_a_OBJECTS = $(am_libasio_a_OBJECTS) -am_allocation_server_OBJECTS = allocation/server.$(OBJEXT) -allocation_server_OBJECTS = $(am_allocation_server_OBJECTS) -allocation_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@allocation_server_DEPENDENCIES = libasio.a -am_buffers_reference_counted_OBJECTS = \ - buffers/reference_counted.$(OBJEXT) -buffers_reference_counted_OBJECTS = \ - $(am_buffers_reference_counted_OBJECTS) -buffers_reference_counted_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@buffers_reference_counted_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_chat_chat_client_OBJECTS = chat/chat_client.$(OBJEXT) -chat_chat_client_OBJECTS = $(am_chat_chat_client_OBJECTS) -chat_chat_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_chat_client_DEPENDENCIES = libasio.a -am_chat_chat_server_OBJECTS = chat/chat_server.$(OBJEXT) -chat_chat_server_OBJECTS = $(am_chat_chat_server_OBJECTS) -chat_chat_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_chat_server_DEPENDENCIES = libasio.a -am__chat_posix_chat_client_SOURCES_DIST = chat/posix_chat_client.cpp -@WINDOWS_TARGET_FALSE@am_chat_posix_chat_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ chat/posix_chat_client.$(OBJEXT) -chat_posix_chat_client_OBJECTS = $(am_chat_posix_chat_client_OBJECTS) -chat_posix_chat_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_posix_chat_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_async_tcp_echo_server_OBJECTS = \ - echo/async_tcp_echo_server.$(OBJEXT) -echo_async_tcp_echo_server_OBJECTS = \ - $(am_echo_async_tcp_echo_server_OBJECTS) -echo_async_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_async_udp_echo_server_OBJECTS = \ - echo/async_udp_echo_server.$(OBJEXT) -echo_async_udp_echo_server_OBJECTS = \ - $(am_echo_async_udp_echo_server_OBJECTS) -echo_async_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_client_OBJECTS = \ - echo/blocking_tcp_echo_client.$(OBJEXT) -echo_blocking_tcp_echo_client_OBJECTS = \ - $(am_echo_blocking_tcp_echo_client_OBJECTS) -echo_blocking_tcp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_server_OBJECTS = \ - echo/blocking_tcp_echo_server.$(OBJEXT) -echo_blocking_tcp_echo_server_OBJECTS = \ - $(am_echo_blocking_tcp_echo_server_OBJECTS) -echo_blocking_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_client_OBJECTS = \ - echo/blocking_udp_echo_client.$(OBJEXT) -echo_blocking_udp_echo_client_OBJECTS = \ - $(am_echo_blocking_udp_echo_client_OBJECTS) -echo_blocking_udp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_server_OBJECTS = \ - echo/blocking_udp_echo_server.$(OBJEXT) -echo_blocking_udp_echo_server_OBJECTS = \ - $(am_echo_blocking_udp_echo_server_OBJECTS) -echo_blocking_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__fork_daemon_SOURCES_DIST = fork/daemon.cpp -@WINDOWS_TARGET_FALSE@am_fork_daemon_OBJECTS = fork/daemon.$(OBJEXT) -fork_daemon_OBJECTS = $(am_fork_daemon_OBJECTS) -fork_daemon_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@fork_daemon_DEPENDENCIES = libasio.a -am__fork_process_per_connection_SOURCES_DIST = \ - fork/process_per_connection.cpp -@WINDOWS_TARGET_FALSE@am_fork_process_per_connection_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection.$(OBJEXT) -fork_process_per_connection_OBJECTS = \ - $(am_fork_process_per_connection_OBJECTS) -fork_process_per_connection_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@fork_process_per_connection_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_client_async_client_OBJECTS = \ - http/client/async_client.$(OBJEXT) -http_client_async_client_OBJECTS = \ - $(am_http_client_async_client_OBJECTS) -http_client_async_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_client_async_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_client_sync_client_OBJECTS = \ - http/client/sync_client.$(OBJEXT) -http_client_sync_client_OBJECTS = \ - $(am_http_client_sync_client_OBJECTS) -http_client_sync_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_client_sync_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server_http_server_OBJECTS = http/server/connection.$(OBJEXT) \ - http/server/connection_manager.$(OBJEXT) \ - http/server/main.$(OBJEXT) http/server/mime_types.$(OBJEXT) \ - http/server/reply.$(OBJEXT) \ - http/server/request_handler.$(OBJEXT) \ - http/server/request_parser.$(OBJEXT) \ - http/server/server.$(OBJEXT) -http_server_http_server_OBJECTS = \ - $(am_http_server_http_server_OBJECTS) -http_server_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server2_http_server_OBJECTS = \ - http/server2/connection.$(OBJEXT) \ - http/server2/io_context_pool.$(OBJEXT) \ - http/server2/main.$(OBJEXT) http/server2/mime_types.$(OBJEXT) \ - http/server2/reply.$(OBJEXT) \ - http/server2/request_handler.$(OBJEXT) \ - http/server2/request_parser.$(OBJEXT) \ - http/server2/server.$(OBJEXT) -http_server2_http_server_OBJECTS = \ - $(am_http_server2_http_server_OBJECTS) -http_server2_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server2_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server3_http_server_OBJECTS = \ - http/server3/connection.$(OBJEXT) http/server3/main.$(OBJEXT) \ - http/server3/mime_types.$(OBJEXT) http/server3/reply.$(OBJEXT) \ - http/server3/request_handler.$(OBJEXT) \ - http/server3/request_parser.$(OBJEXT) \ - http/server3/server.$(OBJEXT) -http_server3_http_server_OBJECTS = \ - $(am_http_server3_http_server_OBJECTS) -http_server3_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server3_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server4_http_server_OBJECTS = \ - http/server4/file_handler.$(OBJEXT) \ - http/server4/main.$(OBJEXT) http/server4/mime_types.$(OBJEXT) \ - http/server4/reply.$(OBJEXT) \ - http/server4/request_parser.$(OBJEXT) \ - http/server4/server.$(OBJEXT) -http_server4_http_server_OBJECTS = \ - $(am_http_server4_http_server_OBJECTS) -http_server4_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server4_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_icmp_ping_OBJECTS = icmp/ping.$(OBJEXT) -icmp_ping_OBJECTS = $(am_icmp_ping_OBJECTS) -icmp_ping_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@icmp_ping_DEPENDENCIES = libasio.a -am_invocation_prioritised_handlers_OBJECTS = \ - invocation/prioritised_handlers.$(OBJEXT) -invocation_prioritised_handlers_OBJECTS = \ - $(am_invocation_prioritised_handlers_OBJECTS) -invocation_prioritised_handlers_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@invocation_prioritised_handlers_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_daytime_client_OBJECTS = \ - iostreams/daytime_client.$(OBJEXT) -iostreams_daytime_client_OBJECTS = \ - $(am_iostreams_daytime_client_OBJECTS) -iostreams_daytime_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_daytime_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_daytime_server_OBJECTS = \ - iostreams/daytime_server.$(OBJEXT) -iostreams_daytime_server_OBJECTS = \ - $(am_iostreams_daytime_server_OBJECTS) -iostreams_daytime_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_daytime_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_http_client_OBJECTS = iostreams/http_client.$(OBJEXT) -iostreams_http_client_OBJECTS = $(am_iostreams_http_client_OBJECTS) -iostreams_http_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_http_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_connect_pair_SOURCES_DIST = local/connect_pair.cpp -@WINDOWS_TARGET_FALSE@am_local_connect_pair_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/connect_pair.$(OBJEXT) -local_connect_pair_OBJECTS = $(am_local_connect_pair_OBJECTS) -local_connect_pair_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_connect_pair_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_iostream_client_SOURCES_DIST = local/iostream_client.cpp -@WINDOWS_TARGET_FALSE@am_local_iostream_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/iostream_client.$(OBJEXT) -local_iostream_client_OBJECTS = $(am_local_iostream_client_OBJECTS) -local_iostream_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_iostream_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_stream_client_SOURCES_DIST = local/stream_client.cpp -@WINDOWS_TARGET_FALSE@am_local_stream_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/stream_client.$(OBJEXT) -local_stream_client_OBJECTS = $(am_local_stream_client_OBJECTS) -local_stream_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_stream_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_stream_server_SOURCES_DIST = local/stream_server.cpp -@WINDOWS_TARGET_FALSE@am_local_stream_server_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/stream_server.$(OBJEXT) -local_stream_server_OBJECTS = $(am_local_stream_server_OBJECTS) -local_stream_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_stream_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_multicast_receiver_OBJECTS = multicast/receiver.$(OBJEXT) -multicast_receiver_OBJECTS = $(am_multicast_receiver_OBJECTS) -multicast_receiver_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@multicast_receiver_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_multicast_sender_OBJECTS = multicast/sender.$(OBJEXT) -multicast_sender_OBJECTS = $(am_multicast_sender_OBJECTS) -multicast_sender_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@multicast_sender_DEPENDENCIES = libasio.a -am_nonblocking_third_party_lib_OBJECTS = \ - nonblocking/third_party_lib.$(OBJEXT) -nonblocking_third_party_lib_OBJECTS = \ - $(am_nonblocking_third_party_lib_OBJECTS) -nonblocking_third_party_lib_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@nonblocking_third_party_lib_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_porthopper_client_OBJECTS = porthopper/client.$(OBJEXT) -porthopper_client_OBJECTS = $(am_porthopper_client_OBJECTS) -porthopper_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@porthopper_client_DEPENDENCIES = libasio.a -am_porthopper_server_OBJECTS = porthopper/server.$(OBJEXT) -porthopper_server_OBJECTS = $(am_porthopper_server_OBJECTS) -porthopper_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@porthopper_server_DEPENDENCIES = libasio.a -am_services_daytime_client_OBJECTS = \ - services/daytime_client.$(OBJEXT) \ - services/logger_service.$(OBJEXT) -services_daytime_client_OBJECTS = \ - $(am_services_daytime_client_OBJECTS) -services_daytime_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@services_daytime_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_socks4_sync_client_OBJECTS = socks4/sync_client.$(OBJEXT) -socks4_sync_client_OBJECTS = $(am_socks4_sync_client_OBJECTS) -socks4_sync_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@socks4_sync_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__spawn_echo_server_SOURCES_DIST = spawn/echo_server.cpp -@HAVE_BOOST_COROUTINE_TRUE@am_spawn_echo_server_OBJECTS = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/echo_server.$(OBJEXT) -spawn_echo_server_OBJECTS = $(am_spawn_echo_server_OBJECTS) -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_DEPENDENCIES = $(LDADD) -am__spawn_parallel_grep_SOURCES_DIST = spawn/parallel_grep.cpp -@HAVE_BOOST_COROUTINE_TRUE@am_spawn_parallel_grep_OBJECTS = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep.$(OBJEXT) -spawn_parallel_grep_OBJECTS = $(am_spawn_parallel_grep_OBJECTS) -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_DEPENDENCIES = \ -@HAVE_BOOST_COROUTINE_TRUE@ $(LDADD) -am__ssl_client_SOURCES_DIST = ssl/client.cpp -@HAVE_OPENSSL_TRUE@am_ssl_client_OBJECTS = ssl/client.$(OBJEXT) -ssl_client_OBJECTS = $(am_ssl_client_OBJECTS) -ssl_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@ssl_client_DEPENDENCIES = libasio.a -am__ssl_server_SOURCES_DIST = ssl/server.cpp -@HAVE_OPENSSL_TRUE@am_ssl_server_OBJECTS = ssl/server.$(OBJEXT) -ssl_server_OBJECTS = $(am_ssl_server_OBJECTS) -ssl_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@ssl_server_DEPENDENCIES = libasio.a -am_timeouts_async_tcp_client_OBJECTS = \ - timeouts/async_tcp_client.$(OBJEXT) -timeouts_async_tcp_client_OBJECTS = \ - $(am_timeouts_async_tcp_client_OBJECTS) -timeouts_async_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_async_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_tcp_client_OBJECTS = \ - timeouts/blocking_tcp_client.$(OBJEXT) -timeouts_blocking_tcp_client_OBJECTS = \ - $(am_timeouts_blocking_tcp_client_OBJECTS) -timeouts_blocking_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_token_tcp_client_OBJECTS = \ - timeouts/blocking_token_tcp_client.$(OBJEXT) -timeouts_blocking_token_tcp_client_OBJECTS = \ - $(am_timeouts_blocking_token_tcp_client_OBJECTS) -timeouts_blocking_token_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_token_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_udp_client_OBJECTS = \ - timeouts/blocking_udp_client.$(OBJEXT) -timeouts_blocking_udp_client_OBJECTS = \ - $(am_timeouts_blocking_udp_client_OBJECTS) -timeouts_blocking_udp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_udp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_server_OBJECTS = timeouts/server.$(OBJEXT) -timeouts_server_OBJECTS = $(am_timeouts_server_OBJECTS) -timeouts_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_server_DEPENDENCIES = libasio.a -am_timers_time_t_timer_OBJECTS = timers/time_t_timer.$(OBJEXT) -timers_time_t_timer_OBJECTS = $(am_timers_time_t_timer_OBJECTS) -timers_time_t_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timers_time_t_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime1_client_OBJECTS = \ - tutorial/daytime1/client.$(OBJEXT) -tutorial_daytime1_client_OBJECTS = \ - $(am_tutorial_daytime1_client_OBJECTS) -tutorial_daytime1_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime1_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime2_server_OBJECTS = \ - tutorial/daytime2/server.$(OBJEXT) -tutorial_daytime2_server_OBJECTS = \ - $(am_tutorial_daytime2_server_OBJECTS) -tutorial_daytime2_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime2_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime3_server_OBJECTS = \ - tutorial/daytime3/server.$(OBJEXT) -tutorial_daytime3_server_OBJECTS = \ - $(am_tutorial_daytime3_server_OBJECTS) -tutorial_daytime3_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime3_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime4_client_OBJECTS = \ - tutorial/daytime4/client.$(OBJEXT) -tutorial_daytime4_client_OBJECTS = \ - $(am_tutorial_daytime4_client_OBJECTS) -tutorial_daytime4_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime4_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime5_server_OBJECTS = \ - tutorial/daytime5/server.$(OBJEXT) -tutorial_daytime5_server_OBJECTS = \ - $(am_tutorial_daytime5_server_OBJECTS) -tutorial_daytime5_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime5_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime6_server_OBJECTS = \ - tutorial/daytime6/server.$(OBJEXT) -tutorial_daytime6_server_OBJECTS = \ - $(am_tutorial_daytime6_server_OBJECTS) -tutorial_daytime6_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime6_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_daytime7_server_OBJECTS = \ - tutorial/daytime7/server.$(OBJEXT) -tutorial_daytime7_server_OBJECTS = \ - $(am_tutorial_daytime7_server_OBJECTS) -tutorial_daytime7_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_daytime7_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer1_timer_OBJECTS = tutorial/timer1/timer.$(OBJEXT) -tutorial_timer1_timer_OBJECTS = $(am_tutorial_timer1_timer_OBJECTS) -tutorial_timer1_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer1_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer2_timer_OBJECTS = tutorial/timer2/timer.$(OBJEXT) -tutorial_timer2_timer_OBJECTS = $(am_tutorial_timer2_timer_OBJECTS) -tutorial_timer2_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer2_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer3_timer_OBJECTS = tutorial/timer3/timer.$(OBJEXT) -tutorial_timer3_timer_OBJECTS = $(am_tutorial_timer3_timer_OBJECTS) -tutorial_timer3_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer3_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer4_timer_OBJECTS = tutorial/timer4/timer.$(OBJEXT) -tutorial_timer4_timer_OBJECTS = $(am_tutorial_timer4_timer_OBJECTS) -tutorial_timer4_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer4_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_tutorial_timer5_timer_OBJECTS = tutorial/timer5/timer.$(OBJEXT) -tutorial_timer5_timer_OBJECTS = $(am_tutorial_timer5_timer_OBJECTS) -tutorial_timer5_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@tutorial_timer5_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__windows_transmit_file_SOURCES_DIST = windows/transmit_file.cpp -@WINDOWS_TARGET_TRUE@am_windows_transmit_file_OBJECTS = \ -@WINDOWS_TARGET_TRUE@ windows/transmit_file.$(OBJEXT) -windows_transmit_file_OBJECTS = $(am_windows_transmit_file_OBJECTS) -windows_transmit_file_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@windows_transmit_file_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../../$(DEPDIR)/asio.Po \ - ../../$(DEPDIR)/asio_ssl.Po allocation/$(DEPDIR)/server.Po \ - buffers/$(DEPDIR)/reference_counted.Po \ - chat/$(DEPDIR)/chat_client.Po chat/$(DEPDIR)/chat_server.Po \ - chat/$(DEPDIR)/posix_chat_client.Po \ - echo/$(DEPDIR)/async_tcp_echo_server.Po \ - echo/$(DEPDIR)/async_udp_echo_server.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_client.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_server.Po \ - echo/$(DEPDIR)/blocking_udp_echo_client.Po \ - echo/$(DEPDIR)/blocking_udp_echo_server.Po \ - fork/$(DEPDIR)/daemon.Po \ - fork/$(DEPDIR)/process_per_connection.Po \ - http/client/$(DEPDIR)/async_client.Po \ - http/client/$(DEPDIR)/sync_client.Po \ - http/server/$(DEPDIR)/connection.Po \ - http/server/$(DEPDIR)/connection_manager.Po \ - http/server/$(DEPDIR)/main.Po \ - http/server/$(DEPDIR)/mime_types.Po \ - http/server/$(DEPDIR)/reply.Po \ - http/server/$(DEPDIR)/request_handler.Po \ - http/server/$(DEPDIR)/request_parser.Po \ - http/server/$(DEPDIR)/server.Po \ - http/server2/$(DEPDIR)/connection.Po \ - http/server2/$(DEPDIR)/io_context_pool.Po \ - http/server2/$(DEPDIR)/main.Po \ - http/server2/$(DEPDIR)/mime_types.Po \ - http/server2/$(DEPDIR)/reply.Po \ - http/server2/$(DEPDIR)/request_handler.Po \ - http/server2/$(DEPDIR)/request_parser.Po \ - http/server2/$(DEPDIR)/server.Po \ - http/server3/$(DEPDIR)/connection.Po \ - http/server3/$(DEPDIR)/main.Po \ - http/server3/$(DEPDIR)/mime_types.Po \ - http/server3/$(DEPDIR)/reply.Po \ - http/server3/$(DEPDIR)/request_handler.Po \ - http/server3/$(DEPDIR)/request_parser.Po \ - http/server3/$(DEPDIR)/server.Po \ - http/server4/$(DEPDIR)/file_handler.Po \ - http/server4/$(DEPDIR)/main.Po \ - http/server4/$(DEPDIR)/mime_types.Po \ - http/server4/$(DEPDIR)/reply.Po \ - http/server4/$(DEPDIR)/request_parser.Po \ - http/server4/$(DEPDIR)/server.Po icmp/$(DEPDIR)/ping.Po \ - invocation/$(DEPDIR)/prioritised_handlers.Po \ - iostreams/$(DEPDIR)/daytime_client.Po \ - iostreams/$(DEPDIR)/daytime_server.Po \ - iostreams/$(DEPDIR)/http_client.Po \ - local/$(DEPDIR)/connect_pair.Po \ - local/$(DEPDIR)/iostream_client.Po \ - local/$(DEPDIR)/stream_client.Po \ - local/$(DEPDIR)/stream_server.Po \ - multicast/$(DEPDIR)/receiver.Po multicast/$(DEPDIR)/sender.Po \ - nonblocking/$(DEPDIR)/third_party_lib.Po \ - porthopper/$(DEPDIR)/client.Po porthopper/$(DEPDIR)/server.Po \ - services/$(DEPDIR)/daytime_client.Po \ - services/$(DEPDIR)/logger_service.Po \ - socks4/$(DEPDIR)/sync_client.Po spawn/$(DEPDIR)/echo_server.Po \ - spawn/$(DEPDIR)/parallel_grep.Po ssl/$(DEPDIR)/client.Po \ - ssl/$(DEPDIR)/server.Po timeouts/$(DEPDIR)/async_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_token_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_udp_client.Po \ - timeouts/$(DEPDIR)/server.Po timers/$(DEPDIR)/time_t_timer.Po \ - tutorial/daytime1/$(DEPDIR)/client.Po \ - tutorial/daytime2/$(DEPDIR)/server.Po \ - tutorial/daytime3/$(DEPDIR)/server.Po \ - tutorial/daytime4/$(DEPDIR)/client.Po \ - tutorial/daytime5/$(DEPDIR)/server.Po \ - tutorial/daytime6/$(DEPDIR)/server.Po \ - tutorial/daytime7/$(DEPDIR)/server.Po \ - tutorial/timer1/$(DEPDIR)/timer.Po \ - tutorial/timer2/$(DEPDIR)/timer.Po \ - tutorial/timer3/$(DEPDIR)/timer.Po \ - tutorial/timer4/$(DEPDIR)/timer.Po \ - tutorial/timer5/$(DEPDIR)/timer.Po \ - windows/$(DEPDIR)/transmit_file.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -SOURCES = $(libasio_a_SOURCES) $(allocation_server_SOURCES) \ - $(buffers_reference_counted_SOURCES) \ - $(chat_chat_client_SOURCES) $(chat_chat_server_SOURCES) \ - $(chat_posix_chat_client_SOURCES) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(fork_daemon_SOURCES) $(fork_process_per_connection_SOURCES) \ - $(http_client_async_client_SOURCES) \ - $(http_client_sync_client_SOURCES) \ - $(http_server_http_server_SOURCES) \ - $(http_server2_http_server_SOURCES) \ - $(http_server3_http_server_SOURCES) \ - $(http_server4_http_server_SOURCES) $(icmp_ping_SOURCES) \ - $(invocation_prioritised_handlers_SOURCES) \ - $(iostreams_daytime_client_SOURCES) \ - $(iostreams_daytime_server_SOURCES) \ - $(iostreams_http_client_SOURCES) $(local_connect_pair_SOURCES) \ - $(local_iostream_client_SOURCES) \ - $(local_stream_client_SOURCES) $(local_stream_server_SOURCES) \ - $(multicast_receiver_SOURCES) $(multicast_sender_SOURCES) \ - $(nonblocking_third_party_lib_SOURCES) \ - $(porthopper_client_SOURCES) $(porthopper_server_SOURCES) \ - $(services_daytime_client_SOURCES) \ - $(socks4_sync_client_SOURCES) $(spawn_echo_server_SOURCES) \ - $(spawn_parallel_grep_SOURCES) $(ssl_client_SOURCES) \ - $(ssl_server_SOURCES) $(timeouts_async_tcp_client_SOURCES) \ - $(timeouts_blocking_tcp_client_SOURCES) \ - $(timeouts_blocking_token_tcp_client_SOURCES) \ - $(timeouts_blocking_udp_client_SOURCES) \ - $(timeouts_server_SOURCES) $(timers_time_t_timer_SOURCES) \ - $(tutorial_daytime1_client_SOURCES) \ - $(tutorial_daytime2_server_SOURCES) \ - $(tutorial_daytime3_server_SOURCES) \ - $(tutorial_daytime4_client_SOURCES) \ - $(tutorial_daytime5_server_SOURCES) \ - $(tutorial_daytime6_server_SOURCES) \ - $(tutorial_daytime7_server_SOURCES) \ - $(tutorial_timer1_timer_SOURCES) \ - $(tutorial_timer2_timer_SOURCES) \ - $(tutorial_timer3_timer_SOURCES) \ - $(tutorial_timer4_timer_SOURCES) \ - $(tutorial_timer5_timer_SOURCES) \ - $(windows_transmit_file_SOURCES) -DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ - $(allocation_server_SOURCES) \ - $(buffers_reference_counted_SOURCES) \ - $(chat_chat_client_SOURCES) $(chat_chat_server_SOURCES) \ - $(am__chat_posix_chat_client_SOURCES_DIST) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(am__fork_daemon_SOURCES_DIST) \ - $(am__fork_process_per_connection_SOURCES_DIST) \ - $(http_client_async_client_SOURCES) \ - $(http_client_sync_client_SOURCES) \ - $(http_server_http_server_SOURCES) \ - $(http_server2_http_server_SOURCES) \ - $(http_server3_http_server_SOURCES) \ - $(http_server4_http_server_SOURCES) $(icmp_ping_SOURCES) \ - $(invocation_prioritised_handlers_SOURCES) \ - $(iostreams_daytime_client_SOURCES) \ - $(iostreams_daytime_server_SOURCES) \ - $(iostreams_http_client_SOURCES) \ - $(am__local_connect_pair_SOURCES_DIST) \ - $(am__local_iostream_client_SOURCES_DIST) \ - $(am__local_stream_client_SOURCES_DIST) \ - $(am__local_stream_server_SOURCES_DIST) \ - $(multicast_receiver_SOURCES) $(multicast_sender_SOURCES) \ - $(nonblocking_third_party_lib_SOURCES) \ - $(porthopper_client_SOURCES) $(porthopper_server_SOURCES) \ - $(services_daytime_client_SOURCES) \ - $(socks4_sync_client_SOURCES) \ - $(am__spawn_echo_server_SOURCES_DIST) \ - $(am__spawn_parallel_grep_SOURCES_DIST) \ - $(am__ssl_client_SOURCES_DIST) $(am__ssl_server_SOURCES_DIST) \ - $(timeouts_async_tcp_client_SOURCES) \ - $(timeouts_blocking_tcp_client_SOURCES) \ - $(timeouts_blocking_token_tcp_client_SOURCES) \ - $(timeouts_blocking_udp_client_SOURCES) \ - $(timeouts_server_SOURCES) $(timers_time_t_timer_SOURCES) \ - $(tutorial_daytime1_client_SOURCES) \ - $(tutorial_daytime2_server_SOURCES) \ - $(tutorial_daytime3_server_SOURCES) \ - $(tutorial_daytime4_client_SOURCES) \ - $(tutorial_daytime5_server_SOURCES) \ - $(tutorial_daytime6_server_SOURCES) \ - $(tutorial_daytime7_server_SOURCES) \ - $(tutorial_timer1_timer_SOURCES) \ - $(tutorial_timer2_timer_SOURCES) \ - $(tutorial_timer3_timer_SOURCES) \ - $(tutorial_timer4_timer_SOURCES) \ - $(tutorial_timer5_timer_SOURCES) \ - $(am__windows_transmit_file_SOURCES_DIST) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -@SEPARATE_COMPILATION_TRUE@noinst_LIBRARIES = libasio.a -@SEPARATE_COMPILATION_TRUE@libasio_a_SOURCES = ../../asio.cpp \ -@SEPARATE_COMPILATION_TRUE@ $(am__append_1) -@SEPARATE_COMPILATION_TRUE@LDADD = libasio.a -noinst_HEADERS = \ - chat/chat_message.hpp \ - services/basic_logger.hpp \ - services/logger.hpp \ - services/logger_service.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../../include -allocation_server_SOURCES = allocation/server.cpp -buffers_reference_counted_SOURCES = buffers/reference_counted.cpp -chat_chat_client_SOURCES = chat/chat_client.cpp -chat_chat_server_SOURCES = chat/chat_server.cpp -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -http_client_async_client_SOURCES = http/client/async_client.cpp -http_client_sync_client_SOURCES = http/client/sync_client.cpp -http_server_http_server_SOURCES = \ - http/server/connection.cpp \ - http/server/connection_manager.cpp \ - http/server/main.cpp \ - http/server/mime_types.cpp \ - http/server/reply.cpp \ - http/server/request_handler.cpp \ - http/server/request_parser.cpp \ - http/server/server.cpp - -http_server2_http_server_SOURCES = \ - http/server2/connection.cpp \ - http/server2/io_context_pool.cpp \ - http/server2/main.cpp \ - http/server2/mime_types.cpp \ - http/server2/reply.cpp \ - http/server2/request_handler.cpp \ - http/server2/request_parser.cpp \ - http/server2/server.cpp - -http_server3_http_server_SOURCES = \ - http/server3/connection.cpp \ - http/server3/main.cpp \ - http/server3/mime_types.cpp \ - http/server3/reply.cpp \ - http/server3/request_handler.cpp \ - http/server3/request_parser.cpp \ - http/server3/server.cpp - -http_server4_http_server_SOURCES = \ - http/server4/file_handler.cpp \ - http/server4/main.cpp \ - http/server4/mime_types.cpp \ - http/server4/reply.cpp \ - http/server4/request_parser.cpp \ - http/server4/server.cpp - -icmp_ping_SOURCES = icmp/ping.cpp -invocation_prioritised_handlers_SOURCES = invocation/prioritised_handlers.cpp -iostreams_daytime_client_SOURCES = iostreams/daytime_client.cpp -iostreams_daytime_server_SOURCES = iostreams/daytime_server.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -multicast_receiver_SOURCES = multicast/receiver.cpp -multicast_sender_SOURCES = multicast/sender.cpp -nonblocking_third_party_lib_SOURCES = nonblocking/third_party_lib.cpp -porthopper_client_SOURCES = porthopper/client.cpp -porthopper_server_SOURCES = porthopper/server.cpp -services_daytime_client_SOURCES = \ - services/daytime_client.cpp \ - services/logger_service.cpp - -socks4_sync_client_SOURCES = socks4/sync_client.cpp -timeouts_async_tcp_client_SOURCES = timeouts/async_tcp_client.cpp -timeouts_blocking_tcp_client_SOURCES = timeouts/blocking_tcp_client.cpp -timeouts_blocking_token_tcp_client_SOURCES = timeouts/blocking_token_tcp_client.cpp -timeouts_blocking_udp_client_SOURCES = timeouts/blocking_udp_client.cpp -timeouts_server_SOURCES = timeouts/server.cpp -timers_time_t_timer_SOURCES = timers/time_t_timer.cpp -tutorial_timer1_timer_SOURCES = tutorial/timer1/timer.cpp -tutorial_timer2_timer_SOURCES = tutorial/timer2/timer.cpp -tutorial_timer3_timer_SOURCES = tutorial/timer3/timer.cpp -tutorial_timer4_timer_SOURCES = tutorial/timer4/timer.cpp -tutorial_timer5_timer_SOURCES = tutorial/timer5/timer.cpp -tutorial_daytime1_client_SOURCES = tutorial/daytime1/client.cpp -tutorial_daytime2_server_SOURCES = tutorial/daytime2/server.cpp -tutorial_daytime3_server_SOURCES = tutorial/daytime3/server.cpp -tutorial_daytime4_client_SOURCES = tutorial/daytime4/client.cpp -tutorial_daytime5_server_SOURCES = tutorial/daytime5/server.cpp -tutorial_daytime6_server_SOURCES = tutorial/daytime6/server.cpp -tutorial_daytime7_server_SOURCES = tutorial/daytime7/server.cpp -@WINDOWS_TARGET_FALSE@chat_posix_chat_client_SOURCES = chat/posix_chat_client.cpp -@WINDOWS_TARGET_FALSE@fork_daemon_SOURCES = fork/daemon.cpp -@WINDOWS_TARGET_FALSE@fork_process_per_connection_SOURCES = fork/process_per_connection.cpp -@WINDOWS_TARGET_FALSE@local_connect_pair_SOURCES = local/connect_pair.cpp -@WINDOWS_TARGET_FALSE@local_iostream_client_SOURCES = local/iostream_client.cpp -@WINDOWS_TARGET_FALSE@local_stream_server_SOURCES = local/stream_server.cpp -@WINDOWS_TARGET_FALSE@local_stream_client_SOURCES = local/stream_client.cpp -@WINDOWS_TARGET_TRUE@windows_transmit_file_SOURCES = windows/transmit_file.cpp -@HAVE_OPENSSL_TRUE@ssl_client_SOURCES = ssl/client.cpp -@HAVE_OPENSSL_TRUE@ssl_server_SOURCES = ssl/server.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_SOURCES = spawn/echo_server.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_SOURCES = spawn/parallel_grep.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -EXTRA_DIST = \ - http/server/connection.hpp \ - http/server/connection_manager.hpp \ - http/server/header.hpp \ - http/server/mime_types.hpp \ - http/server/reply.hpp \ - http/server/request.hpp \ - http/server/request_handler.hpp \ - http/server/request_parser.hpp \ - http/server/server.hpp \ - http/server2/connection.hpp \ - http/server2/io_context_pool.hpp \ - http/server2/header.hpp \ - http/server2/mime_types.hpp \ - http/server2/reply.hpp \ - http/server2/request.hpp \ - http/server2/request_handler.hpp \ - http/server2/request_parser.hpp \ - http/server2/server.hpp \ - http/server3/connection.hpp \ - http/server3/header.hpp \ - http/server3/mime_types.hpp \ - http/server3/reply.hpp \ - http/server3/request.hpp \ - http/server3/request_handler.hpp \ - http/server3/request_parser.hpp \ - http/server3/server.hpp \ - http/server4/file_handler.hpp \ - http/server4/header.hpp \ - http/server4/mime_types.hpp \ - http/server4/reply.hpp \ - http/server4/request.hpp \ - http/server4/request_parser.hpp \ - http/server4/server.hpp \ - icmp/icmp_header.hpp \ - icmp/ipv4_header.hpp \ - porthopper/protocol.hpp \ - serialization/client.cpp \ - serialization/server.cpp \ - serialization/connection.hpp \ - serialization/stock.hpp \ - services/basic_logger.hpp \ - services/logger.hpp \ - services/logger_service.hpp \ - socks4/socks4.hpp \ - ssl/README \ - ssl/ca.pem \ - ssl/server.pem \ - ssl/dh2048.pem - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/cpp03/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/examples/cpp03/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -../../$(am__dirstamp): - @$(MKDIR_P) ../.. - @: > ../../$(am__dirstamp) -../../$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../$(DEPDIR) - @: > ../../$(DEPDIR)/$(am__dirstamp) -../../asio.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) -../../asio_ssl.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) - -libasio.a: $(libasio_a_OBJECTS) $(libasio_a_DEPENDENCIES) $(EXTRA_libasio_a_DEPENDENCIES) - $(AM_V_at)-rm -f libasio.a - $(AM_V_AR)$(libasio_a_AR) libasio.a $(libasio_a_OBJECTS) $(libasio_a_LIBADD) - $(AM_V_at)$(RANLIB) libasio.a -allocation/$(am__dirstamp): - @$(MKDIR_P) allocation - @: > allocation/$(am__dirstamp) -allocation/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) allocation/$(DEPDIR) - @: > allocation/$(DEPDIR)/$(am__dirstamp) -allocation/server.$(OBJEXT): allocation/$(am__dirstamp) \ - allocation/$(DEPDIR)/$(am__dirstamp) - -allocation/server$(EXEEXT): $(allocation_server_OBJECTS) $(allocation_server_DEPENDENCIES) $(EXTRA_allocation_server_DEPENDENCIES) allocation/$(am__dirstamp) - @rm -f allocation/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(allocation_server_OBJECTS) $(allocation_server_LDADD) $(LIBS) -buffers/$(am__dirstamp): - @$(MKDIR_P) buffers - @: > buffers/$(am__dirstamp) -buffers/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) buffers/$(DEPDIR) - @: > buffers/$(DEPDIR)/$(am__dirstamp) -buffers/reference_counted.$(OBJEXT): buffers/$(am__dirstamp) \ - buffers/$(DEPDIR)/$(am__dirstamp) - -buffers/reference_counted$(EXEEXT): $(buffers_reference_counted_OBJECTS) $(buffers_reference_counted_DEPENDENCIES) $(EXTRA_buffers_reference_counted_DEPENDENCIES) buffers/$(am__dirstamp) - @rm -f buffers/reference_counted$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(buffers_reference_counted_OBJECTS) $(buffers_reference_counted_LDADD) $(LIBS) -chat/$(am__dirstamp): - @$(MKDIR_P) chat - @: > chat/$(am__dirstamp) -chat/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) chat/$(DEPDIR) - @: > chat/$(DEPDIR)/$(am__dirstamp) -chat/chat_client.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/chat_client$(EXEEXT): $(chat_chat_client_OBJECTS) $(chat_chat_client_DEPENDENCIES) $(EXTRA_chat_chat_client_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/chat_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_chat_client_OBJECTS) $(chat_chat_client_LDADD) $(LIBS) -chat/chat_server.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/chat_server$(EXEEXT): $(chat_chat_server_OBJECTS) $(chat_chat_server_DEPENDENCIES) $(EXTRA_chat_chat_server_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/chat_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_chat_server_OBJECTS) $(chat_chat_server_LDADD) $(LIBS) -chat/posix_chat_client.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/posix_chat_client$(EXEEXT): $(chat_posix_chat_client_OBJECTS) $(chat_posix_chat_client_DEPENDENCIES) $(EXTRA_chat_posix_chat_client_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/posix_chat_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_posix_chat_client_OBJECTS) $(chat_posix_chat_client_LDADD) $(LIBS) -echo/$(am__dirstamp): - @$(MKDIR_P) echo - @: > echo/$(am__dirstamp) -echo/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) echo/$(DEPDIR) - @: > echo/$(DEPDIR)/$(am__dirstamp) -echo/async_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_tcp_echo_server$(EXEEXT): $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_LDADD) $(LIBS) -echo/async_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_udp_echo_server$(EXEEXT): $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_LDADD) $(LIBS) -echo/blocking_tcp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_client$(EXEEXT): $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_LDADD) $(LIBS) -echo/blocking_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_server$(EXEEXT): $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_LDADD) $(LIBS) -echo/blocking_udp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_client$(EXEEXT): $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_LDADD) $(LIBS) -echo/blocking_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_server$(EXEEXT): $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_LDADD) $(LIBS) -fork/$(am__dirstamp): - @$(MKDIR_P) fork - @: > fork/$(am__dirstamp) -fork/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) fork/$(DEPDIR) - @: > fork/$(DEPDIR)/$(am__dirstamp) -fork/daemon.$(OBJEXT): fork/$(am__dirstamp) \ - fork/$(DEPDIR)/$(am__dirstamp) - -fork/daemon$(EXEEXT): $(fork_daemon_OBJECTS) $(fork_daemon_DEPENDENCIES) $(EXTRA_fork_daemon_DEPENDENCIES) fork/$(am__dirstamp) - @rm -f fork/daemon$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(fork_daemon_OBJECTS) $(fork_daemon_LDADD) $(LIBS) -fork/process_per_connection.$(OBJEXT): fork/$(am__dirstamp) \ - fork/$(DEPDIR)/$(am__dirstamp) - -fork/process_per_connection$(EXEEXT): $(fork_process_per_connection_OBJECTS) $(fork_process_per_connection_DEPENDENCIES) $(EXTRA_fork_process_per_connection_DEPENDENCIES) fork/$(am__dirstamp) - @rm -f fork/process_per_connection$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(fork_process_per_connection_OBJECTS) $(fork_process_per_connection_LDADD) $(LIBS) -http/client/$(am__dirstamp): - @$(MKDIR_P) http/client - @: > http/client/$(am__dirstamp) -http/client/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/client/$(DEPDIR) - @: > http/client/$(DEPDIR)/$(am__dirstamp) -http/client/async_client.$(OBJEXT): http/client/$(am__dirstamp) \ - http/client/$(DEPDIR)/$(am__dirstamp) - -http/client/async_client$(EXEEXT): $(http_client_async_client_OBJECTS) $(http_client_async_client_DEPENDENCIES) $(EXTRA_http_client_async_client_DEPENDENCIES) http/client/$(am__dirstamp) - @rm -f http/client/async_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_client_async_client_OBJECTS) $(http_client_async_client_LDADD) $(LIBS) -http/client/sync_client.$(OBJEXT): http/client/$(am__dirstamp) \ - http/client/$(DEPDIR)/$(am__dirstamp) - -http/client/sync_client$(EXEEXT): $(http_client_sync_client_OBJECTS) $(http_client_sync_client_DEPENDENCIES) $(EXTRA_http_client_sync_client_DEPENDENCIES) http/client/$(am__dirstamp) - @rm -f http/client/sync_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_client_sync_client_OBJECTS) $(http_client_sync_client_LDADD) $(LIBS) -http/server/$(am__dirstamp): - @$(MKDIR_P) http/server - @: > http/server/$(am__dirstamp) -http/server/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server/$(DEPDIR) - @: > http/server/$(DEPDIR)/$(am__dirstamp) -http/server/connection.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/connection_manager.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/main.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/mime_types.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/reply.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/request_handler.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/request_parser.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/server.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) - -http/server/http_server$(EXEEXT): $(http_server_http_server_OBJECTS) $(http_server_http_server_DEPENDENCIES) $(EXTRA_http_server_http_server_DEPENDENCIES) http/server/$(am__dirstamp) - @rm -f http/server/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server_http_server_OBJECTS) $(http_server_http_server_LDADD) $(LIBS) -http/server2/$(am__dirstamp): - @$(MKDIR_P) http/server2 - @: > http/server2/$(am__dirstamp) -http/server2/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server2/$(DEPDIR) - @: > http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/connection.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/io_context_pool.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/main.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/mime_types.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/reply.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/request_handler.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/request_parser.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) -http/server2/server.$(OBJEXT): http/server2/$(am__dirstamp) \ - http/server2/$(DEPDIR)/$(am__dirstamp) - -http/server2/http_server$(EXEEXT): $(http_server2_http_server_OBJECTS) $(http_server2_http_server_DEPENDENCIES) $(EXTRA_http_server2_http_server_DEPENDENCIES) http/server2/$(am__dirstamp) - @rm -f http/server2/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server2_http_server_OBJECTS) $(http_server2_http_server_LDADD) $(LIBS) -http/server3/$(am__dirstamp): - @$(MKDIR_P) http/server3 - @: > http/server3/$(am__dirstamp) -http/server3/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server3/$(DEPDIR) - @: > http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/connection.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/main.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/mime_types.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/reply.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/request_handler.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/request_parser.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) -http/server3/server.$(OBJEXT): http/server3/$(am__dirstamp) \ - http/server3/$(DEPDIR)/$(am__dirstamp) - -http/server3/http_server$(EXEEXT): $(http_server3_http_server_OBJECTS) $(http_server3_http_server_DEPENDENCIES) $(EXTRA_http_server3_http_server_DEPENDENCIES) http/server3/$(am__dirstamp) - @rm -f http/server3/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server3_http_server_OBJECTS) $(http_server3_http_server_LDADD) $(LIBS) -http/server4/$(am__dirstamp): - @$(MKDIR_P) http/server4 - @: > http/server4/$(am__dirstamp) -http/server4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server4/$(DEPDIR) - @: > http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/file_handler.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/main.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/mime_types.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/reply.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/request_parser.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) -http/server4/server.$(OBJEXT): http/server4/$(am__dirstamp) \ - http/server4/$(DEPDIR)/$(am__dirstamp) - -http/server4/http_server$(EXEEXT): $(http_server4_http_server_OBJECTS) $(http_server4_http_server_DEPENDENCIES) $(EXTRA_http_server4_http_server_DEPENDENCIES) http/server4/$(am__dirstamp) - @rm -f http/server4/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server4_http_server_OBJECTS) $(http_server4_http_server_LDADD) $(LIBS) -icmp/$(am__dirstamp): - @$(MKDIR_P) icmp - @: > icmp/$(am__dirstamp) -icmp/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) icmp/$(DEPDIR) - @: > icmp/$(DEPDIR)/$(am__dirstamp) -icmp/ping.$(OBJEXT): icmp/$(am__dirstamp) \ - icmp/$(DEPDIR)/$(am__dirstamp) - -icmp/ping$(EXEEXT): $(icmp_ping_OBJECTS) $(icmp_ping_DEPENDENCIES) $(EXTRA_icmp_ping_DEPENDENCIES) icmp/$(am__dirstamp) - @rm -f icmp/ping$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(icmp_ping_OBJECTS) $(icmp_ping_LDADD) $(LIBS) -invocation/$(am__dirstamp): - @$(MKDIR_P) invocation - @: > invocation/$(am__dirstamp) -invocation/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) invocation/$(DEPDIR) - @: > invocation/$(DEPDIR)/$(am__dirstamp) -invocation/prioritised_handlers.$(OBJEXT): invocation/$(am__dirstamp) \ - invocation/$(DEPDIR)/$(am__dirstamp) - -invocation/prioritised_handlers$(EXEEXT): $(invocation_prioritised_handlers_OBJECTS) $(invocation_prioritised_handlers_DEPENDENCIES) $(EXTRA_invocation_prioritised_handlers_DEPENDENCIES) invocation/$(am__dirstamp) - @rm -f invocation/prioritised_handlers$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(invocation_prioritised_handlers_OBJECTS) $(invocation_prioritised_handlers_LDADD) $(LIBS) -iostreams/$(am__dirstamp): - @$(MKDIR_P) iostreams - @: > iostreams/$(am__dirstamp) -iostreams/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) iostreams/$(DEPDIR) - @: > iostreams/$(DEPDIR)/$(am__dirstamp) -iostreams/daytime_client.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/daytime_client$(EXEEXT): $(iostreams_daytime_client_OBJECTS) $(iostreams_daytime_client_DEPENDENCIES) $(EXTRA_iostreams_daytime_client_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/daytime_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_daytime_client_OBJECTS) $(iostreams_daytime_client_LDADD) $(LIBS) -iostreams/daytime_server.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/daytime_server$(EXEEXT): $(iostreams_daytime_server_OBJECTS) $(iostreams_daytime_server_DEPENDENCIES) $(EXTRA_iostreams_daytime_server_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/daytime_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_daytime_server_OBJECTS) $(iostreams_daytime_server_LDADD) $(LIBS) -iostreams/http_client.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/http_client$(EXEEXT): $(iostreams_http_client_OBJECTS) $(iostreams_http_client_DEPENDENCIES) $(EXTRA_iostreams_http_client_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/http_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_http_client_OBJECTS) $(iostreams_http_client_LDADD) $(LIBS) -local/$(am__dirstamp): - @$(MKDIR_P) local - @: > local/$(am__dirstamp) -local/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) local/$(DEPDIR) - @: > local/$(DEPDIR)/$(am__dirstamp) -local/connect_pair.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/connect_pair$(EXEEXT): $(local_connect_pair_OBJECTS) $(local_connect_pair_DEPENDENCIES) $(EXTRA_local_connect_pair_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/connect_pair$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_connect_pair_OBJECTS) $(local_connect_pair_LDADD) $(LIBS) -local/iostream_client.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/iostream_client$(EXEEXT): $(local_iostream_client_OBJECTS) $(local_iostream_client_DEPENDENCIES) $(EXTRA_local_iostream_client_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/iostream_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_iostream_client_OBJECTS) $(local_iostream_client_LDADD) $(LIBS) -local/stream_client.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/stream_client$(EXEEXT): $(local_stream_client_OBJECTS) $(local_stream_client_DEPENDENCIES) $(EXTRA_local_stream_client_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/stream_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_stream_client_OBJECTS) $(local_stream_client_LDADD) $(LIBS) -local/stream_server.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/stream_server$(EXEEXT): $(local_stream_server_OBJECTS) $(local_stream_server_DEPENDENCIES) $(EXTRA_local_stream_server_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/stream_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_stream_server_OBJECTS) $(local_stream_server_LDADD) $(LIBS) -multicast/$(am__dirstamp): - @$(MKDIR_P) multicast - @: > multicast/$(am__dirstamp) -multicast/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) multicast/$(DEPDIR) - @: > multicast/$(DEPDIR)/$(am__dirstamp) -multicast/receiver.$(OBJEXT): multicast/$(am__dirstamp) \ - multicast/$(DEPDIR)/$(am__dirstamp) - -multicast/receiver$(EXEEXT): $(multicast_receiver_OBJECTS) $(multicast_receiver_DEPENDENCIES) $(EXTRA_multicast_receiver_DEPENDENCIES) multicast/$(am__dirstamp) - @rm -f multicast/receiver$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(multicast_receiver_OBJECTS) $(multicast_receiver_LDADD) $(LIBS) -multicast/sender.$(OBJEXT): multicast/$(am__dirstamp) \ - multicast/$(DEPDIR)/$(am__dirstamp) - -multicast/sender$(EXEEXT): $(multicast_sender_OBJECTS) $(multicast_sender_DEPENDENCIES) $(EXTRA_multicast_sender_DEPENDENCIES) multicast/$(am__dirstamp) - @rm -f multicast/sender$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(multicast_sender_OBJECTS) $(multicast_sender_LDADD) $(LIBS) -nonblocking/$(am__dirstamp): - @$(MKDIR_P) nonblocking - @: > nonblocking/$(am__dirstamp) -nonblocking/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) nonblocking/$(DEPDIR) - @: > nonblocking/$(DEPDIR)/$(am__dirstamp) -nonblocking/third_party_lib.$(OBJEXT): nonblocking/$(am__dirstamp) \ - nonblocking/$(DEPDIR)/$(am__dirstamp) - -nonblocking/third_party_lib$(EXEEXT): $(nonblocking_third_party_lib_OBJECTS) $(nonblocking_third_party_lib_DEPENDENCIES) $(EXTRA_nonblocking_third_party_lib_DEPENDENCIES) nonblocking/$(am__dirstamp) - @rm -f nonblocking/third_party_lib$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(nonblocking_third_party_lib_OBJECTS) $(nonblocking_third_party_lib_LDADD) $(LIBS) -porthopper/$(am__dirstamp): - @$(MKDIR_P) porthopper - @: > porthopper/$(am__dirstamp) -porthopper/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) porthopper/$(DEPDIR) - @: > porthopper/$(DEPDIR)/$(am__dirstamp) -porthopper/client.$(OBJEXT): porthopper/$(am__dirstamp) \ - porthopper/$(DEPDIR)/$(am__dirstamp) - -porthopper/client$(EXEEXT): $(porthopper_client_OBJECTS) $(porthopper_client_DEPENDENCIES) $(EXTRA_porthopper_client_DEPENDENCIES) porthopper/$(am__dirstamp) - @rm -f porthopper/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(porthopper_client_OBJECTS) $(porthopper_client_LDADD) $(LIBS) -porthopper/server.$(OBJEXT): porthopper/$(am__dirstamp) \ - porthopper/$(DEPDIR)/$(am__dirstamp) - -porthopper/server$(EXEEXT): $(porthopper_server_OBJECTS) $(porthopper_server_DEPENDENCIES) $(EXTRA_porthopper_server_DEPENDENCIES) porthopper/$(am__dirstamp) - @rm -f porthopper/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(porthopper_server_OBJECTS) $(porthopper_server_LDADD) $(LIBS) -services/$(am__dirstamp): - @$(MKDIR_P) services - @: > services/$(am__dirstamp) -services/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) services/$(DEPDIR) - @: > services/$(DEPDIR)/$(am__dirstamp) -services/daytime_client.$(OBJEXT): services/$(am__dirstamp) \ - services/$(DEPDIR)/$(am__dirstamp) -services/logger_service.$(OBJEXT): services/$(am__dirstamp) \ - services/$(DEPDIR)/$(am__dirstamp) - -services/daytime_client$(EXEEXT): $(services_daytime_client_OBJECTS) $(services_daytime_client_DEPENDENCIES) $(EXTRA_services_daytime_client_DEPENDENCIES) services/$(am__dirstamp) - @rm -f services/daytime_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(services_daytime_client_OBJECTS) $(services_daytime_client_LDADD) $(LIBS) -socks4/$(am__dirstamp): - @$(MKDIR_P) socks4 - @: > socks4/$(am__dirstamp) -socks4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) socks4/$(DEPDIR) - @: > socks4/$(DEPDIR)/$(am__dirstamp) -socks4/sync_client.$(OBJEXT): socks4/$(am__dirstamp) \ - socks4/$(DEPDIR)/$(am__dirstamp) - -socks4/sync_client$(EXEEXT): $(socks4_sync_client_OBJECTS) $(socks4_sync_client_DEPENDENCIES) $(EXTRA_socks4_sync_client_DEPENDENCIES) socks4/$(am__dirstamp) - @rm -f socks4/sync_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(socks4_sync_client_OBJECTS) $(socks4_sync_client_LDADD) $(LIBS) -spawn/$(am__dirstamp): - @$(MKDIR_P) spawn - @: > spawn/$(am__dirstamp) -spawn/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) spawn/$(DEPDIR) - @: > spawn/$(DEPDIR)/$(am__dirstamp) -spawn/echo_server.$(OBJEXT): spawn/$(am__dirstamp) \ - spawn/$(DEPDIR)/$(am__dirstamp) - -spawn/echo_server$(EXEEXT): $(spawn_echo_server_OBJECTS) $(spawn_echo_server_DEPENDENCIES) $(EXTRA_spawn_echo_server_DEPENDENCIES) spawn/$(am__dirstamp) - @rm -f spawn/echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(spawn_echo_server_OBJECTS) $(spawn_echo_server_LDADD) $(LIBS) -spawn/parallel_grep.$(OBJEXT): spawn/$(am__dirstamp) \ - spawn/$(DEPDIR)/$(am__dirstamp) - -spawn/parallel_grep$(EXEEXT): $(spawn_parallel_grep_OBJECTS) $(spawn_parallel_grep_DEPENDENCIES) $(EXTRA_spawn_parallel_grep_DEPENDENCIES) spawn/$(am__dirstamp) - @rm -f spawn/parallel_grep$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(spawn_parallel_grep_OBJECTS) $(spawn_parallel_grep_LDADD) $(LIBS) -ssl/$(am__dirstamp): - @$(MKDIR_P) ssl - @: > ssl/$(am__dirstamp) -ssl/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ssl/$(DEPDIR) - @: > ssl/$(DEPDIR)/$(am__dirstamp) -ssl/client.$(OBJEXT): ssl/$(am__dirstamp) \ - ssl/$(DEPDIR)/$(am__dirstamp) - -ssl/client$(EXEEXT): $(ssl_client_OBJECTS) $(ssl_client_DEPENDENCIES) $(EXTRA_ssl_client_DEPENDENCIES) ssl/$(am__dirstamp) - @rm -f ssl/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(ssl_client_OBJECTS) $(ssl_client_LDADD) $(LIBS) -ssl/server.$(OBJEXT): ssl/$(am__dirstamp) \ - ssl/$(DEPDIR)/$(am__dirstamp) - -ssl/server$(EXEEXT): $(ssl_server_OBJECTS) $(ssl_server_DEPENDENCIES) $(EXTRA_ssl_server_DEPENDENCIES) ssl/$(am__dirstamp) - @rm -f ssl/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(ssl_server_OBJECTS) $(ssl_server_LDADD) $(LIBS) -timeouts/$(am__dirstamp): - @$(MKDIR_P) timeouts - @: > timeouts/$(am__dirstamp) -timeouts/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) timeouts/$(DEPDIR) - @: > timeouts/$(DEPDIR)/$(am__dirstamp) -timeouts/async_tcp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/async_tcp_client$(EXEEXT): $(timeouts_async_tcp_client_OBJECTS) $(timeouts_async_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_async_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/async_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_async_tcp_client_OBJECTS) $(timeouts_async_tcp_client_LDADD) $(LIBS) -timeouts/blocking_tcp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_tcp_client$(EXEEXT): $(timeouts_blocking_tcp_client_OBJECTS) $(timeouts_blocking_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_tcp_client_OBJECTS) $(timeouts_blocking_tcp_client_LDADD) $(LIBS) -timeouts/blocking_token_tcp_client.$(OBJEXT): \ - timeouts/$(am__dirstamp) timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_token_tcp_client$(EXEEXT): $(timeouts_blocking_token_tcp_client_OBJECTS) $(timeouts_blocking_token_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_token_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_token_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_token_tcp_client_OBJECTS) $(timeouts_blocking_token_tcp_client_LDADD) $(LIBS) -timeouts/blocking_udp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_udp_client$(EXEEXT): $(timeouts_blocking_udp_client_OBJECTS) $(timeouts_blocking_udp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_udp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_udp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_udp_client_OBJECTS) $(timeouts_blocking_udp_client_LDADD) $(LIBS) -timeouts/server.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/server$(EXEEXT): $(timeouts_server_OBJECTS) $(timeouts_server_DEPENDENCIES) $(EXTRA_timeouts_server_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_server_OBJECTS) $(timeouts_server_LDADD) $(LIBS) -timers/$(am__dirstamp): - @$(MKDIR_P) timers - @: > timers/$(am__dirstamp) -timers/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) timers/$(DEPDIR) - @: > timers/$(DEPDIR)/$(am__dirstamp) -timers/time_t_timer.$(OBJEXT): timers/$(am__dirstamp) \ - timers/$(DEPDIR)/$(am__dirstamp) - -timers/time_t_timer$(EXEEXT): $(timers_time_t_timer_OBJECTS) $(timers_time_t_timer_DEPENDENCIES) $(EXTRA_timers_time_t_timer_DEPENDENCIES) timers/$(am__dirstamp) - @rm -f timers/time_t_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timers_time_t_timer_OBJECTS) $(timers_time_t_timer_LDADD) $(LIBS) -tutorial/daytime1/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime1 - @: > tutorial/daytime1/$(am__dirstamp) -tutorial/daytime1/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime1/$(DEPDIR) - @: > tutorial/daytime1/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime1/client.$(OBJEXT): tutorial/daytime1/$(am__dirstamp) \ - tutorial/daytime1/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime1/client$(EXEEXT): $(tutorial_daytime1_client_OBJECTS) $(tutorial_daytime1_client_DEPENDENCIES) $(EXTRA_tutorial_daytime1_client_DEPENDENCIES) tutorial/daytime1/$(am__dirstamp) - @rm -f tutorial/daytime1/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime1_client_OBJECTS) $(tutorial_daytime1_client_LDADD) $(LIBS) -tutorial/daytime2/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime2 - @: > tutorial/daytime2/$(am__dirstamp) -tutorial/daytime2/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime2/$(DEPDIR) - @: > tutorial/daytime2/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime2/server.$(OBJEXT): tutorial/daytime2/$(am__dirstamp) \ - tutorial/daytime2/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime2/server$(EXEEXT): $(tutorial_daytime2_server_OBJECTS) $(tutorial_daytime2_server_DEPENDENCIES) $(EXTRA_tutorial_daytime2_server_DEPENDENCIES) tutorial/daytime2/$(am__dirstamp) - @rm -f tutorial/daytime2/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime2_server_OBJECTS) $(tutorial_daytime2_server_LDADD) $(LIBS) -tutorial/daytime3/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime3 - @: > tutorial/daytime3/$(am__dirstamp) -tutorial/daytime3/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime3/$(DEPDIR) - @: > tutorial/daytime3/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime3/server.$(OBJEXT): tutorial/daytime3/$(am__dirstamp) \ - tutorial/daytime3/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime3/server$(EXEEXT): $(tutorial_daytime3_server_OBJECTS) $(tutorial_daytime3_server_DEPENDENCIES) $(EXTRA_tutorial_daytime3_server_DEPENDENCIES) tutorial/daytime3/$(am__dirstamp) - @rm -f tutorial/daytime3/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime3_server_OBJECTS) $(tutorial_daytime3_server_LDADD) $(LIBS) -tutorial/daytime4/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime4 - @: > tutorial/daytime4/$(am__dirstamp) -tutorial/daytime4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime4/$(DEPDIR) - @: > tutorial/daytime4/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime4/client.$(OBJEXT): tutorial/daytime4/$(am__dirstamp) \ - tutorial/daytime4/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime4/client$(EXEEXT): $(tutorial_daytime4_client_OBJECTS) $(tutorial_daytime4_client_DEPENDENCIES) $(EXTRA_tutorial_daytime4_client_DEPENDENCIES) tutorial/daytime4/$(am__dirstamp) - @rm -f tutorial/daytime4/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime4_client_OBJECTS) $(tutorial_daytime4_client_LDADD) $(LIBS) -tutorial/daytime5/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime5 - @: > tutorial/daytime5/$(am__dirstamp) -tutorial/daytime5/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime5/$(DEPDIR) - @: > tutorial/daytime5/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime5/server.$(OBJEXT): tutorial/daytime5/$(am__dirstamp) \ - tutorial/daytime5/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime5/server$(EXEEXT): $(tutorial_daytime5_server_OBJECTS) $(tutorial_daytime5_server_DEPENDENCIES) $(EXTRA_tutorial_daytime5_server_DEPENDENCIES) tutorial/daytime5/$(am__dirstamp) - @rm -f tutorial/daytime5/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime5_server_OBJECTS) $(tutorial_daytime5_server_LDADD) $(LIBS) -tutorial/daytime6/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime6 - @: > tutorial/daytime6/$(am__dirstamp) -tutorial/daytime6/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime6/$(DEPDIR) - @: > tutorial/daytime6/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime6/server.$(OBJEXT): tutorial/daytime6/$(am__dirstamp) \ - tutorial/daytime6/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime6/server$(EXEEXT): $(tutorial_daytime6_server_OBJECTS) $(tutorial_daytime6_server_DEPENDENCIES) $(EXTRA_tutorial_daytime6_server_DEPENDENCIES) tutorial/daytime6/$(am__dirstamp) - @rm -f tutorial/daytime6/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime6_server_OBJECTS) $(tutorial_daytime6_server_LDADD) $(LIBS) -tutorial/daytime7/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime7 - @: > tutorial/daytime7/$(am__dirstamp) -tutorial/daytime7/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/daytime7/$(DEPDIR) - @: > tutorial/daytime7/$(DEPDIR)/$(am__dirstamp) -tutorial/daytime7/server.$(OBJEXT): tutorial/daytime7/$(am__dirstamp) \ - tutorial/daytime7/$(DEPDIR)/$(am__dirstamp) - -tutorial/daytime7/server$(EXEEXT): $(tutorial_daytime7_server_OBJECTS) $(tutorial_daytime7_server_DEPENDENCIES) $(EXTRA_tutorial_daytime7_server_DEPENDENCIES) tutorial/daytime7/$(am__dirstamp) - @rm -f tutorial/daytime7/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_daytime7_server_OBJECTS) $(tutorial_daytime7_server_LDADD) $(LIBS) -tutorial/timer1/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer1 - @: > tutorial/timer1/$(am__dirstamp) -tutorial/timer1/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer1/$(DEPDIR) - @: > tutorial/timer1/$(DEPDIR)/$(am__dirstamp) -tutorial/timer1/timer.$(OBJEXT): tutorial/timer1/$(am__dirstamp) \ - tutorial/timer1/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer1/timer$(EXEEXT): $(tutorial_timer1_timer_OBJECTS) $(tutorial_timer1_timer_DEPENDENCIES) $(EXTRA_tutorial_timer1_timer_DEPENDENCIES) tutorial/timer1/$(am__dirstamp) - @rm -f tutorial/timer1/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer1_timer_OBJECTS) $(tutorial_timer1_timer_LDADD) $(LIBS) -tutorial/timer2/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer2 - @: > tutorial/timer2/$(am__dirstamp) -tutorial/timer2/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer2/$(DEPDIR) - @: > tutorial/timer2/$(DEPDIR)/$(am__dirstamp) -tutorial/timer2/timer.$(OBJEXT): tutorial/timer2/$(am__dirstamp) \ - tutorial/timer2/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer2/timer$(EXEEXT): $(tutorial_timer2_timer_OBJECTS) $(tutorial_timer2_timer_DEPENDENCIES) $(EXTRA_tutorial_timer2_timer_DEPENDENCIES) tutorial/timer2/$(am__dirstamp) - @rm -f tutorial/timer2/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer2_timer_OBJECTS) $(tutorial_timer2_timer_LDADD) $(LIBS) -tutorial/timer3/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer3 - @: > tutorial/timer3/$(am__dirstamp) -tutorial/timer3/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer3/$(DEPDIR) - @: > tutorial/timer3/$(DEPDIR)/$(am__dirstamp) -tutorial/timer3/timer.$(OBJEXT): tutorial/timer3/$(am__dirstamp) \ - tutorial/timer3/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer3/timer$(EXEEXT): $(tutorial_timer3_timer_OBJECTS) $(tutorial_timer3_timer_DEPENDENCIES) $(EXTRA_tutorial_timer3_timer_DEPENDENCIES) tutorial/timer3/$(am__dirstamp) - @rm -f tutorial/timer3/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer3_timer_OBJECTS) $(tutorial_timer3_timer_LDADD) $(LIBS) -tutorial/timer4/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer4 - @: > tutorial/timer4/$(am__dirstamp) -tutorial/timer4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer4/$(DEPDIR) - @: > tutorial/timer4/$(DEPDIR)/$(am__dirstamp) -tutorial/timer4/timer.$(OBJEXT): tutorial/timer4/$(am__dirstamp) \ - tutorial/timer4/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer4/timer$(EXEEXT): $(tutorial_timer4_timer_OBJECTS) $(tutorial_timer4_timer_DEPENDENCIES) $(EXTRA_tutorial_timer4_timer_DEPENDENCIES) tutorial/timer4/$(am__dirstamp) - @rm -f tutorial/timer4/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer4_timer_OBJECTS) $(tutorial_timer4_timer_LDADD) $(LIBS) -tutorial/timer5/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer5 - @: > tutorial/timer5/$(am__dirstamp) -tutorial/timer5/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) tutorial/timer5/$(DEPDIR) - @: > tutorial/timer5/$(DEPDIR)/$(am__dirstamp) -tutorial/timer5/timer.$(OBJEXT): tutorial/timer5/$(am__dirstamp) \ - tutorial/timer5/$(DEPDIR)/$(am__dirstamp) - -tutorial/timer5/timer$(EXEEXT): $(tutorial_timer5_timer_OBJECTS) $(tutorial_timer5_timer_DEPENDENCIES) $(EXTRA_tutorial_timer5_timer_DEPENDENCIES) tutorial/timer5/$(am__dirstamp) - @rm -f tutorial/timer5/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(tutorial_timer5_timer_OBJECTS) $(tutorial_timer5_timer_LDADD) $(LIBS) -windows/$(am__dirstamp): - @$(MKDIR_P) windows - @: > windows/$(am__dirstamp) -windows/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) windows/$(DEPDIR) - @: > windows/$(DEPDIR)/$(am__dirstamp) -windows/transmit_file.$(OBJEXT): windows/$(am__dirstamp) \ - windows/$(DEPDIR)/$(am__dirstamp) - -windows/transmit_file$(EXEEXT): $(windows_transmit_file_OBJECTS) $(windows_transmit_file_DEPENDENCIES) $(EXTRA_windows_transmit_file_DEPENDENCIES) windows/$(am__dirstamp) - @rm -f windows/transmit_file$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(windows_transmit_file_OBJECTS) $(windows_transmit_file_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../../*.$(OBJEXT) - -rm -f allocation/*.$(OBJEXT) - -rm -f buffers/*.$(OBJEXT) - -rm -f chat/*.$(OBJEXT) - -rm -f echo/*.$(OBJEXT) - -rm -f fork/*.$(OBJEXT) - -rm -f http/client/*.$(OBJEXT) - -rm -f http/server/*.$(OBJEXT) - -rm -f http/server2/*.$(OBJEXT) - -rm -f http/server3/*.$(OBJEXT) - -rm -f http/server4/*.$(OBJEXT) - -rm -f icmp/*.$(OBJEXT) - -rm -f invocation/*.$(OBJEXT) - -rm -f iostreams/*.$(OBJEXT) - -rm -f local/*.$(OBJEXT) - -rm -f multicast/*.$(OBJEXT) - -rm -f nonblocking/*.$(OBJEXT) - -rm -f porthopper/*.$(OBJEXT) - -rm -f services/*.$(OBJEXT) - -rm -f socks4/*.$(OBJEXT) - -rm -f spawn/*.$(OBJEXT) - -rm -f ssl/*.$(OBJEXT) - -rm -f timeouts/*.$(OBJEXT) - -rm -f timers/*.$(OBJEXT) - -rm -f tutorial/daytime1/*.$(OBJEXT) - -rm -f tutorial/daytime2/*.$(OBJEXT) - -rm -f tutorial/daytime3/*.$(OBJEXT) - -rm -f tutorial/daytime4/*.$(OBJEXT) - -rm -f tutorial/daytime5/*.$(OBJEXT) - -rm -f tutorial/daytime6/*.$(OBJEXT) - -rm -f tutorial/daytime7/*.$(OBJEXT) - -rm -f tutorial/timer1/*.$(OBJEXT) - -rm -f tutorial/timer2/*.$(OBJEXT) - -rm -f tutorial/timer3/*.$(OBJEXT) - -rm -f tutorial/timer4/*.$(OBJEXT) - -rm -f tutorial/timer5/*.$(OBJEXT) - -rm -f windows/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio_ssl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@allocation/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@buffers/$(DEPDIR)/reference_counted.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/chat_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/chat_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/posix_chat_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@fork/$(DEPDIR)/daemon.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@fork/$(DEPDIR)/process_per_connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/client/$(DEPDIR)/async_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/client/$(DEPDIR)/sync_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/connection_manager.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/request_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/io_context_pool.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/request_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server2/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/request_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server3/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/file_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server4/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@icmp/$(DEPDIR)/ping.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@invocation/$(DEPDIR)/prioritised_handlers.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/daytime_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/daytime_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/http_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/connect_pair.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/iostream_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/stream_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/stream_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@multicast/$(DEPDIR)/receiver.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@multicast/$(DEPDIR)/sender.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@nonblocking/$(DEPDIR)/third_party_lib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@porthopper/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@porthopper/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@services/$(DEPDIR)/daytime_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@services/$(DEPDIR)/logger_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@socks4/$(DEPDIR)/sync_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@spawn/$(DEPDIR)/echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@spawn/$(DEPDIR)/parallel_grep.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@ssl/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@ssl/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/async_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_token_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_udp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timers/$(DEPDIR)/time_t_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime1/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime2/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime3/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime4/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime5/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime6/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/daytime7/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer1/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer2/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer3/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer4/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@tutorial/timer5/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@windows/$(DEPDIR)/transmit_file.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../$(DEPDIR)/$(am__dirstamp) - -rm -f ../../$(am__dirstamp) - -rm -f allocation/$(DEPDIR)/$(am__dirstamp) - -rm -f allocation/$(am__dirstamp) - -rm -f buffers/$(DEPDIR)/$(am__dirstamp) - -rm -f buffers/$(am__dirstamp) - -rm -f chat/$(DEPDIR)/$(am__dirstamp) - -rm -f chat/$(am__dirstamp) - -rm -f echo/$(DEPDIR)/$(am__dirstamp) - -rm -f echo/$(am__dirstamp) - -rm -f fork/$(DEPDIR)/$(am__dirstamp) - -rm -f fork/$(am__dirstamp) - -rm -f http/client/$(DEPDIR)/$(am__dirstamp) - -rm -f http/client/$(am__dirstamp) - -rm -f http/server/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server/$(am__dirstamp) - -rm -f http/server2/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server2/$(am__dirstamp) - -rm -f http/server3/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server3/$(am__dirstamp) - -rm -f http/server4/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server4/$(am__dirstamp) - -rm -f icmp/$(DEPDIR)/$(am__dirstamp) - -rm -f icmp/$(am__dirstamp) - -rm -f invocation/$(DEPDIR)/$(am__dirstamp) - -rm -f invocation/$(am__dirstamp) - -rm -f iostreams/$(DEPDIR)/$(am__dirstamp) - -rm -f iostreams/$(am__dirstamp) - -rm -f local/$(DEPDIR)/$(am__dirstamp) - -rm -f local/$(am__dirstamp) - -rm -f multicast/$(DEPDIR)/$(am__dirstamp) - -rm -f multicast/$(am__dirstamp) - -rm -f nonblocking/$(DEPDIR)/$(am__dirstamp) - -rm -f nonblocking/$(am__dirstamp) - -rm -f porthopper/$(DEPDIR)/$(am__dirstamp) - -rm -f porthopper/$(am__dirstamp) - -rm -f services/$(DEPDIR)/$(am__dirstamp) - -rm -f services/$(am__dirstamp) - -rm -f socks4/$(DEPDIR)/$(am__dirstamp) - -rm -f socks4/$(am__dirstamp) - -rm -f spawn/$(DEPDIR)/$(am__dirstamp) - -rm -f spawn/$(am__dirstamp) - -rm -f ssl/$(DEPDIR)/$(am__dirstamp) - -rm -f ssl/$(am__dirstamp) - -rm -f timeouts/$(DEPDIR)/$(am__dirstamp) - -rm -f timeouts/$(am__dirstamp) - -rm -f timers/$(DEPDIR)/$(am__dirstamp) - -rm -f timers/$(am__dirstamp) - -rm -f tutorial/daytime1/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime1/$(am__dirstamp) - -rm -f tutorial/daytime2/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime2/$(am__dirstamp) - -rm -f tutorial/daytime3/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime3/$(am__dirstamp) - -rm -f tutorial/daytime4/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime4/$(am__dirstamp) - -rm -f tutorial/daytime5/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime5/$(am__dirstamp) - -rm -f tutorial/daytime6/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime6/$(am__dirstamp) - -rm -f tutorial/daytime7/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/daytime7/$(am__dirstamp) - -rm -f tutorial/timer1/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer1/$(am__dirstamp) - -rm -f tutorial/timer2/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer2/$(am__dirstamp) - -rm -f tutorial/timer3/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer3/$(am__dirstamp) - -rm -f tutorial/timer4/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer4/$(am__dirstamp) - -rm -f tutorial/timer5/$(DEPDIR)/$(am__dirstamp) - -rm -f tutorial/timer5/$(am__dirstamp) - -rm -f windows/$(DEPDIR)/$(am__dirstamp) - -rm -f windows/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f allocation/$(DEPDIR)/server.Po - -rm -f buffers/$(DEPDIR)/reference_counted.Po - -rm -f chat/$(DEPDIR)/chat_client.Po - -rm -f chat/$(DEPDIR)/chat_server.Po - -rm -f chat/$(DEPDIR)/posix_chat_client.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f fork/$(DEPDIR)/daemon.Po - -rm -f fork/$(DEPDIR)/process_per_connection.Po - -rm -f http/client/$(DEPDIR)/async_client.Po - -rm -f http/client/$(DEPDIR)/sync_client.Po - -rm -f http/server/$(DEPDIR)/connection.Po - -rm -f http/server/$(DEPDIR)/connection_manager.Po - -rm -f http/server/$(DEPDIR)/main.Po - -rm -f http/server/$(DEPDIR)/mime_types.Po - -rm -f http/server/$(DEPDIR)/reply.Po - -rm -f http/server/$(DEPDIR)/request_handler.Po - -rm -f http/server/$(DEPDIR)/request_parser.Po - -rm -f http/server/$(DEPDIR)/server.Po - -rm -f http/server2/$(DEPDIR)/connection.Po - -rm -f http/server2/$(DEPDIR)/io_context_pool.Po - -rm -f http/server2/$(DEPDIR)/main.Po - -rm -f http/server2/$(DEPDIR)/mime_types.Po - -rm -f http/server2/$(DEPDIR)/reply.Po - -rm -f http/server2/$(DEPDIR)/request_handler.Po - -rm -f http/server2/$(DEPDIR)/request_parser.Po - -rm -f http/server2/$(DEPDIR)/server.Po - -rm -f http/server3/$(DEPDIR)/connection.Po - -rm -f http/server3/$(DEPDIR)/main.Po - -rm -f http/server3/$(DEPDIR)/mime_types.Po - -rm -f http/server3/$(DEPDIR)/reply.Po - -rm -f http/server3/$(DEPDIR)/request_handler.Po - -rm -f http/server3/$(DEPDIR)/request_parser.Po - -rm -f http/server3/$(DEPDIR)/server.Po - -rm -f http/server4/$(DEPDIR)/file_handler.Po - -rm -f http/server4/$(DEPDIR)/main.Po - -rm -f http/server4/$(DEPDIR)/mime_types.Po - -rm -f http/server4/$(DEPDIR)/reply.Po - -rm -f http/server4/$(DEPDIR)/request_parser.Po - -rm -f http/server4/$(DEPDIR)/server.Po - -rm -f icmp/$(DEPDIR)/ping.Po - -rm -f invocation/$(DEPDIR)/prioritised_handlers.Po - -rm -f iostreams/$(DEPDIR)/daytime_client.Po - -rm -f iostreams/$(DEPDIR)/daytime_server.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f local/$(DEPDIR)/connect_pair.Po - -rm -f local/$(DEPDIR)/iostream_client.Po - -rm -f local/$(DEPDIR)/stream_client.Po - -rm -f local/$(DEPDIR)/stream_server.Po - -rm -f multicast/$(DEPDIR)/receiver.Po - -rm -f multicast/$(DEPDIR)/sender.Po - -rm -f nonblocking/$(DEPDIR)/third_party_lib.Po - -rm -f porthopper/$(DEPDIR)/client.Po - -rm -f porthopper/$(DEPDIR)/server.Po - -rm -f services/$(DEPDIR)/daytime_client.Po - -rm -f services/$(DEPDIR)/logger_service.Po - -rm -f socks4/$(DEPDIR)/sync_client.Po - -rm -f spawn/$(DEPDIR)/echo_server.Po - -rm -f spawn/$(DEPDIR)/parallel_grep.Po - -rm -f ssl/$(DEPDIR)/client.Po - -rm -f ssl/$(DEPDIR)/server.Po - -rm -f timeouts/$(DEPDIR)/async_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_token_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_udp_client.Po - -rm -f timeouts/$(DEPDIR)/server.Po - -rm -f timers/$(DEPDIR)/time_t_timer.Po - -rm -f tutorial/daytime1/$(DEPDIR)/client.Po - -rm -f tutorial/daytime2/$(DEPDIR)/server.Po - -rm -f tutorial/daytime3/$(DEPDIR)/server.Po - -rm -f tutorial/daytime4/$(DEPDIR)/client.Po - -rm -f tutorial/daytime5/$(DEPDIR)/server.Po - -rm -f tutorial/daytime6/$(DEPDIR)/server.Po - -rm -f tutorial/daytime7/$(DEPDIR)/server.Po - -rm -f tutorial/timer1/$(DEPDIR)/timer.Po - -rm -f tutorial/timer2/$(DEPDIR)/timer.Po - -rm -f tutorial/timer3/$(DEPDIR)/timer.Po - -rm -f tutorial/timer4/$(DEPDIR)/timer.Po - -rm -f tutorial/timer5/$(DEPDIR)/timer.Po - -rm -f windows/$(DEPDIR)/transmit_file.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f allocation/$(DEPDIR)/server.Po - -rm -f buffers/$(DEPDIR)/reference_counted.Po - -rm -f chat/$(DEPDIR)/chat_client.Po - -rm -f chat/$(DEPDIR)/chat_server.Po - -rm -f chat/$(DEPDIR)/posix_chat_client.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f fork/$(DEPDIR)/daemon.Po - -rm -f fork/$(DEPDIR)/process_per_connection.Po - -rm -f http/client/$(DEPDIR)/async_client.Po - -rm -f http/client/$(DEPDIR)/sync_client.Po - -rm -f http/server/$(DEPDIR)/connection.Po - -rm -f http/server/$(DEPDIR)/connection_manager.Po - -rm -f http/server/$(DEPDIR)/main.Po - -rm -f http/server/$(DEPDIR)/mime_types.Po - -rm -f http/server/$(DEPDIR)/reply.Po - -rm -f http/server/$(DEPDIR)/request_handler.Po - -rm -f http/server/$(DEPDIR)/request_parser.Po - -rm -f http/server/$(DEPDIR)/server.Po - -rm -f http/server2/$(DEPDIR)/connection.Po - -rm -f http/server2/$(DEPDIR)/io_context_pool.Po - -rm -f http/server2/$(DEPDIR)/main.Po - -rm -f http/server2/$(DEPDIR)/mime_types.Po - -rm -f http/server2/$(DEPDIR)/reply.Po - -rm -f http/server2/$(DEPDIR)/request_handler.Po - -rm -f http/server2/$(DEPDIR)/request_parser.Po - -rm -f http/server2/$(DEPDIR)/server.Po - -rm -f http/server3/$(DEPDIR)/connection.Po - -rm -f http/server3/$(DEPDIR)/main.Po - -rm -f http/server3/$(DEPDIR)/mime_types.Po - -rm -f http/server3/$(DEPDIR)/reply.Po - -rm -f http/server3/$(DEPDIR)/request_handler.Po - -rm -f http/server3/$(DEPDIR)/request_parser.Po - -rm -f http/server3/$(DEPDIR)/server.Po - -rm -f http/server4/$(DEPDIR)/file_handler.Po - -rm -f http/server4/$(DEPDIR)/main.Po - -rm -f http/server4/$(DEPDIR)/mime_types.Po - -rm -f http/server4/$(DEPDIR)/reply.Po - -rm -f http/server4/$(DEPDIR)/request_parser.Po - -rm -f http/server4/$(DEPDIR)/server.Po - -rm -f icmp/$(DEPDIR)/ping.Po - -rm -f invocation/$(DEPDIR)/prioritised_handlers.Po - -rm -f iostreams/$(DEPDIR)/daytime_client.Po - -rm -f iostreams/$(DEPDIR)/daytime_server.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f local/$(DEPDIR)/connect_pair.Po - -rm -f local/$(DEPDIR)/iostream_client.Po - -rm -f local/$(DEPDIR)/stream_client.Po - -rm -f local/$(DEPDIR)/stream_server.Po - -rm -f multicast/$(DEPDIR)/receiver.Po - -rm -f multicast/$(DEPDIR)/sender.Po - -rm -f nonblocking/$(DEPDIR)/third_party_lib.Po - -rm -f porthopper/$(DEPDIR)/client.Po - -rm -f porthopper/$(DEPDIR)/server.Po - -rm -f services/$(DEPDIR)/daytime_client.Po - -rm -f services/$(DEPDIR)/logger_service.Po - -rm -f socks4/$(DEPDIR)/sync_client.Po - -rm -f spawn/$(DEPDIR)/echo_server.Po - -rm -f spawn/$(DEPDIR)/parallel_grep.Po - -rm -f ssl/$(DEPDIR)/client.Po - -rm -f ssl/$(DEPDIR)/server.Po - -rm -f timeouts/$(DEPDIR)/async_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_token_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_udp_client.Po - -rm -f timeouts/$(DEPDIR)/server.Po - -rm -f timers/$(DEPDIR)/time_t_timer.Po - -rm -f tutorial/daytime1/$(DEPDIR)/client.Po - -rm -f tutorial/daytime2/$(DEPDIR)/server.Po - -rm -f tutorial/daytime3/$(DEPDIR)/server.Po - -rm -f tutorial/daytime4/$(DEPDIR)/client.Po - -rm -f tutorial/daytime5/$(DEPDIR)/server.Po - -rm -f tutorial/daytime6/$(DEPDIR)/server.Po - -rm -f tutorial/daytime7/$(DEPDIR)/server.Po - -rm -f tutorial/timer1/$(DEPDIR)/timer.Po - -rm -f tutorial/timer2/$(DEPDIR)/timer.Po - -rm -f tutorial/timer3/$(DEPDIR)/timer.Po - -rm -f tutorial/timer4/$(DEPDIR)/timer.Po - -rm -f tutorial/timer5/$(DEPDIR)/timer.Po - -rm -f windows/$(DEPDIR)/transmit_file.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/examples/cpp03/allocation/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/allocation/server.cpp deleted file mode 100644 index d2a3aca..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/allocation/server.cpp +++ /dev/null @@ -1,285 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -// Class to manage the memory to be used for handler-based custom allocation. -// It contains a single block of memory which may be returned for allocation -// requests. If the memory is in use when an allocation request is made, the -// allocator delegates allocation to the global heap. -class handler_memory - : private boost::noncopyable -{ -public: - handler_memory() - : in_use_(false) - { - } - - void* allocate(std::size_t size) - { - if (!in_use_ && size < storage_.size) - { - in_use_ = true; - return storage_.address(); - } - else - { - return ::operator new(size); - } - } - - void deallocate(void* pointer) - { - if (pointer == storage_.address()) - { - in_use_ = false; - } - else - { - ::operator delete(pointer); - } - } - -private: - // Storage space used for handler-based custom memory allocation. - boost::aligned_storage<1024> storage_; - - // Whether the handler-based custom allocation storage has been used. - bool in_use_; -}; - -// The allocator to be associated with the handler objects. This allocator only -// needs to satisfy the C++11 minimal allocator requirements, plus rebind when -// targeting C++03. -template -class handler_allocator -{ -public: - typedef T value_type; - - explicit handler_allocator(handler_memory& mem) - : memory_(mem) - { - } - - template - handler_allocator(const handler_allocator& other) - : memory_(other.memory_) - { - } - - template - struct rebind - { - typedef handler_allocator other; - }; - - bool operator==(const handler_allocator& other) const - { - return &memory_ == &other.memory_; - } - - bool operator!=(const handler_allocator& other) const - { - return &memory_ != &other.memory_; - } - - T* allocate(std::size_t n) const - { - return static_cast(memory_.allocate(sizeof(T) * n)); - } - - void deallocate(T* p, std::size_t /*n*/) const - { - return memory_.deallocate(p); - } - -//private: - // The underlying memory. - handler_memory& memory_; -}; - -// Wrapper class template for handler objects to allow handler memory -// allocation to be customised. The allocator_type typedef and get_allocator() -// member function are used by the asynchronous operations to obtain the -// allocator. Calls to operator() are forwarded to the encapsulated handler. -template -class custom_alloc_handler -{ -public: - typedef handler_allocator allocator_type; - - custom_alloc_handler(handler_memory& m, Handler h) - : memory_(m), - handler_(h) - { - } - - allocator_type get_allocator() const - { - return allocator_type(memory_); - } - - template - void operator()(Arg1 arg1) - { - handler_(arg1); - } - - template - void operator()(Arg1 arg1, Arg2 arg2) - { - handler_(arg1, arg2); - } - -private: - handler_memory& memory_; - Handler handler_; -}; - -// Helper function to wrap a handler object to add custom allocation. -template -inline custom_alloc_handler make_custom_alloc_handler( - handler_memory& m, Handler h) -{ - return custom_alloc_handler(m, h); -} - -class session - : public boost::enable_shared_from_this -{ -public: - session(asio::io_context& io_context) - : socket_(io_context) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - socket_.async_read_some(asio::buffer(data_), - make_custom_alloc_handler(handler_memory_, - boost::bind(&session::handle_read, - shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred))); - } - - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_write(socket_, - asio::buffer(data_, bytes_transferred), - make_custom_alloc_handler(handler_memory_, - boost::bind(&session::handle_write, - shared_from_this(), - asio::placeholders::error))); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_), - make_custom_alloc_handler(handler_memory_, - boost::bind(&session::handle_read, - shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred))); - } - } - -private: - // The socket used to communicate with the client. - tcp::socket socket_; - - // Buffer used to store data received from the client. - boost::array data_; - - // The memory to use for handler-based custom memory allocation. - handler_memory handler_memory_; -}; - -typedef boost::shared_ptr session_ptr; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : io_context_(io_context), - acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - session_ptr new_session(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session_ptr new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - - new_session.reset(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - -private: - asio::io_context& io_context_; - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/buffers/reference_counted.cpp b/Sources/Vendor/asio/src/examples/cpp03/buffers/reference_counted.cpp deleted file mode 100644 index 24ee02b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/buffers/reference_counted.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// -// reference_counted.cpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -// A reference-counted non-modifiable buffer class. -class shared_const_buffer -{ -public: - // Construct from a std::string. - explicit shared_const_buffer(const std::string& data) - : data_(new std::vector(data.begin(), data.end())), - buffer_(asio::buffer(*data_)) - { - } - - // Implement the ConstBufferSequence requirements. - typedef asio::const_buffer value_type; - typedef const asio::const_buffer* const_iterator; - const asio::const_buffer* begin() const { return &buffer_; } - const asio::const_buffer* end() const { return &buffer_ + 1; } - -private: - boost::shared_ptr > data_; - asio::const_buffer buffer_; -}; - -class session - : public boost::enable_shared_from_this -{ -public: - session(asio::io_context& io_context) - : socket_(io_context) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - using namespace std; // For time_t, time and ctime. - time_t now = time(0); - shared_const_buffer buffer(ctime(&now)); - asio::async_write(socket_, buffer, - boost::bind(&session::handle_write, shared_from_this())); - } - - void handle_write() - { - } - -private: - // The socket used to communicate with the client. - tcp::socket socket_; -}; - -typedef boost::shared_ptr session_ptr; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : io_context_(io_context), - acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - session_ptr new_session(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session_ptr new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - - new_session.reset(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - -private: - asio::io_context& io_context_; - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: reference_counted \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/chat/chat_client.cpp deleted file mode 100644 index 6011f53..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_client.cpp +++ /dev/null @@ -1,177 +0,0 @@ -// -// chat_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -using asio::ip::tcp; - -typedef std::deque chat_message_queue; - -class chat_client -{ -public: - chat_client(asio::io_context& io_context, - const tcp::resolver::results_type& endpoints) - : io_context_(io_context), - socket_(io_context) - { - asio::async_connect(socket_, endpoints, - boost::bind(&chat_client::handle_connect, this, - asio::placeholders::error)); - } - - void write(const chat_message& msg) - { - asio::post(io_context_, - boost::bind(&chat_client::do_write, this, msg)); - } - - void close() - { - asio::post(io_context_, - boost::bind(&chat_client::do_close, this)); - } - -private: - - void handle_connect(const asio::error_code& error) - { - if (!error) - { - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&chat_client::handle_read_header, this, - asio::placeholders::error)); - } - } - - void handle_read_header(const asio::error_code& error) - { - if (!error && read_msg_.decode_header()) - { - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - boost::bind(&chat_client::handle_read_body, this, - asio::placeholders::error)); - } - else - { - do_close(); - } - } - - void handle_read_body(const asio::error_code& error) - { - if (!error) - { - std::cout.write(read_msg_.body(), read_msg_.body_length()); - std::cout << "\n"; - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&chat_client::handle_read_header, this, - asio::placeholders::error)); - } - else - { - do_close(); - } - } - - void do_write(chat_message msg) - { - bool write_in_progress = !write_msgs_.empty(); - write_msgs_.push_back(msg); - if (!write_in_progress) - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - boost::bind(&chat_client::handle_write, this, - asio::placeholders::error)); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - write_msgs_.pop_front(); - if (!write_msgs_.empty()) - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - boost::bind(&chat_client::handle_write, this, - asio::placeholders::error)); - } - } - else - { - do_close(); - } - } - - void do_close() - { - socket_.close(); - } - -private: - asio::io_context& io_context_; - tcp::socket socket_; - chat_message read_msg_; - chat_message_queue write_msgs_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: chat_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = resolver.resolve(argv[1], argv[2]); - - chat_client c(io_context, endpoints); - - asio::thread t(boost::bind(&asio::io_context::run, &io_context)); - - char line[chat_message::max_body_length + 1]; - while (std::cin.getline(line, chat_message::max_body_length + 1)) - { - using namespace std; // For strlen and memcpy. - chat_message msg; - msg.body_length(strlen(line)); - memcpy(msg.body(), line, msg.body_length()); - msg.encode_header(); - c.write(msg); - } - - c.close(); - t.join(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_message.hpp b/Sources/Vendor/asio/src/examples/cpp03/chat/chat_message.hpp deleted file mode 100644 index 942b480..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_message.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// chat_message.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 CHAT_MESSAGE_HPP -#define CHAT_MESSAGE_HPP - -#include -#include -#include - -class chat_message -{ -public: - enum { header_length = 4 }; - enum { max_body_length = 512 }; - - chat_message() - : body_length_(0) - { - } - - const char* data() const - { - return data_; - } - - char* data() - { - return data_; - } - - size_t length() const - { - return header_length + body_length_; - } - - const char* body() const - { - return data_ + header_length; - } - - char* body() - { - return data_ + header_length; - } - - size_t body_length() const - { - return body_length_; - } - - void body_length(size_t new_length) - { - body_length_ = new_length; - if (body_length_ > max_body_length) - body_length_ = max_body_length; - } - - bool decode_header() - { - using namespace std; // For strncat and atoi. - char header[header_length + 1] = ""; - strncat(header, data_, header_length); - body_length_ = atoi(header); - if (body_length_ > max_body_length) - { - body_length_ = 0; - return false; - } - return true; - } - - void encode_header() - { - using namespace std; // For sprintf and memcpy. - char header[header_length + 1] = ""; - sprintf(header, "%4d", static_cast(body_length_)); - memcpy(data_, header, header_length); - } - -private: - char data_[header_length + max_body_length]; - size_t body_length_; -}; - -#endif // CHAT_MESSAGE_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/chat/chat_server.cpp deleted file mode 100644 index adec6aa..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/chat/chat_server.cpp +++ /dev/null @@ -1,247 +0,0 @@ -// -// chat_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -typedef std::deque chat_message_queue; - -//---------------------------------------------------------------------- - -class chat_participant -{ -public: - virtual ~chat_participant() {} - virtual void deliver(const chat_message& msg) = 0; -}; - -typedef boost::shared_ptr chat_participant_ptr; - -//---------------------------------------------------------------------- - -class chat_room -{ -public: - void join(chat_participant_ptr participant) - { - participants_.insert(participant); - std::for_each(recent_msgs_.begin(), recent_msgs_.end(), - boost::bind(&chat_participant::deliver, participant, _1)); - } - - void leave(chat_participant_ptr participant) - { - participants_.erase(participant); - } - - void deliver(const chat_message& msg) - { - recent_msgs_.push_back(msg); - while (recent_msgs_.size() > max_recent_msgs) - recent_msgs_.pop_front(); - - std::for_each(participants_.begin(), participants_.end(), - boost::bind(&chat_participant::deliver, _1, boost::ref(msg))); - } - -private: - std::set participants_; - enum { max_recent_msgs = 100 }; - chat_message_queue recent_msgs_; -}; - -//---------------------------------------------------------------------- - -class chat_session - : public chat_participant, - public boost::enable_shared_from_this -{ -public: - chat_session(asio::io_context& io_context, chat_room& room) - : socket_(io_context), - room_(room) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - room_.join(shared_from_this()); - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind( - &chat_session::handle_read_header, shared_from_this(), - asio::placeholders::error)); - } - - void deliver(const chat_message& msg) - { - bool write_in_progress = !write_msgs_.empty(); - write_msgs_.push_back(msg); - if (!write_in_progress) - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - boost::bind(&chat_session::handle_write, shared_from_this(), - asio::placeholders::error)); - } - } - - void handle_read_header(const asio::error_code& error) - { - if (!error && read_msg_.decode_header()) - { - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - boost::bind(&chat_session::handle_read_body, shared_from_this(), - asio::placeholders::error)); - } - else - { - room_.leave(shared_from_this()); - } - } - - void handle_read_body(const asio::error_code& error) - { - if (!error) - { - room_.deliver(read_msg_); - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&chat_session::handle_read_header, shared_from_this(), - asio::placeholders::error)); - } - else - { - room_.leave(shared_from_this()); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - write_msgs_.pop_front(); - if (!write_msgs_.empty()) - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - boost::bind(&chat_session::handle_write, shared_from_this(), - asio::placeholders::error)); - } - } - else - { - room_.leave(shared_from_this()); - } - } - -private: - tcp::socket socket_; - chat_room& room_; - chat_message read_msg_; - chat_message_queue write_msgs_; -}; - -typedef boost::shared_ptr chat_session_ptr; - -//---------------------------------------------------------------------- - -class chat_server -{ -public: - chat_server(asio::io_context& io_context, - const tcp::endpoint& endpoint) - : io_context_(io_context), - acceptor_(io_context, endpoint) - { - start_accept(); - } - - void start_accept() - { - chat_session_ptr new_session(new chat_session(io_context_, room_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&chat_server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(chat_session_ptr session, - const asio::error_code& error) - { - if (!error) - { - session->start(); - } - - start_accept(); - } - -private: - asio::io_context& io_context_; - tcp::acceptor acceptor_; - chat_room room_; -}; - -typedef boost::shared_ptr chat_server_ptr; -typedef std::list chat_server_list; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: chat_server [ ...]\n"; - return 1; - } - - asio::io_context io_context; - - chat_server_list servers; - for (int i = 1; i < argc; ++i) - { - using namespace std; // For atoi. - tcp::endpoint endpoint(tcp::v4(), atoi(argv[i])); - chat_server_ptr server(new chat_server(io_context, endpoint)); - servers.push_back(server); - } - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/chat/posix_chat_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/chat/posix_chat_client.cpp deleted file mode 100644 index 80d885d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/chat/posix_chat_client.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// -// posix_chat_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -#if defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - -using asio::ip::tcp; -namespace posix = asio::posix; - -class posix_chat_client -{ -public: - posix_chat_client(asio::io_context& io_context, - const tcp::resolver::results_type& endpoints) - : socket_(io_context), - input_(io_context, ::dup(STDIN_FILENO)), - output_(io_context, ::dup(STDOUT_FILENO)), - input_buffer_(chat_message::max_body_length) - { - asio::async_connect(socket_, endpoints, - boost::bind(&posix_chat_client::handle_connect, this, - asio::placeholders::error)); - } - -private: - - void handle_connect(const asio::error_code& error) - { - if (!error) - { - // Read the fixed-length header of the next message from the server. - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&posix_chat_client::handle_read_header, this, - asio::placeholders::error)); - - // Read a line of input entered by the user. - asio::async_read_until(input_, input_buffer_, '\n', - boost::bind(&posix_chat_client::handle_read_input, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - - void handle_read_header(const asio::error_code& error) - { - if (!error && read_msg_.decode_header()) - { - // Read the variable-length body of the message from the server. - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - boost::bind(&posix_chat_client::handle_read_body, this, - asio::placeholders::error)); - } - else - { - close(); - } - } - - void handle_read_body(const asio::error_code& error) - { - if (!error) - { - // Write out the message we just received, terminated by a newline. - static char eol[] = { '\n' }; - boost::array buffers = {{ - asio::buffer(read_msg_.body(), read_msg_.body_length()), - asio::buffer(eol) }}; - asio::async_write(output_, buffers, - boost::bind(&posix_chat_client::handle_write_output, this, - asio::placeholders::error)); - } - else - { - close(); - } - } - - void handle_write_output(const asio::error_code& error) - { - if (!error) - { - // Read the fixed-length header of the next message from the server. - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - boost::bind(&posix_chat_client::handle_read_header, this, - asio::placeholders::error)); - } - else - { - close(); - } - } - - void handle_read_input(const asio::error_code& error, - std::size_t length) - { - if (!error) - { - // Write the message (minus the newline) to the server. - write_msg_.body_length(length - 1); - input_buffer_.sgetn(write_msg_.body(), length - 1); - input_buffer_.consume(1); // Remove newline from input. - write_msg_.encode_header(); - asio::async_write(socket_, - asio::buffer(write_msg_.data(), write_msg_.length()), - boost::bind(&posix_chat_client::handle_write, this, - asio::placeholders::error)); - } - else if (error == asio::error::not_found) - { - // Didn't get a newline. Send whatever we have. - write_msg_.body_length(input_buffer_.size()); - input_buffer_.sgetn(write_msg_.body(), input_buffer_.size()); - write_msg_.encode_header(); - asio::async_write(socket_, - asio::buffer(write_msg_.data(), write_msg_.length()), - boost::bind(&posix_chat_client::handle_write, this, - asio::placeholders::error)); - } - else - { - close(); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - // Read a line of input entered by the user. - asio::async_read_until(input_, input_buffer_, '\n', - boost::bind(&posix_chat_client::handle_read_input, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - close(); - } - } - - void close() - { - // Cancel all outstanding asynchronous operations. - socket_.close(); - input_.close(); - output_.close(); - } - -private: - tcp::socket socket_; - posix::stream_descriptor input_; - posix::stream_descriptor output_; - chat_message read_msg_; - chat_message write_msg_; - asio::streambuf input_buffer_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: posix_chat_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = resolver.resolve(argv[1], argv[2]); - - posix_chat_client c(io_context, endpoints); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) -int main() {} -#endif // defined(ASIO_HAS_POSIX_STREAM_DESCRIPTOR) diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp deleted file mode 100644 index c5d3395..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// -// async_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -class session -{ -public: - session(asio::io_context& io_context) - : socket_(io_context) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - socket_.async_read_some(asio::buffer(data_, max_length), - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - -private: - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_write(socket_, - asio::buffer(data_, bytes_transferred), - boost::bind(&session::handle_write, this, - asio::placeholders::error)); - } - else - { - delete this; - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_, max_length), - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - delete this; - } - } - - tcp::socket socket_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : io_context_(io_context), - acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - start_accept(); - } - -private: - void start_accept() - { - session* new_session = new session(io_context_); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session* new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - else - { - delete new_session; - } - - start_accept(); - } - - asio::io_context& io_context_; - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: async_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp deleted file mode 100644 index af6c68d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// async_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : socket_(io_context, udp::endpoint(udp::v4(), port)) - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&server::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - - void handle_receive_from(const asio::error_code& error, - size_t bytes_recvd) - { - if (!error && bytes_recvd > 0) - { - socket_.async_send_to( - asio::buffer(data_, bytes_recvd), sender_endpoint_, - boost::bind(&server::handle_send_to, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&server::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - - void handle_send_to(const asio::error_code& /*error*/, - size_t /*bytes_sent*/) - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&server::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - -private: - udp::socket socket_; - udp::endpoint sender_endpoint_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: async_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp deleted file mode 100644 index cfb5c69..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// blocking_tcp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_tcp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = - resolver.resolve(tcp::v4(), argv[1], argv[2]); - - tcp::socket s(io_context); - asio::connect(s, endpoints); - - using namespace std; // For strlen. - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = strlen(request); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - asio::buffer(reply, request_length)); - std::cout << "Reply is: "; - std::cout.write(reply, reply_length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp deleted file mode 100644 index 52e9ace..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// blocking_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -const int max_length = 1024; - -typedef boost::shared_ptr socket_ptr; - -void session(socket_ptr sock) -{ - try - { - for (;;) - { - char data[max_length]; - - asio::error_code error; - size_t length = sock->read_some(asio::buffer(data), error); - if (error == asio::error::eof) - break; // Connection closed cleanly by peer. - else if (error) - throw asio::system_error(error); // Some other error. - - asio::write(*sock, asio::buffer(data, length)); - } - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - } -} - -void server(asio::io_context& io_context, unsigned short port) -{ - tcp::acceptor a(io_context, tcp::endpoint(tcp::v4(), port)); - for (;;) - { - socket_ptr sock(new tcp::socket(io_context)); - a.accept(*sock); - asio::thread t(boost::bind(session, sock)); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server(io_context, atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp deleted file mode 100644 index 1a28385..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// blocking_udp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - udp::socket s(io_context, udp::endpoint(udp::v4(), 0)); - - udp::resolver resolver(io_context); - udp::resolver::results_type endpoints = - resolver.resolve(udp::v4(), argv[1], argv[2]); - - using namespace std; // For strlen. - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = strlen(request); - s.send_to(asio::buffer(request, request_length), *endpoints.begin()); - - char reply[max_length]; - udp::endpoint sender_endpoint; - size_t reply_length = s.receive_from( - asio::buffer(reply, max_length), sender_endpoint); - std::cout << "Reply is: "; - std::cout.write(reply, reply_length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp deleted file mode 100644 index 149f648..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// blocking_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -enum { max_length = 1024 }; - -void server(asio::io_context& io_context, unsigned short port) -{ - udp::socket sock(io_context, udp::endpoint(udp::v4(), port)); - for (;;) - { - char data[max_length]; - udp::endpoint sender_endpoint; - size_t length = sock.receive_from( - asio::buffer(data, max_length), sender_endpoint); - sock.send_to(asio::buffer(data, length), sender_endpoint); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server(io_context, atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/fork/daemon.cpp b/Sources/Vendor/asio/src/examples/cpp03/fork/daemon.cpp deleted file mode 100644 index a634a5d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/fork/daemon.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// daemon.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::udp; - -class udp_daytime_server -{ -public: - udp_daytime_server(asio::io_context& io_context) - : socket_(io_context, udp::endpoint(udp::v4(), 13)) - { - start_receive(); - } - -private: - void start_receive() - { - socket_.async_receive_from( - asio::buffer(recv_buffer_), remote_endpoint_, - boost::bind(&udp_daytime_server::handle_receive, this, _1)); - } - - void handle_receive(const asio::error_code& ec) - { - if (!ec) - { - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - std::string message = ctime(&now); - - asio::error_code ignored_ec; - socket_.send_to(asio::buffer(message), - remote_endpoint_, 0, ignored_ec); - } - - start_receive(); - } - - udp::socket socket_; - udp::endpoint remote_endpoint_; - boost::array recv_buffer_; -}; - -int main() -{ - try - { - asio::io_context io_context; - - // Initialise the server before becoming a daemon. If the process is - // started from a shell, this means any errors will be reported back to the - // user. - udp_daytime_server server(io_context); - - // Register signal handlers so that the daemon may be shut down. You may - // also want to register for other signals, such as SIGHUP to trigger a - // re-read of a configuration file. - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait( - boost::bind(&asio::io_context::stop, &io_context)); - - // Inform the io_context that we are about to become a daemon. The - // io_context cleans up any internal resources, such as threads, that may - // interfere with forking. - io_context.notify_fork(asio::io_context::fork_prepare); - - // Fork the process and have the parent exit. If the process was started - // from a shell, this returns control to the user. Forking a new process is - // also a prerequisite for the subsequent call to setsid(). - if (pid_t pid = fork()) - { - if (pid > 0) - { - // We're in the parent process and need to exit. - // - // When the exit() function is used, the program terminates without - // invoking local variables' destructors. Only global variables are - // destroyed. As the io_context object is a local variable, this means - // we do not have to call: - // - // io_context.notify_fork(asio::io_context::fork_parent); - // - // However, this line should be added before each call to exit() if - // using a global io_context object. An additional call: - // - // io_context.notify_fork(asio::io_context::fork_prepare); - // - // should also precede the second fork(). - exit(0); - } - else - { - syslog(LOG_ERR | LOG_USER, "First fork failed: %m"); - return 1; - } - } - - // Make the process a new session leader. This detaches it from the - // terminal. - setsid(); - - // A process inherits its working directory from its parent. This could be - // on a mounted filesystem, which means that the running daemon would - // prevent this filesystem from being unmounted. Changing to the root - // directory avoids this problem. - chdir("/"); - - // The file mode creation mask is also inherited from the parent process. - // We don't want to restrict the permissions on files created by the - // daemon, so the mask is cleared. - umask(0); - - // A second fork ensures the process cannot acquire a controlling terminal. - if (pid_t pid = fork()) - { - if (pid > 0) - { - exit(0); - } - else - { - syslog(LOG_ERR | LOG_USER, "Second fork failed: %m"); - return 1; - } - } - - // Close the standard streams. This decouples the daemon from the terminal - // that started it. - close(0); - close(1); - close(2); - - // We don't want the daemon to have any standard input. - if (open("/dev/null", O_RDONLY) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to open /dev/null: %m"); - return 1; - } - - // Send standard output to a log file. - const char* output = "/tmp/asio.daemon.out"; - const int flags = O_WRONLY | O_CREAT | O_APPEND; - const mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; - if (open(output, flags, mode) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to open output file %s: %m", output); - return 1; - } - - // Also send standard error to the same log file. - if (dup(1) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to dup output descriptor: %m"); - return 1; - } - - // Inform the io_context that we have finished becoming a daemon. The - // io_context uses this opportunity to create any internal file descriptors - // that need to be private to the new process. - io_context.notify_fork(asio::io_context::fork_child); - - // The io_context can now be used normally. - syslog(LOG_INFO | LOG_USER, "Daemon started"); - io_context.run(); - syslog(LOG_INFO | LOG_USER, "Daemon stopped"); - } - catch (std::exception& e) - { - syslog(LOG_ERR | LOG_USER, "Exception: %s", e.what()); - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/fork/process_per_connection.cpp b/Sources/Vendor/asio/src/examples/cpp03/fork/process_per_connection.cpp deleted file mode 100644 index 2b11171..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/fork/process_per_connection.cpp +++ /dev/null @@ -1,160 +0,0 @@ -// -// process_per_connection.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : io_context_(io_context), - signal_(io_context, SIGCHLD), - acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - socket_(io_context) - { - start_signal_wait(); - start_accept(); - } - -private: - void start_signal_wait() - { - signal_.async_wait(boost::bind(&server::handle_signal_wait, this)); - } - - void handle_signal_wait() - { - // Only the parent process should check for this signal. We can determine - // whether we are in the parent by checking if the acceptor is still open. - if (acceptor_.is_open()) - { - // Reap completed child processes so that we don't end up with zombies. - int status = 0; - while (waitpid(-1, &status, WNOHANG) > 0) {} - - start_signal_wait(); - } - } - - void start_accept() - { - acceptor_.async_accept(socket_, - boost::bind(&server::handle_accept, this, _1)); - } - - void handle_accept(const asio::error_code& ec) - { - if (!ec) - { - // Inform the io_context that we are about to fork. The io_context cleans - // up any internal resources, such as threads, that may interfere with - // forking. - io_context_.notify_fork(asio::io_context::fork_prepare); - - if (fork() == 0) - { - // Inform the io_context that the fork is finished and that this is the - // child process. The io_context uses this opportunity to create any - // internal file descriptors that must be private to the new process. - io_context_.notify_fork(asio::io_context::fork_child); - - // The child won't be accepting new connections, so we can close the - // acceptor. It remains open in the parent. - acceptor_.close(); - - // The child process is not interested in processing the SIGCHLD signal. - signal_.cancel(); - - start_read(); - } - else - { - // Inform the io_context that the fork is finished (or failed) and that - // this is the parent process. The io_context uses this opportunity to - // recreate any internal resources that were cleaned up during - // preparation for the fork. - io_context_.notify_fork(asio::io_context::fork_parent); - - socket_.close(); - start_accept(); - } - } - else - { - std::cerr << "Accept error: " << ec.message() << std::endl; - start_accept(); - } - } - - void start_read() - { - socket_.async_read_some(asio::buffer(data_), - boost::bind(&server::handle_read, this, _1, _2)); - } - - void handle_read(const asio::error_code& ec, std::size_t length) - { - if (!ec) - start_write(length); - } - - void start_write(std::size_t length) - { - asio::async_write(socket_, asio::buffer(data_, length), - boost::bind(&server::handle_write, this, _1)); - } - - void handle_write(const asio::error_code& ec) - { - if (!ec) - start_read(); - } - - asio::io_context& io_context_; - asio::signal_set signal_; - tcp::acceptor acceptor_; - tcp::socket socket_; - boost::array data_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: process_per_connection \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/client/async_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/client/async_client.cpp deleted file mode 100644 index bb10c83..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/client/async_client.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// -// async_client.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class client -{ -public: - client(asio::io_context& io_context, - const std::string& server, const std::string& path) - : resolver_(io_context), - socket_(io_context) - { - // Form the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - std::ostream request_stream(&request_); - request_stream << "GET " << path << " HTTP/1.0\r\n"; - request_stream << "Host: " << server << "\r\n"; - request_stream << "Accept: */*\r\n"; - request_stream << "Connection: close\r\n\r\n"; - - // Start an asynchronous resolve to translate the server and service names - // into a list of endpoints. - resolver_.async_resolve(server, "http", - boost::bind(&client::handle_resolve, this, - asio::placeholders::error, - asio::placeholders::results)); - } - -private: - void handle_resolve(const asio::error_code& err, - const tcp::resolver::results_type& endpoints) - { - if (!err) - { - // Attempt a connection to each endpoint in the list until we - // successfully establish a connection. - asio::async_connect(socket_, endpoints, - boost::bind(&client::handle_connect, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err.message() << "\n"; - } - } - - void handle_connect(const asio::error_code& err) - { - if (!err) - { - // The connection was successful. Send the request. - asio::async_write(socket_, request_, - boost::bind(&client::handle_write_request, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err.message() << "\n"; - } - } - - void handle_write_request(const asio::error_code& err) - { - if (!err) - { - // Read the response status line. The response_ streambuf will - // automatically grow to accommodate the entire line. The growth may be - // limited by passing a maximum size to the streambuf constructor. - asio::async_read_until(socket_, response_, "\r\n", - boost::bind(&client::handle_read_status_line, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err.message() << "\n"; - } - } - - void handle_read_status_line(const asio::error_code& err) - { - if (!err) - { - // Check that response is OK. - std::istream response_stream(&response_); - std::string http_version; - response_stream >> http_version; - unsigned int status_code; - response_stream >> status_code; - std::string status_message; - std::getline(response_stream, status_message); - if (!response_stream || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return; - } - if (status_code != 200) - { - std::cout << "Response returned with status code "; - std::cout << status_code << "\n"; - return; - } - - // Read the response headers, which are terminated by a blank line. - asio::async_read_until(socket_, response_, "\r\n\r\n", - boost::bind(&client::handle_read_headers, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err << "\n"; - } - } - - void handle_read_headers(const asio::error_code& err) - { - if (!err) - { - // Process the response headers. - std::istream response_stream(&response_); - std::string header; - while (std::getline(response_stream, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write whatever content we already have to output. - if (response_.size() > 0) - std::cout << &response_; - - // Start reading remaining data until EOF. - asio::async_read(socket_, response_, - asio::transfer_at_least(1), - boost::bind(&client::handle_read_content, this, - asio::placeholders::error)); - } - else - { - std::cout << "Error: " << err << "\n"; - } - } - - void handle_read_content(const asio::error_code& err) - { - if (!err) - { - // Write all of the data that has been read so far. - std::cout << &response_; - - // Continue reading remaining data until EOF. - asio::async_read(socket_, response_, - asio::transfer_at_least(1), - boost::bind(&client::handle_read_content, this, - asio::placeholders::error)); - } - else if (err != asio::error::eof) - { - std::cout << "Error: " << err << "\n"; - } - } - - tcp::resolver resolver_; - tcp::socket socket_; - asio::streambuf request_; - asio::streambuf response_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: async_client \n"; - std::cout << "Example:\n"; - std::cout << " async_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::io_context io_context; - client c(io_context, argv[1], argv[2]); - io_context.run(); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/client/sync_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/client/sync_client.cpp deleted file mode 100644 index e27c977..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/client/sync_client.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// sync_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: sync_client \n"; - std::cout << "Example:\n"; - std::cout << " sync_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::io_context io_context; - - // Get a list of endpoints corresponding to the server name. - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = resolver.resolve(argv[1], "http"); - - // Try each endpoint until we successfully establish a connection. - tcp::socket socket(io_context); - asio::connect(socket, endpoints); - - // Form the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - asio::streambuf request; - std::ostream request_stream(&request); - request_stream << "GET " << argv[2] << " HTTP/1.0\r\n"; - request_stream << "Host: " << argv[1] << "\r\n"; - request_stream << "Accept: */*\r\n"; - request_stream << "Connection: close\r\n\r\n"; - - // Send the request. - asio::write(socket, request); - - // Read the response status line. The response streambuf will automatically - // grow to accommodate the entire line. The growth may be limited by passing - // a maximum size to the streambuf constructor. - asio::streambuf response; - asio::read_until(socket, response, "\r\n"); - - // Check that response is OK. - std::istream response_stream(&response); - std::string http_version; - response_stream >> http_version; - unsigned int status_code; - response_stream >> status_code; - std::string status_message; - std::getline(response_stream, status_message); - if (!response_stream || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return 1; - } - if (status_code != 200) - { - std::cout << "Response returned with status code " << status_code << "\n"; - return 1; - } - - // Read the response headers, which are terminated by a blank line. - asio::read_until(socket, response, "\r\n\r\n"); - - // Process the response headers. - std::string header; - while (std::getline(response_stream, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write whatever content we already have to output. - if (response.size() > 0) - std::cout << &response; - - // Read until EOF, writing data to output as we go. - asio::error_code error; - while (asio::read(socket, response, - asio::transfer_at_least(1), error)) - std::cout << &response; - if (error != asio::error::eof) - throw asio::system_error(error); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.cpp deleted file mode 100644 index 191adda..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.cpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// connection.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "connection.hpp" -#include -#include -#include "connection_manager.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server { - -connection::connection(asio::io_context& io_context, - connection_manager& manager, request_handler& handler) - : socket_(io_context), - connection_manager_(manager), - request_handler_(handler) -{ -} - -asio::ip::tcp::socket& connection::socket() -{ - return socket_; -} - -void connection::start() -{ - socket_.async_read_some(asio::buffer(buffer_), - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); -} - -void connection::stop() -{ - socket_.close(); -} - -void connection::handle_read(const asio::error_code& e, - std::size_t bytes_transferred) -{ - if (!e) - { - boost::tribool result; - boost::tie(result, boost::tuples::ignore) = request_parser_.parse( - request_, buffer_.data(), buffer_.data() + bytes_transferred); - - if (result) - { - request_handler_.handle_request(request_, reply_); - asio::async_write(socket_, reply_.to_buffers(), - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error)); - } - else if (!result) - { - reply_ = reply::stock_reply(reply::bad_request); - asio::async_write(socket_, reply_.to_buffers(), - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error)); - } - else - { - socket_.async_read_some(asio::buffer(buffer_), - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - else if (e != asio::error::operation_aborted) - { - connection_manager_.stop(shared_from_this()); - } -} - -void connection::handle_write(const asio::error_code& e) -{ - if (!e) - { - // Initiate graceful connection closure. - asio::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); - } - - if (e != asio::error::operation_aborted) - { - connection_manager_.stop(shared_from_this()); - } -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.hpp deleted file mode 100644 index ca1d7cc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_CONNECTION_HPP -#define HTTP_CONNECTION_HPP - -#include -#include -#include -#include -#include -#include "reply.hpp" -#include "request.hpp" -#include "request_handler.hpp" -#include "request_parser.hpp" - -namespace http { -namespace server { - -class connection_manager; - -/// Represents a single connection from a client. -class connection - : public boost::enable_shared_from_this, - private boost::noncopyable -{ -public: - /// Construct a connection with the given io_context. - explicit connection(asio::io_context& io_context, - connection_manager& manager, request_handler& handler); - - /// Get the socket associated with the connection. - asio::ip::tcp::socket& socket(); - - /// Start the first asynchronous operation for the connection. - void start(); - - /// Stop all asynchronous operations associated with the connection. - void stop(); - -private: - /// Handle completion of a read operation. - void handle_read(const asio::error_code& e, - std::size_t bytes_transferred); - - /// Handle completion of a write operation. - void handle_write(const asio::error_code& e); - - /// Socket for the connection. - asio::ip::tcp::socket socket_; - - /// The manager for this connection. - connection_manager& connection_manager_; - - /// The handler used to process the incoming request. - request_handler& request_handler_; - - /// Buffer for incoming data. - boost::array buffer_; - - /// The incoming request. - request request_; - - /// The parser for the incoming request. - request_parser request_parser_; - - /// The reply to be sent back to the client. - reply reply_; -}; - -typedef boost::shared_ptr connection_ptr; - -} // namespace server -} // namespace http - -#endif // HTTP_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.cpp deleted file mode 100644 index b7eb24e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// -// connection_manager.cpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "connection_manager.hpp" -#include -#include - -namespace http { -namespace server { - -void connection_manager::start(connection_ptr c) -{ - connections_.insert(c); - c->start(); -} - -void connection_manager::stop(connection_ptr c) -{ - connections_.erase(c); - c->stop(); -} - -void connection_manager::stop_all() -{ - std::for_each(connections_.begin(), connections_.end(), - boost::bind(&connection::stop, _1)); - connections_.clear(); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.hpp deleted file mode 100644 index 1e18e44..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/connection_manager.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// connection_manager.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_CONNECTION_MANAGER_HPP -#define HTTP_CONNECTION_MANAGER_HPP - -#include -#include -#include "connection.hpp" - -namespace http { -namespace server { - -/// Manages open connections so that they may be cleanly stopped when the server -/// needs to shut down. -class connection_manager - : private boost::noncopyable -{ -public: - /// Add the specified connection to the manager and start it. - void start(connection_ptr c); - - /// Stop the specified connection. - void stop(connection_ptr c); - - /// Stop all connections. - void stop_all(); - -private: - /// The managed connections. - std::set connections_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_CONNECTION_MANAGER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/header.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/header.hpp deleted file mode 100644 index 18bad98..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_HEADER_HPP -#define HTTP_HEADER_HPP - -#include - -namespace http { -namespace server { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/main.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/main.cpp deleted file mode 100644 index 1f0c7f0..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/main.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "server.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 4) - { - std::cerr << "Usage: http_server
\n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 80 .\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 80 .\n"; - return 1; - } - - // Initialise the server. - http::server::server s(argv[1], argv[2], argv[3]); - - // Run the server until stopped. - s.run(); - } - catch (std::exception& e) - { - std::cerr << "exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.cpp deleted file mode 100644 index 8a66683..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "mime_types.hpp" - -namespace http { -namespace server { -namespace mime_types { - -struct mapping -{ - const char* extension; - const char* mime_type; -} mappings[] = -{ - { "gif", "image/gif" }, - { "htm", "text/html" }, - { "html", "text/html" }, - { "jpg", "image/jpeg" }, - { "png", "image/png" }, - { 0, 0 } // Marks end of list. -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping* m = mappings; m->extension; ++m) - { - if (m->extension == extension) - { - return m->mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.hpp deleted file mode 100644 index a5f352e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_MIME_TYPES_HPP -#define HTTP_MIME_TYPES_HPP - -#include - -namespace http { -namespace server { -namespace mime_types { - -/// Convert a file extension into a MIME type. -std::string extension_to_type(const std::string& extension); - -} // namespace mime_types -} // namespace server -} // namespace http - -#endif // HTTP_MIME_TYPES_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.cpp deleted file mode 100644 index e66897c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "reply.hpp" -#include -#include - -namespace http { -namespace server { - -namespace status_strings { - -const std::string ok = - "HTTP/1.0 200 OK\r\n"; -const std::string created = - "HTTP/1.0 201 Created\r\n"; -const std::string accepted = - "HTTP/1.0 202 Accepted\r\n"; -const std::string no_content = - "HTTP/1.0 204 No Content\r\n"; -const std::string multiple_choices = - "HTTP/1.0 300 Multiple Choices\r\n"; -const std::string moved_permanently = - "HTTP/1.0 301 Moved Permanently\r\n"; -const std::string moved_temporarily = - "HTTP/1.0 302 Moved Temporarily\r\n"; -const std::string not_modified = - "HTTP/1.0 304 Not Modified\r\n"; -const std::string bad_request = - "HTTP/1.0 400 Bad Request\r\n"; -const std::string unauthorized = - "HTTP/1.0 401 Unauthorized\r\n"; -const std::string forbidden = - "HTTP/1.0 403 Forbidden\r\n"; -const std::string not_found = - "HTTP/1.0 404 Not Found\r\n"; -const std::string internal_server_error = - "HTTP/1.0 500 Internal Server Error\r\n"; -const std::string not_implemented = - "HTTP/1.0 501 Not Implemented\r\n"; -const std::string bad_gateway = - "HTTP/1.0 502 Bad Gateway\r\n"; -const std::string service_unavailable = - "HTTP/1.0 503 Service Unavailable\r\n"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return asio::buffer(internal_server_error); - } -} - -} // namespace status_strings - -namespace misc_strings { - -const char name_value_separator[] = { ':', ' ' }; -const char crlf[] = { '\r', '\n' }; - -} // namespace misc_strings - -std::vector reply::to_buffers() -{ - std::vector buffers; - buffers.push_back(status_strings::to_buffer(status)); - for (std::size_t i = 0; i < headers.size(); ++i) - { - header& h = headers[i]; - buffers.push_back(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -std::string to_string(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return ok; - case reply::created: - return created; - case reply::accepted: - return accepted; - case reply::no_content: - return no_content; - case reply::multiple_choices: - return multiple_choices; - case reply::moved_permanently: - return moved_permanently; - case reply::moved_temporarily: - return moved_temporarily; - case reply::not_modified: - return not_modified; - case reply::bad_request: - return bad_request; - case reply::unauthorized: - return unauthorized; - case reply::forbidden: - return forbidden; - case reply::not_found: - return not_found; - case reply::internal_server_error: - return internal_server_error; - case reply::not_implemented: - return not_implemented; - case reply::bad_gateway: - return bad_gateway; - case reply::service_unavailable: - return service_unavailable; - default: - return internal_server_error; - } -} - -} // namespace stock_replies - -reply reply::stock_reply(reply::status_type status) -{ - reply rep; - rep.status = status; - rep.content = stock_replies::to_string(status); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.hpp deleted file mode 100644 index 078e55c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_REPLY_HPP -#define HTTP_REPLY_HPP - -#include -#include -#include -#include "header.hpp" - -namespace http { -namespace server { - -/// A reply to be sent to a client. -struct reply -{ - /// The status of the reply. - enum status_type - { - ok = 200, - created = 201, - accepted = 202, - no_content = 204, - multiple_choices = 300, - moved_permanently = 301, - moved_temporarily = 302, - not_modified = 304, - bad_request = 400, - unauthorized = 401, - forbidden = 403, - not_found = 404, - internal_server_error = 500, - not_implemented = 501, - bad_gateway = 502, - service_unavailable = 503 - } status; - - /// The headers to be included in the reply. - std::vector
headers; - - /// The content to be sent in the reply. - std::string content; - - /// Convert the reply into a vector of buffers. The buffers do not own the - /// underlying memory blocks, therefore the reply object must remain valid and - /// not be changed until the write operation has completed. - std::vector to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/request.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request.hpp deleted file mode 100644 index 6488b1d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_REQUEST_HPP -#define HTTP_REQUEST_HPP - -#include -#include -#include "header.hpp" - -namespace http { -namespace server { - -/// A request received from a client. -struct request -{ - std::string method; - std::string uri; - int http_version_major; - int http_version_minor; - std::vector
headers; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.cpp deleted file mode 100644 index a8a5a55..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// request_handler.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_handler.hpp" -#include -#include -#include -#include -#include "mime_types.hpp" -#include "reply.hpp" -#include "request.hpp" - -namespace http { -namespace server { - -request_handler::request_handler(const std::string& doc_root) - : doc_root_(doc_root) -{ -} - -void request_handler::handle_request(const request& req, reply& rep) -{ - // Decode url to path. - std::string request_path; - if (!url_decode(req.uri, request_path)) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // Request path must be absolute and not contain "..". - if (request_path.empty() || request_path[0] != '/' - || request_path.find("..") != std::string::npos) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // If path ends in slash (i.e. is a directory) then add "index.html". - if (request_path[request_path.size() - 1] == '/') - { - request_path += "index.html"; - } - - // Determine the file extension. - std::size_t last_slash_pos = request_path.find_last_of("/"); - std::size_t last_dot_pos = request_path.find_last_of("."); - std::string extension; - if (last_dot_pos != std::string::npos && last_dot_pos > last_slash_pos) - { - extension = request_path.substr(last_dot_pos + 1); - } - - // Open the file to send back. - std::string full_path = doc_root_ + request_path; - std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary); - if (!is) - { - rep = reply::stock_reply(reply::not_found); - return; - } - - // Fill out the reply to be sent to the client. - rep.status = reply::ok; - char buf[512]; - while (is.read(buf, sizeof(buf)).gcount() > 0) - rep.content.append(buf, is.gcount()); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = mime_types::extension_to_type(extension); -} - -bool request_handler::url_decode(const std::string& in, std::string& out) -{ - out.clear(); - out.reserve(in.size()); - for (std::size_t i = 0; i < in.size(); ++i) - { - if (in[i] == '%') - { - if (i + 3 <= in.size()) - { - int value = 0; - std::istringstream is(in.substr(i + 1, 2)); - if (is >> std::hex >> value) - { - out += static_cast(value); - i += 2; - } - else - { - return false; - } - } - else - { - return false; - } - } - else if (in[i] == '+') - { - out += ' '; - } - else - { - out += in[i]; - } - } - return true; -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.hpp deleted file mode 100644 index 7d05dbc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_handler.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// request_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_REQUEST_HANDLER_HPP -#define HTTP_REQUEST_HANDLER_HPP - -#include -#include - -namespace http { -namespace server { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class request_handler - : private boost::noncopyable -{ -public: - /// Construct with a directory containing files to be served. - explicit request_handler(const std::string& doc_root); - - /// Handle a request and produce a reply. - void handle_request(const request& req, reply& rep); - -private: - /// The directory containing the files to be served. - std::string doc_root_; - - /// Perform URL-decoding on a string. Returns false if the encoding was - /// invalid. - static bool url_decode(const std::string& in, std::string& out); -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REQUEST_HANDLER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.cpp deleted file mode 100644 index 7ce45dd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_parser.hpp" -#include "request.hpp" - -namespace http { -namespace server { - -request_parser::request_parser() - : state_(method_start) -{ -} - -void request_parser::reset() -{ - state_ = method_start; -} - -boost::tribool request_parser::consume(request& req, char input) -{ - switch (state_) - { - case method_start: - if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - state_ = method; - req.method.push_back(input); - return boost::indeterminate; - } - case method: - if (input == ' ') - { - state_ = uri; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.method.push_back(input); - return boost::indeterminate; - } - case uri: - if (input == ' ') - { - state_ = http_version_h; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.uri.push_back(input); - return boost::indeterminate; - } - case http_version_h: - if (input == 'H') - { - state_ = http_version_t_1; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_1: - if (input == 'T') - { - state_ = http_version_t_2; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_2: - if (input == 'T') - { - state_ = http_version_p; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_p: - if (input == 'P') - { - state_ = http_version_slash; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_slash: - if (input == '/') - { - req.http_version_major = 0; - req.http_version_minor = 0; - state_ = http_version_major_start; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_major_start: - if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - state_ = http_version_major; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_major: - if (input == '.') - { - state_ = http_version_minor_start; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_minor_start: - if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - state_ = http_version_minor; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_minor: - if (input == '\r') - { - state_ = expecting_newline_1; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_1: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case header_line_start: - if (input == '\r') - { - state_ = expecting_newline_3; - return boost::indeterminate; - } - else if (!req.headers.empty() && (input == ' ' || input == '\t')) - { - state_ = header_lws; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.push_back(header()); - req.headers.back().name.push_back(input); - state_ = header_name; - return boost::indeterminate; - } - case header_lws: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (input == ' ' || input == '\t') - { - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - state_ = header_value; - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case header_name: - if (input == ':') - { - state_ = space_before_header_value; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.back().name.push_back(input); - return boost::indeterminate; - } - case space_before_header_value: - if (input == ' ') - { - state_ = header_value; - return boost::indeterminate; - } - else - { - return false; - } - case header_value: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case expecting_newline_2: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_3: - return (input == '\n'); - default: - return false; - } -} - -bool request_parser::is_char(int c) -{ - return c >= 0 && c <= 127; -} - -bool request_parser::is_ctl(int c) -{ - return (c >= 0 && c <= 31) || (c == 127); -} - -bool request_parser::is_tspecial(int c) -{ - switch (c) - { - case '(': case ')': case '<': case '>': case '@': - case ',': case ';': case ':': case '\\': case '"': - case '/': case '[': case ']': case '?': case '=': - case '{': case '}': case ' ': case '\t': - return true; - default: - return false; - } -} - -bool request_parser::is_digit(int c) -{ - return c >= '0' && c <= '9'; -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.hpp deleted file mode 100644 index ecda685..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/request_parser.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_REQUEST_PARSER_HPP -#define HTTP_REQUEST_PARSER_HPP - -#include -#include - -namespace http { -namespace server { - -struct request; - -/// Parser for incoming requests. -class request_parser -{ -public: - /// Construct ready to parse the request method. - request_parser(); - - /// Reset to initial parser state. - void reset(); - - /// Parse some data. The tribool return value is true when a complete request - /// has been parsed, false if the data is invalid, indeterminate when more - /// data is required. The InputIterator return value indicates how much of the - /// input has been consumed. - template - boost::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - boost::tribool result = consume(req, *begin++); - if (result || !result) - return boost::make_tuple(result, begin); - } - boost::tribool result = boost::indeterminate; - return boost::make_tuple(result, begin); - } - -private: - /// Handle the next character of input. - boost::tribool consume(request& req, char input); - - /// Check if a byte is an HTTP character. - static bool is_char(int c); - - /// Check if a byte is an HTTP control character. - static bool is_ctl(int c); - - /// Check if a byte is defined as an HTTP tspecial character. - static bool is_tspecial(int c); - - /// Check if a byte is a digit. - static bool is_digit(int c); - - /// The current state of the parser. - enum state - { - method_start, - method, - uri, - http_version_h, - http_version_t_1, - http_version_t_2, - http_version_p, - http_version_slash, - http_version_major_start, - http_version_major, - http_version_minor_start, - http_version_minor, - expecting_newline_1, - header_line_start, - header_lws, - header_name, - space_before_header_value, - header_value, - expecting_newline_2, - expecting_newline_3 - } state_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REQUEST_PARSER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/server.cpp deleted file mode 100644 index e366060..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/server.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "server.hpp" -#include -#include - -namespace http { -namespace server { - -server::server(const std::string& address, const std::string& port, - const std::string& doc_root) - : io_context_(), - signals_(io_context_), - acceptor_(io_context_), - connection_manager_(), - new_connection_(), - request_handler_(doc_root) -{ - // Register to handle the signals that indicate when the server should exit. - // It is safe to register for the same signal multiple times in a program, - // provided all registration for the specified signal is made through Asio. - signals_.add(SIGINT); - signals_.add(SIGTERM); -#if defined(SIGQUIT) - signals_.add(SIGQUIT); -#endif // defined(SIGQUIT) - signals_.async_wait(boost::bind(&server::handle_stop, this)); - - // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). - asio::ip::tcp::resolver resolver(io_context_); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.open(endpoint.protocol()); - acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - acceptor_.bind(endpoint); - acceptor_.listen(); - - start_accept(); -} - -void server::run() -{ - // The io_context::run() call will block until all asynchronous operations - // have finished. While the server is running, there is always at least one - // asynchronous operation outstanding: the asynchronous accept call waiting - // for new incoming connections. - io_context_.run(); -} - -void server::start_accept() -{ - new_connection_.reset(new connection(io_context_, - connection_manager_, request_handler_)); - acceptor_.async_accept(new_connection_->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error)); -} - -void server::handle_accept(const asio::error_code& e) -{ - // Check whether the server was stopped by a signal before this completion - // handler had a chance to run. - if (!acceptor_.is_open()) - { - return; - } - - if (!e) - { - connection_manager_.start(new_connection_); - } - - start_accept(); -} - -void server::handle_stop() -{ - // The server is stopped by cancelling all outstanding asynchronous - // operations. Once all operations have finished the io_context::run() call - // will exit. - acceptor_.close(); - connection_manager_.stop_all(); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server/server.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server/server.hpp deleted file mode 100644 index e320c6e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server/server.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER_HPP -#define HTTP_SERVER_HPP - -#include -#include -#include -#include "connection.hpp" -#include "connection_manager.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server { - -/// The top-level class of the HTTP server. -class server - : private boost::noncopyable -{ -public: - /// Construct the server to listen on the specified TCP address and port, and - /// serve up files from the given directory. - explicit server(const std::string& address, const std::string& port, - const std::string& doc_root); - - /// Run the server's io_context loop. - void run(); - -private: - /// Initiate an asynchronous accept operation. - void start_accept(); - - /// Handle completion of an asynchronous accept operation. - void handle_accept(const asio::error_code& e); - - /// Handle a request to stop the server. - void handle_stop(); - - /// The io_context used to perform asynchronous operations. - asio::io_context io_context_; - - /// The signal_set is used to register for process termination notifications. - asio::signal_set signals_; - - /// Acceptor used to listen for incoming connections. - asio::ip::tcp::acceptor acceptor_; - - /// The connection manager which owns all live connections. - connection_manager connection_manager_; - - /// The next connection to be accepted. - connection_ptr new_connection_; - - /// The handler for all incoming requests. - request_handler request_handler_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.cpp deleted file mode 100644 index 655bcee..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// connection.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "connection.hpp" -#include -#include -#include "request_handler.hpp" - -namespace http { -namespace server2 { - -connection::connection(asio::io_context& io_context, - request_handler& handler) - : socket_(io_context), - request_handler_(handler) -{ -} - -asio::ip::tcp::socket& connection::socket() -{ - return socket_; -} - -void connection::start() -{ - socket_.async_read_some(asio::buffer(buffer_), - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); -} - -void connection::handle_read(const asio::error_code& e, - std::size_t bytes_transferred) -{ - if (!e) - { - boost::tribool result; - boost::tie(result, boost::tuples::ignore) = request_parser_.parse( - request_, buffer_.data(), buffer_.data() + bytes_transferred); - - if (result) - { - request_handler_.handle_request(request_, reply_); - asio::async_write(socket_, reply_.to_buffers(), - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error)); - } - else if (!result) - { - reply_ = reply::stock_reply(reply::bad_request); - asio::async_write(socket_, reply_.to_buffers(), - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error)); - } - else - { - socket_.async_read_some(asio::buffer(buffer_), - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - - // If an error occurs then no new asynchronous operations are started. This - // means that all shared_ptr references to the connection object will - // disappear and the object will be destroyed automatically after this - // handler returns. The connection class's destructor closes the socket. -} - -void connection::handle_write(const asio::error_code& e) -{ - if (!e) - { - // Initiate graceful connection closure. - asio::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); - } - - // No new asynchronous operations are started. This means that all shared_ptr - // references to the connection object will disappear and the object will be - // destroyed automatically after this handler returns. The connection class's - // destructor closes the socket. -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.hpp deleted file mode 100644 index 6d1b17f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/connection.hpp +++ /dev/null @@ -1,75 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_CONNECTION_HPP -#define HTTP_SERVER2_CONNECTION_HPP - -#include -#include -#include -#include -#include -#include "reply.hpp" -#include "request.hpp" -#include "request_handler.hpp" -#include "request_parser.hpp" - -namespace http { -namespace server2 { - -/// Represents a single connection from a client. -class connection - : public boost::enable_shared_from_this, - private boost::noncopyable -{ -public: - /// Construct a connection with the given io_context. - explicit connection(asio::io_context& io_context, - request_handler& handler); - - /// Get the socket associated with the connection. - asio::ip::tcp::socket& socket(); - - /// Start the first asynchronous operation for the connection. - void start(); - -private: - /// Handle completion of a read operation. - void handle_read(const asio::error_code& e, - std::size_t bytes_transferred); - - /// Handle completion of a write operation. - void handle_write(const asio::error_code& e); - - /// Socket for the connection. - asio::ip::tcp::socket socket_; - - /// The handler used to process the incoming request. - request_handler& request_handler_; - - /// Buffer for incoming data. - boost::array buffer_; - - /// The incoming request. - request request_; - - /// The parser for the incoming request. - request_parser request_parser_; - - /// The reply to be sent back to the client. - reply reply_; -}; - -typedef boost::shared_ptr connection_ptr; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/header.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/header.hpp deleted file mode 100644 index 559c5c1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_HEADER_HPP -#define HTTP_SERVER2_HEADER_HPP - -#include - -namespace http { -namespace server2 { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.cpp deleted file mode 100644 index 2dfa7ae..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// io_context_pool.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "server.hpp" -#include -#include -#include - -namespace http { -namespace server2 { - -io_context_pool::io_context_pool(std::size_t pool_size) - : next_io_context_(0) -{ - if (pool_size == 0) - throw std::runtime_error("io_context_pool size is 0"); - - // Give all the io_contexts work to do so that their run() functions will not - // exit until they are explicitly stopped. - for (std::size_t i = 0; i < pool_size; ++i) - { - io_context_ptr io_context(new asio::io_context); - io_contexts_.push_back(io_context); - work_.push_back(asio::make_work_guard(*io_context)); - } -} - -void io_context_pool::run() -{ - // Create a pool of threads to run all of the io_contexts. - std::vector > threads; - for (std::size_t i = 0; i < io_contexts_.size(); ++i) - { - boost::shared_ptr thread(new asio::thread( - boost::bind(&asio::io_context::run, io_contexts_[i]))); - threads.push_back(thread); - } - - // Wait for all threads in the pool to exit. - for (std::size_t i = 0; i < threads.size(); ++i) - threads[i]->join(); -} - -void io_context_pool::stop() -{ - // Explicitly stop all io_contexts. - for (std::size_t i = 0; i < io_contexts_.size(); ++i) - io_contexts_[i]->stop(); -} - -asio::io_context& io_context_pool::get_io_context() -{ - // Use a round-robin scheme to choose the next io_context to use. - asio::io_context& io_context = *io_contexts_[next_io_context_]; - ++next_io_context_; - if (next_io_context_ == io_contexts_.size()) - next_io_context_ = 0; - return io_context; -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.hpp deleted file mode 100644 index 31a0fe3..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// io_context_pool.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_IO_SERVICE_POOL_HPP -#define HTTP_SERVER2_IO_SERVICE_POOL_HPP - -#include -#include -#include -#include -#include - -namespace http { -namespace server2 { - -/// A pool of io_context objects. -class io_context_pool - : private boost::noncopyable -{ -public: - /// Construct the io_context pool. - explicit io_context_pool(std::size_t pool_size); - - /// Run all io_context objects in the pool. - void run(); - - /// Stop all io_context objects in the pool. - void stop(); - - /// Get an io_context to use. - asio::io_context& get_io_context(); - -private: - typedef boost::shared_ptr io_context_ptr; - typedef asio::executor_work_guard< - asio::io_context::executor_type> io_context_work; - - /// The pool of io_contexts. - std::vector io_contexts_; - - /// The work that keeps the io_contexts running. - std::list work_; - - /// The next io_context to use for a connection. - std::size_t next_io_context_; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_IO_SERVICE_POOL_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/main.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/main.cpp deleted file mode 100644 index 1e74410..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/main.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include "server.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 5) - { - std::cerr << "Usage: http_server
\n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 80 1 .\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 80 1 .\n"; - return 1; - } - - // Initialise the server. - std::size_t num_threads = boost::lexical_cast(argv[3]); - http::server2::server s(argv[1], argv[2], argv[4], num_threads); - - // Run the server until stopped. - s.run(); - } - catch (std::exception& e) - { - std::cerr << "exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.cpp deleted file mode 100644 index 0fdd731..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "mime_types.hpp" - -namespace http { -namespace server2 { -namespace mime_types { - -struct mapping -{ - const char* extension; - const char* mime_type; -} mappings[] = -{ - { "gif", "image/gif" }, - { "htm", "text/html" }, - { "html", "text/html" }, - { "jpg", "image/jpeg" }, - { "png", "image/png" }, - { 0, 0 } // Marks end of list. -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping* m = mappings; m->extension; ++m) - { - if (m->extension == extension) - { - return m->mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.hpp deleted file mode 100644 index c11280b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_MIME_TYPES_HPP -#define HTTP_SERVER2_MIME_TYPES_HPP - -#include - -namespace http { -namespace server2 { -namespace mime_types { - -/// Convert a file extension into a MIME type. -std::string extension_to_type(const std::string& extension); - -} // namespace mime_types -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_MIME_TYPES_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.cpp deleted file mode 100644 index 36de10a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "reply.hpp" -#include -#include - -namespace http { -namespace server2 { - -namespace status_strings { - -const std::string ok = - "HTTP/1.0 200 OK\r\n"; -const std::string created = - "HTTP/1.0 201 Created\r\n"; -const std::string accepted = - "HTTP/1.0 202 Accepted\r\n"; -const std::string no_content = - "HTTP/1.0 204 No Content\r\n"; -const std::string multiple_choices = - "HTTP/1.0 300 Multiple Choices\r\n"; -const std::string moved_permanently = - "HTTP/1.0 301 Moved Permanently\r\n"; -const std::string moved_temporarily = - "HTTP/1.0 302 Moved Temporarily\r\n"; -const std::string not_modified = - "HTTP/1.0 304 Not Modified\r\n"; -const std::string bad_request = - "HTTP/1.0 400 Bad Request\r\n"; -const std::string unauthorized = - "HTTP/1.0 401 Unauthorized\r\n"; -const std::string forbidden = - "HTTP/1.0 403 Forbidden\r\n"; -const std::string not_found = - "HTTP/1.0 404 Not Found\r\n"; -const std::string internal_server_error = - "HTTP/1.0 500 Internal Server Error\r\n"; -const std::string not_implemented = - "HTTP/1.0 501 Not Implemented\r\n"; -const std::string bad_gateway = - "HTTP/1.0 502 Bad Gateway\r\n"; -const std::string service_unavailable = - "HTTP/1.0 503 Service Unavailable\r\n"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return asio::buffer(internal_server_error); - } -} - -} // namespace status_strings - -namespace misc_strings { - -const char name_value_separator[] = { ':', ' ' }; -const char crlf[] = { '\r', '\n' }; - -} // namespace misc_strings - -std::vector reply::to_buffers() -{ - std::vector buffers; - buffers.push_back(status_strings::to_buffer(status)); - for (std::size_t i = 0; i < headers.size(); ++i) - { - header& h = headers[i]; - buffers.push_back(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -std::string to_string(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return ok; - case reply::created: - return created; - case reply::accepted: - return accepted; - case reply::no_content: - return no_content; - case reply::multiple_choices: - return multiple_choices; - case reply::moved_permanently: - return moved_permanently; - case reply::moved_temporarily: - return moved_temporarily; - case reply::not_modified: - return not_modified; - case reply::bad_request: - return bad_request; - case reply::unauthorized: - return unauthorized; - case reply::forbidden: - return forbidden; - case reply::not_found: - return not_found; - case reply::internal_server_error: - return internal_server_error; - case reply::not_implemented: - return not_implemented; - case reply::bad_gateway: - return bad_gateway; - case reply::service_unavailable: - return service_unavailable; - default: - return internal_server_error; - } -} - -} // namespace stock_replies - -reply reply::stock_reply(reply::status_type status) -{ - reply rep; - rep.status = status; - rep.content = stock_replies::to_string(status); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.hpp deleted file mode 100644 index b140b99..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_REPLY_HPP -#define HTTP_SERVER2_REPLY_HPP - -#include -#include -#include -#include "header.hpp" - -namespace http { -namespace server2 { - -/// A reply to be sent to a client. -struct reply -{ - /// The status of the reply. - enum status_type - { - ok = 200, - created = 201, - accepted = 202, - no_content = 204, - multiple_choices = 300, - moved_permanently = 301, - moved_temporarily = 302, - not_modified = 304, - bad_request = 400, - unauthorized = 401, - forbidden = 403, - not_found = 404, - internal_server_error = 500, - not_implemented = 501, - bad_gateway = 502, - service_unavailable = 503 - } status; - - /// The headers to be included in the reply. - std::vector
headers; - - /// The content to be sent in the reply. - std::string content; - - /// Convert the reply into a vector of buffers. The buffers do not own the - /// underlying memory blocks, therefore the reply object must remain valid and - /// not be changed until the write operation has completed. - std::vector to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request.hpp deleted file mode 100644 index 3eb3494..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_REQUEST_HPP -#define HTTP_SERVER2_REQUEST_HPP - -#include -#include -#include "header.hpp" - -namespace http { -namespace server2 { - -/// A request received from a client. -struct request -{ - std::string method; - std::string uri; - int http_version_major; - int http_version_minor; - std::vector
headers; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.cpp deleted file mode 100644 index acac4d1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// request_handler.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_handler.hpp" -#include -#include -#include -#include -#include "mime_types.hpp" -#include "reply.hpp" -#include "request.hpp" - -namespace http { -namespace server2 { - -request_handler::request_handler(const std::string& doc_root) - : doc_root_(doc_root) -{ -} - -void request_handler::handle_request(const request& req, reply& rep) -{ - // Decode url to path. - std::string request_path; - if (!url_decode(req.uri, request_path)) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // Request path must be absolute and not contain "..". - if (request_path.empty() || request_path[0] != '/' - || request_path.find("..") != std::string::npos) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // If path ends in slash (i.e. is a directory) then add "index.html". - if (request_path[request_path.size() - 1] == '/') - { - request_path += "index.html"; - } - - // Determine the file extension. - std::size_t last_slash_pos = request_path.find_last_of("/"); - std::size_t last_dot_pos = request_path.find_last_of("."); - std::string extension; - if (last_dot_pos != std::string::npos && last_dot_pos > last_slash_pos) - { - extension = request_path.substr(last_dot_pos + 1); - } - - // Open the file to send back. - std::string full_path = doc_root_ + request_path; - std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary); - if (!is) - { - rep = reply::stock_reply(reply::not_found); - return; - } - - // Fill out the reply to be sent to the client. - rep.status = reply::ok; - char buf[512]; - while (is.read(buf, sizeof(buf)).gcount() > 0) - rep.content.append(buf, is.gcount()); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = mime_types::extension_to_type(extension); -} - -bool request_handler::url_decode(const std::string& in, std::string& out) -{ - out.clear(); - out.reserve(in.size()); - for (std::size_t i = 0; i < in.size(); ++i) - { - if (in[i] == '%') - { - if (i + 3 <= in.size()) - { - int value = 0; - std::istringstream is(in.substr(i + 1, 2)); - if (is >> std::hex >> value) - { - out += static_cast(value); - i += 2; - } - else - { - return false; - } - } - else - { - return false; - } - } - else if (in[i] == '+') - { - out += ' '; - } - else - { - out += in[i]; - } - } - return true; -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.hpp deleted file mode 100644 index 3f9c743..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_handler.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// request_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_REQUEST_HANDLER_HPP -#define HTTP_SERVER2_REQUEST_HANDLER_HPP - -#include -#include - -namespace http { -namespace server2 { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class request_handler - : private boost::noncopyable -{ -public: - /// Construct with a directory containing files to be served. - explicit request_handler(const std::string& doc_root); - - /// Handle a request and produce a reply. - void handle_request(const request& req, reply& rep); - -private: - /// The directory containing the files to be served. - std::string doc_root_; - - /// Perform URL-decoding on a string. Returns false if the encoding was - /// invalid. - static bool url_decode(const std::string& in, std::string& out); -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_REQUEST_HANDLER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.cpp deleted file mode 100644 index b7e7d64..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_parser.hpp" -#include "request.hpp" - -namespace http { -namespace server2 { - -request_parser::request_parser() - : state_(method_start) -{ -} - -void request_parser::reset() -{ - state_ = method_start; -} - -boost::tribool request_parser::consume(request& req, char input) -{ - switch (state_) - { - case method_start: - if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - state_ = method; - req.method.push_back(input); - return boost::indeterminate; - } - case method: - if (input == ' ') - { - state_ = uri; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.method.push_back(input); - return boost::indeterminate; - } - case uri: - if (input == ' ') - { - state_ = http_version_h; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.uri.push_back(input); - return boost::indeterminate; - } - case http_version_h: - if (input == 'H') - { - state_ = http_version_t_1; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_1: - if (input == 'T') - { - state_ = http_version_t_2; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_2: - if (input == 'T') - { - state_ = http_version_p; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_p: - if (input == 'P') - { - state_ = http_version_slash; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_slash: - if (input == '/') - { - req.http_version_major = 0; - req.http_version_minor = 0; - state_ = http_version_major_start; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_major_start: - if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - state_ = http_version_major; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_major: - if (input == '.') - { - state_ = http_version_minor_start; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_minor_start: - if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - state_ = http_version_minor; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_minor: - if (input == '\r') - { - state_ = expecting_newline_1; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_1: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case header_line_start: - if (input == '\r') - { - state_ = expecting_newline_3; - return boost::indeterminate; - } - else if (!req.headers.empty() && (input == ' ' || input == '\t')) - { - state_ = header_lws; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.push_back(header()); - req.headers.back().name.push_back(input); - state_ = header_name; - return boost::indeterminate; - } - case header_lws: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (input == ' ' || input == '\t') - { - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - state_ = header_value; - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case header_name: - if (input == ':') - { - state_ = space_before_header_value; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.back().name.push_back(input); - return boost::indeterminate; - } - case space_before_header_value: - if (input == ' ') - { - state_ = header_value; - return boost::indeterminate; - } - else - { - return false; - } - case header_value: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case expecting_newline_2: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_3: - return (input == '\n'); - default: - return false; - } -} - -bool request_parser::is_char(int c) -{ - return c >= 0 && c <= 127; -} - -bool request_parser::is_ctl(int c) -{ - return (c >= 0 && c <= 31) || (c == 127); -} - -bool request_parser::is_tspecial(int c) -{ - switch (c) - { - case '(': case ')': case '<': case '>': case '@': - case ',': case ';': case ':': case '\\': case '"': - case '/': case '[': case ']': case '?': case '=': - case '{': case '}': case ' ': case '\t': - return true; - default: - return false; - } -} - -bool request_parser::is_digit(int c) -{ - return c >= '0' && c <= '9'; -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.hpp deleted file mode 100644 index a986720..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/request_parser.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_REQUEST_PARSER_HPP -#define HTTP_SERVER2_REQUEST_PARSER_HPP - -#include -#include - -namespace http { -namespace server2 { - -struct request; - -/// Parser for incoming requests. -class request_parser -{ -public: - /// Construct ready to parse the request method. - request_parser(); - - /// Reset to initial parser state. - void reset(); - - /// Parse some data. The tribool return value is true when a complete request - /// has been parsed, false if the data is invalid, indeterminate when more - /// data is required. The InputIterator return value indicates how much of the - /// input has been consumed. - template - boost::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - boost::tribool result = consume(req, *begin++); - if (result || !result) - return boost::make_tuple(result, begin); - } - boost::tribool result = boost::indeterminate; - return boost::make_tuple(result, begin); - } - -private: - /// Handle the next character of input. - boost::tribool consume(request& req, char input); - - /// Check if a byte is an HTTP character. - static bool is_char(int c); - - /// Check if a byte is an HTTP control character. - static bool is_ctl(int c); - - /// Check if a byte is defined as an HTTP tspecial character. - static bool is_tspecial(int c); - - /// Check if a byte is a digit. - static bool is_digit(int c); - - /// The current state of the parser. - enum state - { - method_start, - method, - uri, - http_version_h, - http_version_t_1, - http_version_t_2, - http_version_p, - http_version_slash, - http_version_major_start, - http_version_major, - http_version_minor_start, - http_version_minor, - expecting_newline_1, - header_line_start, - header_lws, - header_name, - space_before_header_value, - header_value, - expecting_newline_2, - expecting_newline_3 - } state_; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_REQUEST_PARSER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.cpp deleted file mode 100644 index 310cbac..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "server.hpp" -#include - -namespace http { -namespace server2 { - -server::server(const std::string& address, const std::string& port, - const std::string& doc_root, std::size_t io_context_pool_size) - : io_context_pool_(io_context_pool_size), - signals_(io_context_pool_.get_io_context()), - acceptor_(io_context_pool_.get_io_context()), - new_connection_(), - request_handler_(doc_root) -{ - // Register to handle the signals that indicate when the server should exit. - // It is safe to register for the same signal multiple times in a program, - // provided all registration for the specified signal is made through Asio. - signals_.add(SIGINT); - signals_.add(SIGTERM); -#if defined(SIGQUIT) - signals_.add(SIGQUIT); -#endif // defined(SIGQUIT) - signals_.async_wait(boost::bind(&server::handle_stop, this)); - - // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). - asio::ip::tcp::resolver resolver(acceptor_.get_executor().context()); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.open(endpoint.protocol()); - acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - acceptor_.bind(endpoint); - acceptor_.listen(); - - start_accept(); -} - -void server::run() -{ - io_context_pool_.run(); -} - -void server::start_accept() -{ - new_connection_.reset(new connection( - io_context_pool_.get_io_context(), request_handler_)); - acceptor_.async_accept(new_connection_->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error)); -} - -void server::handle_accept(const asio::error_code& e) -{ - if (!e) - { - new_connection_->start(); - } - - start_accept(); -} - -void server::handle_stop() -{ - io_context_pool_.stop(); -} - -} // namespace server2 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.hpp deleted file mode 100644 index 83b2a61..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server2/server.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER2_SERVER_HPP -#define HTTP_SERVER2_SERVER_HPP - -#include -#include -#include -#include -#include -#include "connection.hpp" -#include "io_context_pool.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server2 { - -/// The top-level class of the HTTP server. -class server - : private boost::noncopyable -{ -public: - /// Construct the server to listen on the specified TCP address and port, and - /// serve up files from the given directory. - explicit server(const std::string& address, const std::string& port, - const std::string& doc_root, std::size_t io_context_pool_size); - - /// Run the server's io_context loop. - void run(); - -private: - /// Initiate an asynchronous accept operation. - void start_accept(); - - /// Handle completion of an asynchronous accept operation. - void handle_accept(const asio::error_code& e); - - /// Handle a request to stop the server. - void handle_stop(); - - /// The pool of io_context objects used to perform asynchronous operations. - io_context_pool io_context_pool_; - - /// The signal_set is used to register for process termination notifications. - asio::signal_set signals_; - - /// Acceptor used to listen for incoming connections. - asio::ip::tcp::acceptor acceptor_; - - /// The next connection to be accepted. - connection_ptr new_connection_; - - /// The handler for all incoming requests. - request_handler request_handler_; -}; - -} // namespace server2 -} // namespace http - -#endif // HTTP_SERVER2_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.cpp deleted file mode 100644 index 5555c03..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// -// connection.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "connection.hpp" -#include -#include -#include "request_handler.hpp" - -namespace http { -namespace server3 { - -connection::connection(asio::io_context& io_context, - request_handler& handler) - : strand_(io_context), - socket_(io_context), - request_handler_(handler) -{ -} - -asio::ip::tcp::socket& connection::socket() -{ - return socket_; -} - -void connection::start() -{ - socket_.async_read_some(asio::buffer(buffer_), - asio::bind_executor(strand_, - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred))); -} - -void connection::handle_read(const asio::error_code& e, - std::size_t bytes_transferred) -{ - if (!e) - { - boost::tribool result; - boost::tie(result, boost::tuples::ignore) = request_parser_.parse( - request_, buffer_.data(), buffer_.data() + bytes_transferred); - - if (result) - { - request_handler_.handle_request(request_, reply_); - asio::async_write(socket_, reply_.to_buffers(), - asio::bind_executor(strand_, - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error))); - } - else if (!result) - { - reply_ = reply::stock_reply(reply::bad_request); - asio::async_write(socket_, reply_.to_buffers(), - asio::bind_executor(strand_, - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error))); - } - else - { - socket_.async_read_some(asio::buffer(buffer_), - asio::bind_executor(strand_, - boost::bind(&connection::handle_read, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred))); - } - } - - // If an error occurs then no new asynchronous operations are started. This - // means that all shared_ptr references to the connection object will - // disappear and the object will be destroyed automatically after this - // handler returns. The connection class's destructor closes the socket. -} - -void connection::handle_write(const asio::error_code& e) -{ - if (!e) - { - // Initiate graceful connection closure. - asio::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); - } - - // No new asynchronous operations are started. This means that all shared_ptr - // references to the connection object will disappear and the object will be - // destroyed automatically after this handler returns. The connection class's - // destructor closes the socket. -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.hpp deleted file mode 100644 index 453333b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/connection.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER3_CONNECTION_HPP -#define HTTP_SERVER3_CONNECTION_HPP - -#include -#include -#include -#include -#include -#include "reply.hpp" -#include "request.hpp" -#include "request_handler.hpp" -#include "request_parser.hpp" - -namespace http { -namespace server3 { - -/// Represents a single connection from a client. -class connection - : public boost::enable_shared_from_this, - private boost::noncopyable -{ -public: - /// Construct a connection with the given io_context. - explicit connection(asio::io_context& io_context, - request_handler& handler); - - /// Get the socket associated with the connection. - asio::ip::tcp::socket& socket(); - - /// Start the first asynchronous operation for the connection. - void start(); - -private: - /// Handle completion of a read operation. - void handle_read(const asio::error_code& e, - std::size_t bytes_transferred); - - /// Handle completion of a write operation. - void handle_write(const asio::error_code& e); - - /// Strand to ensure the connection's handlers are not called concurrently. - asio::io_context::strand strand_; - - /// Socket for the connection. - asio::ip::tcp::socket socket_; - - /// The handler used to process the incoming request. - request_handler& request_handler_; - - /// Buffer for incoming data. - boost::array buffer_; - - /// The incoming request. - request request_; - - /// The parser for the incoming request. - request_parser request_parser_; - - /// The reply to be sent back to the client. - reply reply_; -}; - -typedef boost::shared_ptr connection_ptr; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/header.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/header.hpp deleted file mode 100644 index d53fede..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER3_HEADER_HPP -#define HTTP_SERVER3_HEADER_HPP - -#include - -namespace http { -namespace server3 { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/main.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/main.cpp deleted file mode 100644 index dc52ff1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/main.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include "server.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 5) - { - std::cerr << "Usage: http_server
\n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 80 1 .\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 80 1 .\n"; - return 1; - } - - // Initialise the server. - std::size_t num_threads = boost::lexical_cast(argv[3]); - http::server3::server s(argv[1], argv[2], argv[4], num_threads); - - // Run the server until stopped. - s.run(); - } - catch (std::exception& e) - { - std::cerr << "exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.cpp deleted file mode 100644 index 8bc6cd4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "mime_types.hpp" - -namespace http { -namespace server3 { -namespace mime_types { - -struct mapping -{ - const char* extension; - const char* mime_type; -} mappings[] = -{ - { "gif", "image/gif" }, - { "htm", "text/html" }, - { "html", "text/html" }, - { "jpg", "image/jpeg" }, - { "png", "image/png" }, - { 0, 0 } // Marks end of list. -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping* m = mappings; m->extension; ++m) - { - if (m->extension == extension) - { - return m->mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.hpp deleted file mode 100644 index 5593806..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER3_MIME_TYPES_HPP -#define HTTP_SERVER3_MIME_TYPES_HPP - -#include - -namespace http { -namespace server3 { -namespace mime_types { - -/// Convert a file extension into a MIME type. -std::string extension_to_type(const std::string& extension); - -} // namespace mime_types -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_MIME_TYPES_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.cpp deleted file mode 100644 index 1ae932b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "reply.hpp" -#include -#include - -namespace http { -namespace server3 { - -namespace status_strings { - -const std::string ok = - "HTTP/1.0 200 OK\r\n"; -const std::string created = - "HTTP/1.0 201 Created\r\n"; -const std::string accepted = - "HTTP/1.0 202 Accepted\r\n"; -const std::string no_content = - "HTTP/1.0 204 No Content\r\n"; -const std::string multiple_choices = - "HTTP/1.0 300 Multiple Choices\r\n"; -const std::string moved_permanently = - "HTTP/1.0 301 Moved Permanently\r\n"; -const std::string moved_temporarily = - "HTTP/1.0 302 Moved Temporarily\r\n"; -const std::string not_modified = - "HTTP/1.0 304 Not Modified\r\n"; -const std::string bad_request = - "HTTP/1.0 400 Bad Request\r\n"; -const std::string unauthorized = - "HTTP/1.0 401 Unauthorized\r\n"; -const std::string forbidden = - "HTTP/1.0 403 Forbidden\r\n"; -const std::string not_found = - "HTTP/1.0 404 Not Found\r\n"; -const std::string internal_server_error = - "HTTP/1.0 500 Internal Server Error\r\n"; -const std::string not_implemented = - "HTTP/1.0 501 Not Implemented\r\n"; -const std::string bad_gateway = - "HTTP/1.0 502 Bad Gateway\r\n"; -const std::string service_unavailable = - "HTTP/1.0 503 Service Unavailable\r\n"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return asio::buffer(internal_server_error); - } -} - -} // namespace status_strings - -namespace misc_strings { - -const char name_value_separator[] = { ':', ' ' }; -const char crlf[] = { '\r', '\n' }; - -} // namespace misc_strings - -std::vector reply::to_buffers() -{ - std::vector buffers; - buffers.push_back(status_strings::to_buffer(status)); - for (std::size_t i = 0; i < headers.size(); ++i) - { - header& h = headers[i]; - buffers.push_back(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -std::string to_string(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return ok; - case reply::created: - return created; - case reply::accepted: - return accepted; - case reply::no_content: - return no_content; - case reply::multiple_choices: - return multiple_choices; - case reply::moved_permanently: - return moved_permanently; - case reply::moved_temporarily: - return moved_temporarily; - case reply::not_modified: - return not_modified; - case reply::bad_request: - return bad_request; - case reply::unauthorized: - return unauthorized; - case reply::forbidden: - return forbidden; - case reply::not_found: - return not_found; - case reply::internal_server_error: - return internal_server_error; - case reply::not_implemented: - return not_implemented; - case reply::bad_gateway: - return bad_gateway; - case reply::service_unavailable: - return service_unavailable; - default: - return internal_server_error; - } -} - -} // namespace stock_replies - -reply reply::stock_reply(reply::status_type status) -{ - reply rep; - rep.status = status; - rep.content = stock_replies::to_string(status); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.hpp deleted file mode 100644 index 7f6847e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER3_REPLY_HPP -#define HTTP_SERVER3_REPLY_HPP - -#include -#include -#include -#include "header.hpp" - -namespace http { -namespace server3 { - -/// A reply to be sent to a client. -struct reply -{ - /// The status of the reply. - enum status_type - { - ok = 200, - created = 201, - accepted = 202, - no_content = 204, - multiple_choices = 300, - moved_permanently = 301, - moved_temporarily = 302, - not_modified = 304, - bad_request = 400, - unauthorized = 401, - forbidden = 403, - not_found = 404, - internal_server_error = 500, - not_implemented = 501, - bad_gateway = 502, - service_unavailable = 503 - } status; - - /// The headers to be included in the reply. - std::vector
headers; - - /// The content to be sent in the reply. - std::string content; - - /// Convert the reply into a vector of buffers. The buffers do not own the - /// underlying memory blocks, therefore the reply object must remain valid and - /// not be changed until the write operation has completed. - std::vector to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request.hpp deleted file mode 100644 index 92ef781..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER3_REQUEST_HPP -#define HTTP_SERVER3_REQUEST_HPP - -#include -#include -#include "header.hpp" - -namespace http { -namespace server3 { - -/// A request received from a client. -struct request -{ - std::string method; - std::string uri; - int http_version_major; - int http_version_minor; - std::vector
headers; -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.cpp deleted file mode 100644 index e13d21d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// request_handler.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_handler.hpp" -#include -#include -#include -#include -#include "mime_types.hpp" -#include "reply.hpp" -#include "request.hpp" - -namespace http { -namespace server3 { - -request_handler::request_handler(const std::string& doc_root) - : doc_root_(doc_root) -{ -} - -void request_handler::handle_request(const request& req, reply& rep) -{ - // Decode url to path. - std::string request_path; - if (!url_decode(req.uri, request_path)) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // Request path must be absolute and not contain "..". - if (request_path.empty() || request_path[0] != '/' - || request_path.find("..") != std::string::npos) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // If path ends in slash (i.e. is a directory) then add "index.html". - if (request_path[request_path.size() - 1] == '/') - { - request_path += "index.html"; - } - - // Determine the file extension. - std::size_t last_slash_pos = request_path.find_last_of("/"); - std::size_t last_dot_pos = request_path.find_last_of("."); - std::string extension; - if (last_dot_pos != std::string::npos && last_dot_pos > last_slash_pos) - { - extension = request_path.substr(last_dot_pos + 1); - } - - // Open the file to send back. - std::string full_path = doc_root_ + request_path; - std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary); - if (!is) - { - rep = reply::stock_reply(reply::not_found); - return; - } - - // Fill out the reply to be sent to the client. - rep.status = reply::ok; - char buf[512]; - while (is.read(buf, sizeof(buf)).gcount() > 0) - rep.content.append(buf, is.gcount()); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = mime_types::extension_to_type(extension); -} - -bool request_handler::url_decode(const std::string& in, std::string& out) -{ - out.clear(); - out.reserve(in.size()); - for (std::size_t i = 0; i < in.size(); ++i) - { - if (in[i] == '%') - { - if (i + 3 <= in.size()) - { - int value = 0; - std::istringstream is(in.substr(i + 1, 2)); - if (is >> std::hex >> value) - { - out += static_cast(value); - i += 2; - } - else - { - return false; - } - } - else - { - return false; - } - } - else if (in[i] == '+') - { - out += ' '; - } - else - { - out += in[i]; - } - } - return true; -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.hpp deleted file mode 100644 index 8697fbc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_handler.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// request_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER3_REQUEST_HANDLER_HPP -#define HTTP_SERVER3_REQUEST_HANDLER_HPP - -#include -#include - -namespace http { -namespace server3 { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class request_handler - : private boost::noncopyable -{ -public: - /// Construct with a directory containing files to be served. - explicit request_handler(const std::string& doc_root); - - /// Handle a request and produce a reply. - void handle_request(const request& req, reply& rep); - -private: - /// The directory containing the files to be served. - std::string doc_root_; - - /// Perform URL-decoding on a string. Returns false if the encoding was - /// invalid. - static bool url_decode(const std::string& in, std::string& out); -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_REQUEST_HANDLER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.cpp deleted file mode 100644 index 1623443..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_parser.hpp" -#include "request.hpp" - -namespace http { -namespace server3 { - -request_parser::request_parser() - : state_(method_start) -{ -} - -void request_parser::reset() -{ - state_ = method_start; -} - -boost::tribool request_parser::consume(request& req, char input) -{ - switch (state_) - { - case method_start: - if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - state_ = method; - req.method.push_back(input); - return boost::indeterminate; - } - case method: - if (input == ' ') - { - state_ = uri; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.method.push_back(input); - return boost::indeterminate; - } - case uri: - if (input == ' ') - { - state_ = http_version_h; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.uri.push_back(input); - return boost::indeterminate; - } - case http_version_h: - if (input == 'H') - { - state_ = http_version_t_1; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_1: - if (input == 'T') - { - state_ = http_version_t_2; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_t_2: - if (input == 'T') - { - state_ = http_version_p; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_p: - if (input == 'P') - { - state_ = http_version_slash; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_slash: - if (input == '/') - { - req.http_version_major = 0; - req.http_version_minor = 0; - state_ = http_version_major_start; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_major_start: - if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - state_ = http_version_major; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_major: - if (input == '.') - { - state_ = http_version_minor_start; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_minor_start: - if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - state_ = http_version_minor; - return boost::indeterminate; - } - else - { - return false; - } - case http_version_minor: - if (input == '\r') - { - state_ = expecting_newline_1; - return boost::indeterminate; - } - else if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_1: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case header_line_start: - if (input == '\r') - { - state_ = expecting_newline_3; - return boost::indeterminate; - } - else if (!req.headers.empty() && (input == ' ' || input == '\t')) - { - state_ = header_lws; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.push_back(header()); - req.headers.back().name.push_back(input); - state_ = header_name; - return boost::indeterminate; - } - case header_lws: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (input == ' ' || input == '\t') - { - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - state_ = header_value; - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case header_name: - if (input == ':') - { - state_ = space_before_header_value; - return boost::indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return false; - } - else - { - req.headers.back().name.push_back(input); - return boost::indeterminate; - } - case space_before_header_value: - if (input == ' ') - { - state_ = header_value; - return boost::indeterminate; - } - else - { - return false; - } - case header_value: - if (input == '\r') - { - state_ = expecting_newline_2; - return boost::indeterminate; - } - else if (is_ctl(input)) - { - return false; - } - else - { - req.headers.back().value.push_back(input); - return boost::indeterminate; - } - case expecting_newline_2: - if (input == '\n') - { - state_ = header_line_start; - return boost::indeterminate; - } - else - { - return false; - } - case expecting_newline_3: - return (input == '\n'); - default: - return false; - } -} - -bool request_parser::is_char(int c) -{ - return c >= 0 && c <= 127; -} - -bool request_parser::is_ctl(int c) -{ - return (c >= 0 && c <= 31) || (c == 127); -} - -bool request_parser::is_tspecial(int c) -{ - switch (c) - { - case '(': case ')': case '<': case '>': case '@': - case ',': case ';': case ':': case '\\': case '"': - case '/': case '[': case ']': case '?': case '=': - case '{': case '}': case ' ': case '\t': - return true; - default: - return false; - } -} - -bool request_parser::is_digit(int c) -{ - return c >= '0' && c <= '9'; -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.hpp deleted file mode 100644 index 19cfa1c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/request_parser.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER3_REQUEST_PARSER_HPP -#define HTTP_SERVER3_REQUEST_PARSER_HPP - -#include -#include - -namespace http { -namespace server3 { - -struct request; - -/// Parser for incoming requests. -class request_parser -{ -public: - /// Construct ready to parse the request method. - request_parser(); - - /// Reset to initial parser state. - void reset(); - - /// Parse some data. The tribool return value is true when a complete request - /// has been parsed, false if the data is invalid, indeterminate when more - /// data is required. The InputIterator return value indicates how much of the - /// input has been consumed. - template - boost::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - boost::tribool result = consume(req, *begin++); - if (result || !result) - return boost::make_tuple(result, begin); - } - boost::tribool result = boost::indeterminate; - return boost::make_tuple(result, begin); - } - -private: - /// Handle the next character of input. - boost::tribool consume(request& req, char input); - - /// Check if a byte is an HTTP character. - static bool is_char(int c); - - /// Check if a byte is an HTTP control character. - static bool is_ctl(int c); - - /// Check if a byte is defined as an HTTP tspecial character. - static bool is_tspecial(int c); - - /// Check if a byte is a digit. - static bool is_digit(int c); - - /// The current state of the parser. - enum state - { - method_start, - method, - uri, - http_version_h, - http_version_t_1, - http_version_t_2, - http_version_p, - http_version_slash, - http_version_major_start, - http_version_major, - http_version_minor_start, - http_version_minor, - expecting_newline_1, - header_line_start, - header_lws, - header_name, - space_before_header_value, - header_value, - expecting_newline_2, - expecting_newline_3 - } state_; -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_REQUEST_PARSER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.cpp deleted file mode 100644 index ab66f72..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "server.hpp" -#include -#include -#include - -namespace http { -namespace server3 { - -server::server(const std::string& address, const std::string& port, - const std::string& doc_root, std::size_t thread_pool_size) - : thread_pool_size_(thread_pool_size), - signals_(io_context_), - acceptor_(io_context_), - new_connection_(), - request_handler_(doc_root) -{ - // Register to handle the signals that indicate when the server should exit. - // It is safe to register for the same signal multiple times in a program, - // provided all registration for the specified signal is made through Asio. - signals_.add(SIGINT); - signals_.add(SIGTERM); -#if defined(SIGQUIT) - signals_.add(SIGQUIT); -#endif // defined(SIGQUIT) - signals_.async_wait(boost::bind(&server::handle_stop, this)); - - // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). - asio::ip::tcp::resolver resolver(io_context_); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.open(endpoint.protocol()); - acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - acceptor_.bind(endpoint); - acceptor_.listen(); - - start_accept(); -} - -void server::run() -{ - // Create a pool of threads to run all of the io_contexts. - std::vector > threads; - for (std::size_t i = 0; i < thread_pool_size_; ++i) - { - boost::shared_ptr thread(new asio::thread( - boost::bind(&asio::io_context::run, &io_context_))); - threads.push_back(thread); - } - - // Wait for all threads in the pool to exit. - for (std::size_t i = 0; i < threads.size(); ++i) - threads[i]->join(); -} - -void server::start_accept() -{ - new_connection_.reset(new connection(io_context_, request_handler_)); - acceptor_.async_accept(new_connection_->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error)); -} - -void server::handle_accept(const asio::error_code& e) -{ - if (!e) - { - new_connection_->start(); - } - - start_accept(); -} - -void server::handle_stop() -{ - io_context_.stop(); -} - -} // namespace server3 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.hpp deleted file mode 100644 index 812ce32..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server3/server.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER3_SERVER_HPP -#define HTTP_SERVER3_SERVER_HPP - -#include -#include -#include -#include -#include -#include "connection.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server3 { - -/// The top-level class of the HTTP server. -class server - : private boost::noncopyable -{ -public: - /// Construct the server to listen on the specified TCP address and port, and - /// serve up files from the given directory. - explicit server(const std::string& address, const std::string& port, - const std::string& doc_root, std::size_t thread_pool_size); - - /// Run the server's io_context loop. - void run(); - -private: - /// Initiate an asynchronous accept operation. - void start_accept(); - - /// Handle completion of an asynchronous accept operation. - void handle_accept(const asio::error_code& e); - - /// Handle a request to stop the server. - void handle_stop(); - - /// The number of threads that will call io_context::run(). - std::size_t thread_pool_size_; - - /// The io_context used to perform asynchronous operations. - asio::io_context io_context_; - - /// The signal_set is used to register for process termination notifications. - asio::signal_set signals_; - - /// Acceptor used to listen for incoming connections. - asio::ip::tcp::acceptor acceptor_; - - /// The next connection to be accepted. - connection_ptr new_connection_; - - /// The handler for all incoming requests. - request_handler request_handler_; -}; - -} // namespace server3 -} // namespace http - -#endif // HTTP_SERVER3_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.cpp deleted file mode 100644 index 1a4bb6c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// file_handler.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "file_handler.hpp" -#include -#include -#include -#include -#include "mime_types.hpp" -#include "reply.hpp" -#include "request.hpp" - -namespace http { -namespace server4 { - -file_handler::file_handler(const std::string& doc_root) - : doc_root_(doc_root) -{ -} - -void file_handler::operator()(const request& req, reply& rep) -{ - // Decode url to path. - std::string request_path; - if (!url_decode(req.uri, request_path)) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // Request path must be absolute and not contain "..". - if (request_path.empty() || request_path[0] != '/' - || request_path.find("..") != std::string::npos) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // If path ends in slash (i.e. is a directory) then add "index.html". - if (request_path[request_path.size() - 1] == '/') - { - request_path += "index.html"; - } - - // Determine the file extension. - std::size_t last_slash_pos = request_path.find_last_of("/"); - std::size_t last_dot_pos = request_path.find_last_of("."); - std::string extension; - if (last_dot_pos != std::string::npos && last_dot_pos > last_slash_pos) - { - extension = request_path.substr(last_dot_pos + 1); - } - - // Open the file to send back. - std::string full_path = doc_root_ + request_path; - std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary); - if (!is) - { - rep = reply::stock_reply(reply::not_found); - return; - } - - // Fill out the reply to be sent to the client. - rep.status = reply::ok; - char buf[512]; - while (is.read(buf, sizeof(buf)).gcount() > 0) - rep.content.append(buf, is.gcount()); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = mime_types::extension_to_type(extension); -} - -bool file_handler::url_decode(const std::string& in, std::string& out) -{ - out.clear(); - out.reserve(in.size()); - for (std::size_t i = 0; i < in.size(); ++i) - { - if (in[i] == '%') - { - if (i + 3 <= in.size()) - { - int value = 0; - std::istringstream is(in.substr(i + 1, 2)); - if (is >> std::hex >> value) - { - out += static_cast(value); - i += 2; - } - else - { - return false; - } - } - else - { - return false; - } - } - else if (in[i] == '+') - { - out += ' '; - } - else - { - out += in[i]; - } - } - return true; -} - -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.hpp deleted file mode 100644 index 1835922..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/file_handler.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// file_handler.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER4_FILE_HANDLER_HPP -#define HTTP_SERVER4_FILE_HANDLER_HPP - -#include - -namespace http { -namespace server4 { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class file_handler -{ -public: - /// Construct with a directory containing files to be served. - explicit file_handler(const std::string& doc_root); - - /// Handle a request and produce a reply. - void operator()(const request& req, reply& rep); - -private: - /// The directory containing the files to be served. - std::string doc_root_; - - /// Perform URL-decoding on a string. Returns false if the encoding was - /// invalid. - static bool url_decode(const std::string& in, std::string& out); -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_FILE_HANDLER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/header.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/header.hpp deleted file mode 100644 index 8fa2512..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER4_HEADER_HPP -#define HTTP_SERVER4_HEADER_HPP - -#include - -namespace http { -namespace server4 { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/main.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/main.cpp deleted file mode 100644 index 263fa89..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/main.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "server.hpp" -#include "file_handler.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 4) - { - std::cerr << "Usage: http_server
\n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 80 .\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 80 .\n"; - return 1; - } - - asio::io_context io_context; - - // Launch the initial server coroutine. - http::server4::server(io_context, argv[1], argv[2], - http::server4::file_handler(argv[3]))(); - - // Wait for signals indicating time to shut down. - asio::signal_set signals(io_context); - signals.add(SIGINT); - signals.add(SIGTERM); -#if defined(SIGQUIT) - signals.add(SIGQUIT); -#endif // defined(SIGQUIT) - signals.async_wait(boost::bind( - &asio::io_context::stop, &io_context)); - - // Run the server. - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.cpp deleted file mode 100644 index 7b30ffb..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "mime_types.hpp" - -namespace http { -namespace server4 { -namespace mime_types { - -struct mapping -{ - const char* extension; - const char* mime_type; -} mappings[] = -{ - { "gif", "image/gif" }, - { "htm", "text/html" }, - { "html", "text/html" }, - { "jpg", "image/jpeg" }, - { "png", "image/png" }, - { 0, 0 } // Marks end of list. -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping* m = mappings; m->extension; ++m) - { - if (m->extension == extension) - { - return m->mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.hpp deleted file mode 100644 index 6eae007..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER4_MIME_TYPES_HPP -#define HTTP_SERVER4_MIME_TYPES_HPP - -#include - -namespace http { -namespace server4 { -namespace mime_types { - -/// Convert a file extension into a MIME type. -std::string extension_to_type(const std::string& extension); - -} // namespace mime_types -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_MIME_TYPES_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.cpp deleted file mode 100644 index 78c017e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "reply.hpp" -#include -#include - -namespace http { -namespace server4 { - -namespace status_strings { - -const std::string ok = - "HTTP/1.0 200 OK\r\n"; -const std::string created = - "HTTP/1.0 201 Created\r\n"; -const std::string accepted = - "HTTP/1.0 202 Accepted\r\n"; -const std::string no_content = - "HTTP/1.0 204 No Content\r\n"; -const std::string multiple_choices = - "HTTP/1.0 300 Multiple Choices\r\n"; -const std::string moved_permanently = - "HTTP/1.0 301 Moved Permanently\r\n"; -const std::string moved_temporarily = - "HTTP/1.0 302 Moved Temporarily\r\n"; -const std::string not_modified = - "HTTP/1.0 304 Not Modified\r\n"; -const std::string bad_request = - "HTTP/1.0 400 Bad Request\r\n"; -const std::string unauthorized = - "HTTP/1.0 401 Unauthorized\r\n"; -const std::string forbidden = - "HTTP/1.0 403 Forbidden\r\n"; -const std::string not_found = - "HTTP/1.0 404 Not Found\r\n"; -const std::string internal_server_error = - "HTTP/1.0 500 Internal Server Error\r\n"; -const std::string not_implemented = - "HTTP/1.0 501 Not Implemented\r\n"; -const std::string bad_gateway = - "HTTP/1.0 502 Bad Gateway\r\n"; -const std::string service_unavailable = - "HTTP/1.0 503 Service Unavailable\r\n"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return asio::buffer(internal_server_error); - } -} - -} // namespace status_strings - -namespace misc_strings { - -const char name_value_separator[] = { ':', ' ' }; -const char crlf[] = { '\r', '\n' }; - -} // namespace misc_strings - -std::vector reply::to_buffers() -{ - std::vector buffers; - buffers.push_back(status_strings::to_buffer(status)); - for (std::size_t i = 0; i < headers.size(); ++i) - { - header& h = headers[i]; - buffers.push_back(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -std::string to_string(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return ok; - case reply::created: - return created; - case reply::accepted: - return accepted; - case reply::no_content: - return no_content; - case reply::multiple_choices: - return multiple_choices; - case reply::moved_permanently: - return moved_permanently; - case reply::moved_temporarily: - return moved_temporarily; - case reply::not_modified: - return not_modified; - case reply::bad_request: - return bad_request; - case reply::unauthorized: - return unauthorized; - case reply::forbidden: - return forbidden; - case reply::not_found: - return not_found; - case reply::internal_server_error: - return internal_server_error; - case reply::not_implemented: - return not_implemented; - case reply::bad_gateway: - return bad_gateway; - case reply::service_unavailable: - return service_unavailable; - default: - return internal_server_error; - } -} - -} // namespace stock_replies - -reply reply::stock_reply(reply::status_type status) -{ - reply rep; - rep.status = status; - rep.content = stock_replies::to_string(status); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = boost::lexical_cast(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.hpp deleted file mode 100644 index 98fa367..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER4_REPLY_HPP -#define HTTP_SERVER4_REPLY_HPP - -#include -#include -#include -#include "header.hpp" - -namespace http { -namespace server4 { - -/// A reply to be sent to a client. -struct reply -{ - /// The status of the reply. - enum status_type - { - ok = 200, - created = 201, - accepted = 202, - no_content = 204, - multiple_choices = 300, - moved_permanently = 301, - moved_temporarily = 302, - not_modified = 304, - bad_request = 400, - unauthorized = 401, - forbidden = 403, - not_found = 404, - internal_server_error = 500, - not_implemented = 501, - bad_gateway = 502, - service_unavailable = 503 - } status; - - /// The headers to be included in the reply. - std::vector
headers; - - /// The content to be sent in the reply. - std::string content; - - /// Convert the reply into a vector of buffers. The buffers do not own the - /// underlying memory blocks, therefore the reply object must remain valid and - /// not be changed until the write operation has completed. - std::vector to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/request.hpp deleted file mode 100644 index 902212a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER4_REQUEST_HPP -#define HTTP_SERVER4_REQUEST_HPP - -#include -#include -#include "header.hpp" - -namespace http { -namespace server4 { - -/// A request received from a client. -struct request -{ - /// The request method, e.g. "GET", "POST". - std::string method; - - /// The requested URI, such as a path to a file. - std::string uri; - - /// Major version number, usually 1. - int http_version_major; - - /// Minor version number, usually 0 or 1. - int http_version_minor; - - /// The headers included with the request. - std::vector
headers; - - /// The optional content sent with the request. - std::string content; -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.cpp deleted file mode 100644 index a7beb56..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.cpp +++ /dev/null @@ -1,226 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_parser.hpp" -#include -#include -#include -#include "request.hpp" - -namespace http { -namespace server4 { - -// Enable the pseudo-keywords reenter, yield and fork. -#include - -std::string request_parser::content_length_name_ = "Content-Length"; - -boost::tribool request_parser::consume(request& req, char c) -{ - reenter (this) - { - req.method.clear(); - req.uri.clear(); - req.http_version_major = 0; - req.http_version_minor = 0; - req.headers.clear(); - req.content.clear(); - content_length_ = 0; - - // Request method. - while (is_char(c) && !is_ctl(c) && !is_tspecial(c) && c != ' ') - { - req.method.push_back(c); - yield return boost::indeterminate; - } - if (req.method.empty()) - return false; - - // Space. - if (c != ' ') return false; - yield return boost::indeterminate; - - // URI. - while (!is_ctl(c) && c != ' ') - { - req.uri.push_back(c); - yield return boost::indeterminate; - } - if (req.uri.empty()) return false; - - // Space. - if (c != ' ') return false; - yield return boost::indeterminate; - - // HTTP protocol identifier. - if (c != 'H') return false; - yield return boost::indeterminate; - if (c != 'T') return false; - yield return boost::indeterminate; - if (c != 'T') return false; - yield return boost::indeterminate; - if (c != 'P') return false; - yield return boost::indeterminate; - - // Slash. - if (c != '/') return false; - yield return boost::indeterminate; - - // Major version number. - if (!is_digit(c)) return false; - while (is_digit(c)) - { - req.http_version_major = req.http_version_major * 10 + c - '0'; - yield return boost::indeterminate; - } - - // Dot. - if (c != '.') return false; - yield return boost::indeterminate; - - // Minor version number. - if (!is_digit(c)) return false; - while (is_digit(c)) - { - req.http_version_minor = req.http_version_minor * 10 + c - '0'; - yield return boost::indeterminate; - } - - // CRLF. - if (c != '\r') return false; - yield return boost::indeterminate; - if (c != '\n') return false; - yield return boost::indeterminate; - - // Headers. - while ((is_char(c) && !is_ctl(c) && !is_tspecial(c) && c != '\r') - || (c == ' ' || c == '\t')) - { - if (c == ' ' || c == '\t') - { - // Leading whitespace. Must be continuation of previous header's value. - if (req.headers.empty()) return false; - while (c == ' ' || c == '\t') - yield return boost::indeterminate; - } - else - { - // Start the next header. - req.headers.push_back(header()); - - // Header name. - while (is_char(c) && !is_ctl(c) && !is_tspecial(c) && c != ':') - { - req.headers.back().name.push_back(c); - yield return boost::indeterminate; - } - - // Colon and space separates the header name from the header value. - if (c != ':') return false; - yield return boost::indeterminate; - if (c != ' ') return false; - yield return boost::indeterminate; - } - - // Header value. - while (is_char(c) && !is_ctl(c) && c != '\r') - { - req.headers.back().value.push_back(c); - yield return boost::indeterminate; - } - - // CRLF. - if (c != '\r') return false; - yield return boost::indeterminate; - if (c != '\n') return false; - yield return boost::indeterminate; - } - - // CRLF. - if (c != '\r') return false; - yield return boost::indeterminate; - if (c != '\n') return false; - - // Check for optional Content-Length header. - for (std::size_t i = 0; i < req.headers.size(); ++i) - { - if (headers_equal(req.headers[i].name, content_length_name_)) - { - try - { - content_length_ = - boost::lexical_cast(req.headers[i].value); - } - catch (boost::bad_lexical_cast&) - { - return false; - } - } - } - - // Content. - while (req.content.size() < content_length_) - { - yield return boost::indeterminate; - req.content.push_back(c); - } - } - - return true; -} - -// Disable the pseudo-keywords reenter, yield and fork. -#include - -bool request_parser::is_char(int c) -{ - return c >= 0 && c <= 127; -} - -bool request_parser::is_ctl(int c) -{ - return (c >= 0 && c <= 31) || (c == 127); -} - -bool request_parser::is_tspecial(int c) -{ - switch (c) - { - case '(': case ')': case '<': case '>': case '@': - case ',': case ';': case ':': case '\\': case '"': - case '/': case '[': case ']': case '?': case '=': - case '{': case '}': case ' ': case '\t': - return true; - default: - return false; - } -} - -bool request_parser::is_digit(int c) -{ - return c >= '0' && c <= '9'; -} - -bool request_parser::tolower_compare(char a, char b) -{ - return std::tolower(a) == std::tolower(b); -} - -bool request_parser::headers_equal(const std::string& a, const std::string& b) -{ - if (a.length() != b.length()) - return false; - - return std::equal(a.begin(), a.end(), b.begin(), - &request_parser::tolower_compare); -} - -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.hpp deleted file mode 100644 index 2de0637..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/request_parser.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER4_REQUEST_PARSER_HPP -#define HTTP_SERVER4_REQUEST_PARSER_HPP - -#include -#include -#include -#include - -namespace http { -namespace server4 { - -struct request; - -/// Parser for incoming requests. -class request_parser : asio::coroutine -{ -public: - /// Parse some data. The tribool return value is true when a complete request - /// has been parsed, false if the data is invalid, indeterminate when more - /// data is required. The InputIterator return value indicates how much of the - /// input has been consumed. - template - boost::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - boost::tribool result = consume(req, *begin++); - if (result || !result) - return boost::make_tuple(result, begin); - } - boost::tribool result = boost::indeterminate; - return boost::make_tuple(result, begin); - } - -private: - /// The name of the content length header. - static std::string content_length_name_; - - /// Content length as decoded from headers. Defaults to 0. - std::size_t content_length_; - - /// Handle the next character of input. - boost::tribool consume(request& req, char input); - - /// Check if a byte is an HTTP character. - static bool is_char(int c); - - /// Check if a byte is an HTTP control character. - static bool is_ctl(int c); - - /// Check if a byte is defined as an HTTP tspecial character. - static bool is_tspecial(int c); - - /// Check if a byte is a digit. - static bool is_digit(int c); - - /// Check if two characters are equal, without regard to case. - static bool tolower_compare(char a, char b); - - /// Check whether the two request header names match. - bool headers_equal(const std::string& a, const std::string& b); -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_REQUEST_PARSER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.cpp deleted file mode 100644 index b476bc2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "server.hpp" -#include "request.hpp" -#include "reply.hpp" - -namespace http { -namespace server4 { - -server::server(asio::io_context& io_context, - const std::string& address, const std::string& port, - boost::function request_handler) - : request_handler_(request_handler) -{ - tcp::resolver resolver(io_context); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.reset(new tcp::acceptor(io_context, endpoint)); -} - -// Enable the pseudo-keywords reenter, yield and fork. -#include - -void server::operator()(asio::error_code ec, std::size_t length) -{ - // In this example we keep the error handling code in one place by - // hoisting it outside the coroutine. An alternative approach would be to - // check the value of ec after each yield for an asynchronous operation. - if (!ec) - { - // On reentering a coroutine, control jumps to the location of the last - // yield or fork. The argument to the "reenter" pseudo-keyword can be a - // pointer or reference to an object of type coroutine. - reenter (this) - { - // Loop to accept incoming connections. - do - { - // Create a new socket for the next incoming connection. - socket_.reset(new tcp::socket(acceptor_->get_executor().context())); - - // Accept a new connection. The "yield" pseudo-keyword saves the current - // line number and exits the coroutine's "reenter" block. We use the - // server coroutine as the completion handler for the async_accept - // operation. When the asynchronous operation completes, the io_context - // invokes the function call operator, we "reenter" the coroutine, and - // then control resumes at the following line. - yield acceptor_->async_accept(*socket_, *this); - - // We "fork" by cloning a new server coroutine to handle the connection. - // After forking we have a parent coroutine and a child coroutine. Both - // parent and child continue execution at the following line. They can - // be distinguished using the functions coroutine::is_parent() and - // coroutine::is_child(). - fork server(*this)(); - - // The parent continues looping to accept the next incoming connection. - // The child exits the loop and processes the connection. - } while (is_parent()); - - // Create the objects needed to receive a request on the connection. - buffer_.reset(new boost::array); - request_.reset(new request); - - // Loop until a complete request (or an invalid one) has been received. - do - { - // Receive some more data. When control resumes at the following line, - // the ec and length parameters reflect the result of the asynchronous - // operation. - yield socket_->async_read_some(asio::buffer(*buffer_), *this); - - // Parse the data we just received. - boost::tie(valid_request_, boost::tuples::ignore) - = request_parser_.parse(*request_, - buffer_->data(), buffer_->data() + length); - - // An indeterminate result means we need more data, so keep looping. - } while (boost::indeterminate(valid_request_)); - - // Create the reply object that will be sent back to the client. - reply_.reset(new reply); - - if (valid_request_) - { - // A valid request was received. Call the user-supplied function object - // to process the request and compose a reply. - request_handler_(*request_, *reply_); - } - else - { - // The request was invalid. - *reply_ = reply::stock_reply(reply::bad_request); - } - - // Send the reply back to the client. - yield asio::async_write(*socket_, reply_->to_buffers(), *this); - - // Initiate graceful connection closure. - socket_->shutdown(tcp::socket::shutdown_both, ec); - } - } - - // If an error occurs then the coroutine is not reentered. Consequently, no - // new asynchronous operations are started. This means that all shared_ptr - // references will disappear and the resources associated with the coroutine - // will be destroyed automatically after this function call returns. -} - -// Disable the pseudo-keywords reenter, yield and fork. -#include - -} // namespace server4 -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.hpp b/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.hpp deleted file mode 100644 index a6db450..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/http/server4/server.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER4_SERVER_HPP -#define HTTP_SERVER4_SERVER_HPP - -#include -#include -#include -#include -#include -#include "request_parser.hpp" - -namespace http { -namespace server4 { - -struct request; -struct reply; - -/// The top-level coroutine of the HTTP server. -class server : asio::coroutine -{ -public: - /// Construct the server to listen on the specified TCP address and port, and - /// serve up files from the given directory. - explicit server(asio::io_context& io_context, - const std::string& address, const std::string& port, - boost::function request_handler); - - /// Perform work associated with the server. - void operator()( - asio::error_code ec = asio::error_code(), - std::size_t length = 0); - -private: - typedef asio::ip::tcp tcp; - - /// The user-supplied handler for all incoming requests. - boost::function request_handler_; - - /// Acceptor used to listen for incoming connections. - boost::shared_ptr acceptor_; - - /// The current connection from a client. - boost::shared_ptr socket_; - - /// Buffer for incoming data. - boost::shared_ptr > buffer_; - - /// The incoming request. - boost::shared_ptr request_; - - /// Whether the request is valid or not. - boost::tribool valid_request_; - - /// The parser for the incoming request. - request_parser request_parser_; - - /// The reply to be sent back to the client. - boost::shared_ptr reply_; -}; - -} // namespace server4 -} // namespace http - -#endif // HTTP_SERVER4_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/icmp/icmp_header.hpp b/Sources/Vendor/asio/src/examples/cpp03/icmp/icmp_header.hpp deleted file mode 100644 index 2e6f46b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/icmp/icmp_header.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// icmp_header.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 ICMP_HEADER_HPP -#define ICMP_HEADER_HPP - -#include -#include -#include - -// ICMP header for both IPv4 and IPv6. -// -// The wire format of an ICMP header is: -// -// 0 8 16 31 -// +---------------+---------------+------------------------------+ --- -// | | | | ^ -// | type | code | checksum | | -// | | | | | -// +---------------+---------------+------------------------------+ 8 bytes -// | | | | -// | identifier | sequence number | | -// | | | v -// +-------------------------------+------------------------------+ --- - -class icmp_header -{ -public: - enum { echo_reply = 0, destination_unreachable = 3, source_quench = 4, - redirect = 5, echo_request = 8, time_exceeded = 11, parameter_problem = 12, - timestamp_request = 13, timestamp_reply = 14, info_request = 15, - info_reply = 16, address_request = 17, address_reply = 18 }; - - icmp_header() { std::fill(rep_, rep_ + sizeof(rep_), 0); } - - unsigned char type() const { return rep_[0]; } - unsigned char code() const { return rep_[1]; } - unsigned short checksum() const { return decode(2, 3); } - unsigned short identifier() const { return decode(4, 5); } - unsigned short sequence_number() const { return decode(6, 7); } - - void type(unsigned char n) { rep_[0] = n; } - void code(unsigned char n) { rep_[1] = n; } - void checksum(unsigned short n) { encode(2, 3, n); } - void identifier(unsigned short n) { encode(4, 5, n); } - void sequence_number(unsigned short n) { encode(6, 7, n); } - - friend std::istream& operator>>(std::istream& is, icmp_header& header) - { return is.read(reinterpret_cast(header.rep_), 8); } - - friend std::ostream& operator<<(std::ostream& os, const icmp_header& header) - { return os.write(reinterpret_cast(header.rep_), 8); } - -private: - unsigned short decode(int a, int b) const - { return (rep_[a] << 8) + rep_[b]; } - - void encode(int a, int b, unsigned short n) - { - rep_[a] = static_cast(n >> 8); - rep_[b] = static_cast(n & 0xFF); - } - - unsigned char rep_[8]; -}; - -template -void compute_checksum(icmp_header& header, - Iterator body_begin, Iterator body_end) -{ - unsigned int sum = (header.type() << 8) + header.code() - + header.identifier() + header.sequence_number(); - - Iterator body_iter = body_begin; - while (body_iter != body_end) - { - sum += (static_cast(*body_iter++) << 8); - if (body_iter != body_end) - sum += static_cast(*body_iter++); - } - - sum = (sum >> 16) + (sum & 0xFFFF); - sum += (sum >> 16); - header.checksum(static_cast(~sum)); -} - -#endif // ICMP_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/icmp/ipv4_header.hpp b/Sources/Vendor/asio/src/examples/cpp03/icmp/ipv4_header.hpp deleted file mode 100644 index 719cbbf..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/icmp/ipv4_header.hpp +++ /dev/null @@ -1,102 +0,0 @@ -// -// ipv4_header.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 IPV4_HEADER_HPP -#define IPV4_HEADER_HPP - -#include -#include - -// Packet header for IPv4. -// -// The wire format of an IPv4 header is: -// -// 0 8 16 31 -// +-------+-------+---------------+------------------------------+ --- -// | | | | | ^ -// |version|header | type of | total length in bytes | | -// | (4) | length| service | | | -// +-------+-------+---------------+-+-+-+------------------------+ | -// | | | | | | | -// | identification |0|D|M| fragment offset | | -// | | |F|F| | | -// +---------------+---------------+-+-+-+------------------------+ | -// | | | | | -// | time to live | protocol | header checksum | 20 bytes -// | | | | | -// +---------------+---------------+------------------------------+ | -// | | | -// | source IPv4 address | | -// | | | -// +--------------------------------------------------------------+ | -// | | | -// | destination IPv4 address | | -// | | v -// +--------------------------------------------------------------+ --- -// | | ^ -// | | | -// / options (if any) / 0 - 40 -// / / bytes -// | | | -// | | v -// +--------------------------------------------------------------+ --- - -class ipv4_header -{ -public: - ipv4_header() { std::fill(rep_, rep_ + sizeof(rep_), 0); } - - unsigned char version() const { return (rep_[0] >> 4) & 0xF; } - unsigned short header_length() const { return (rep_[0] & 0xF) * 4; } - unsigned char type_of_service() const { return rep_[1]; } - unsigned short total_length() const { return decode(2, 3); } - unsigned short identification() const { return decode(4, 5); } - bool dont_fragment() const { return (rep_[6] & 0x40) != 0; } - bool more_fragments() const { return (rep_[6] & 0x20) != 0; } - unsigned short fragment_offset() const { return decode(6, 7) & 0x1FFF; } - unsigned int time_to_live() const { return rep_[8]; } - unsigned char protocol() const { return rep_[9]; } - unsigned short header_checksum() const { return decode(10, 11); } - - asio::ip::address_v4 source_address() const - { - asio::ip::address_v4::bytes_type bytes - = { { rep_[12], rep_[13], rep_[14], rep_[15] } }; - return asio::ip::address_v4(bytes); - } - - asio::ip::address_v4 destination_address() const - { - asio::ip::address_v4::bytes_type bytes - = { { rep_[16], rep_[17], rep_[18], rep_[19] } }; - return asio::ip::address_v4(bytes); - } - - friend std::istream& operator>>(std::istream& is, ipv4_header& header) - { - is.read(reinterpret_cast(header.rep_), 20); - if (header.version() != 4) - is.setstate(std::ios::failbit); - std::streamsize options_length = header.header_length() - 20; - if (options_length < 0 || options_length > 40) - is.setstate(std::ios::failbit); - else - is.read(reinterpret_cast(header.rep_) + 20, options_length); - return is; - } - -private: - unsigned short decode(int a, int b) const - { return (rep_[a] << 8) + rep_[b]; } - - unsigned char rep_[60]; -}; - -#endif // IPV4_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/icmp/ping.cpp b/Sources/Vendor/asio/src/examples/cpp03/icmp/ping.cpp deleted file mode 100644 index 4c5dd36..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/icmp/ping.cpp +++ /dev/null @@ -1,163 +0,0 @@ -// -// ping.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include - -#include "icmp_header.hpp" -#include "ipv4_header.hpp" - -using asio::ip::icmp; -using asio::steady_timer; -namespace chrono = asio::chrono; - -class pinger -{ -public: - pinger(asio::io_context& io_context, const char* destination) - : resolver_(io_context), socket_(io_context, icmp::v4()), - timer_(io_context), sequence_number_(0), num_replies_(0) - { - destination_ = *resolver_.resolve(icmp::v4(), destination, "").begin(); - - start_send(); - start_receive(); - } - -private: - void start_send() - { - std::string body("\"Hello!\" from Asio ping."); - - // Create an ICMP header for an echo request. - icmp_header echo_request; - echo_request.type(icmp_header::echo_request); - echo_request.code(0); - echo_request.identifier(get_identifier()); - echo_request.sequence_number(++sequence_number_); - compute_checksum(echo_request, body.begin(), body.end()); - - // Encode the request packet. - asio::streambuf request_buffer; - std::ostream os(&request_buffer); - os << echo_request << body; - - // Send the request. - time_sent_ = steady_timer::clock_type::now(); - socket_.send_to(request_buffer.data(), destination_); - - // Wait up to five seconds for a reply. - num_replies_ = 0; - timer_.expires_at(time_sent_ + chrono::seconds(5)); - timer_.async_wait(boost::bind(&pinger::handle_timeout, this)); - } - - void handle_timeout() - { - if (num_replies_ == 0) - std::cout << "Request timed out" << std::endl; - - // Requests must be sent no less than one second apart. - timer_.expires_at(time_sent_ + chrono::seconds(1)); - timer_.async_wait(boost::bind(&pinger::start_send, this)); - } - - void start_receive() - { - // Discard any data already in the buffer. - reply_buffer_.consume(reply_buffer_.size()); - - // Wait for a reply. We prepare the buffer to receive up to 64KB. - socket_.async_receive(reply_buffer_.prepare(65536), - boost::bind(&pinger::handle_receive, this, _2)); - } - - void handle_receive(std::size_t length) - { - // The actual number of bytes received is committed to the buffer so that we - // can extract it using a std::istream object. - reply_buffer_.commit(length); - - // Decode the reply packet. - std::istream is(&reply_buffer_); - ipv4_header ipv4_hdr; - icmp_header icmp_hdr; - is >> ipv4_hdr >> icmp_hdr; - - // We can receive all ICMP packets received by the host, so we need to - // filter out only the echo replies that match the our identifier and - // expected sequence number. - if (is && icmp_hdr.type() == icmp_header::echo_reply - && icmp_hdr.identifier() == get_identifier() - && icmp_hdr.sequence_number() == sequence_number_) - { - // If this is the first reply, interrupt the five second timeout. - if (num_replies_++ == 0) - timer_.cancel(); - - // Print out some information about the reply packet. - chrono::steady_clock::time_point now = chrono::steady_clock::now(); - chrono::steady_clock::duration elapsed = now - time_sent_; - std::cout << length - ipv4_hdr.header_length() - << " bytes from " << ipv4_hdr.source_address() - << ": icmp_seq=" << icmp_hdr.sequence_number() - << ", ttl=" << ipv4_hdr.time_to_live() - << ", time=" - << chrono::duration_cast(elapsed).count() - << std::endl; - } - - start_receive(); - } - - static unsigned short get_identifier() - { -#if defined(ASIO_WINDOWS) - return static_cast(::GetCurrentProcessId()); -#else - return static_cast(::getpid()); -#endif - } - - icmp::resolver resolver_; - icmp::endpoint destination_; - icmp::socket socket_; - steady_timer timer_; - unsigned short sequence_number_; - chrono::steady_clock::time_point time_sent_; - asio::streambuf reply_buffer_; - std::size_t num_replies_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: ping " << std::endl; -#if !defined(ASIO_WINDOWS) - std::cerr << "(You may need to run this program as root.)" << std::endl; -#endif - return 1; - } - - asio::io_context io_context; - pinger p(io_context, argv[1]); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp b/Sources/Vendor/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp deleted file mode 100644 index 6009447..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +++ /dev/null @@ -1,171 +0,0 @@ -// -// prioritised_handlers.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio.hpp" -#include -#include -#include - -using asio::ip::tcp; - -class handler_priority_queue : public asio::execution_context -{ -public: - void add(int priority, boost::function function) - { - handlers_.push(queued_handler(priority, function)); - } - - void execute_all() - { - while (!handlers_.empty()) - { - queued_handler handler = handlers_.top(); - handler.execute(); - handlers_.pop(); - } - } - - class executor - { - public: - executor(handler_priority_queue& q, int p) - : context_(q), priority_(p) - { - } - - handler_priority_queue& context() const - { - return context_; - } - - template - void dispatch(const Function& f, const Allocator&) const - { - context_.add(priority_, f); - } - - template - void post(const Function& f, const Allocator&) const - { - context_.add(priority_, f); - } - - template - void defer(const Function& f, const Allocator&) const - { - context_.add(priority_, f); - } - - void on_work_started() const {} - void on_work_finished() const {} - - bool operator==(const executor& other) const - { - return &context_ == &other.context_ && priority_ == other.priority_; - } - - bool operator!=(const executor& other) const - { - return !operator==(other); - } - - private: - handler_priority_queue& context_; - int priority_; - }; - - template - asio::executor_binder - wrap(int priority, Handler handler) - { - return asio::bind_executor(executor(*this, priority), handler); - } - -private: - class queued_handler - { - public: - queued_handler(int p, boost::function f) - : priority_(p), function_(f) - { - } - - void execute() - { - function_(); - } - - friend bool operator<(const queued_handler& a, - const queued_handler& b) - { - return a.priority_ < b.priority_; - } - - private: - int priority_; - boost::function function_; - }; - - std::priority_queue handlers_; -}; - -//---------------------------------------------------------------------- - -void high_priority_handler(const asio::error_code& /*ec*/) -{ - std::cout << "High priority handler\n"; -} - -void middle_priority_handler(const asio::error_code& /*ec*/) -{ - std::cout << "Middle priority handler\n"; -} - -void low_priority_handler() -{ - std::cout << "Low priority handler\n"; -} - -int main() -{ - asio::io_context io_context; - - handler_priority_queue pri_queue; - - // Post a completion handler to be run immediately. - asio::post(io_context, pri_queue.wrap(0, low_priority_handler)); - - // Start an asynchronous accept that will complete immediately. - tcp::endpoint endpoint(asio::ip::address_v4::loopback(), 0); - tcp::acceptor acceptor(io_context, endpoint); - tcp::socket server_socket(io_context); - acceptor.async_accept(server_socket, - pri_queue.wrap(100, high_priority_handler)); - tcp::socket client_socket(io_context); - client_socket.connect(acceptor.local_endpoint()); - - // Set a deadline timer to expire immediately. - asio::steady_timer timer(io_context); - timer.expires_at(asio::steady_timer::time_point::min()); - timer.async_wait(pri_queue.wrap(42, middle_priority_handler)); - - while (io_context.run_one()) - { - // The custom invocation hook adds the handlers to the priority queue - // rather than executing them from within the poll_one() call. - while (io_context.poll_one()) - ; - - pri_queue.execute_all(); - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_client.cpp deleted file mode 100644 index 9f46e3b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_client.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// -// daytime_client.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: daytime_client " << std::endl; - return 1; - } - - tcp::iostream s(argv[1], "daytime"); - if (!s) - { - std::cout << "Unable to connect: " << s.error().message() << std::endl; - return 1; - } - - std::string line; - std::getline(s, line); - std::cout << line << std::endl; - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_server.cpp deleted file mode 100644 index 7c9ae95..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/iostreams/daytime_server.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// -// daytime_server.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include - -using asio::ip::tcp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -int main() -{ - try - { - asio::io_context io_context; - - tcp::endpoint endpoint(tcp::v4(), 13); - tcp::acceptor acceptor(io_context, endpoint); - - for (;;) - { - tcp::iostream stream; - asio::error_code ec; - acceptor.accept(stream.socket(), ec); - if (!ec) - { - stream << make_daytime_string(); - } - } - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/iostreams/http_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/iostreams/http_client.cpp deleted file mode 100644 index 06f7b00..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/iostreams/http_client.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// http_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: http_client \n"; - std::cout << "Example:\n"; - std::cout << " http_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::ip::tcp::iostream s; - - // The entire sequence of I/O operations must complete within 60 seconds. - // If an expiry occurs, the socket is automatically closed and the stream - // becomes bad. - s.expires_after(asio::chrono::seconds(60)); - - // Establish a connection to the server. - s.connect(argv[1], "http"); - if (!s) - { - std::cout << "Unable to connect: " << s.error().message() << "\n"; - return 1; - } - - // Send the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - s << "GET " << argv[2] << " HTTP/1.0\r\n"; - s << "Host: " << argv[1] << "\r\n"; - s << "Accept: */*\r\n"; - s << "Connection: close\r\n\r\n"; - - // By default, the stream is tied with itself. This means that the stream - // automatically flush the buffered output before attempting a read. It is - // not necessary not explicitly flush the stream at this point. - - // Check that response is OK. - std::string http_version; - s >> http_version; - unsigned int status_code; - s >> status_code; - std::string status_message; - std::getline(s, status_message); - if (!s || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return 1; - } - if (status_code != 200) - { - std::cout << "Response returned with status code " << status_code << "\n"; - return 1; - } - - // Process the response headers, which are terminated by a blank line. - std::string header; - while (std::getline(s, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write the remaining data to output. - std::cout << s.rdbuf(); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/local/connect_pair.cpp b/Sources/Vendor/asio/src/examples/cpp03/local/connect_pair.cpp deleted file mode 100644 index 923ff4f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/local/connect_pair.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// -// connect_pair.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -class uppercase_filter -{ -public: - uppercase_filter(asio::io_context& io_context) - : socket_(io_context) - { - } - - stream_protocol::socket& socket() - { - return socket_; - } - - void start() - { - // Wait for request. - socket_.async_read_some(asio::buffer(data_), - boost::bind(&uppercase_filter::handle_read, - this, asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - -private: - void handle_read(const asio::error_code& ec, std::size_t size) - { - if (!ec) - { - // Compute result. - for (std::size_t i = 0; i < size; ++i) - data_[i] = std::toupper(data_[i]); - - // Send result. - asio::async_write(socket_, asio::buffer(data_, size), - boost::bind(&uppercase_filter::handle_write, - this, asio::placeholders::error)); - } - else - { - throw asio::system_error(ec); - } - } - - void handle_write(const asio::error_code& ec) - { - if (!ec) - { - // Wait for request. - socket_.async_read_some(asio::buffer(data_), - boost::bind(&uppercase_filter::handle_read, - this, asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - throw asio::system_error(ec); - } - } - - stream_protocol::socket socket_; - boost::array data_; -}; - -void run(asio::io_context* io_context) -{ - try - { - io_context->run(); - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - std::exit(1); - } -} - -int main() -{ - try - { - asio::io_context io_context; - - // Create filter and establish a connection to it. - uppercase_filter filter(io_context); - stream_protocol::socket socket(io_context); - asio::local::connect_pair(socket, filter.socket()); - filter.start(); - - // The io_context runs in a background thread to perform filtering. - asio::thread thread(boost::bind(run, &io_context)); - - for (;;) - { - // Collect request from user. - std::cout << "Enter a string: "; - std::string request; - std::getline(std::cin, request); - - // Send request to filter. - asio::write(socket, asio::buffer(request)); - - // Wait for reply from filter. - std::vector reply(request.size()); - asio::read(socket, asio::buffer(reply)); - - // Show reply to user. - std::cout << "Result: "; - std::cout.write(&reply[0], request.size()); - std::cout << std::endl; - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - std::exit(1); - } -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp03/local/iostream_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/local/iostream_client.cpp deleted file mode 100644 index 6387e99..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/local/iostream_client.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// -// stream_client.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: iostream_client \n"; - return 1; - } - - stream_protocol::endpoint ep(argv[1]); - stream_protocol::iostream s(ep); - if (!s) - { - std::cerr << "Unable to connect: " << s.error().message() << std::endl; - return 1; - } - - using namespace std; // For strlen. - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t length = strlen(request); - s << request; - - char reply[max_length]; - s.read(reply, length); - std::cout << "Reply is: "; - std::cout.write(reply, length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp03/local/stream_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/local/stream_client.cpp deleted file mode 100644 index 44f64d2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/local/stream_client.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// -// stream_client.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: stream_client \n"; - return 1; - } - - asio::io_context io_context; - - stream_protocol::socket s(io_context); - s.connect(stream_protocol::endpoint(argv[1])); - - using namespace std; // For strlen. - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = strlen(request); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - asio::buffer(reply, request_length)); - std::cout << "Reply is: "; - std::cout.write(reply, reply_length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp03/local/stream_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/local/stream_server.cpp deleted file mode 100644 index 2fef9a0..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/local/stream_server.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// -// stream_server.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -class session - : public boost::enable_shared_from_this -{ -public: - session(asio::io_context& io_context) - : socket_(io_context) - { - } - - stream_protocol::socket& socket() - { - return socket_; - } - - void start() - { - socket_.async_read_some(asio::buffer(data_), - boost::bind(&session::handle_read, - shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_write(socket_, - asio::buffer(data_, bytes_transferred), - boost::bind(&session::handle_write, - shared_from_this(), - asio::placeholders::error)); - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_), - boost::bind(&session::handle_read, - shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - -private: - // The socket used to communicate with the client. - stream_protocol::socket socket_; - - // Buffer used to store data received from the client. - boost::array data_; -}; - -typedef boost::shared_ptr session_ptr; - -class server -{ -public: - server(asio::io_context& io_context, const std::string& file) - : io_context_(io_context), - acceptor_(io_context, stream_protocol::endpoint(file)) - { - session_ptr new_session(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session_ptr new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - - new_session.reset(new session(io_context_)); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - -private: - asio::io_context& io_context_; - stream_protocol::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: stream_server \n"; - std::cerr << "*** WARNING: existing file is removed ***\n"; - return 1; - } - - asio::io_context io_context; - - std::remove(argv[1]); - server s(io_context, argv[1]); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp03/multicast/receiver.cpp b/Sources/Vendor/asio/src/examples/cpp03/multicast/receiver.cpp deleted file mode 100644 index 61c9528..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/multicast/receiver.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// receiver.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include "asio.hpp" -#include "boost/bind.hpp" - -const short multicast_port = 30001; - -class receiver -{ -public: - receiver(asio::io_context& io_context, - const asio::ip::address& listen_address, - const asio::ip::address& multicast_address) - : socket_(io_context) - { - // Create the socket so that multiple may be bound to the same address. - asio::ip::udp::endpoint listen_endpoint( - listen_address, multicast_port); - socket_.open(listen_endpoint.protocol()); - socket_.set_option(asio::ip::udp::socket::reuse_address(true)); - socket_.bind(listen_endpoint); - - // Join the multicast group. - socket_.set_option( - asio::ip::multicast::join_group(multicast_address)); - - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&receiver::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - - void handle_receive_from(const asio::error_code& error, - size_t bytes_recvd) - { - if (!error) - { - std::cout.write(data_, bytes_recvd); - std::cout << std::endl; - - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - boost::bind(&receiver::handle_receive_from, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - -private: - asio::ip::udp::socket socket_; - asio::ip::udp::endpoint sender_endpoint_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: receiver \n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 ff31::8000:1234\n"; - return 1; - } - - asio::io_context io_context; - receiver r(io_context, - asio::ip::make_address(argv[1]), - asio::ip::make_address(argv[2])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/multicast/sender.cpp b/Sources/Vendor/asio/src/examples/cpp03/multicast/sender.cpp deleted file mode 100644 index a84871d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/multicast/sender.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// -// sender.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" -#include "boost/bind.hpp" - -const short multicast_port = 30001; -const int max_message_count = 10; - -class sender -{ -public: - sender(asio::io_context& io_context, - const asio::ip::address& multicast_address) - : endpoint_(multicast_address, multicast_port), - socket_(io_context, endpoint_.protocol()), - timer_(io_context), - message_count_(0) - { - std::ostringstream os; - os << "Message " << message_count_++; - message_ = os.str(); - - socket_.async_send_to( - asio::buffer(message_), endpoint_, - boost::bind(&sender::handle_send_to, this, - asio::placeholders::error)); - } - - void handle_send_to(const asio::error_code& error) - { - if (!error && message_count_ < max_message_count) - { - timer_.expires_after(asio::chrono::seconds(1)); - timer_.async_wait( - boost::bind(&sender::handle_timeout, this, - asio::placeholders::error)); - } - } - - void handle_timeout(const asio::error_code& error) - { - if (!error) - { - std::ostringstream os; - os << "Message " << message_count_++; - message_ = os.str(); - - socket_.async_send_to( - asio::buffer(message_), endpoint_, - boost::bind(&sender::handle_send_to, this, - asio::placeholders::error)); - } - } - -private: - asio::ip::udp::endpoint endpoint_; - asio::ip::udp::socket socket_; - asio::steady_timer timer_; - int message_count_; - std::string message_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: sender \n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " sender 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " sender ff31::8000:1234\n"; - return 1; - } - - asio::io_context io_context; - sender s(io_context, asio::ip::make_address(argv[1])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp b/Sources/Vendor/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp deleted file mode 100644 index 30d4ac4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +++ /dev/null @@ -1,240 +0,0 @@ -// -// third_party_lib.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -namespace third_party_lib { - -// Simulation of a third party library that wants to perform read and write -// operations directly on a socket. It needs to be polled to determine whether -// it requires a read or write operation, and notified when the socket is ready -// for reading or writing. -class session -{ -public: - session(tcp::socket& socket) - : socket_(socket), - state_(reading) - { - } - - // Returns true if the third party library wants to be notified when the - // socket is ready for reading. - bool want_read() const - { - return state_ == reading; - } - - // Notify that third party library that it should perform its read operation. - void do_read(asio::error_code& ec) - { - if (std::size_t len = socket_.read_some(asio::buffer(data_), ec)) - { - write_buffer_ = asio::buffer(data_, len); - state_ = writing; - } - } - - // Returns true if the third party library wants to be notified when the - // socket is ready for writing. - bool want_write() const - { - return state_ == writing; - } - - // Notify that third party library that it should perform its write operation. - void do_write(asio::error_code& ec) - { - if (std::size_t len = socket_.write_some( - asio::buffer(write_buffer_), ec)) - { - write_buffer_ = write_buffer_ + len; - state_ = asio::buffer_size(write_buffer_) > 0 ? writing : reading; - } - } - -private: - tcp::socket& socket_; - enum { reading, writing } state_; - boost::array data_; - asio::const_buffer write_buffer_; -}; - -} // namespace third_party_lib - -// The glue between asio's sockets and the third party library. -class connection - : public boost::enable_shared_from_this -{ -public: - typedef boost::shared_ptr pointer; - - static pointer create(asio::io_context& io_context) - { - return pointer(new connection(io_context)); - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - // Put the socket into non-blocking mode. - socket_.non_blocking(true); - - start_operations(); - } - -private: - connection(asio::io_context& io_context) - : socket_(io_context), - session_impl_(socket_), - read_in_progress_(false), - write_in_progress_(false) - { - } - - void start_operations() - { - // Start a read operation if the third party library wants one. - if (session_impl_.want_read() && !read_in_progress_) - { - read_in_progress_ = true; - socket_.async_wait(tcp::socket::wait_read, - boost::bind(&connection::handle_read, - shared_from_this(), - asio::placeholders::error)); - } - - // Start a write operation if the third party library wants one. - if (session_impl_.want_write() && !write_in_progress_) - { - write_in_progress_ = true; - socket_.async_wait(tcp::socket::wait_write, - boost::bind(&connection::handle_write, - shared_from_this(), - asio::placeholders::error)); - } - } - - void handle_read(asio::error_code ec) - { - read_in_progress_ = false; - - // Notify third party library that it can perform a read. - if (!ec) - session_impl_.do_read(ec); - - // The third party library successfully performed a read on the socket. - // Start new read or write operations based on what it now wants. - if (!ec || ec == asio::error::would_block) - start_operations(); - - // Otherwise, an error occurred. Closing the socket cancels any outstanding - // asynchronous read or write operations. The connection object will be - // destroyed automatically once those outstanding operations complete. - else - socket_.close(); - } - - void handle_write(asio::error_code ec) - { - write_in_progress_ = false; - - // Notify third party library that it can perform a write. - if (!ec) - session_impl_.do_write(ec); - - // The third party library successfully performed a write on the socket. - // Start new read or write operations based on what it now wants. - if (!ec || ec == asio::error::would_block) - start_operations(); - - // Otherwise, an error occurred. Closing the socket cancels any outstanding - // asynchronous read or write operations. The connection object will be - // destroyed automatically once those outstanding operations complete. - else - socket_.close(); - } - -private: - tcp::socket socket_; - third_party_lib::session session_impl_; - bool read_in_progress_; - bool write_in_progress_; -}; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - start_accept(); - } - -private: - void start_accept() - { - connection::pointer new_connection = - connection::create(acceptor_.get_executor().context()); - - acceptor_.async_accept(new_connection->socket(), - boost::bind(&server::handle_accept, this, new_connection, - asio::placeholders::error)); - } - - void handle_accept(connection::pointer new_connection, - const asio::error_code& error) - { - if (!error) - { - new_connection->start(); - } - - start_accept(); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: third_party_lib \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/porthopper/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/porthopper/client.cpp deleted file mode 100644 index a916638..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/porthopper/client.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "protocol.hpp" - -using namespace boost; -using asio::ip::tcp; -using asio::ip::udp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - using namespace std; // For atoi. - std::string host_name = argv[1]; - std::string port = argv[2]; - - asio::io_context io_context; - - // Determine the location of the server. - tcp::resolver resolver(io_context); - tcp::endpoint remote_endpoint = *resolver.resolve(host_name, port).begin(); - - // Establish the control connection to the server. - tcp::socket control_socket(io_context); - control_socket.connect(remote_endpoint); - - // Create a datagram socket to receive data from the server. - boost::shared_ptr data_socket( - new udp::socket(io_context, udp::endpoint(udp::v4(), 0))); - - // Determine what port we will receive data on. - udp::endpoint data_endpoint = data_socket->local_endpoint(); - - // Ask the server to start sending us data. - control_request start = control_request::start(data_endpoint.port()); - asio::write(control_socket, start.to_buffers()); - - unsigned long last_frame_number = 0; - for (;;) - { - // Receive 50 messages on the current data socket. - for (int i = 0; i < 50; ++i) - { - // Receive a frame from the server. - frame f; - data_socket->receive(f.to_buffers(), 0); - if (f.number() > last_frame_number) - { - last_frame_number = f.number(); - std::cout << "\n" << f.payload(); - } - } - - // Time to switch to a new socket. To ensure seamless handover we will - // continue to receive packets using the old socket until data arrives on - // the new one. - std::cout << " Starting renegotiation"; - - // Create the new data socket. - boost::shared_ptr new_data_socket( - new udp::socket(io_context, udp::endpoint(udp::v4(), 0))); - - // Determine the new port we will use to receive data. - udp::endpoint new_data_endpoint = new_data_socket->local_endpoint(); - - // Ask the server to switch over to the new port. - control_request change = control_request::change( - data_endpoint.port(), new_data_endpoint.port()); - asio::error_code control_result; - asio::async_write(control_socket, change.to_buffers(), - ( - lambda::var(control_result) = lambda::_1 - )); - - // Try to receive a frame from the server on the new data socket. If we - // successfully receive a frame on this new data socket we can consider - // the renegotation complete. In that case we will close the old data - // socket, which will cause any outstanding receive operation on it to be - // cancelled. - frame f1; - asio::error_code new_data_socket_result; - new_data_socket->async_receive(f1.to_buffers(), - ( - // Note: lambda::_1 is the first argument to the callback handler, - // which in this case is the error code for the operation. - lambda::var(new_data_socket_result) = lambda::_1, - lambda::if_(!lambda::_1) - [ - // We have successfully received a frame on the new data socket, - // so we can close the old data socket. This will cancel any - // outstanding receive operation on the old data socket. - lambda::var(data_socket) = boost::shared_ptr() - ] - )); - - // This loop will continue until we have successfully completed the - // renegotiation (i.e. received a frame on the new data socket), or some - // unrecoverable error occurs. - bool done = false; - while (!done) - { - // Even though we're performing a renegotation, we want to continue - // receiving data as smoothly as possible. Therefore we will continue to - // try to receive a frame from the server on the old data socket. If we - // receive a frame on this socket we will interrupt the io_context, - // print the frame, and resume waiting for the other operations to - // complete. - frame f2; - done = true; // Let's be optimistic. - if (data_socket) // Might have been closed by new_data_socket's handler. - { - data_socket->async_receive(f2.to_buffers(), 0, - ( - lambda::if_(!lambda::_1) - [ - // We have successfully received a frame on the old data - // socket. Stop the io_context so that we can print it. - lambda::bind(&asio::io_context::stop, &io_context), - lambda::var(done) = false - ] - )); - } - - // Run the operations in parallel. This will block until all operations - // have finished, or until the io_context is interrupted. (No threads!) - io_context.restart(); - io_context.run(); - - // If the io_context.run() was interrupted then we have received a frame - // on the old data socket. We need to keep waiting for the renegotation - // operations to complete. - if (!done) - { - if (f2.number() > last_frame_number) - { - last_frame_number = f2.number(); - std::cout << "\n" << f2.payload(); - } - } - } - - // Since the loop has finished, we have either successfully completed - // the renegotation, or an error has occurred. First we'll check for - // errors. - if (control_result) - throw asio::system_error(control_result); - if (new_data_socket_result) - throw asio::system_error(new_data_socket_result); - - // If we get here it means we have successfully started receiving data on - // the new data socket. This new data socket will be used from now on - // (until the next time we renegotiate). - std::cout << " Renegotiation complete"; - data_socket = new_data_socket; - data_endpoint = new_data_endpoint; - if (f1.number() > last_frame_number) - { - last_frame_number = f1.number(); - std::cout << "\n" << f1.payload(); - } - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/porthopper/protocol.hpp b/Sources/Vendor/asio/src/examples/cpp03/porthopper/protocol.hpp deleted file mode 100644 index 1a1332f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/porthopper/protocol.hpp +++ /dev/null @@ -1,156 +0,0 @@ -// -// protocol.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 PORTHOPPER_PROTOCOL_HPP -#define PORTHOPPER_PROTOCOL_HPP - -#include -#include -#include -#include -#include -#include - -// This request is sent by the client to the server over a TCP connection. -// The client uses it to perform three functions: -// - To request that data start being sent to a given port. -// - To request that data is no longer sent to a given port. -// - To change the target port to another. -class control_request -{ -public: - // Construct an empty request. Used when receiving. - control_request() - { - } - - // Create a request to start sending data to a given port. - static const control_request start(unsigned short port) - { - return control_request(0, port); - } - - // Create a request to stop sending data to a given port. - static const control_request stop(unsigned short port) - { - return control_request(port, 0); - } - - // Create a request to change the port that data is sent to. - static const control_request change( - unsigned short old_port, unsigned short new_port) - { - return control_request(old_port, new_port); - } - - // Get the old port. Returns 0 for start requests. - unsigned short old_port() const - { - std::istrstream is(data_, encoded_port_size); - unsigned short port = 0; - is >> std::setw(encoded_port_size) >> std::hex >> port; - return port; - } - - // Get the new port. Returns 0 for stop requests. - unsigned short new_port() const - { - std::istrstream is(data_ + encoded_port_size, encoded_port_size); - unsigned short port = 0; - is >> std::setw(encoded_port_size) >> std::hex >> port; - return port; - } - - // Obtain buffers for reading from or writing to a socket. - boost::array to_buffers() - { - boost::array buffers - = { { asio::buffer(data_) } }; - return buffers; - } - -private: - // Construct with specified old and new ports. - control_request(unsigned short old_port_number, - unsigned short new_port_number) - { - std::ostrstream os(data_, control_request_size); - os << std::setw(encoded_port_size) << std::hex << old_port_number; - os << std::setw(encoded_port_size) << std::hex << new_port_number; - } - - // The length in bytes of a control_request and its components. - enum - { - encoded_port_size = 4, // 16-bit port in hex. - control_request_size = encoded_port_size * 2 - }; - - // The encoded request data. - char data_[control_request_size]; -}; - -// This frame is sent from the server to subscribed clients over UDP. -class frame -{ -public: - // The maximum allowable length of the payload. - enum { payload_size = 32 }; - - // Construct an empty frame. Used when receiving. - frame() - { - } - - // Construct a frame with specified frame number and payload. - frame(unsigned long frame_number, const std::string& payload_data) - { - std::ostrstream os(data_, frame_size); - os << std::setw(encoded_number_size) << std::hex << frame_number; - os << std::setw(payload_size) - << std::setfill(' ') << payload_data.substr(0, payload_size); - } - - // Get the frame number. - unsigned long number() const - { - std::istrstream is(data_, encoded_number_size); - unsigned long frame_number = 0; - is >> std::setw(encoded_number_size) >> std::hex >> frame_number; - return frame_number; - } - - // Get the payload data. - const std::string payload() const - { - return std::string(data_ + encoded_number_size, payload_size); - } - - // Obtain buffers for reading from or writing to a socket. - boost::array to_buffers() - { - boost::array buffers - = { { asio::buffer(data_) } }; - return buffers; - } - -private: - // The length in bytes of a frame and its components. - enum - { - encoded_number_size = 8, // Frame number in hex. - frame_size = encoded_number_size + payload_size - }; - - // The encoded frame data. - char data_[frame_size]; -}; - -#endif // PORTHOPPER_PROTOCOL_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/porthopper/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/porthopper/server.cpp deleted file mode 100644 index 5ff740b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/porthopper/server.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include "protocol.hpp" - -using asio::ip::tcp; -using asio::ip::udp; - -typedef boost::shared_ptr tcp_socket_ptr; -typedef boost::shared_ptr timer_ptr; -typedef boost::shared_ptr control_request_ptr; - -class server -{ -public: - // Construct the server to wait for incoming control connections. - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - timer_(io_context), - udp_socket_(io_context, udp::endpoint(udp::v4(), 0)), - next_frame_number_(1) - { - // Start waiting for a new control connection. - tcp_socket_ptr new_socket( - new tcp::socket(acceptor_.get_executor().context())); - acceptor_.async_accept(*new_socket, - boost::bind(&server::handle_accept, this, - asio::placeholders::error, new_socket)); - - // Start the timer used to generate outgoing frames. - timer_.expires_after(asio::chrono::milliseconds(100)); - timer_.async_wait(boost::bind(&server::handle_timer, this)); - } - - // Handle a new control connection. - void handle_accept(const asio::error_code& ec, tcp_socket_ptr socket) - { - if (!ec) - { - // Start receiving control requests on the connection. - control_request_ptr request(new control_request); - asio::async_read(*socket, request->to_buffers(), - boost::bind(&server::handle_control_request, this, - asio::placeholders::error, socket, request)); - } - - // Start waiting for a new control connection. - tcp_socket_ptr new_socket( - new tcp::socket(acceptor_.get_executor().context())); - acceptor_.async_accept(*new_socket, - boost::bind(&server::handle_accept, this, - asio::placeholders::error, new_socket)); - } - - // Handle a new control request. - void handle_control_request(const asio::error_code& ec, - tcp_socket_ptr socket, control_request_ptr request) - { - if (!ec) - { - // Delay handling of the control request to simulate network latency. - timer_ptr delay_timer( - new asio::steady_timer(acceptor_.get_executor().context())); - delay_timer->expires_after(asio::chrono::seconds(2)); - delay_timer->async_wait( - boost::bind(&server::handle_control_request_timer, this, - socket, request, delay_timer)); - } - } - - void handle_control_request_timer(tcp_socket_ptr socket, - control_request_ptr request, timer_ptr /*delay_timer*/) - { - // Determine what address this client is connected from, since - // subscriptions must be stored on the server as a complete endpoint, not - // just a port. We use the non-throwing overload of remote_endpoint() since - // it may fail if the socket is no longer connected. - asio::error_code ec; - tcp::endpoint remote_endpoint = socket->remote_endpoint(ec); - if (!ec) - { - // Remove old port subscription, if any. - if (unsigned short old_port = request->old_port()) - { - udp::endpoint old_endpoint(remote_endpoint.address(), old_port); - subscribers_.erase(old_endpoint); - std::cout << "Removing subscription " << old_endpoint << std::endl; - } - - // Add new port subscription, if any. - if (unsigned short new_port = request->new_port()) - { - udp::endpoint new_endpoint(remote_endpoint.address(), new_port); - subscribers_.insert(new_endpoint); - std::cout << "Adding subscription " << new_endpoint << std::endl; - } - } - - // Wait for next control request on this connection. - asio::async_read(*socket, request->to_buffers(), - boost::bind(&server::handle_control_request, this, - asio::placeholders::error, socket, request)); - } - - // Every time the timer fires we will generate a new frame and send it to all - // subscribers. - void handle_timer() - { - // Generate payload. - double x = next_frame_number_ * 0.2; - double y = std::sin(x); - int char_index = static_cast((y + 1.0) * (frame::payload_size / 2)); - std::string payload; - for (int i = 0; i < frame::payload_size; ++i) - payload += (i == char_index ? '*' : '.'); - - // Create the frame to be sent to all subscribers. - frame f(next_frame_number_++, payload); - - // Send frame to all subscribers. We can use synchronous calls here since - // UDP send operations typically do not block. - std::set::iterator j; - for (j = subscribers_.begin(); j != subscribers_.end(); ++j) - { - asio::error_code ec; - udp_socket_.send_to(f.to_buffers(), *j, 0, ec); - } - - // Wait for next timeout. - timer_.expires_after(asio::chrono::milliseconds(100)); - timer_.async_wait(boost::bind(&server::handle_timer, this)); - } - -private: - // The acceptor used to accept incoming control connections. - tcp::acceptor acceptor_; - - // The timer used for generating data. - asio::steady_timer timer_; - - // The socket used to send data to subscribers. - udp::socket udp_socket_; - - // The next frame number. - unsigned long next_frame_number_; - - // The set of endpoints that are subscribed. - std::set subscribers_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/serialization/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/serialization/client.cpp deleted file mode 100644 index 8b4532f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/serialization/client.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "connection.hpp" // Must come before boost/serialization headers. -#include -#include "stock.hpp" - -namespace s11n_example { - -/// Downloads stock quote information from a server. -class client -{ -public: - /// Constructor starts the asynchronous connect operation. - client(asio::io_context& io_context, - const std::string& host, const std::string& service) - : connection_(io_context) - { - // Resolve the host name into an IP address. - asio::ip::tcp::resolver resolver(io_context); - asio::ip::tcp::resolver::query query(host, service); - asio::ip::tcp::resolver::iterator endpoint_iterator = - resolver.resolve(query); - - // Start an asynchronous connect operation. - asio::async_connect(connection_.socket(), endpoint_iterator, - boost::bind(&client::handle_connect, this, - asio::placeholders::error)); - } - - /// Handle completion of a connect operation. - void handle_connect(const asio::error_code& e) - { - if (!e) - { - // Successfully established connection. Start operation to read the list - // of stocks. The connection::async_read() function will automatically - // decode the data that is read from the underlying socket. - connection_.async_read(stocks_, - boost::bind(&client::handle_read, this, - asio::placeholders::error)); - } - else - { - // An error occurred. Log it and return. Since we are not starting a new - // operation the io_context will run out of work to do and the client will - // exit. - std::cerr << e.message() << std::endl; - } - } - - /// Handle completion of a read operation. - void handle_read(const asio::error_code& e) - { - if (!e) - { - // Print out the data that was received. - for (std::size_t i = 0; i < stocks_.size(); ++i) - { - std::cout << "Stock number " << i << "\n"; - std::cout << " code: " << stocks_[i].code << "\n"; - std::cout << " name: " << stocks_[i].name << "\n"; - std::cout << " open_price: " << stocks_[i].open_price << "\n"; - std::cout << " high_price: " << stocks_[i].high_price << "\n"; - std::cout << " low_price: " << stocks_[i].low_price << "\n"; - std::cout << " last_price: " << stocks_[i].last_price << "\n"; - std::cout << " buy_price: " << stocks_[i].buy_price << "\n"; - std::cout << " buy_quantity: " << stocks_[i].buy_quantity << "\n"; - std::cout << " sell_price: " << stocks_[i].sell_price << "\n"; - std::cout << " sell_quantity: " << stocks_[i].sell_quantity << "\n"; - } - } - else - { - // An error occurred. - std::cerr << e.message() << std::endl; - } - - // Since we are not starting a new operation the io_context will run out of - // work to do and the client will exit. - } - -private: - /// The connection to the server. - connection connection_; - - /// The data received from the server. - std::vector stocks_; -}; - -} // namespace s11n_example - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 3) - { - std::cerr << "Usage: client " << std::endl; - return 1; - } - - asio::io_context io_context; - s11n_example::client client(io_context, argv[1], argv[2]); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/serialization/connection.hpp b/Sources/Vendor/asio/src/examples/cpp03/serialization/connection.hpp deleted file mode 100644 index 7f2f5bc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/serialization/connection.hpp +++ /dev/null @@ -1,188 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 SERIALIZATION_CONNECTION_HPP -#define SERIALIZATION_CONNECTION_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace s11n_example { - -/// The connection class provides serialization primitives on top of a socket. -/** - * Each message sent using this class consists of: - * @li An 8-byte header containing the length of the serialized data in - * hexadecimal. - * @li The serialized data. - */ -class connection -{ -public: - /// Constructor. - connection(asio::io_context& io_context) - : socket_(io_context) - { - } - - /// Get the underlying socket. Used for making a connection or for accepting - /// an incoming connection. - asio::ip::tcp::socket& socket() - { - return socket_; - } - - /// Asynchronously write a data structure to the socket. - template - void async_write(const T& t, Handler handler) - { - // Serialize the data first so we know how large it is. - std::ostringstream archive_stream; - boost::archive::text_oarchive archive(archive_stream); - archive << t; - outbound_data_ = archive_stream.str(); - - // Format the header. - std::ostringstream header_stream; - header_stream << std::setw(header_length) - << std::hex << outbound_data_.size(); - if (!header_stream || header_stream.str().size() != header_length) - { - // Something went wrong, inform the caller. - asio::error_code error(asio::error::invalid_argument); - asio::post(socket_.get_executor(), boost::bind(handler, error)); - return; - } - outbound_header_ = header_stream.str(); - - // Write the serialized data to the socket. We use "gather-write" to send - // both the header and the data in a single write operation. - std::vector buffers; - buffers.push_back(asio::buffer(outbound_header_)); - buffers.push_back(asio::buffer(outbound_data_)); - asio::async_write(socket_, buffers, handler); - } - - /// Asynchronously read a data structure from the socket. - template - void async_read(T& t, Handler handler) - { - // Issue a read operation to read exactly the number of bytes in a header. - void (connection::*f)( - const asio::error_code&, - T&, boost::tuple) - = &connection::handle_read_header; - asio::async_read(socket_, asio::buffer(inbound_header_), - boost::bind(f, - this, asio::placeholders::error, boost::ref(t), - boost::make_tuple(handler))); - } - - /// Handle a completed read of a message header. The handler is passed using - /// a tuple since boost::bind seems to have trouble binding a function object - /// created using boost::bind as a parameter. - template - void handle_read_header(const asio::error_code& e, - T& t, boost::tuple handler) - { - if (e) - { - boost::get<0>(handler)(e); - } - else - { - // Determine the length of the serialized data. - std::istringstream is(std::string(inbound_header_, header_length)); - std::size_t inbound_data_size = 0; - if (!(is >> std::hex >> inbound_data_size)) - { - // Header doesn't seem to be valid. Inform the caller. - asio::error_code error(asio::error::invalid_argument); - boost::get<0>(handler)(error); - return; - } - - // Start an asynchronous call to receive the data. - inbound_data_.resize(inbound_data_size); - void (connection::*f)( - const asio::error_code&, - T&, boost::tuple) - = &connection::handle_read_data; - asio::async_read(socket_, asio::buffer(inbound_data_), - boost::bind(f, this, - asio::placeholders::error, boost::ref(t), handler)); - } - } - - /// Handle a completed read of message data. - template - void handle_read_data(const asio::error_code& e, - T& t, boost::tuple handler) - { - if (e) - { - boost::get<0>(handler)(e); - } - else - { - // Extract the data structure from the data just received. - try - { - std::string archive_data(&inbound_data_[0], inbound_data_.size()); - std::istringstream archive_stream(archive_data); - boost::archive::text_iarchive archive(archive_stream); - archive >> t; - } - catch (std::exception& e) - { - // Unable to decode data. - asio::error_code error(asio::error::invalid_argument); - boost::get<0>(handler)(error); - return; - } - - // Inform caller that data has been received ok. - boost::get<0>(handler)(e); - } - } - -private: - /// The underlying socket. - asio::ip::tcp::socket socket_; - - /// The size of a fixed length header. - enum { header_length = 8 }; - - /// Holds an outbound header. - std::string outbound_header_; - - /// Holds the outbound data. - std::string outbound_data_; - - /// Holds an inbound header. - char inbound_header_[header_length]; - - /// Holds the inbound data. - std::vector inbound_data_; -}; - -typedef boost::shared_ptr connection_ptr; - -} // namespace s11n_example - -#endif // SERIALIZATION_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/serialization/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/serialization/server.cpp deleted file mode 100644 index 312653b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/serialization/server.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include "connection.hpp" // Must come before boost/serialization headers. -#include -#include "stock.hpp" - -namespace s11n_example { - -/// Serves stock quote information to any client that connects to it. -class server -{ -public: - /// Constructor opens the acceptor and starts waiting for the first incoming - /// connection. - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, - asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port)) - { - // Create the data to be sent to each client. - stock s; - s.code = "ABC"; - s.name = "A Big Company"; - s.open_price = 4.56; - s.high_price = 5.12; - s.low_price = 4.33; - s.last_price = 4.98; - s.buy_price = 4.96; - s.buy_quantity = 1000; - s.sell_price = 4.99; - s.sell_quantity = 2000; - stocks_.push_back(s); - s.code = "DEF"; - s.name = "Developer Entertainment Firm"; - s.open_price = 20.24; - s.high_price = 22.88; - s.low_price = 19.50; - s.last_price = 19.76; - s.buy_price = 19.72; - s.buy_quantity = 34000; - s.sell_price = 19.85; - s.sell_quantity = 45000; - stocks_.push_back(s); - - // Start an accept operation for a new connection. - connection_ptr new_conn(new connection(acceptor_.get_io_context())); - acceptor_.async_accept(new_conn->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error, new_conn)); - } - - /// Handle completion of a accept operation. - void handle_accept(const asio::error_code& e, connection_ptr conn) - { - if (!e) - { - // Successfully accepted a new connection. Send the list of stocks to the - // client. The connection::async_write() function will automatically - // serialize the data structure for us. - conn->async_write(stocks_, - boost::bind(&server::handle_write, this, - asio::placeholders::error, conn)); - } - - // Start an accept operation for a new connection. - connection_ptr new_conn(new connection(acceptor_.get_io_context())); - acceptor_.async_accept(new_conn->socket(), - boost::bind(&server::handle_accept, this, - asio::placeholders::error, new_conn)); - } - - /// Handle completion of a write operation. - void handle_write(const asio::error_code& e, connection_ptr conn) - { - // Nothing to do. The socket will be closed automatically when the last - // reference to the connection object goes away. - } - -private: - /// The acceptor object used to accept incoming socket connections. - asio::ip::tcp::acceptor acceptor_; - - /// The data to be sent to each client. - std::vector stocks_; -}; - -} // namespace s11n_example - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 2) - { - std::cerr << "Usage: server " << std::endl; - return 1; - } - unsigned short port = boost::lexical_cast(argv[1]); - - asio::io_context io_context; - s11n_example::server server(io_context, port); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/serialization/stock.hpp b/Sources/Vendor/asio/src/examples/cpp03/serialization/stock.hpp deleted file mode 100644 index b1d1c60..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/serialization/stock.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// -// stock.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 SERIALIZATION_STOCK_HPP -#define SERIALIZATION_STOCK_HPP - -#include - -namespace s11n_example { - -/// Structure to hold information about a single stock. -struct stock -{ - std::string code; - std::string name; - double open_price; - double high_price; - double low_price; - double last_price; - double buy_price; - int buy_quantity; - double sell_price; - int sell_quantity; - - template - void serialize(Archive& ar, const unsigned int version) - { - ar & code; - ar & name; - ar & open_price; - ar & high_price; - ar & low_price; - ar & last_price; - ar & buy_price; - ar & buy_quantity; - ar & sell_price; - ar & sell_quantity; - } -}; - -} // namespace s11n_example - -#endif // SERIALIZATION_STOCK_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/basic_logger.hpp b/Sources/Vendor/asio/src/examples/cpp03/services/basic_logger.hpp deleted file mode 100644 index f809e3e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/basic_logger.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// basic_logger.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 SERVICES_BASIC_LOGGER_HPP -#define SERVICES_BASIC_LOGGER_HPP - -#include -#include -#include - -namespace services { - -/// Class to provide simple logging functionality. Use the services::logger -/// typedef. -template -class basic_logger - : private boost::noncopyable -{ -public: - /// The type of the service that will be used to provide timer operations. - typedef Service service_type; - - /// The native implementation type of the timer. - typedef typename service_type::impl_type impl_type; - - /// Constructor. - /** - * This constructor creates a logger. - * - * @param io_context The io_context object used to locate the logger service. - * - * @param identifier An identifier for this logger. - */ - explicit basic_logger(asio::io_context& io_context, - const std::string& identifier) - : service_(asio::use_service(io_context)), - impl_(service_.null()) - { - service_.create(impl_, identifier); - } - - /// Destructor. - ~basic_logger() - { - service_.destroy(impl_); - } - - /// Get the io_context associated with the object. - asio::io_context& get_io_context() - { - return service_.get_io_context(); - } - - /// Set the output file for all logger instances. - void use_file(const std::string& file) - { - service_.use_file(impl_, file); - } - - /// Log a message. - void log(const std::string& message) - { - service_.log(impl_, message); - } - -private: - /// The backend service implementation. - service_type& service_; - - /// The underlying native implementation. - impl_type impl_; -}; - -} // namespace services - -#endif // SERVICES_BASIC_LOGGER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/daytime_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/services/daytime_client.cpp deleted file mode 100644 index 988f972..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/daytime_client.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// -// daytime_client.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "logger.hpp" - -using asio::ip::tcp; - -char read_buffer[1024]; - -void read_handler(const asio::error_code& e, - std::size_t bytes_transferred, tcp::socket* s) -{ - if (!e) - { - std::cout.write(read_buffer, bytes_transferred); - - s->async_read_some(asio::buffer(read_buffer), - boost::bind(read_handler, asio::placeholders::error, - asio::placeholders::bytes_transferred, s)); - } - else - { - services::logger logger(s->get_executor().context(), "read_handler"); - - std::string msg = "Read error: "; - msg += e.message(); - logger.log(msg); - } -} - -void connect_handler(const asio::error_code& e, tcp::socket* s) -{ - services::logger logger(s->get_executor().context(), "connect_handler"); - - if (!e) - { - logger.log("Connection established"); - - s->async_read_some(asio::buffer(read_buffer), - boost::bind(read_handler, asio::placeholders::error, - asio::placeholders::bytes_transferred, s)); - } - else - { - std::string msg = "Unable to establish connection: "; - msg += e.message(); - logger.log(msg); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: daytime_client " << std::endl; - return 1; - } - - asio::io_context io_context; - - // Set the name of the file that all logger instances will use. - services::logger logger(io_context, ""); - logger.use_file("log.txt"); - - // Resolve the address corresponding to the given host. - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = - resolver.resolve(argv[1], "daytime"); - - // Start an asynchronous connect. - tcp::socket socket(io_context); - asio::async_connect(socket, endpoints, - boost::bind(connect_handler, - asio::placeholders::error, &socket)); - - // Run the io_context until all operations have finished. - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/logger.hpp b/Sources/Vendor/asio/src/examples/cpp03/services/logger.hpp deleted file mode 100644 index 71ec68d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/logger.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// -// logger.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 SERVICES_LOGGER_HPP -#define SERVICES_LOGGER_HPP - -#include "basic_logger.hpp" -#include "logger_service.hpp" - -namespace services { - -/// Typedef for typical logger usage. -typedef basic_logger logger; - -} // namespace services - -#endif // SERVICES_LOGGER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.cpp b/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.cpp deleted file mode 100644 index 975d2f4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// -// logger_service.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "logger_service.hpp" - -namespace services { - -asio::io_context::id logger_service::id; - -} // namespace services diff --git a/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.hpp b/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.hpp deleted file mode 100644 index 2b9faef..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/services/logger_service.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// -// logger_service.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 SERVICES_LOGGER_SERVICE_HPP -#define SERVICES_LOGGER_SERVICE_HPP - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace services { - -/// Service implementation for the logger. -class logger_service - : public asio::io_context::service -{ -public: - /// The unique service identifier. - static asio::io_context::id id; - - /// The backend implementation of a logger. - struct logger_impl - { - explicit logger_impl(const std::string& ident) : identifier(ident) {} - std::string identifier; - }; - - /// The type for an implementation of the logger. - typedef logger_impl* impl_type; - - /// Constructor creates a thread to run a private io_context. - logger_service(asio::io_context& io_context) - : asio::io_context::service(io_context), - work_io_context_(), - work_(asio::make_work_guard(work_io_context_)), - work_thread_(new asio::thread( - boost::bind(&asio::io_context::run, &work_io_context_))) - { - } - - /// Destructor shuts down the private io_context. - ~logger_service() - { - /// Indicate that we have finished with the private io_context. Its - /// io_context::run() function will exit once all other work has completed. - work_.reset(); - if (work_thread_) - work_thread_->join(); - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Return a null logger implementation. - impl_type null() const - { - return 0; - } - - /// Create a new logger implementation. - void create(impl_type& impl, const std::string& identifier) - { - impl = new logger_impl(identifier); - } - - /// Destroy a logger implementation. - void destroy(impl_type& impl) - { - delete impl; - impl = null(); - } - - /// Set the output file for the logger. The current implementation sets the - /// output file for all logger instances, and so the impl parameter is not - /// actually needed. It is retained here to illustrate how service functions - /// are typically defined. - void use_file(impl_type& /*impl*/, const std::string& file) - { - // Pass the work of opening the file to the background thread. - asio::post(work_io_context_, boost::bind( - &logger_service::use_file_impl, this, file)); - } - - /// Log a message. - void log(impl_type& impl, const std::string& message) - { - // Format the text to be logged. - std::ostringstream os; - os << impl->identifier << ": " << message; - - // Pass the work of writing to the file to the background thread. - asio::post(work_io_context_, boost::bind( - &logger_service::log_impl, this, os.str())); - } - -private: - /// Helper function used to open the output file from within the private - /// io_context's thread. - void use_file_impl(const std::string& file) - { - ofstream_.close(); - ofstream_.clear(); - ofstream_.open(file.c_str()); - } - - /// Helper function used to log a message from within the private io_context's - /// thread. - void log_impl(const std::string& text) - { - ofstream_ << text << std::endl; - } - - /// Private io_context used for performing logging operations. - asio::io_context work_io_context_; - - /// Work for the private io_context to perform. If we do not give the - /// io_context some work to do then the io_context::run() function will exit - /// immediately. - asio::executor_work_guard< - asio::io_context::executor_type> work_; - - /// Thread used for running the work io_context's run loop. - boost::scoped_ptr work_thread_; - - /// The file to which log messages will be written. - std::ofstream ofstream_; -}; - -} // namespace services - -#endif // SERVICES_LOGGER_SERVICE_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/socks4/socks4.hpp b/Sources/Vendor/asio/src/examples/cpp03/socks4/socks4.hpp deleted file mode 100644 index 92bc141..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/socks4/socks4.hpp +++ /dev/null @@ -1,144 +0,0 @@ -// -// socks4.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 SOCKS4_HPP -#define SOCKS4_HPP - -#include -#include -#include - -namespace socks4 { - -const unsigned char version = 0x04; - -class request -{ -public: - enum command_type - { - connect = 0x01, - bind = 0x02 - }; - - request(command_type cmd, const asio::ip::tcp::endpoint& endpoint, - const std::string& user_id) - : version_(version), - command_(cmd), - user_id_(user_id), - null_byte_(0) - { - // Only IPv4 is supported by the SOCKS 4 protocol. - if (endpoint.protocol() != asio::ip::tcp::v4()) - { - throw asio::system_error( - asio::error::address_family_not_supported); - } - - // Convert port number to network byte order. - unsigned short port = endpoint.port(); - port_high_byte_ = (port >> 8) & 0xff; - port_low_byte_ = port & 0xff; - - // Save IP address in network byte order. - address_ = endpoint.address().to_v4().to_bytes(); - } - - boost::array buffers() const - { - boost::array bufs = - { - { - asio::buffer(&version_, 1), - asio::buffer(&command_, 1), - asio::buffer(&port_high_byte_, 1), - asio::buffer(&port_low_byte_, 1), - asio::buffer(address_), - asio::buffer(user_id_), - asio::buffer(&null_byte_, 1) - } - }; - return bufs; - } - -private: - unsigned char version_; - unsigned char command_; - unsigned char port_high_byte_; - unsigned char port_low_byte_; - asio::ip::address_v4::bytes_type address_; - std::string user_id_; - unsigned char null_byte_; -}; - -class reply -{ -public: - enum status_type - { - request_granted = 0x5a, - request_failed = 0x5b, - request_failed_no_identd = 0x5c, - request_failed_bad_user_id = 0x5d - }; - - reply() - : null_byte_(0), - status_() - { - } - - boost::array buffers() - { - boost::array bufs = - { - { - asio::buffer(&null_byte_, 1), - asio::buffer(&status_, 1), - asio::buffer(&port_high_byte_, 1), - asio::buffer(&port_low_byte_, 1), - asio::buffer(address_) - } - }; - return bufs; - } - - bool success() const - { - return null_byte_ == 0 && status_ == request_granted; - } - - unsigned char status() const - { - return status_; - } - - asio::ip::tcp::endpoint endpoint() const - { - unsigned short port = port_high_byte_; - port = (port << 8) & 0xff00; - port = port | port_low_byte_; - - asio::ip::address_v4 address(address_); - - return asio::ip::tcp::endpoint(address, port); - } - -private: - unsigned char null_byte_; - unsigned char status_; - unsigned char port_high_byte_; - unsigned char port_low_byte_; - asio::ip::address_v4::bytes_type address_; -}; - -} // namespace socks4 - -#endif // SOCKS4_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp03/socks4/sync_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/socks4/sync_client.cpp deleted file mode 100644 index fceaf50..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/socks4/sync_client.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// sync_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include "socks4.hpp" - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cout << "Usage: sync_client \n"; - std::cout << "Examples:\n"; - std::cout << " sync_client 127.0.0.1 1080 chris\n"; - std::cout << " sync_client localhost socks chris\n"; - return 1; - } - - asio::io_context io_context; - - // Get a list of endpoints corresponding to the SOCKS 4 server name. - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = resolver.resolve(argv[1], argv[2]); - - // Try each endpoint until we successfully establish a connection to the - // SOCKS 4 server. - tcp::socket socket(io_context); - asio::connect(socket, endpoints); - - // Get an endpoint for the Boost website. This will be passed to the SOCKS - // 4 server. Explicitly specify IPv4 since SOCKS 4 does not support IPv6. - tcp::endpoint http_endpoint = - *resolver.resolve(tcp::v4(), "www.boost.org", "http").begin(); - - // Send the request to the SOCKS 4 server. - socks4::request socks_request( - socks4::request::connect, http_endpoint, argv[3]); - asio::write(socket, socks_request.buffers()); - - // Receive a response from the SOCKS 4 server. - socks4::reply socks_reply; - asio::read(socket, socks_reply.buffers()); - - // Check whether we successfully negotiated with the SOCKS 4 server. - if (!socks_reply.success()) - { - std::cout << "Connection failed.\n"; - std::cout << "status = 0x" << std::hex << socks_reply.status(); - return 1; - } - - // Form the HTTP request. We specify the "Connection: close" header so that - // the server will close the socket after transmitting the response. This - // will allow us to treat all data up until the EOF as the response. - std::string request = - "GET / HTTP/1.0\r\n" - "Host: www.boost.org\r\n" - "Accept: */*\r\n" - "Connection: close\r\n\r\n"; - - // Send the HTTP request. - asio::write(socket, asio::buffer(request)); - - // Read until EOF, writing data to output as we go. - boost::array response; - asio::error_code error; - while (std::size_t s = socket.read_some( - asio::buffer(response), error)) - std::cout.write(response.data(), s); - if (error != asio::error::eof) - throw asio::system_error(error); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/spawn/echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp03/spawn/echo_server.cpp deleted file mode 100644 index b1e28a5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/spawn/echo_server.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// echo_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class session : public boost::enable_shared_from_this -{ -public: - explicit session(asio::io_context& io_context) - : strand_(io_context), - socket_(io_context), - timer_(io_context) - { - } - - tcp::socket& socket() - { - return socket_; - } - - void go() - { - asio::spawn(strand_, - boost::bind(&session::echo, - shared_from_this(), _1)); - asio::spawn(strand_, - boost::bind(&session::timeout, - shared_from_this(), _1)); - } - -private: - void echo(asio::yield_context yield) - { - try - { - char data[128]; - for (;;) - { - timer_.expires_after(asio::chrono::seconds(10)); - std::size_t n = socket_.async_read_some(asio::buffer(data), yield); - asio::async_write(socket_, asio::buffer(data, n), yield); - } - } - catch (std::exception& e) - { - socket_.close(); - timer_.cancel(); - } - } - - void timeout(asio::yield_context yield) - { - while (socket_.is_open()) - { - asio::error_code ignored_ec; - timer_.async_wait(yield[ignored_ec]); - if (timer_.expiry() <= asio::steady_timer::clock_type::now()) - socket_.close(); - } - } - - asio::io_context::strand strand_; - tcp::socket socket_; - asio::steady_timer timer_; -}; - -void do_accept(asio::io_context& io_context, - unsigned short port, asio::yield_context yield) -{ - tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), port)); - - for (;;) - { - asio::error_code ec; - boost::shared_ptr new_session(new session(io_context)); - acceptor.async_accept(new_session->socket(), yield[ec]); - if (!ec) new_session->go(); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: echo_server \n"; - return 1; - } - - asio::io_context io_context; - - asio::spawn(io_context, - boost::bind(do_accept, - boost::ref(io_context), atoi(argv[1]), _1)); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/spawn/parallel_grep.cpp b/Sources/Vendor/asio/src/examples/cpp03/spawn/parallel_grep.cpp deleted file mode 100644 index 8fe1309..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/spawn/parallel_grep.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// parallel_grep.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::spawn; -using asio::strand; -using asio::thread_pool; -using asio::yield_context; - -void print_match(std::string input_file, std::string line) -{ - std::cout << input_file << ':' << line << std::endl; -} - -void search_file(std::string search_string, std::string input_file, - strand output_strand, yield_context yield) -{ - std::ifstream is(input_file.c_str()); - std::string line; - std::size_t line_num = 0; - while (std::getline(is, line)) - { - // If we find a match, send a message to the output. - if (line.find(search_string) != std::string::npos) - { - dispatch(output_strand, boost::bind(&print_match, input_file, line)); - } - - // Every so often we yield control to another coroutine. - if (++line_num % 10 == 0) - post(yield); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: parallel_grep \n"; - return 1; - } - - // We use a fixed size pool of threads for reading the input files. The - // number of threads is automatically determined based on the number of - // CPUs available in the system. - thread_pool pool; - - // To prevent the output from being garbled, we use a strand to synchronise - // printing. - strand output_strand(pool.get_executor()); - - // Spawn a new coroutine for each file specified on the command line. - std::string search_string = argv[1]; - for (int argn = 2; argn < argc; ++argn) - { - std::string input_file = argv[argn]; - spawn(pool, boost::bind(&search_file, - search_string, input_file, output_strand, _1)); - } - - // Join the thread pool to wait for all the spawned tasks to complete. - pool.join(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/README b/Sources/Vendor/asio/src/examples/cpp03/ssl/README deleted file mode 100644 index 3da5190..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/README +++ /dev/null @@ -1,8 +0,0 @@ -The passphrase for both the CA and server private keys is "test". - - -------------------------------------------------------------------------------- -Copyright (c) 2003-2018 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/Sources/Vendor/asio/src/examples/cpp03/ssl/ca.pem b/Sources/Vendor/asio/src/examples/cpp03/ssl/ca.pem deleted file mode 100644 index 1ee5f2c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/ca.pem +++ /dev/null @@ -1,49 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDlzCCAn+gAwIBAgIJAMJYU3U6A0IRMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV -BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChME -YXNpbzAeFw0xNTExMTgyMjMzNDhaFw0yMDExMTYyMjMzNDhaMDsxCzAJBgNVBAYT -AkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChMEYXNp -bzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcRJocHdVMdLUJ/pypY -QVSTC0t3IIgjwjazrK3kAaoIMvzPmDFxEXWcDx+nyz8kQ/E38Ir/ef2BCNGci5hu -wkfMSuMoW9l2N4hx3QCcF46tTDEZztFxWAH7QbE2wYMlMgKZSxWimNfq0YjxEEXb -QM0lGPLFh7Xoko29H0F3LKaaQV9u/vop3Hs0h12HeWlY4PiLp7QQTNGqbWcXycA0 -NZ/fyismireyEvPAgo6L8iXuAi7g0TVKVNlrticGGjMcMq6IMvxzEpSMkuMQ5rWj -pZjWOoBjSYBuXdblcBRvXhOr2Ws8jJLMZfehKq9q1reQfoGV6xMnbwmumSXbWRWT -0vkCAwEAAaOBnTCBmjAdBgNVHQ4EFgQUK/Zv/AVtfIeucJw8VEtux1dhI1YwawYD -VR0jBGQwYoAUK/Zv/AVtfIeucJw8VEtux1dhI1ahP6Q9MDsxCzAJBgNVBAYTAkFV -MQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChMEYXNpb4IJ -AMJYU3U6A0IRMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBABLYXimq -v/HLyIJi7Xn8AJUsICj8LKF/J24nwwiF+ibf7UkoChJURs4nN78bod/lpDVPTEVl -gTBdV/vBJs416sCEFfsGjqB9OBYj4gb0VaJDsQd0+NMvXp0faKv2y9wgScxG9/cg -aM7eRmyfMn1qjb6tpNxVOPpe/nFi8Vx/1orejBRaZr4zF5TkoPepfwLWQeXDUIdE -+QHZ60jZAkR5RXTVU4u3kOKcJs839pmJYyxM4H2VxpR18vy4/YdIVWkREIUM2OgT -5iznIQIIgR56QRGP85uef+I6n0BHzrBk6du69bkQFxrFjLVGlal4bIQqSg4KGWgx -dEdymMWzmMxpO9s= ------END CERTIFICATE----- ------BEGIN RSA PRIVATE KEY----- -MIIEpgIBAAKCAQEAxxEmhwd1Ux0tQn+nKlhBVJMLS3cgiCPCNrOsreQBqggy/M+Y -MXERdZwPH6fLPyRD8Tfwiv95/YEI0ZyLmG7CR8xK4yhb2XY3iHHdAJwXjq1MMRnO -0XFYAftBsTbBgyUyAplLFaKY1+rRiPEQRdtAzSUY8sWHteiSjb0fQXcspppBX27+ -+incezSHXYd5aVjg+IuntBBM0aptZxfJwDQ1n9/KKyaKt7IS88CCjovyJe4CLuDR -NUpU2Wu2JwYaMxwyrogy/HMSlIyS4xDmtaOlmNY6gGNJgG5d1uVwFG9eE6vZazyM -ksxl96Eqr2rWt5B+gZXrEydvCa6ZJdtZFZPS+QIDAQABAoIBAQCOma+SvPoDzvvU -DiPOxqgOEMPfjHfGbm86xl0luBalGfiEd6WbjVanfGKtF4MWOUFec+chez+FJMEP -fufVC0qrKiJfNVMOpYvEd2SMgkSx1VymM8me6WXVDYsSipn2+1cm228ZEYAR9Emj -oqQ4loaGLlP/3RaJbhBF7ruMJvXaZZQ4fZy74Z4tyRaaE1B659ua7Rjne7eNhQE8 -cR7cQDkxsNNN3LTbfLRwEc/gcDXWgLe5JlR/K4ZrdKc3lyivm+Uew3ubKs+fgkyY -kHmuI3RJGIjpnsZW0/So+pHm3b/fo6lmlhTXtNNd+tkkKn2K9ttbXT3Sc13Pc+4w -c4MLyUpdAoGBAOxTtGDpeF6U4s+GPuOCzHCwKQyzfOyCL/UTZv1UJX7Kn1FYycJH -eOjtBRtS661cGkGd1MPfjdX2VV84AmBGDUmRqJ2KfTI1NjLAEJ115ANTpmSTm3lF -UYncgbzl6aflLpjE1mgY+JTJykYeN5jhhO0r2bsdY7S+zaMCSI5NLuznAoGBANej -aMtqLg2qKoq+fUkNBHHLXelR5dBXFnKgSrTj++H4yeW9pYbl8bK3gTF3I5+dSjHW -DdC4+X09iPqY7p8vm8Gq/vgO8Bu+EnKNVr80PJSj7AzFGd6mk/CVrAzoY2XJWbAp -YFwpo1WfHjS5wBfQzBlXY7kWVB7fj32kk14PYmUfAoGBAJXfd7NGHPoOfdCSGGv8 -VV7ZuQ6+/WiYH4XS6iuaI7VHFsZmAn3dCcbeGbD8Y04r7NLUH0yhB7g7YmTihk87 -3c1cPIy8eS1QJbEFsQPK8fFSKWH7YkwEM/O0DesX+5hodaaYnkiiHXNujYLuQuAH -lV87wfcyajsEDjFkj1L/i9TdAoGBAKYfRUQv8HqmdU+doHb+iEYCHb75UMpHzQtR -YTwpxoo3V5Kdnz9lNeYwaF7rIY59ZgMunEYHumw5U6V625nW228/hF0lZOR6cUu+ -hu2WGHWKMvdDgMJ+IcpeA8WN4cUwcN+9gHZ/vUzg4CxOTSYLvLBpGnIkOXnvUGPC -vaTgxTSRAoGBAOHcuZ9hcUrPuVI1HVkjQQLu5mLZ3tz6linEbe/RCdJMK8JrRX4w -ubB7gFclMYGbLlDNAJVYkydJaCy/2NAI3rfsOda+VmDqGx6z4BbSGceHhomyU1Oo -1H7YaXsuzDkzl23HRsyp0pKJpTdghZdbVsGF8vAB8ygK3ehM233neSln ------END RSA PRIVATE KEY----- diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/ssl/client.cpp deleted file mode 100644 index 0b68acd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/client.cpp +++ /dev/null @@ -1,156 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" -#include "asio/ssl.hpp" - -enum { max_length = 1024 }; - -class client -{ -public: - client(asio::io_context& io_context, - asio::ssl::context& context, - asio::ip::tcp::resolver::results_type endpoints) - : socket_(io_context, context) - { - socket_.set_verify_mode(asio::ssl::verify_peer); - socket_.set_verify_callback( - boost::bind(&client::verify_certificate, this, _1, _2)); - - asio::async_connect(socket_.lowest_layer(), endpoints, - boost::bind(&client::handle_connect, this, - asio::placeholders::error)); - } - - bool verify_certificate(bool preverified, - asio::ssl::verify_context& ctx) - { - // The verify callback can be used to check whether the certificate that is - // being presented is valid for the peer. For example, RFC 2818 describes - // the steps involved in doing this for HTTPS. Consult the OpenSSL - // documentation for more details. Note that the callback is called once - // for each certificate in the certificate chain, starting from the root - // certificate authority. - - // In this example we will simply print the certificate's subject name. - char subject_name[256]; - X509* cert = X509_STORE_CTX_get_current_cert(ctx.native_handle()); - X509_NAME_oneline(X509_get_subject_name(cert), subject_name, 256); - std::cout << "Verifying " << subject_name << "\n"; - - return preverified; - } - - void handle_connect(const asio::error_code& error) - { - if (!error) - { - socket_.async_handshake(asio::ssl::stream_base::client, - boost::bind(&client::handle_handshake, this, - asio::placeholders::error)); - } - else - { - std::cout << "Connect failed: " << error.message() << "\n"; - } - } - - void handle_handshake(const asio::error_code& error) - { - if (!error) - { - std::cout << "Enter message: "; - std::cin.getline(request_, max_length); - size_t request_length = strlen(request_); - - asio::async_write(socket_, - asio::buffer(request_, request_length), - boost::bind(&client::handle_write, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - std::cout << "Handshake failed: " << error.message() << "\n"; - } - } - - void handle_write(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_read(socket_, - asio::buffer(reply_, bytes_transferred), - boost::bind(&client::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - std::cout << "Write failed: " << error.message() << "\n"; - } - } - - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - std::cout << "Reply: "; - std::cout.write(reply_, bytes_transferred); - std::cout << "\n"; - } - else - { - std::cout << "Read failed: " << error.message() << "\n"; - } - } - -private: - asio::ssl::stream socket_; - char request_[max_length]; - char reply_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - - asio::io_context io_context; - - asio::ip::tcp::resolver resolver(io_context); - asio::ip::tcp::resolver::results_type endpoints = - resolver.resolve(argv[1], argv[2]); - - asio::ssl::context ctx(asio::ssl::context::sslv23); - ctx.load_verify_file("ca.pem"); - - client c(io_context, ctx, endpoints); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/dh2048.pem b/Sources/Vendor/asio/src/examples/cpp03/ssl/dh2048.pem deleted file mode 100644 index 07250cc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/dh2048.pem +++ /dev/null @@ -1,8 +0,0 @@ ------BEGIN DH PARAMETERS----- -MIIBCAKCAQEAyNnxZSYc6J89mDNnqOH8bnwBiAJxcaUS3PkIEcwW8D9o2BlNq6EO -XKMIbdfwPFZi80GMpNu3YP2A2B42sAHmb7w7ZA92QDv3JjqzR0QuS/CkMv4CEjha -QBFwBDDWnnHBSj4w/t54ii0SH34mWcjBItI2eMtnM9J6fnvNiWqJxdt4iA4mZjZD -qZTjIRyjgKAevzkqAlBqQRoVUUgu+9Cf29wXjVl3bE+0VU5CdFeyT+Y9yunz88mq -rGyx1uPt+zbIfxuNLH+coY67y1ht7iZEL5WLd3wGCycRT+lYy2AL/rxGBPxStFIT -2bOkQao6sAfb4UdGEUlwHUXZrAV51oM30wIBAg== ------END DH PARAMETERS----- diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/ssl/server.cpp deleted file mode 100644 index 8a11fb2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/server.cpp +++ /dev/null @@ -1,170 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" -#include "asio/ssl.hpp" - -typedef asio::ssl::stream ssl_socket; - -class session -{ -public: - session(asio::io_context& io_context, - asio::ssl::context& context) - : socket_(io_context, context) - { - } - - ssl_socket::lowest_layer_type& socket() - { - return socket_.lowest_layer(); - } - - void start() - { - socket_.async_handshake(asio::ssl::stream_base::server, - boost::bind(&session::handle_handshake, this, - asio::placeholders::error)); - } - - void handle_handshake(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_, max_length), - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - delete this; - } - } - - void handle_read(const asio::error_code& error, - size_t bytes_transferred) - { - if (!error) - { - asio::async_write(socket_, - asio::buffer(data_, bytes_transferred), - boost::bind(&session::handle_write, this, - asio::placeholders::error)); - } - else - { - delete this; - } - } - - void handle_write(const asio::error_code& error) - { - if (!error) - { - socket_.async_read_some(asio::buffer(data_, max_length), - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - else - { - delete this; - } - } - -private: - ssl_socket socket_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : io_context_(io_context), - acceptor_(io_context, - asio::ip::tcp::endpoint(asio::ip::tcp::v4(), port)), - context_(asio::ssl::context::sslv23) - { - context_.set_options( - asio::ssl::context::default_workarounds - | asio::ssl::context::no_sslv2 - | asio::ssl::context::single_dh_use); - context_.set_password_callback(boost::bind(&server::get_password, this)); - context_.use_certificate_chain_file("server.pem"); - context_.use_private_key_file("server.pem", asio::ssl::context::pem); - context_.use_tmp_dh_file("dh2048.pem"); - - start_accept(); - } - - std::string get_password() const - { - return "test"; - } - - void start_accept() - { - session* new_session = new session(io_context_, context_); - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, - asio::placeholders::error)); - } - - void handle_accept(session* new_session, - const asio::error_code& error) - { - if (!error) - { - new_session->start(); - } - else - { - delete new_session; - } - - start_accept(); - } - -private: - asio::io_context& io_context_; - asio::ip::tcp::acceptor acceptor_; - asio::ssl::context context_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/ssl/server.pem b/Sources/Vendor/asio/src/examples/cpp03/ssl/server.pem deleted file mode 100644 index 37ea6e2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/ssl/server.pem +++ /dev/null @@ -1,71 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDAzCCAesCCQD9QcRiWk0y9TANBgkqhkiG9w0BAQUFADA7MQswCQYDVQQGEwJB -VTEMMAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZTeWRuZXkxDTALBgNVBAoTBGFzaW8w -HhcNMTUxMTE4MjIzNzMxWhcNMjAxMTE2MjIzNzMxWjBMMQswCQYDVQQGEwJBVTEM -MAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZTeWRuZXkxDTALBgNVBAoTBGFzaW8xDzAN -BgNVBAsTBnNlcnZlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALr0 -+NXSklsGJR7HYHP/H4V5+KpYrmFKva/K7iiqi+XyWEjGnj+/iImJW26phhg9GouN -JJxdrP7/0LwpMsEC/9v09dMNAEewtYhPgD4kiUH/E/79wVmayMZZZGrpF9Rw+wWv -q58y3L1wKge3qilX6slVDdNhqU3vBiMKEJfsjE4PKcEVjPCjVJG2562eHK9FxyjQ -DykyH61lQKBQOiElilPQKzAO7U36yTvs+chWuUfK47B8EC+PJ5KcLEppli4ljlwE -w01HnGxwvjDLobKm2jL6CWi3aYGWudyTsNAd7YC5C7psktBypQLBcfp7uUrrR5Bb -PEjFHJUWIlyoYvm2OjMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAtceVW6tixFsB -ZRhjL5aRCcbx2iMwEXd54lcP6BWe1qOcDPHoSYI1zvvGzohbEvBfqUv78S9MtzaT -gMe5rIU9M1ZM09PyaM6ZutGpKHE8L4qcOslTt41GQFsSqPFdcbgSV20MvBzjGayR -AI/WV0avW3oasdetJPZCR7bRbCbMbWTgclUfv5F25ENcR+BhNuilfL15owL0s4sS -Wb4jOOHhXV9iXeS2dH0snFqv4BmQ9ZoA7zbM9lG3EU5DuxHESYkCnzJyEqqY3vWv -PFRViCxLp5LQLmkTQ3dglVQA4x6ZaonaewdPtdhjkLUuIqDvQx5+kIaOELbSws+c -bREYlnGrFw== ------END CERTIFICATE----- ------BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: AES-256-CBC,D459676347D389E9135496D8AAFA7953 - -wbrjxr9NHur8kgxDsgXOY9qFGKpONIQLxkuahUrDD/H+s/l7ugsLWOPsOXbjNL/7 -QYUBAx85HKm9D8BQ5g78Y82qfArap3/3IIuysDfQDh4fQodhVtmGTFiCOvudlGEp -lq1niQRLThlxeRoFphH8KKiOTO9a/d8tdL7zRmiFwnVnhK4014mgVmgcSefA1AF5 -RbJAeMclUKddG6ltQK00ptg84CDXiMWQXFBGGmQ1av2lyFzC+xLP+qDqZAYTM9lZ -NFRo2oEZP1ozfOVNSbXTanJgZ0DSSmhGE1PcVrHSeE/v+k1kPh3oVKi9GV51kIDC -Zd9f/XltuDOzy1Ybn6gRy4nzNpzcwjSCIHEdSD5nxU5JfHfQ3OtnsEab7qf989iP -s2LbCSp5uGTMvfesMIkixIZAQp2FeahZTAgU2Vx+wi5Kks68rOqeywEfzACL/Um5 -7XZu8gDs4MgRRWnxK1BbJDPifICLvSJZvgB9FKX/hk4FHFF+MtcrkalehCuLooDV -3rfHNvRSbg7J97XQ3QC+k9ZDaumpy6n+LhaVv7BIJRBnBBtZ5Eg3DmPg6flqaHAU -Y/8d82wb/pCmbvR3B1/Ebgs84DPJ+uZnY9M5Iwx19oqlVSR2ts/Tx619LGAm+BiQ -7YDoC4CFmpAA8Uw0xnUbNgx94NdNmlnLeLtS50b0XlWpHKbVzmVbNYEjY6NHMlLt -aqxWHTYTa7g/c1bg2/nxF1Lbfu5VSTROGBUuer1c3yzVuyBrjcX92Jp4BJH78qOp -N6lY6MnH4HYRXHjzlt/S0ZzO0faPPe18Q8SWvnDVuE3fYzzL772B56d2t8eodc+/ -t6M3qJ60eXdsmgYOaPRLRUovN2xT2UUr0+biuguHyqfaVfcEU/adw+b9oUVE+5Nw -nZHI5qhPnhLxChyZqbBl68zMUyKlfff4OyLvRGpfcHwBw6DTGjduB+DDsqqkcIB9 -2VL6nps7ZVCwMPI18siUd6cttEOf6ZXrVqHg9wfDvJOlh2NNKNLxSAFubHc90Jlj -KejrWenXo2w6YkSUeTV4t4cWu7U8rXIkTJXDl1S6NO8DWqNDo5KjgJ2SK5NlSOJ7 -jgECn390ooneJOxxytPVQO2xppXQZZS65RHrvhB+ss5xUknly9q+ICyt6xTR9nqA -PKkeSE6qVY0J4JgFXpkgQxgwMnjSED3LKr3jlz28pr5cC6tsc5SSlekHjT2fcSrX -uccaVahaJRigf+q+4XzmJtdwbZU+YWGZRVMlQLA5yzPHQHDYkPpOeYU4WReND8S4 -TZRkPHaxOZ2lKQwJB93V8Vbt2MvwRy392452a33S4TcQLaWzoOljXjmZjrp2rvRz -prBaNe8LnO4V8Oliv+H+E0UWiWFDuI+HBy4X4O9plsbw/gk64Phl9qLiBwaX/AIR -66FXvC/czABo9oSt2jekcMtJofYr8Gr2bsJlt5ZX+GEOxz4jMv7xvz5/L3W7jVav -pHGIv4xfN9FrXzL47O7UuUF9xZg4Rp/fxwpgEDNZmX/3DnP0ewZQUcgUX0pdqNGQ -YVqJXcRF7KqG2NSQFuwPESZQnxU0WzSgRyUae7xg1WKfSuN8NVAzKhOgeqlD2IAo ------END RSA PRIVATE KEY----- ------BEGIN CERTIFICATE----- -MIIDlzCCAn+gAwIBAgIJAMJYU3U6A0IRMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNV -BAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChME -YXNpbzAeFw0xNTExMTgyMjMzNDhaFw0yMDExMTYyMjMzNDhaMDsxCzAJBgNVBAYT -AkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChMEYXNp -bzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMcRJocHdVMdLUJ/pypY -QVSTC0t3IIgjwjazrK3kAaoIMvzPmDFxEXWcDx+nyz8kQ/E38Ir/ef2BCNGci5hu -wkfMSuMoW9l2N4hx3QCcF46tTDEZztFxWAH7QbE2wYMlMgKZSxWimNfq0YjxEEXb -QM0lGPLFh7Xoko29H0F3LKaaQV9u/vop3Hs0h12HeWlY4PiLp7QQTNGqbWcXycA0 -NZ/fyismireyEvPAgo6L8iXuAi7g0TVKVNlrticGGjMcMq6IMvxzEpSMkuMQ5rWj -pZjWOoBjSYBuXdblcBRvXhOr2Ws8jJLMZfehKq9q1reQfoGV6xMnbwmumSXbWRWT -0vkCAwEAAaOBnTCBmjAdBgNVHQ4EFgQUK/Zv/AVtfIeucJw8VEtux1dhI1YwawYD -VR0jBGQwYoAUK/Zv/AVtfIeucJw8VEtux1dhI1ahP6Q9MDsxCzAJBgNVBAYTAkFV -MQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTENMAsGA1UEChMEYXNpb4IJ -AMJYU3U6A0IRMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBABLYXimq -v/HLyIJi7Xn8AJUsICj8LKF/J24nwwiF+ibf7UkoChJURs4nN78bod/lpDVPTEVl -gTBdV/vBJs416sCEFfsGjqB9OBYj4gb0VaJDsQd0+NMvXp0faKv2y9wgScxG9/cg -aM7eRmyfMn1qjb6tpNxVOPpe/nFi8Vx/1orejBRaZr4zF5TkoPepfwLWQeXDUIdE -+QHZ60jZAkR5RXTVU4u3kOKcJs839pmJYyxM4H2VxpR18vy4/YdIVWkREIUM2OgT -5iznIQIIgR56QRGP85uef+I6n0BHzrBk6du69bkQFxrFjLVGlal4bIQqSg4KGWgx -dEdymMWzmMxpO9s= ------END CERTIFICATE----- diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp deleted file mode 100644 index aac0e7a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +++ /dev/null @@ -1,310 +0,0 @@ -// -// async_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/steady_timer.hpp" -#include "asio/write.hpp" -#include -#include -#include - -using asio::steady_timer; -using asio::ip::tcp; - -// -// This class manages socket timeouts by applying the concept of a deadline. -// Some asynchronous operations are given deadlines by which they must complete. -// Deadlines are enforced by an "actor" that persists for the lifetime of the -// client object: -// -// +----------------+ -// | | -// | check_deadline |<---+ -// | | | -// +----------------+ | async_wait() -// | | -// +---------+ -// -// If the deadline actor determines that the deadline has expired, the socket -// is closed and any outstanding operations are consequently cancelled. -// -// Connection establishment involves trying each endpoint in turn until a -// connection is successful, or the available endpoints are exhausted. If the -// deadline actor closes the socket, the connect actor is woken up and moves to -// the next endpoint. -// -// +---------------+ -// | | -// | start_connect |<---+ -// | | | -// +---------------+ | -// | | -// async_- | +----------------+ -// connect() | | | -// +--->| handle_connect | -// | | -// +----------------+ -// : -// Once a connection is : -// made, the connect : -// actor forks in two - : -// : -// an actor for reading : and an actor for -// inbound messages: : sending heartbeats: -// : -// +------------+ : +-------------+ -// | |<- - - - -+- - - - ->| | -// | start_read | | start_write |<---+ -// | |<---+ | | | -// +------------+ | +-------------+ | async_wait() -// | | | | -// async_- | +-------------+ async_- | +--------------+ -// read_- | | | write() | | | -// until() +--->| handle_read | +--->| handle_write | -// | | | | -// +-------------+ +--------------+ -// -// The input actor reads messages from the socket, where messages are delimited -// by the newline character. The deadline for a complete message is 30 seconds. -// -// The heartbeat actor sends a heartbeat (a message that consists of a single -// newline character) every 10 seconds. In this example, no deadline is applied -// to message sending. -// -class client -{ -public: - client(asio::io_context& io_context) - : stopped_(false), - socket_(io_context), - deadline_(io_context), - heartbeat_timer_(io_context) - { - } - - // Called by the user of the client class to initiate the connection process. - // The endpoints will have been obtained using a tcp::resolver. - void start(tcp::resolver::results_type endpoints) - { - // Start the connect actor. - endpoints_ = endpoints; - start_connect(endpoints_.begin()); - - // Start the deadline actor. You will note that we're not setting any - // particular deadline here. Instead, the connect and input actors will - // update the deadline prior to each asynchronous operation. - deadline_.async_wait(boost::bind(&client::check_deadline, this)); - } - - // This function terminates all the actors to shut down the connection. It - // may be called by the user of the client class, or by the class itself in - // response to graceful termination or an unrecoverable error. - void stop() - { - stopped_ = true; - asio::error_code ignored_ec; - socket_.close(ignored_ec); - deadline_.cancel(); - heartbeat_timer_.cancel(); - } - -private: - void start_connect(tcp::resolver::results_type::iterator endpoint_iter) - { - if (endpoint_iter != endpoints_.end()) - { - std::cout << "Trying " << endpoint_iter->endpoint() << "...\n"; - - // Set a deadline for the connect operation. - deadline_.expires_after(asio::chrono::seconds(60)); - - // Start the asynchronous connect operation. - socket_.async_connect(endpoint_iter->endpoint(), - boost::bind(&client::handle_connect, - this, _1, endpoint_iter)); - } - else - { - // There are no more endpoints to try. Shut down the client. - stop(); - } - } - - void handle_connect(const asio::error_code& ec, - tcp::resolver::results_type::iterator endpoint_iter) - { - if (stopped_) - return; - - // The async_connect() function automatically opens the socket at the start - // of the asynchronous operation. If the socket is closed at this time then - // the timeout handler must have run first. - if (!socket_.is_open()) - { - std::cout << "Connect timed out\n"; - - // Try the next available endpoint. - start_connect(++endpoint_iter); - } - - // Check if the connect operation failed before the deadline expired. - else if (ec) - { - std::cout << "Connect error: " << ec.message() << "\n"; - - // We need to close the socket used in the previous connection attempt - // before starting a new one. - socket_.close(); - - // Try the next available endpoint. - start_connect(++endpoint_iter); - } - - // Otherwise we have successfully established a connection. - else - { - std::cout << "Connected to " << endpoint_iter->endpoint() << "\n"; - - // Start the input actor. - start_read(); - - // Start the heartbeat actor. - start_write(); - } - } - - void start_read() - { - // Set a deadline for the read operation. - deadline_.expires_after(asio::chrono::seconds(30)); - - // Start an asynchronous operation to read a newline-delimited message. - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - boost::bind(&client::handle_read, this, _1, _2)); - } - - void handle_read(const asio::error_code& ec, std::size_t n) - { - if (stopped_) - return; - - if (!ec) - { - // Extract the newline-delimited message from the buffer. - std::string line(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - - // Empty messages are heartbeats and so ignored. - if (!line.empty()) - { - std::cout << "Received: " << line << "\n"; - } - - start_read(); - } - else - { - std::cout << "Error on receive: " << ec.message() << "\n"; - - stop(); - } - } - - void start_write() - { - if (stopped_) - return; - - // Start an asynchronous operation to send a heartbeat message. - asio::async_write(socket_, asio::buffer("\n", 1), - boost::bind(&client::handle_write, this, _1)); - } - - void handle_write(const asio::error_code& ec) - { - if (stopped_) - return; - - if (!ec) - { - // Wait 10 seconds before sending the next heartbeat. - heartbeat_timer_.expires_after(asio::chrono::seconds(10)); - heartbeat_timer_.async_wait(boost::bind(&client::start_write, this)); - } - else - { - std::cout << "Error on heartbeat: " << ec.message() << "\n"; - - stop(); - } - } - - void check_deadline() - { - if (stopped_) - return; - - // Check whether the deadline has passed. We compare the deadline against - // the current time since a new asynchronous operation may have moved the - // deadline before this actor had a chance to run. - if (deadline_.expiry() <= steady_timer::clock_type::now()) - { - // The deadline has passed. The socket is closed so that any outstanding - // asynchronous operations are cancelled. - socket_.close(); - - // There is no longer an active deadline. The expiry is set to the - // maximum time point so that the actor takes no action until a new - // deadline is set. - deadline_.expires_at(steady_timer::time_point::max()); - } - - // Put the actor back to sleep. - deadline_.async_wait(boost::bind(&client::check_deadline, this)); - } - -private: - bool stopped_; - tcp::resolver::results_type endpoints_; - tcp::socket socket_; - std::string input_buffer_; - steady_timer deadline_; - steady_timer heartbeat_timer_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - - asio::io_context io_context; - tcp::resolver r(io_context); - client c(io_context); - - c.start(r.resolve(argv[1], argv[2])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp deleted file mode 100644 index 24b1329..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +++ /dev/null @@ -1,191 +0,0 @@ -// -// blocking_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/buffer.hpp" -#include "asio/connect.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/system_error.hpp" -#include "asio/write.hpp" -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using boost::lambda::bind; -using boost::lambda::var; -using boost::lambda::_1; -using boost::lambda::_2; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by running the io_context using the timed -// io_context::run_for() member function. Each asynchronous operation is given -// a timeout within which it must complete. The socket operations themselves -// use boost::lambda function objects as completion handlers. For a given -// socket operation, the client object runs the io_context to block thread -// execution until the operation completes or the timeout is reached. If the -// io_context::run_for() function times out, the socket is closed and the -// outstanding asynchronous operation is cancelled. -// -class client -{ -public: - client() - : socket_(io_context_) - { - } - - void connect(const std::string& host, const std::string& service, - asio::chrono::steady_clock::duration timeout) - { - // Resolve the host name and service to a list of endpoints. - tcp::resolver::results_type endpoints = - tcp::resolver(io_context_).resolve(host, service); - - // Start the asynchronous operation itself. The boost::lambda function - // object is used as a callback and will update the ec variable when the - // operation completes. The blocking_udp_client.cpp example shows how you - // can use boost::bind rather than boost::lambda. - asio::error_code ec; - asio::async_connect(socket_, endpoints, var(ec) = _1); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether a connection was successfully established. - if (ec) - throw asio::system_error(ec); - } - - std::string read_line(asio::chrono::steady_clock::duration timeout) - { - // Start the asynchronous operation. The boost::lambda function object is - // used as a callback and will update the ec variable when the operation - // completes. The blocking_udp_client.cpp example shows how you can use - // boost::bind rather than boost::lambda. - asio::error_code ec; - std::size_t n = 0; - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), - '\n', (var(ec) = _1, var(n) = _2)); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether the read completed successfully. - if (ec) - throw asio::system_error(ec); - - std::string line(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - return line; - } - - void write_line(const std::string& line, - asio::chrono::steady_clock::duration timeout) - { - std::string data = line + "\n"; - - // Start the asynchronous operation. The boost::lambda function object is - // used as a callback and will update the ec variable when the operation - // completes. The blocking_udp_client.cpp example shows how you can use - // boost::bind rather than boost::lambda. - asio::error_code ec; - asio::async_write(socket_, asio::buffer(data), var(ec) = _1); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether the read completed successfully. - if (ec) - throw asio::system_error(ec); - } - -private: - void run(asio::chrono::steady_clock::duration timeout) - { - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context_.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context_.run_for(timeout); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out. - if (!io_context_.stopped()) - { - // Close the socket to cancel the outstanding asynchronous operation. - socket_.close(); - - // Run the io_context again until the operation completes. - io_context_.run(); - } - } - - asio::io_context io_context_; - tcp::socket socket_; - std::string input_buffer_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cerr << "Usage: blocking_tcp_client \n"; - return 1; - } - - client c; - c.connect(argv[1], argv[2], asio::chrono::seconds(10)); - - asio::chrono::steady_clock::time_point time_sent = - asio::chrono::steady_clock::now(); - - c.write_line(argv[3], asio::chrono::seconds(10)); - - for (;;) - { - std::string line = c.read_line(asio::chrono::seconds(10)); - - // Keep going until we get back the line that was sent. - if (line == argv[3]) - break; - } - - asio::chrono::steady_clock::time_point time_received = - asio::chrono::steady_clock::now(); - - std::cout << "Round trip time: "; - std::cout << asio::chrono::duration_cast< - asio::chrono::microseconds>( - time_received - time_sent).count(); - std::cout << " microseconds\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp deleted file mode 100644 index cd16544..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +++ /dev/null @@ -1,196 +0,0 @@ -// -// blocking_token_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/connect.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/streambuf.hpp" -#include "asio/system_error.hpp" -#include "asio/write.hpp" -#include -#include -#include -#include - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -// A custom completion token that makes asynchronous operations behave as -// though they are blocking calls with a timeout. -struct close_after -{ - close_after(asio::chrono::steady_clock::duration t, tcp::socket& s) - : timeout_(t), socket_(s) - { - } - - // The maximum time to wait for an asynchronous operation to complete. - asio::chrono::steady_clock::duration timeout_; - - // The socket to be closed if the operation does not complete in time. - tcp::socket& socket_; -}; - -namespace asio { - -// The async_result template is specialised to allow the close_after token to -// be used with asynchronous operations that have a completion signature of -// void(error_code, T). Generalising this for all completion signature forms is -// left as an exercise for the reader. -template -class async_result -{ -public: - // An asynchronous operation's initiating function automatically creates an - // completion_handler_type object from the token. This function object is - // then called on completion of the asynchronous operation. - class completion_handler_type - { - public: - completion_handler_type(const close_after& token) - : token_(token) - { - } - - void operator()(asio::error_code ec, T t) - { - *ec_ = ec; - *t_ = t; - } - - private: - friend class async_result; - close_after token_; - asio::error_code* ec_; - T* t_; - }; - - // The async_result constructor associates the completion handler object with - // the result of the initiating function. - explicit async_result(completion_handler_type& h) - : timeout_(h.token_.timeout_), - socket_(h.token_.socket_) - { - h.ec_ = &ec_; - h.t_ = &t_; - } - - // The return_type typedef determines the result type of the asynchronous - // operation's initiating function. - typedef T return_type; - - // The get() function is used to obtain the result of the asynchronous - // operation's initiating function. For the close_after completion token, we - // use this function to run the io_context until the operation is complete. - return_type get() - { - asio::io_context& io_context = socket_.get_executor().context(); - - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context.run_for(timeout_); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out and the - // operation is still incomplete. - if (!io_context.stopped()) - { - // Close the socket to cancel the outstanding asynchronous operation. - socket_.close(); - - // Run the io_context again until the operation completes. - io_context.run(); - } - - // If the operation failed, throw an exception. Otherwise return the result. - return ec_ ? throw asio::system_error(ec_) : t_; - } - -private: - asio::chrono::steady_clock::duration timeout_; - tcp::socket& socket_; - asio::error_code ec_; - T t_; -}; - -} // namespace asio - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cerr << "Usage: blocking_tcp_client \n"; - return 1; - } - - asio::io_context io_context; - - // Resolve the host name and service to a list of endpoints. - tcp::resolver::results_type endpoints = - tcp::resolver(io_context).resolve(argv[1], argv[2]); - - tcp::socket socket(io_context); - - // Run an asynchronous connect operation with a timeout. - asio::async_connect(socket, endpoints, - close_after(asio::chrono::seconds(10), socket)); - - asio::chrono::steady_clock::time_point time_sent = - asio::chrono::steady_clock::now(); - - // Run an asynchronous write operation with a timeout. - std::string msg = argv[3] + std::string("\n"); - asio::async_write(socket, asio::buffer(msg), - close_after(asio::chrono::seconds(10), socket)); - - for (std::string input_buffer;;) - { - // Run an asynchronous read operation with a timeout. - std::size_t n = asio::async_read_until(socket, - asio::dynamic_buffer(input_buffer), '\n', - close_after(asio::chrono::seconds(10), socket)); - - std::string line(input_buffer.substr(0, n - 1)); - input_buffer.erase(0, n); - - // Keep going until we get back the line that was sent. - if (line == argv[3]) - break; - } - - asio::chrono::steady_clock::time_point time_received = - asio::chrono::steady_clock::now(); - - std::cout << "Round trip time: "; - std::cout << asio::chrono::duration_cast< - asio::chrono::microseconds>( - time_received - time_sent).count(); - std::cout << " microseconds\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp deleted file mode 100644 index 4035862..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// -// blocking_udp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/udp.hpp" -#include -#include -#include - -using asio::ip::udp; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by running the io_context using the timed -// io_context::run_for() member function. Each asynchronous operation is given -// a timeout within which it must complete. The socket operations themselves -// use boost::bind to specify the completion handler: -// -// +---------------+ -// | | -// | receive | -// | | -// +---------------+ -// | -// async_- | +----------------+ -// receive() | | | -// +--->| handle_receive | -// | | -// +----------------+ -// -// For a given socket operation, the client object runs the io_context to block -// thread execution until the operation completes or the timeout is reached. If -// the io_context::run_for() function times out, the socket is closed and the -// outstanding asynchronous operation is cancelled. -// -class client -{ -public: - client(const udp::endpoint& listen_endpoint) - : socket_(io_context_, listen_endpoint) - { - } - - std::size_t receive(const asio::mutable_buffer& buffer, - asio::chrono::steady_clock::duration timeout, - asio::error_code& ec) - { - // Start the asynchronous operation. The handle_receive function used as a - // callback will update the ec and length variables. - std::size_t length = 0; - socket_.async_receive(asio::buffer(buffer), - boost::bind(&client::handle_receive, _1, _2, &ec, &length)); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - return length; - } - -private: - void run(asio::chrono::steady_clock::duration timeout) - { - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context_.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context_.run_for(timeout); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out. - if (!io_context_.stopped()) - { - // Cancel the outstanding asynchronous operation. - socket_.cancel(); - - // Run the io_context again until the operation completes. - io_context_.run(); - } - } - - static void handle_receive( - const asio::error_code& ec, std::size_t length, - asio::error_code* out_ec, std::size_t* out_length) - { - *out_ec = ec; - *out_length = length; - } - -private: - asio::io_context io_context_; - udp::socket socket_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - using namespace std; // For atoi. - - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_client \n"; - return 1; - } - - udp::endpoint listen_endpoint( - asio::ip::make_address(argv[1]), - std::atoi(argv[2])); - - client c(listen_endpoint); - - for (;;) - { - char data[1024]; - asio::error_code ec; - std::size_t n = c.receive(asio::buffer(data), - asio::chrono::seconds(10), ec); - - if (ec) - { - std::cout << "Receive error: " << ec.message() << "\n"; - } - else - { - std::cout << "Received: "; - std::cout.write(data, n); - std::cout << "\n"; - } - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timeouts/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/timeouts/server.cpp deleted file mode 100644 index 6f5ac60..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timeouts/server.cpp +++ /dev/null @@ -1,429 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/read_until.hpp" -#include "asio/steady_timer.hpp" -#include "asio/write.hpp" - -using asio::steady_timer; -using asio::ip::tcp; -using asio::ip::udp; - -//---------------------------------------------------------------------- - -class subscriber -{ -public: - virtual ~subscriber() {} - virtual void deliver(const std::string& msg) = 0; -}; - -typedef boost::shared_ptr subscriber_ptr; - -//---------------------------------------------------------------------- - -class channel -{ -public: - void join(subscriber_ptr subscriber) - { - subscribers_.insert(subscriber); - } - - void leave(subscriber_ptr subscriber) - { - subscribers_.erase(subscriber); - } - - void deliver(const std::string& msg) - { - std::for_each(subscribers_.begin(), subscribers_.end(), - boost::bind(&subscriber::deliver, _1, boost::ref(msg))); - } - -private: - std::set subscribers_; -}; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by applying the concept of a deadline. -// Some asynchronous operations are given deadlines by which they must complete. -// Deadlines are enforced by two "actors" that persist for the lifetime of the -// session object, one for input and one for output: -// -// +----------------+ +----------------+ -// | | | | -// | check_deadline |<---+ | check_deadline |<---+ -// | | | async_wait() | | | async_wait() -// +----------------+ | on input +----------------+ | on output -// | | deadline | | deadline -// +---------+ +---------+ -// -// If either deadline actor determines that the corresponding deadline has -// expired, the socket is closed and any outstanding operations are cancelled. -// -// The input actor reads messages from the socket, where messages are delimited -// by the newline character: -// -// +------------+ -// | | -// | start_read |<---+ -// | | | -// +------------+ | -// | | -// async_- | +-------------+ -// read_- | | | -// until() +--->| handle_read | -// | | -// +-------------+ -// -// The deadline for receiving a complete message is 30 seconds. If a non-empty -// message is received, it is delivered to all subscribers. If a heartbeat (a -// message that consists of a single newline character) is received, a heartbeat -// is enqueued for the client, provided there are no other messages waiting to -// be sent. -// -// The output actor is responsible for sending messages to the client: -// -// +--------------+ -// | |<---------------------+ -// | await_output | | -// | |<---+ | -// +--------------+ | | -// | | | async_wait() | -// | +--------+ | -// V | -// +-------------+ +--------------+ -// | | async_write() | | -// | start_write |-------------->| handle_write | -// | | | | -// +-------------+ +--------------+ -// -// The output actor first waits for an output message to be enqueued. It does -// this by using a steady_timer as an asynchronous condition variable. The -// steady_timer will be signalled whenever the output queue is non-empty. -// -// Once a message is available, it is sent to the client. The deadline for -// sending a complete message is 30 seconds. After the message is successfully -// sent, the output actor again waits for the output queue to become non-empty. -// -class tcp_session - : public subscriber, - public boost::enable_shared_from_this -{ -public: - tcp_session(asio::io_context& io_context, channel& ch) - : channel_(ch), - socket_(io_context), - input_deadline_(io_context), - non_empty_output_queue_(io_context), - output_deadline_(io_context) - { - input_deadline_.expires_at(steady_timer::time_point::max()); - output_deadline_.expires_at(steady_timer::time_point::max()); - - // The non_empty_output_queue_ steady_timer is set to the maximum time - // point whenever the output queue is empty. This ensures that the output - // actor stays asleep until a message is put into the queue. - non_empty_output_queue_.expires_at(steady_timer::time_point::max()); - } - - tcp::socket& socket() - { - return socket_; - } - - // Called by the server object to initiate the four actors. - void start() - { - channel_.join(shared_from_this()); - - start_read(); - - input_deadline_.async_wait( - boost::bind(&tcp_session::check_deadline, - shared_from_this(), &input_deadline_)); - - await_output(); - - output_deadline_.async_wait( - boost::bind(&tcp_session::check_deadline, - shared_from_this(), &output_deadline_)); - } - -private: - void stop() - { - channel_.leave(shared_from_this()); - - asio::error_code ignored_ec; - socket_.close(ignored_ec); - input_deadline_.cancel(); - non_empty_output_queue_.cancel(); - output_deadline_.cancel(); - } - - bool stopped() const - { - return !socket_.is_open(); - } - - void deliver(const std::string& msg) - { - output_queue_.push_back(msg + "\n"); - - // Signal that the output queue contains messages. Modifying the expiry - // will wake the output actor, if it is waiting on the timer. - non_empty_output_queue_.expires_at(steady_timer::time_point::min()); - } - - void start_read() - { - // Set a deadline for the read operation. - input_deadline_.expires_after(asio::chrono::seconds(30)); - - // Start an asynchronous operation to read a newline-delimited message. - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - boost::bind(&tcp_session::handle_read, shared_from_this(), _1, _2)); - } - - void handle_read(const asio::error_code& ec, std::size_t n) - { - if (stopped()) - return; - - if (!ec) - { - // Extract the newline-delimited message from the buffer. - std::string msg(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - - if (!msg.empty()) - { - channel_.deliver(msg); - } - else - { - // We received a heartbeat message from the client. If there's nothing - // else being sent or ready to be sent, send a heartbeat right back. - if (output_queue_.empty()) - { - output_queue_.push_back("\n"); - - // Signal that the output queue contains messages. Modifying the - // expiry will wake the output actor, if it is waiting on the timer. - non_empty_output_queue_.expires_at(steady_timer::time_point::min()); - } - } - - start_read(); - } - else - { - stop(); - } - } - - void await_output() - { - if (stopped()) - return; - - if (output_queue_.empty()) - { - // There are no messages that are ready to be sent. The actor goes to - // sleep by waiting on the non_empty_output_queue_ timer. When a new - // message is added, the timer will be modified and the actor will wake. - non_empty_output_queue_.expires_at(steady_timer::time_point::max()); - non_empty_output_queue_.async_wait( - boost::bind(&tcp_session::await_output, shared_from_this())); - } - else - { - start_write(); - } - } - - void start_write() - { - // Set a deadline for the write operation. - output_deadline_.expires_after(asio::chrono::seconds(30)); - - // Start an asynchronous operation to send a message. - asio::async_write(socket_, - asio::buffer(output_queue_.front()), - boost::bind(&tcp_session::handle_write, shared_from_this(), _1)); - } - - void handle_write(const asio::error_code& ec) - { - if (stopped()) - return; - - if (!ec) - { - output_queue_.pop_front(); - - await_output(); - } - else - { - stop(); - } - } - - void check_deadline(steady_timer* deadline) - { - if (stopped()) - return; - - // Check whether the deadline has passed. We compare the deadline against - // the current time since a new asynchronous operation may have moved the - // deadline before this actor had a chance to run. - if (deadline->expiry() <= steady_timer::clock_type::now()) - { - // The deadline has passed. Stop the session. The other actors will - // terminate as soon as possible. - stop(); - } - else - { - // Put the actor back to sleep. - deadline->async_wait( - boost::bind(&tcp_session::check_deadline, - shared_from_this(), deadline)); - } - } - - channel& channel_; - tcp::socket socket_; - std::string input_buffer_; - steady_timer input_deadline_; - std::deque output_queue_; - steady_timer non_empty_output_queue_; - steady_timer output_deadline_; -}; - -typedef boost::shared_ptr tcp_session_ptr; - -//---------------------------------------------------------------------- - -class udp_broadcaster - : public subscriber -{ -public: - udp_broadcaster(asio::io_context& io_context, - const udp::endpoint& broadcast_endpoint) - : socket_(io_context) - { - socket_.connect(broadcast_endpoint); - socket_.set_option(udp::socket::broadcast(true)); - } - -private: - void deliver(const std::string& msg) - { - asio::error_code ignored_ec; - socket_.send(asio::buffer(msg), 0, ignored_ec); - } - - udp::socket socket_; -}; - -//---------------------------------------------------------------------- - -class server -{ -public: - server(asio::io_context& io_context, - const tcp::endpoint& listen_endpoint, - const udp::endpoint& broadcast_endpoint) - : io_context_(io_context), - acceptor_(io_context, listen_endpoint) - { - subscriber_ptr bc(new udp_broadcaster(io_context_, broadcast_endpoint)); - channel_.join(bc); - - start_accept(); - } - - void start_accept() - { - tcp_session_ptr new_session(new tcp_session(io_context_, channel_)); - - acceptor_.async_accept(new_session->socket(), - boost::bind(&server::handle_accept, this, new_session, _1)); - } - - void handle_accept(tcp_session_ptr session, - const asio::error_code& ec) - { - if (!ec) - { - session->start(); - } - - start_accept(); - } - -private: - asio::io_context& io_context_; - tcp::acceptor acceptor_; - channel channel_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - using namespace std; // For atoi. - - if (argc != 4) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - tcp::endpoint listen_endpoint(tcp::v4(), atoi(argv[1])); - - udp::endpoint broadcast_endpoint( - asio::ip::make_address(argv[2]), atoi(argv[3])); - - server s(io_context, listen_endpoint, broadcast_endpoint); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/timers/time_t_timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/timers/time_t_timer.cpp deleted file mode 100644 index 5a512fa..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/timers/time_t_timer.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// time_t_timer.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include - -// A custom implementation of the Clock concept from the standard C++ library. -struct time_t_clock -{ - // The duration type. - typedef asio::chrono::steady_clock::duration duration; - - // The duration's underlying arithmetic representation. - typedef duration::rep rep; - - // The ratio representing the duration's tick period. - typedef duration::period period; - - // An absolute time point represented using the clock. - typedef asio::chrono::time_point time_point; - - // The clock is not monotonically increasing. - static const bool is_steady = false; - - // Get the current time. - static time_point now() - { - return time_point() + asio::chrono::seconds(std::time(0)); - } -}; - -// The asio::basic_waitable_timer template accepts an optional WaitTraits -// template parameter. The underlying time_t clock has one-second granularity, -// so these traits may be customised to reduce the latency between the clock -// ticking over and a wait operation's completion. When the timeout is near -// (less than one second away) we poll the clock more frequently to detect the -// time change closer to when it occurs. The user can select the appropriate -// trade off between accuracy and the increased CPU cost of polling. In extreme -// cases, a zero duration may be returned to make the timers as accurate as -// possible, albeit with 100% CPU usage. -struct time_t_wait_traits -{ - // Determine how long until the clock should be next polled to determine - // whether the duration has elapsed. - static time_t_clock::duration to_wait_duration( - const time_t_clock::duration& d) - { - if (d > asio::chrono::seconds(1)) - return d - asio::chrono::seconds(1); - else if (d > asio::chrono::seconds(0)) - return asio::chrono::milliseconds(10); - else - return asio::chrono::seconds(0); - } - - // Determine how long until the clock should be next polled to determine - // whether the absoluate time has been reached. - static time_t_clock::duration to_wait_duration( - const time_t_clock::time_point& t) - { - return to_wait_duration(t - time_t_clock::now()); - } -}; - -typedef asio::basic_waitable_timer< - time_t_clock, time_t_wait_traits> time_t_timer; - -void handle_timeout(const asio::error_code&) -{ - std::cout << "handle_timeout\n"; -} - -int main() -{ - try - { - asio::io_context io_context; - - time_t_timer timer(io_context); - - timer.expires_after(asio::chrono::seconds(5)); - std::cout << "Starting synchronous wait\n"; - timer.wait(); - std::cout << "Finished synchronous wait\n"; - - timer.expires_after(asio::chrono::seconds(5)); - std::cout << "Starting asynchronous wait\n"; - timer.async_wait(&handle_timeout); - io_context.run(); - std::cout << "Finished asynchronous wait\n"; - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime1/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime1/client.cpp deleted file mode 100644 index cd3b71c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: client " << std::endl; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - tcp::resolver::results_type endpoints = - resolver.resolve(argv[1], "daytime"); - - tcp::socket socket(io_context); - asio::connect(socket, endpoints); - - for (;;) - { - boost::array buf; - asio::error_code error; - - size_t len = socket.read_some(asio::buffer(buf), error); - - if (error == asio::error::eof) - break; // Connection closed cleanly by peer. - else if (error) - throw asio::system_error(error); // Some other error. - - std::cout.write(buf.data(), len); - } - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime2/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime2/server.cpp deleted file mode 100644 index 239023f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include - -using asio::ip::tcp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -int main() -{ - try - { - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), 13)); - - for (;;) - { - tcp::socket socket(io_context); - acceptor.accept(socket); - - std::string message = make_daytime_string(); - - asio::error_code ignored_error; - asio::write(socket, asio::buffer(message), ignored_error); - } - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime3/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime3/server.cpp deleted file mode 100644 index 8a64d2d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -class tcp_connection - : public boost::enable_shared_from_this -{ -public: - typedef boost::shared_ptr pointer; - - static pointer create(asio::io_context& io_context) - { - return pointer(new tcp_connection(io_context)); - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - message_ = make_daytime_string(); - - asio::async_write(socket_, asio::buffer(message_), - boost::bind(&tcp_connection::handle_write, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - -private: - tcp_connection(asio::io_context& io_context) - : socket_(io_context) - { - } - - void handle_write(const asio::error_code& /*error*/, - size_t /*bytes_transferred*/) - { - } - - tcp::socket socket_; - std::string message_; -}; - -class tcp_server -{ -public: - tcp_server(asio::io_context& io_context) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13)) - { - start_accept(); - } - -private: - void start_accept() - { - tcp_connection::pointer new_connection = - tcp_connection::create(acceptor_.get_executor().context()); - - acceptor_.async_accept(new_connection->socket(), - boost::bind(&tcp_server::handle_accept, this, new_connection, - asio::placeholders::error)); - } - - void handle_accept(tcp_connection::pointer new_connection, - const asio::error_code& error) - { - if (!error) - { - new_connection->start(); - } - - start_accept(); - } - - tcp::acceptor acceptor_; -}; - -int main() -{ - try - { - asio::io_context io_context; - tcp_server server(io_context); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime4/client.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime4/client.cpp deleted file mode 100644 index 5d02760..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include - -using asio::ip::udp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: client " << std::endl; - return 1; - } - - asio::io_context io_context; - - udp::resolver resolver(io_context); - udp::endpoint receiver_endpoint = - *resolver.resolve(udp::v4(), argv[1], "daytime").begin(); - - udp::socket socket(io_context); - socket.open(udp::v4()); - - boost::array send_buf = {{ 0 }}; - socket.send_to(asio::buffer(send_buf), receiver_endpoint); - - boost::array recv_buf; - udp::endpoint sender_endpoint; - size_t len = socket.receive_from( - asio::buffer(recv_buf), sender_endpoint); - - std::cout.write(recv_buf.data(), len); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime5/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime5/server.cpp deleted file mode 100644 index 547a8fc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include - -using asio::ip::udp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -int main() -{ - try - { - asio::io_context io_context; - - udp::socket socket(io_context, udp::endpoint(udp::v4(), 13)); - - for (;;) - { - boost::array recv_buf; - udp::endpoint remote_endpoint; - asio::error_code error; - socket.receive_from(asio::buffer(recv_buf), remote_endpoint); - - std::string message = make_daytime_string(); - - asio::error_code ignored_error; - socket.send_to(asio::buffer(message), - remote_endpoint, 0, ignored_error); - } - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime6/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime6/server.cpp deleted file mode 100644 index 729d7ca..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::udp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -class udp_server -{ -public: - udp_server(asio::io_context& io_context) - : socket_(io_context, udp::endpoint(udp::v4(), 13)) - { - start_receive(); - } - -private: - void start_receive() - { - socket_.async_receive_from( - asio::buffer(recv_buffer_), remote_endpoint_, - boost::bind(&udp_server::handle_receive, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - - void handle_receive(const asio::error_code& error, - std::size_t /*bytes_transferred*/) - { - if (!error) - { - boost::shared_ptr message( - new std::string(make_daytime_string())); - - socket_.async_send_to(asio::buffer(*message), remote_endpoint_, - boost::bind(&udp_server::handle_send, this, message, - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - - start_receive(); - } - } - - void handle_send(boost::shared_ptr /*message*/, - const asio::error_code& /*error*/, - std::size_t /*bytes_transferred*/) - { - } - - udp::socket socket_; - udp::endpoint remote_endpoint_; - boost::array recv_buffer_; -}; - -int main() -{ - try - { - asio::io_context io_context; - udp_server server(io_context); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime7/server.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime7/server.cpp deleted file mode 100644 index 968c667..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::ip::udp; - -std::string make_daytime_string() -{ - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - return ctime(&now); -} - -class tcp_connection - : public boost::enable_shared_from_this -{ -public: - typedef boost::shared_ptr pointer; - - static pointer create(asio::io_context& io_context) - { - return pointer(new tcp_connection(io_context)); - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - message_ = make_daytime_string(); - - asio::async_write(socket_, asio::buffer(message_), - boost::bind(&tcp_connection::handle_write, shared_from_this())); - } - -private: - tcp_connection(asio::io_context& io_context) - : socket_(io_context) - { - } - - void handle_write() - { - } - - tcp::socket socket_; - std::string message_; -}; - -class tcp_server -{ -public: - tcp_server(asio::io_context& io_context) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), 13)) - { - start_accept(); - } - -private: - void start_accept() - { - tcp_connection::pointer new_connection = - tcp_connection::create(acceptor_.get_executor().context()); - - acceptor_.async_accept(new_connection->socket(), - boost::bind(&tcp_server::handle_accept, this, new_connection, - asio::placeholders::error)); - } - - void handle_accept(tcp_connection::pointer new_connection, - const asio::error_code& error) - { - if (!error) - { - new_connection->start(); - } - - start_accept(); - } - - tcp::acceptor acceptor_; -}; - -class udp_server -{ -public: - udp_server(asio::io_context& io_context) - : socket_(io_context, udp::endpoint(udp::v4(), 13)) - { - start_receive(); - } - -private: - void start_receive() - { - socket_.async_receive_from( - asio::buffer(recv_buffer_), remote_endpoint_, - boost::bind(&udp_server::handle_receive, this, - asio::placeholders::error)); - } - - void handle_receive(const asio::error_code& error) - { - if (!error) - { - boost::shared_ptr message( - new std::string(make_daytime_string())); - - socket_.async_send_to(asio::buffer(*message), remote_endpoint_, - boost::bind(&udp_server::handle_send, this, message)); - - start_receive(); - } - } - - void handle_send(boost::shared_ptr /*message*/) - { - } - - udp::socket socket_; - udp::endpoint remote_endpoint_; - boost::array recv_buffer_; -}; - -int main() -{ - try - { - asio::io_context io_context; - tcp_server server1(io_context); - udp_server server2(io_context); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer1/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer1/timer.cpp deleted file mode 100644 index 3613ae4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include - -int main() -{ - asio::io_context io; - - asio::steady_timer t(io, asio::chrono::seconds(5)); - t.wait(); - - std::cout << "Hello, world!" << std::endl; - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer2/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer2/timer.cpp deleted file mode 100644 index bc44857..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include - -void print(const asio::error_code& /*e*/) -{ - std::cout << "Hello, world!" << std::endl; -} - -int main() -{ - asio::io_context io; - - asio::steady_timer t(io, asio::chrono::seconds(5)); - t.async_wait(&print); - - io.run(); - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer3/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer3/timer.cpp deleted file mode 100644 index 1773ba2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include - -void print(const asio::error_code& /*e*/, - asio::steady_timer* t, int* count) -{ - if (*count < 5) - { - std::cout << *count << std::endl; - ++(*count); - - t->expires_at(t->expiry() + asio::chrono::seconds(1)); - t->async_wait(boost::bind(print, - asio::placeholders::error, t, count)); - } -} - -int main() -{ - asio::io_context io; - - int count = 0; - asio::steady_timer t(io, asio::chrono::seconds(1)); - t.async_wait(boost::bind(print, - asio::placeholders::error, &t, &count)); - - io.run(); - - std::cout << "Final count is " << count << std::endl; - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer4/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer4/timer.cpp deleted file mode 100644 index 9e63ba3..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include - -class printer -{ -public: - printer(asio::io_context& io) - : timer_(io, asio::chrono::seconds(1)), - count_(0) - { - timer_.async_wait(boost::bind(&printer::print, this)); - } - - ~printer() - { - std::cout << "Final count is " << count_ << std::endl; - } - - void print() - { - if (count_ < 5) - { - std::cout << count_ << std::endl; - ++count_; - - timer_.expires_at(timer_.expiry() + asio::chrono::seconds(1)); - timer_.async_wait(boost::bind(&printer::print, this)); - } - } - -private: - asio::steady_timer timer_; - int count_; -}; - -int main() -{ - asio::io_context io; - printer p(io); - io.run(); - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer5/timer.cpp b/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer5/timer.cpp deleted file mode 100644 index 6d52915..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// timer.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include - -class printer -{ -public: - printer(asio::io_context& io) - : strand_(io), - timer1_(io, asio::chrono::seconds(1)), - timer2_(io, asio::chrono::seconds(1)), - count_(0) - { - timer1_.async_wait(asio::bind_executor(strand_, - boost::bind(&printer::print1, this))); - - timer2_.async_wait(asio::bind_executor(strand_, - boost::bind(&printer::print2, this))); - } - - ~printer() - { - std::cout << "Final count is " << count_ << std::endl; - } - - void print1() - { - if (count_ < 10) - { - std::cout << "Timer 1: " << count_ << std::endl; - ++count_; - - timer1_.expires_at(timer1_.expiry() + asio::chrono::seconds(1)); - - timer1_.async_wait(asio::bind_executor(strand_, - boost::bind(&printer::print1, this))); - } - } - - void print2() - { - if (count_ < 10) - { - std::cout << "Timer 2: " << count_ << std::endl; - ++count_; - - timer2_.expires_at(timer2_.expiry() + asio::chrono::seconds(1)); - - timer2_.async_wait(asio::bind_executor(strand_, - boost::bind(&printer::print2, this))); - } - } - -private: - asio::io_context::strand strand_; - asio::steady_timer timer1_; - asio::steady_timer timer2_; - int count_; -}; - -int main() -{ - asio::io_context io; - printer p(io); - asio::thread t(boost::bind(&asio::io_context::run, &io)); - io.run(); - t.join(); - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp03/windows/transmit_file.cpp b/Sources/Vendor/asio/src/examples/cpp03/windows/transmit_file.cpp deleted file mode 100644 index 5efa7e4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp03/windows/transmit_file.cpp +++ /dev/null @@ -1,171 +0,0 @@ -// -// transmit_file.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) - -using asio::ip::tcp; -using asio::windows::overlapped_ptr; -using asio::windows::random_access_handle; - -// A wrapper for the TransmitFile overlapped I/O operation. -template -void transmit_file(tcp::socket& socket, - random_access_handle& file, Handler handler) -{ - // Construct an OVERLAPPED-derived object to contain the handler. - overlapped_ptr overlapped(socket.get_executor().context(), handler); - - // Initiate the TransmitFile operation. - BOOL ok = ::TransmitFile(socket.native_handle(), - file.native_handle(), 0, 0, overlapped.get(), 0, 0); - DWORD last_error = ::GetLastError(); - - // Check if the operation completed immediately. - if (!ok && last_error != ERROR_IO_PENDING) - { - // The operation completed immediately, so a completion notification needs - // to be posted. When complete() is called, ownership of the OVERLAPPED- - // derived object passes to the io_context. - asio::error_code ec(last_error, - asio::error::get_system_category()); - overlapped.complete(ec, 0); - } - else - { - // The operation was successfully initiated, so ownership of the - // OVERLAPPED-derived object has passed to the io_context. - overlapped.release(); - } -} - -class connection - : public boost::enable_shared_from_this -{ -public: - typedef boost::shared_ptr pointer; - - static pointer create(asio::io_context& io_context, - const std::string& filename) - { - return pointer(new connection(io_context, filename)); - } - - tcp::socket& socket() - { - return socket_; - } - - void start() - { - asio::error_code ec; - file_.assign(::CreateFile(filename_.c_str(), GENERIC_READ, 0, 0, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 0), ec); - if (file_.is_open()) - { - transmit_file(socket_, file_, - boost::bind(&connection::handle_write, shared_from_this(), - asio::placeholders::error, - asio::placeholders::bytes_transferred)); - } - } - -private: - connection(asio::io_context& io_context, const std::string& filename) - : socket_(io_context), - filename_(filename), - file_(io_context) - { - } - - void handle_write(const asio::error_code& /*error*/, - size_t /*bytes_transferred*/) - { - asio::error_code ignored_ec; - socket_.shutdown(tcp::socket::shutdown_both, ignored_ec); - } - - tcp::socket socket_; - std::string filename_; - random_access_handle file_; -}; - -class server -{ -public: - server(asio::io_context& io_context, - unsigned short port, const std::string& filename) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - filename_(filename) - { - start_accept(); - } - -private: - void start_accept() - { - connection::pointer new_connection = - connection::create(acceptor_.get_executor().context(), filename_); - - acceptor_.async_accept(new_connection->socket(), - boost::bind(&server::handle_accept, this, new_connection, - asio::placeholders::error)); - } - - void handle_accept(connection::pointer new_connection, - const asio::error_code& error) - { - if (!error) - { - new_connection->start(); - } - - start_accept(); - } - - tcp::acceptor acceptor_; - std::string filename_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: transmit_file \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1]), argv[2]); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} - -#else // defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) -# error Overlapped I/O not available on this platform -#endif // defined(ASIO_HAS_WINDOWS_OVERLAPPED_PTR) diff --git a/Sources/Vendor/asio/src/examples/cpp11/Makefile.am b/Sources/Vendor/asio/src/examples/cpp11/Makefile.am deleted file mode 100644 index 42e2ba4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/Makefile.am +++ /dev/null @@ -1,155 +0,0 @@ -AUTOMAKE_OPTIONS = subdir-objects - -if SEPARATE_COMPILATION -noinst_LIBRARIES = libasio.a -libasio_a_SOURCES = ../../asio.cpp -if HAVE_OPENSSL -libasio_a_SOURCES += ../../asio_ssl.cpp -endif -LDADD = libasio.a -endif - -noinst_PROGRAMS = \ - allocation/server \ - buffers/reference_counted \ - chat/chat_client \ - chat/chat_server \ - echo/async_tcp_echo_server \ - echo/async_udp_echo_server \ - echo/blocking_tcp_echo_client \ - echo/blocking_tcp_echo_server \ - echo/blocking_udp_echo_client \ - echo/blocking_udp_echo_server \ - executors/actor \ - executors/bank_account_1 \ - executors/bank_account_2 \ - executors/fork_join \ - executors/pipeline \ - executors/priority_scheduler \ - futures/daytime_client \ - http/server/http_server \ - invocation/prioritised_handlers \ - iostreams/http_client \ - multicast/receiver \ - multicast/sender \ - nonblocking/third_party_lib \ - operations/composed_1 \ - operations/composed_2 \ - operations/composed_3 \ - operations/composed_4 \ - operations/composed_5 \ - socks4/sync_client \ - timeouts/async_tcp_client \ - timeouts/blocking_tcp_client \ - timeouts/blocking_token_tcp_client \ - timeouts/blocking_udp_client \ - timeouts/server \ - timers/time_t_timer - -if !WINDOWS_TARGET -noinst_PROGRAMS += \ - fork/daemon \ - fork/process_per_connection \ - local/connect_pair \ - local/iostream_client \ - local/stream_server \ - local/stream_client -endif - -if HAVE_OPENSSL -noinst_PROGRAMS += \ - ssl/client \ - ssl/server -endif - -if HAVE_BOOST_COROUTINE -noinst_PROGRAMS += \ - spawn/echo_server \ - spawn/parallel_grep -endif - -noinst_HEADERS = \ - socks4/socks4.hpp \ - chat/chat_message.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../../include - -allocation_server_SOURCES = allocation/server.cpp -buffers_reference_counted_SOURCES = buffers/reference_counted.cpp -chat_chat_client_SOURCES = chat/chat_client.cpp -chat_chat_server_SOURCES = chat/chat_server.cpp -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -executors_actor_SOURCES = executors/actor.cpp -executors_bank_account_1_SOURCES = executors/bank_account_1.cpp -executors_bank_account_2_SOURCES = executors/bank_account_2.cpp -executors_fork_join_SOURCES = executors/fork_join.cpp -executors_pipeline_SOURCES = executors/pipeline.cpp -executors_priority_scheduler_SOURCES = executors/priority_scheduler.cpp -futures_daytime_client_SOURCES = futures/daytime_client.cpp -http_server_http_server_SOURCES = \ - http/server/connection.cpp \ - http/server/connection_manager.cpp \ - http/server/main.cpp \ - http/server/mime_types.cpp \ - http/server/reply.cpp \ - http/server/request_handler.cpp \ - http/server/request_parser.cpp \ - http/server/server.cpp -invocation_prioritised_handlers_SOURCES = invocation/prioritised_handlers.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -multicast_receiver_SOURCES = multicast/receiver.cpp -multicast_sender_SOURCES = multicast/sender.cpp -nonblocking_third_party_lib_SOURCES = nonblocking/third_party_lib.cpp -operations_composed_1_SOURCES = operations/composed_1.cpp -operations_composed_2_SOURCES = operations/composed_2.cpp -operations_composed_3_SOURCES = operations/composed_3.cpp -operations_composed_4_SOURCES = operations/composed_4.cpp -operations_composed_5_SOURCES = operations/composed_5.cpp -socks4_sync_client_SOURCES = socks4/sync_client.cpp -timeouts_async_tcp_client_SOURCES = timeouts/async_tcp_client.cpp -timeouts_blocking_tcp_client_SOURCES = timeouts/blocking_tcp_client.cpp -timeouts_blocking_token_tcp_client_SOURCES = timeouts/blocking_token_tcp_client.cpp -timeouts_blocking_udp_client_SOURCES = timeouts/blocking_udp_client.cpp -timeouts_server_SOURCES = timeouts/server.cpp -timers_time_t_timer_SOURCES = timers/time_t_timer.cpp - -if !WINDOWS_TARGET -fork_daemon_SOURCES = fork/daemon.cpp -fork_process_per_connection_SOURCES = fork/process_per_connection.cpp -local_connect_pair_SOURCES = local/connect_pair.cpp -local_iostream_client_SOURCES = local/iostream_client.cpp -local_stream_server_SOURCES = local/stream_server.cpp -local_stream_client_SOURCES = local/stream_client.cpp -endif - -if HAVE_OPENSSL -ssl_client_SOURCES = ssl/client.cpp -ssl_server_SOURCES = ssl/server.cpp -endif - -if HAVE_BOOST_COROUTINE -spawn_echo_server_SOURCES = spawn/echo_server.cpp -spawn_echo_server_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -spawn_parallel_grep_SOURCES = spawn/parallel_grep.cpp -spawn_parallel_grep_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -endif - -EXTRA_DIST = \ - handler_tracking/custom_tracking.hpp \ - http/server/connection.hpp \ - http/server/connection_manager.hpp \ - http/server/header.hpp \ - http/server/mime_types.hpp \ - http/server/reply.hpp \ - http/server/request.hpp \ - http/server/request_handler.hpp \ - http/server/request_parser.hpp \ - http/server/server.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/examples/cpp11/Makefile.in b/Sources/Vendor/asio/src/examples/cpp11/Makefile.in deleted file mode 100644 index 3f91616..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/Makefile.in +++ /dev/null @@ -1,1715 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../../asio_ssl.cpp -noinst_PROGRAMS = allocation/server$(EXEEXT) \ - buffers/reference_counted$(EXEEXT) chat/chat_client$(EXEEXT) \ - chat/chat_server$(EXEEXT) echo/async_tcp_echo_server$(EXEEXT) \ - echo/async_udp_echo_server$(EXEEXT) \ - echo/blocking_tcp_echo_client$(EXEEXT) \ - echo/blocking_tcp_echo_server$(EXEEXT) \ - echo/blocking_udp_echo_client$(EXEEXT) \ - echo/blocking_udp_echo_server$(EXEEXT) \ - executors/actor$(EXEEXT) executors/bank_account_1$(EXEEXT) \ - executors/bank_account_2$(EXEEXT) executors/fork_join$(EXEEXT) \ - executors/pipeline$(EXEEXT) \ - executors/priority_scheduler$(EXEEXT) \ - futures/daytime_client$(EXEEXT) \ - http/server/http_server$(EXEEXT) \ - invocation/prioritised_handlers$(EXEEXT) \ - iostreams/http_client$(EXEEXT) multicast/receiver$(EXEEXT) \ - multicast/sender$(EXEEXT) nonblocking/third_party_lib$(EXEEXT) \ - operations/composed_1$(EXEEXT) operations/composed_2$(EXEEXT) \ - operations/composed_3$(EXEEXT) operations/composed_4$(EXEEXT) \ - operations/composed_5$(EXEEXT) socks4/sync_client$(EXEEXT) \ - timeouts/async_tcp_client$(EXEEXT) \ - timeouts/blocking_tcp_client$(EXEEXT) \ - timeouts/blocking_token_tcp_client$(EXEEXT) \ - timeouts/blocking_udp_client$(EXEEXT) timeouts/server$(EXEEXT) \ - timers/time_t_timer$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ - $(am__EXEEXT_3) -@WINDOWS_TARGET_FALSE@am__append_2 = \ -@WINDOWS_TARGET_FALSE@ fork/daemon \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection \ -@WINDOWS_TARGET_FALSE@ local/connect_pair \ -@WINDOWS_TARGET_FALSE@ local/iostream_client \ -@WINDOWS_TARGET_FALSE@ local/stream_server \ -@WINDOWS_TARGET_FALSE@ local/stream_client - -@HAVE_OPENSSL_TRUE@am__append_3 = \ -@HAVE_OPENSSL_TRUE@ ssl/client \ -@HAVE_OPENSSL_TRUE@ ssl/server - -@HAVE_BOOST_COROUTINE_TRUE@am__append_4 = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/echo_server \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep - -subdir = src/examples/cpp11 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -@WINDOWS_TARGET_FALSE@am__EXEEXT_1 = fork/daemon$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/connect_pair$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/iostream_client$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/stream_server$(EXEEXT) \ -@WINDOWS_TARGET_FALSE@ local/stream_client$(EXEEXT) -@HAVE_OPENSSL_TRUE@am__EXEEXT_2 = ssl/client$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ ssl/server$(EXEEXT) -@HAVE_BOOST_COROUTINE_TRUE@am__EXEEXT_3 = spawn/echo_server$(EXEEXT) \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libasio_a_AR = $(AR) $(ARFLAGS) -libasio_a_LIBADD = -am__libasio_a_SOURCES_DIST = ../../asio.cpp ../../asio_ssl.cpp -am__dirstamp = $(am__leading_dot)dirstamp -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__objects_1 = ../../asio_ssl.$(OBJEXT) -@SEPARATE_COMPILATION_TRUE@am_libasio_a_OBJECTS = \ -@SEPARATE_COMPILATION_TRUE@ ../../asio.$(OBJEXT) \ -@SEPARATE_COMPILATION_TRUE@ $(am__objects_1) -libasio_a_OBJECTS = $(am_libasio_a_OBJECTS) -am_allocation_server_OBJECTS = allocation/server.$(OBJEXT) -allocation_server_OBJECTS = $(am_allocation_server_OBJECTS) -allocation_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@allocation_server_DEPENDENCIES = libasio.a -am_buffers_reference_counted_OBJECTS = \ - buffers/reference_counted.$(OBJEXT) -buffers_reference_counted_OBJECTS = \ - $(am_buffers_reference_counted_OBJECTS) -buffers_reference_counted_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@buffers_reference_counted_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_chat_chat_client_OBJECTS = chat/chat_client.$(OBJEXT) -chat_chat_client_OBJECTS = $(am_chat_chat_client_OBJECTS) -chat_chat_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_chat_client_DEPENDENCIES = libasio.a -am_chat_chat_server_OBJECTS = chat/chat_server.$(OBJEXT) -chat_chat_server_OBJECTS = $(am_chat_chat_server_OBJECTS) -chat_chat_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@chat_chat_server_DEPENDENCIES = libasio.a -am_echo_async_tcp_echo_server_OBJECTS = \ - echo/async_tcp_echo_server.$(OBJEXT) -echo_async_tcp_echo_server_OBJECTS = \ - $(am_echo_async_tcp_echo_server_OBJECTS) -echo_async_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_async_udp_echo_server_OBJECTS = \ - echo/async_udp_echo_server.$(OBJEXT) -echo_async_udp_echo_server_OBJECTS = \ - $(am_echo_async_udp_echo_server_OBJECTS) -echo_async_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_client_OBJECTS = \ - echo/blocking_tcp_echo_client.$(OBJEXT) -echo_blocking_tcp_echo_client_OBJECTS = \ - $(am_echo_blocking_tcp_echo_client_OBJECTS) -echo_blocking_tcp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_server_OBJECTS = \ - echo/blocking_tcp_echo_server.$(OBJEXT) -echo_blocking_tcp_echo_server_OBJECTS = \ - $(am_echo_blocking_tcp_echo_server_OBJECTS) -echo_blocking_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_client_OBJECTS = \ - echo/blocking_udp_echo_client.$(OBJEXT) -echo_blocking_udp_echo_client_OBJECTS = \ - $(am_echo_blocking_udp_echo_client_OBJECTS) -echo_blocking_udp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_server_OBJECTS = \ - echo/blocking_udp_echo_server.$(OBJEXT) -echo_blocking_udp_echo_server_OBJECTS = \ - $(am_echo_blocking_udp_echo_server_OBJECTS) -echo_blocking_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_actor_OBJECTS = executors/actor.$(OBJEXT) -executors_actor_OBJECTS = $(am_executors_actor_OBJECTS) -executors_actor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_actor_DEPENDENCIES = libasio.a -am_executors_bank_account_1_OBJECTS = \ - executors/bank_account_1.$(OBJEXT) -executors_bank_account_1_OBJECTS = \ - $(am_executors_bank_account_1_OBJECTS) -executors_bank_account_1_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_bank_account_1_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_bank_account_2_OBJECTS = \ - executors/bank_account_2.$(OBJEXT) -executors_bank_account_2_OBJECTS = \ - $(am_executors_bank_account_2_OBJECTS) -executors_bank_account_2_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_bank_account_2_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_fork_join_OBJECTS = executors/fork_join.$(OBJEXT) -executors_fork_join_OBJECTS = $(am_executors_fork_join_OBJECTS) -executors_fork_join_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_fork_join_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_pipeline_OBJECTS = executors/pipeline.$(OBJEXT) -executors_pipeline_OBJECTS = $(am_executors_pipeline_OBJECTS) -executors_pipeline_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_pipeline_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_priority_scheduler_OBJECTS = \ - executors/priority_scheduler.$(OBJEXT) -executors_priority_scheduler_OBJECTS = \ - $(am_executors_priority_scheduler_OBJECTS) -executors_priority_scheduler_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_priority_scheduler_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__fork_daemon_SOURCES_DIST = fork/daemon.cpp -@WINDOWS_TARGET_FALSE@am_fork_daemon_OBJECTS = fork/daemon.$(OBJEXT) -fork_daemon_OBJECTS = $(am_fork_daemon_OBJECTS) -fork_daemon_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@fork_daemon_DEPENDENCIES = libasio.a -am__fork_process_per_connection_SOURCES_DIST = \ - fork/process_per_connection.cpp -@WINDOWS_TARGET_FALSE@am_fork_process_per_connection_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ fork/process_per_connection.$(OBJEXT) -fork_process_per_connection_OBJECTS = \ - $(am_fork_process_per_connection_OBJECTS) -fork_process_per_connection_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@fork_process_per_connection_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_futures_daytime_client_OBJECTS = futures/daytime_client.$(OBJEXT) -futures_daytime_client_OBJECTS = $(am_futures_daytime_client_OBJECTS) -futures_daytime_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@futures_daytime_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_http_server_http_server_OBJECTS = http/server/connection.$(OBJEXT) \ - http/server/connection_manager.$(OBJEXT) \ - http/server/main.$(OBJEXT) http/server/mime_types.$(OBJEXT) \ - http/server/reply.$(OBJEXT) \ - http/server/request_handler.$(OBJEXT) \ - http/server/request_parser.$(OBJEXT) \ - http/server/server.$(OBJEXT) -http_server_http_server_OBJECTS = \ - $(am_http_server_http_server_OBJECTS) -http_server_http_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@http_server_http_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_invocation_prioritised_handlers_OBJECTS = \ - invocation/prioritised_handlers.$(OBJEXT) -invocation_prioritised_handlers_OBJECTS = \ - $(am_invocation_prioritised_handlers_OBJECTS) -invocation_prioritised_handlers_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@invocation_prioritised_handlers_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_http_client_OBJECTS = iostreams/http_client.$(OBJEXT) -iostreams_http_client_OBJECTS = $(am_iostreams_http_client_OBJECTS) -iostreams_http_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_http_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_connect_pair_SOURCES_DIST = local/connect_pair.cpp -@WINDOWS_TARGET_FALSE@am_local_connect_pair_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/connect_pair.$(OBJEXT) -local_connect_pair_OBJECTS = $(am_local_connect_pair_OBJECTS) -local_connect_pair_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_connect_pair_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_iostream_client_SOURCES_DIST = local/iostream_client.cpp -@WINDOWS_TARGET_FALSE@am_local_iostream_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/iostream_client.$(OBJEXT) -local_iostream_client_OBJECTS = $(am_local_iostream_client_OBJECTS) -local_iostream_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_iostream_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_stream_client_SOURCES_DIST = local/stream_client.cpp -@WINDOWS_TARGET_FALSE@am_local_stream_client_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/stream_client.$(OBJEXT) -local_stream_client_OBJECTS = $(am_local_stream_client_OBJECTS) -local_stream_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_stream_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__local_stream_server_SOURCES_DIST = local/stream_server.cpp -@WINDOWS_TARGET_FALSE@am_local_stream_server_OBJECTS = \ -@WINDOWS_TARGET_FALSE@ local/stream_server.$(OBJEXT) -local_stream_server_OBJECTS = $(am_local_stream_server_OBJECTS) -local_stream_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@local_stream_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_multicast_receiver_OBJECTS = multicast/receiver.$(OBJEXT) -multicast_receiver_OBJECTS = $(am_multicast_receiver_OBJECTS) -multicast_receiver_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@multicast_receiver_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_multicast_sender_OBJECTS = multicast/sender.$(OBJEXT) -multicast_sender_OBJECTS = $(am_multicast_sender_OBJECTS) -multicast_sender_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@multicast_sender_DEPENDENCIES = libasio.a -am_nonblocking_third_party_lib_OBJECTS = \ - nonblocking/third_party_lib.$(OBJEXT) -nonblocking_third_party_lib_OBJECTS = \ - $(am_nonblocking_third_party_lib_OBJECTS) -nonblocking_third_party_lib_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@nonblocking_third_party_lib_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_1_OBJECTS = operations/composed_1.$(OBJEXT) -operations_composed_1_OBJECTS = $(am_operations_composed_1_OBJECTS) -operations_composed_1_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_1_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_2_OBJECTS = operations/composed_2.$(OBJEXT) -operations_composed_2_OBJECTS = $(am_operations_composed_2_OBJECTS) -operations_composed_2_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_2_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_3_OBJECTS = operations/composed_3.$(OBJEXT) -operations_composed_3_OBJECTS = $(am_operations_composed_3_OBJECTS) -operations_composed_3_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_3_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_4_OBJECTS = operations/composed_4.$(OBJEXT) -operations_composed_4_OBJECTS = $(am_operations_composed_4_OBJECTS) -operations_composed_4_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_4_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_operations_composed_5_OBJECTS = operations/composed_5.$(OBJEXT) -operations_composed_5_OBJECTS = $(am_operations_composed_5_OBJECTS) -operations_composed_5_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@operations_composed_5_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_socks4_sync_client_OBJECTS = socks4/sync_client.$(OBJEXT) -socks4_sync_client_OBJECTS = $(am_socks4_sync_client_OBJECTS) -socks4_sync_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@socks4_sync_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__spawn_echo_server_SOURCES_DIST = spawn/echo_server.cpp -@HAVE_BOOST_COROUTINE_TRUE@am_spawn_echo_server_OBJECTS = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/echo_server.$(OBJEXT) -spawn_echo_server_OBJECTS = $(am_spawn_echo_server_OBJECTS) -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_DEPENDENCIES = $(LDADD) -am__spawn_parallel_grep_SOURCES_DIST = spawn/parallel_grep.cpp -@HAVE_BOOST_COROUTINE_TRUE@am_spawn_parallel_grep_OBJECTS = \ -@HAVE_BOOST_COROUTINE_TRUE@ spawn/parallel_grep.$(OBJEXT) -spawn_parallel_grep_OBJECTS = $(am_spawn_parallel_grep_OBJECTS) -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_DEPENDENCIES = \ -@HAVE_BOOST_COROUTINE_TRUE@ $(LDADD) -am__ssl_client_SOURCES_DIST = ssl/client.cpp -@HAVE_OPENSSL_TRUE@am_ssl_client_OBJECTS = ssl/client.$(OBJEXT) -ssl_client_OBJECTS = $(am_ssl_client_OBJECTS) -ssl_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@ssl_client_DEPENDENCIES = libasio.a -am__ssl_server_SOURCES_DIST = ssl/server.cpp -@HAVE_OPENSSL_TRUE@am_ssl_server_OBJECTS = ssl/server.$(OBJEXT) -ssl_server_OBJECTS = $(am_ssl_server_OBJECTS) -ssl_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@ssl_server_DEPENDENCIES = libasio.a -am_timeouts_async_tcp_client_OBJECTS = \ - timeouts/async_tcp_client.$(OBJEXT) -timeouts_async_tcp_client_OBJECTS = \ - $(am_timeouts_async_tcp_client_OBJECTS) -timeouts_async_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_async_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_tcp_client_OBJECTS = \ - timeouts/blocking_tcp_client.$(OBJEXT) -timeouts_blocking_tcp_client_OBJECTS = \ - $(am_timeouts_blocking_tcp_client_OBJECTS) -timeouts_blocking_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_token_tcp_client_OBJECTS = \ - timeouts/blocking_token_tcp_client.$(OBJEXT) -timeouts_blocking_token_tcp_client_OBJECTS = \ - $(am_timeouts_blocking_token_tcp_client_OBJECTS) -timeouts_blocking_token_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_token_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_blocking_udp_client_OBJECTS = \ - timeouts/blocking_udp_client.$(OBJEXT) -timeouts_blocking_udp_client_OBJECTS = \ - $(am_timeouts_blocking_udp_client_OBJECTS) -timeouts_blocking_udp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_blocking_udp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_timeouts_server_OBJECTS = timeouts/server.$(OBJEXT) -timeouts_server_OBJECTS = $(am_timeouts_server_OBJECTS) -timeouts_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timeouts_server_DEPENDENCIES = libasio.a -am_timers_time_t_timer_OBJECTS = timers/time_t_timer.$(OBJEXT) -timers_time_t_timer_OBJECTS = $(am_timers_time_t_timer_OBJECTS) -timers_time_t_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@timers_time_t_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../../$(DEPDIR)/asio.Po \ - ../../$(DEPDIR)/asio_ssl.Po allocation/$(DEPDIR)/server.Po \ - buffers/$(DEPDIR)/reference_counted.Po \ - chat/$(DEPDIR)/chat_client.Po chat/$(DEPDIR)/chat_server.Po \ - echo/$(DEPDIR)/async_tcp_echo_server.Po \ - echo/$(DEPDIR)/async_udp_echo_server.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_client.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_server.Po \ - echo/$(DEPDIR)/blocking_udp_echo_client.Po \ - echo/$(DEPDIR)/blocking_udp_echo_server.Po \ - executors/$(DEPDIR)/actor.Po \ - executors/$(DEPDIR)/bank_account_1.Po \ - executors/$(DEPDIR)/bank_account_2.Po \ - executors/$(DEPDIR)/fork_join.Po \ - executors/$(DEPDIR)/pipeline.Po \ - executors/$(DEPDIR)/priority_scheduler.Po \ - fork/$(DEPDIR)/daemon.Po \ - fork/$(DEPDIR)/process_per_connection.Po \ - futures/$(DEPDIR)/daytime_client.Po \ - http/server/$(DEPDIR)/connection.Po \ - http/server/$(DEPDIR)/connection_manager.Po \ - http/server/$(DEPDIR)/main.Po \ - http/server/$(DEPDIR)/mime_types.Po \ - http/server/$(DEPDIR)/reply.Po \ - http/server/$(DEPDIR)/request_handler.Po \ - http/server/$(DEPDIR)/request_parser.Po \ - http/server/$(DEPDIR)/server.Po \ - invocation/$(DEPDIR)/prioritised_handlers.Po \ - iostreams/$(DEPDIR)/http_client.Po \ - local/$(DEPDIR)/connect_pair.Po \ - local/$(DEPDIR)/iostream_client.Po \ - local/$(DEPDIR)/stream_client.Po \ - local/$(DEPDIR)/stream_server.Po \ - multicast/$(DEPDIR)/receiver.Po multicast/$(DEPDIR)/sender.Po \ - nonblocking/$(DEPDIR)/third_party_lib.Po \ - operations/$(DEPDIR)/composed_1.Po \ - operations/$(DEPDIR)/composed_2.Po \ - operations/$(DEPDIR)/composed_3.Po \ - operations/$(DEPDIR)/composed_4.Po \ - operations/$(DEPDIR)/composed_5.Po \ - socks4/$(DEPDIR)/sync_client.Po spawn/$(DEPDIR)/echo_server.Po \ - spawn/$(DEPDIR)/parallel_grep.Po ssl/$(DEPDIR)/client.Po \ - ssl/$(DEPDIR)/server.Po timeouts/$(DEPDIR)/async_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_token_tcp_client.Po \ - timeouts/$(DEPDIR)/blocking_udp_client.Po \ - timeouts/$(DEPDIR)/server.Po timers/$(DEPDIR)/time_t_timer.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -SOURCES = $(libasio_a_SOURCES) $(allocation_server_SOURCES) \ - $(buffers_reference_counted_SOURCES) \ - $(chat_chat_client_SOURCES) $(chat_chat_server_SOURCES) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(executors_actor_SOURCES) $(executors_bank_account_1_SOURCES) \ - $(executors_bank_account_2_SOURCES) \ - $(executors_fork_join_SOURCES) $(executors_pipeline_SOURCES) \ - $(executors_priority_scheduler_SOURCES) $(fork_daemon_SOURCES) \ - $(fork_process_per_connection_SOURCES) \ - $(futures_daytime_client_SOURCES) \ - $(http_server_http_server_SOURCES) \ - $(invocation_prioritised_handlers_SOURCES) \ - $(iostreams_http_client_SOURCES) $(local_connect_pair_SOURCES) \ - $(local_iostream_client_SOURCES) \ - $(local_stream_client_SOURCES) $(local_stream_server_SOURCES) \ - $(multicast_receiver_SOURCES) $(multicast_sender_SOURCES) \ - $(nonblocking_third_party_lib_SOURCES) \ - $(operations_composed_1_SOURCES) \ - $(operations_composed_2_SOURCES) \ - $(operations_composed_3_SOURCES) \ - $(operations_composed_4_SOURCES) \ - $(operations_composed_5_SOURCES) $(socks4_sync_client_SOURCES) \ - $(spawn_echo_server_SOURCES) $(spawn_parallel_grep_SOURCES) \ - $(ssl_client_SOURCES) $(ssl_server_SOURCES) \ - $(timeouts_async_tcp_client_SOURCES) \ - $(timeouts_blocking_tcp_client_SOURCES) \ - $(timeouts_blocking_token_tcp_client_SOURCES) \ - $(timeouts_blocking_udp_client_SOURCES) \ - $(timeouts_server_SOURCES) $(timers_time_t_timer_SOURCES) -DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ - $(allocation_server_SOURCES) \ - $(buffers_reference_counted_SOURCES) \ - $(chat_chat_client_SOURCES) $(chat_chat_server_SOURCES) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(executors_actor_SOURCES) $(executors_bank_account_1_SOURCES) \ - $(executors_bank_account_2_SOURCES) \ - $(executors_fork_join_SOURCES) $(executors_pipeline_SOURCES) \ - $(executors_priority_scheduler_SOURCES) \ - $(am__fork_daemon_SOURCES_DIST) \ - $(am__fork_process_per_connection_SOURCES_DIST) \ - $(futures_daytime_client_SOURCES) \ - $(http_server_http_server_SOURCES) \ - $(invocation_prioritised_handlers_SOURCES) \ - $(iostreams_http_client_SOURCES) \ - $(am__local_connect_pair_SOURCES_DIST) \ - $(am__local_iostream_client_SOURCES_DIST) \ - $(am__local_stream_client_SOURCES_DIST) \ - $(am__local_stream_server_SOURCES_DIST) \ - $(multicast_receiver_SOURCES) $(multicast_sender_SOURCES) \ - $(nonblocking_third_party_lib_SOURCES) \ - $(operations_composed_1_SOURCES) \ - $(operations_composed_2_SOURCES) \ - $(operations_composed_3_SOURCES) \ - $(operations_composed_4_SOURCES) \ - $(operations_composed_5_SOURCES) $(socks4_sync_client_SOURCES) \ - $(am__spawn_echo_server_SOURCES_DIST) \ - $(am__spawn_parallel_grep_SOURCES_DIST) \ - $(am__ssl_client_SOURCES_DIST) $(am__ssl_server_SOURCES_DIST) \ - $(timeouts_async_tcp_client_SOURCES) \ - $(timeouts_blocking_tcp_client_SOURCES) \ - $(timeouts_blocking_token_tcp_client_SOURCES) \ - $(timeouts_blocking_udp_client_SOURCES) \ - $(timeouts_server_SOURCES) $(timers_time_t_timer_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -@SEPARATE_COMPILATION_TRUE@noinst_LIBRARIES = libasio.a -@SEPARATE_COMPILATION_TRUE@libasio_a_SOURCES = ../../asio.cpp \ -@SEPARATE_COMPILATION_TRUE@ $(am__append_1) -@SEPARATE_COMPILATION_TRUE@LDADD = libasio.a -noinst_HEADERS = \ - socks4/socks4.hpp \ - chat/chat_message.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../../include -allocation_server_SOURCES = allocation/server.cpp -buffers_reference_counted_SOURCES = buffers/reference_counted.cpp -chat_chat_client_SOURCES = chat/chat_client.cpp -chat_chat_server_SOURCES = chat/chat_server.cpp -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -executors_actor_SOURCES = executors/actor.cpp -executors_bank_account_1_SOURCES = executors/bank_account_1.cpp -executors_bank_account_2_SOURCES = executors/bank_account_2.cpp -executors_fork_join_SOURCES = executors/fork_join.cpp -executors_pipeline_SOURCES = executors/pipeline.cpp -executors_priority_scheduler_SOURCES = executors/priority_scheduler.cpp -futures_daytime_client_SOURCES = futures/daytime_client.cpp -http_server_http_server_SOURCES = \ - http/server/connection.cpp \ - http/server/connection_manager.cpp \ - http/server/main.cpp \ - http/server/mime_types.cpp \ - http/server/reply.cpp \ - http/server/request_handler.cpp \ - http/server/request_parser.cpp \ - http/server/server.cpp - -invocation_prioritised_handlers_SOURCES = invocation/prioritised_handlers.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -multicast_receiver_SOURCES = multicast/receiver.cpp -multicast_sender_SOURCES = multicast/sender.cpp -nonblocking_third_party_lib_SOURCES = nonblocking/third_party_lib.cpp -operations_composed_1_SOURCES = operations/composed_1.cpp -operations_composed_2_SOURCES = operations/composed_2.cpp -operations_composed_3_SOURCES = operations/composed_3.cpp -operations_composed_4_SOURCES = operations/composed_4.cpp -operations_composed_5_SOURCES = operations/composed_5.cpp -socks4_sync_client_SOURCES = socks4/sync_client.cpp -timeouts_async_tcp_client_SOURCES = timeouts/async_tcp_client.cpp -timeouts_blocking_tcp_client_SOURCES = timeouts/blocking_tcp_client.cpp -timeouts_blocking_token_tcp_client_SOURCES = timeouts/blocking_token_tcp_client.cpp -timeouts_blocking_udp_client_SOURCES = timeouts/blocking_udp_client.cpp -timeouts_server_SOURCES = timeouts/server.cpp -timers_time_t_timer_SOURCES = timers/time_t_timer.cpp -@WINDOWS_TARGET_FALSE@fork_daemon_SOURCES = fork/daemon.cpp -@WINDOWS_TARGET_FALSE@fork_process_per_connection_SOURCES = fork/process_per_connection.cpp -@WINDOWS_TARGET_FALSE@local_connect_pair_SOURCES = local/connect_pair.cpp -@WINDOWS_TARGET_FALSE@local_iostream_client_SOURCES = local/iostream_client.cpp -@WINDOWS_TARGET_FALSE@local_stream_server_SOURCES = local/stream_server.cpp -@WINDOWS_TARGET_FALSE@local_stream_client_SOURCES = local/stream_client.cpp -@HAVE_OPENSSL_TRUE@ssl_client_SOURCES = ssl/client.cpp -@HAVE_OPENSSL_TRUE@ssl_server_SOURCES = ssl/server.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_SOURCES = spawn/echo_server.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_echo_server_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_SOURCES = spawn/parallel_grep.cpp -@HAVE_BOOST_COROUTINE_TRUE@spawn_parallel_grep_LDADD = $(LDADD) -lboost_coroutine -lboost_context -lboost_thread -lboost_chrono -lboost_system -EXTRA_DIST = \ - handler_tracking/custom_tracking.hpp \ - http/server/connection.hpp \ - http/server/connection_manager.hpp \ - http/server/header.hpp \ - http/server/mime_types.hpp \ - http/server/reply.hpp \ - http/server/request.hpp \ - http/server/request_handler.hpp \ - http/server/request_parser.hpp \ - http/server/server.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/cpp11/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/examples/cpp11/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -../../$(am__dirstamp): - @$(MKDIR_P) ../.. - @: > ../../$(am__dirstamp) -../../$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../$(DEPDIR) - @: > ../../$(DEPDIR)/$(am__dirstamp) -../../asio.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) -../../asio_ssl.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) - -libasio.a: $(libasio_a_OBJECTS) $(libasio_a_DEPENDENCIES) $(EXTRA_libasio_a_DEPENDENCIES) - $(AM_V_at)-rm -f libasio.a - $(AM_V_AR)$(libasio_a_AR) libasio.a $(libasio_a_OBJECTS) $(libasio_a_LIBADD) - $(AM_V_at)$(RANLIB) libasio.a -allocation/$(am__dirstamp): - @$(MKDIR_P) allocation - @: > allocation/$(am__dirstamp) -allocation/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) allocation/$(DEPDIR) - @: > allocation/$(DEPDIR)/$(am__dirstamp) -allocation/server.$(OBJEXT): allocation/$(am__dirstamp) \ - allocation/$(DEPDIR)/$(am__dirstamp) - -allocation/server$(EXEEXT): $(allocation_server_OBJECTS) $(allocation_server_DEPENDENCIES) $(EXTRA_allocation_server_DEPENDENCIES) allocation/$(am__dirstamp) - @rm -f allocation/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(allocation_server_OBJECTS) $(allocation_server_LDADD) $(LIBS) -buffers/$(am__dirstamp): - @$(MKDIR_P) buffers - @: > buffers/$(am__dirstamp) -buffers/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) buffers/$(DEPDIR) - @: > buffers/$(DEPDIR)/$(am__dirstamp) -buffers/reference_counted.$(OBJEXT): buffers/$(am__dirstamp) \ - buffers/$(DEPDIR)/$(am__dirstamp) - -buffers/reference_counted$(EXEEXT): $(buffers_reference_counted_OBJECTS) $(buffers_reference_counted_DEPENDENCIES) $(EXTRA_buffers_reference_counted_DEPENDENCIES) buffers/$(am__dirstamp) - @rm -f buffers/reference_counted$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(buffers_reference_counted_OBJECTS) $(buffers_reference_counted_LDADD) $(LIBS) -chat/$(am__dirstamp): - @$(MKDIR_P) chat - @: > chat/$(am__dirstamp) -chat/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) chat/$(DEPDIR) - @: > chat/$(DEPDIR)/$(am__dirstamp) -chat/chat_client.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/chat_client$(EXEEXT): $(chat_chat_client_OBJECTS) $(chat_chat_client_DEPENDENCIES) $(EXTRA_chat_chat_client_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/chat_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_chat_client_OBJECTS) $(chat_chat_client_LDADD) $(LIBS) -chat/chat_server.$(OBJEXT): chat/$(am__dirstamp) \ - chat/$(DEPDIR)/$(am__dirstamp) - -chat/chat_server$(EXEEXT): $(chat_chat_server_OBJECTS) $(chat_chat_server_DEPENDENCIES) $(EXTRA_chat_chat_server_DEPENDENCIES) chat/$(am__dirstamp) - @rm -f chat/chat_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(chat_chat_server_OBJECTS) $(chat_chat_server_LDADD) $(LIBS) -echo/$(am__dirstamp): - @$(MKDIR_P) echo - @: > echo/$(am__dirstamp) -echo/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) echo/$(DEPDIR) - @: > echo/$(DEPDIR)/$(am__dirstamp) -echo/async_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_tcp_echo_server$(EXEEXT): $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_LDADD) $(LIBS) -echo/async_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_udp_echo_server$(EXEEXT): $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_LDADD) $(LIBS) -echo/blocking_tcp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_client$(EXEEXT): $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_LDADD) $(LIBS) -echo/blocking_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_server$(EXEEXT): $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_LDADD) $(LIBS) -echo/blocking_udp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_client$(EXEEXT): $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_LDADD) $(LIBS) -echo/blocking_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_server$(EXEEXT): $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_LDADD) $(LIBS) -executors/$(am__dirstamp): - @$(MKDIR_P) executors - @: > executors/$(am__dirstamp) -executors/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) executors/$(DEPDIR) - @: > executors/$(DEPDIR)/$(am__dirstamp) -executors/actor.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/actor$(EXEEXT): $(executors_actor_OBJECTS) $(executors_actor_DEPENDENCIES) $(EXTRA_executors_actor_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/actor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_actor_OBJECTS) $(executors_actor_LDADD) $(LIBS) -executors/bank_account_1.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/bank_account_1$(EXEEXT): $(executors_bank_account_1_OBJECTS) $(executors_bank_account_1_DEPENDENCIES) $(EXTRA_executors_bank_account_1_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/bank_account_1$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_bank_account_1_OBJECTS) $(executors_bank_account_1_LDADD) $(LIBS) -executors/bank_account_2.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/bank_account_2$(EXEEXT): $(executors_bank_account_2_OBJECTS) $(executors_bank_account_2_DEPENDENCIES) $(EXTRA_executors_bank_account_2_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/bank_account_2$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_bank_account_2_OBJECTS) $(executors_bank_account_2_LDADD) $(LIBS) -executors/fork_join.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/fork_join$(EXEEXT): $(executors_fork_join_OBJECTS) $(executors_fork_join_DEPENDENCIES) $(EXTRA_executors_fork_join_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/fork_join$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_fork_join_OBJECTS) $(executors_fork_join_LDADD) $(LIBS) -executors/pipeline.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/pipeline$(EXEEXT): $(executors_pipeline_OBJECTS) $(executors_pipeline_DEPENDENCIES) $(EXTRA_executors_pipeline_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/pipeline$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_pipeline_OBJECTS) $(executors_pipeline_LDADD) $(LIBS) -executors/priority_scheduler.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/priority_scheduler$(EXEEXT): $(executors_priority_scheduler_OBJECTS) $(executors_priority_scheduler_DEPENDENCIES) $(EXTRA_executors_priority_scheduler_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/priority_scheduler$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_priority_scheduler_OBJECTS) $(executors_priority_scheduler_LDADD) $(LIBS) -fork/$(am__dirstamp): - @$(MKDIR_P) fork - @: > fork/$(am__dirstamp) -fork/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) fork/$(DEPDIR) - @: > fork/$(DEPDIR)/$(am__dirstamp) -fork/daemon.$(OBJEXT): fork/$(am__dirstamp) \ - fork/$(DEPDIR)/$(am__dirstamp) - -fork/daemon$(EXEEXT): $(fork_daemon_OBJECTS) $(fork_daemon_DEPENDENCIES) $(EXTRA_fork_daemon_DEPENDENCIES) fork/$(am__dirstamp) - @rm -f fork/daemon$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(fork_daemon_OBJECTS) $(fork_daemon_LDADD) $(LIBS) -fork/process_per_connection.$(OBJEXT): fork/$(am__dirstamp) \ - fork/$(DEPDIR)/$(am__dirstamp) - -fork/process_per_connection$(EXEEXT): $(fork_process_per_connection_OBJECTS) $(fork_process_per_connection_DEPENDENCIES) $(EXTRA_fork_process_per_connection_DEPENDENCIES) fork/$(am__dirstamp) - @rm -f fork/process_per_connection$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(fork_process_per_connection_OBJECTS) $(fork_process_per_connection_LDADD) $(LIBS) -futures/$(am__dirstamp): - @$(MKDIR_P) futures - @: > futures/$(am__dirstamp) -futures/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) futures/$(DEPDIR) - @: > futures/$(DEPDIR)/$(am__dirstamp) -futures/daytime_client.$(OBJEXT): futures/$(am__dirstamp) \ - futures/$(DEPDIR)/$(am__dirstamp) - -futures/daytime_client$(EXEEXT): $(futures_daytime_client_OBJECTS) $(futures_daytime_client_DEPENDENCIES) $(EXTRA_futures_daytime_client_DEPENDENCIES) futures/$(am__dirstamp) - @rm -f futures/daytime_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(futures_daytime_client_OBJECTS) $(futures_daytime_client_LDADD) $(LIBS) -http/server/$(am__dirstamp): - @$(MKDIR_P) http/server - @: > http/server/$(am__dirstamp) -http/server/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) http/server/$(DEPDIR) - @: > http/server/$(DEPDIR)/$(am__dirstamp) -http/server/connection.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/connection_manager.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/main.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/mime_types.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/reply.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/request_handler.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/request_parser.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) -http/server/server.$(OBJEXT): http/server/$(am__dirstamp) \ - http/server/$(DEPDIR)/$(am__dirstamp) - -http/server/http_server$(EXEEXT): $(http_server_http_server_OBJECTS) $(http_server_http_server_DEPENDENCIES) $(EXTRA_http_server_http_server_DEPENDENCIES) http/server/$(am__dirstamp) - @rm -f http/server/http_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(http_server_http_server_OBJECTS) $(http_server_http_server_LDADD) $(LIBS) -invocation/$(am__dirstamp): - @$(MKDIR_P) invocation - @: > invocation/$(am__dirstamp) -invocation/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) invocation/$(DEPDIR) - @: > invocation/$(DEPDIR)/$(am__dirstamp) -invocation/prioritised_handlers.$(OBJEXT): invocation/$(am__dirstamp) \ - invocation/$(DEPDIR)/$(am__dirstamp) - -invocation/prioritised_handlers$(EXEEXT): $(invocation_prioritised_handlers_OBJECTS) $(invocation_prioritised_handlers_DEPENDENCIES) $(EXTRA_invocation_prioritised_handlers_DEPENDENCIES) invocation/$(am__dirstamp) - @rm -f invocation/prioritised_handlers$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(invocation_prioritised_handlers_OBJECTS) $(invocation_prioritised_handlers_LDADD) $(LIBS) -iostreams/$(am__dirstamp): - @$(MKDIR_P) iostreams - @: > iostreams/$(am__dirstamp) -iostreams/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) iostreams/$(DEPDIR) - @: > iostreams/$(DEPDIR)/$(am__dirstamp) -iostreams/http_client.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/http_client$(EXEEXT): $(iostreams_http_client_OBJECTS) $(iostreams_http_client_DEPENDENCIES) $(EXTRA_iostreams_http_client_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/http_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_http_client_OBJECTS) $(iostreams_http_client_LDADD) $(LIBS) -local/$(am__dirstamp): - @$(MKDIR_P) local - @: > local/$(am__dirstamp) -local/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) local/$(DEPDIR) - @: > local/$(DEPDIR)/$(am__dirstamp) -local/connect_pair.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/connect_pair$(EXEEXT): $(local_connect_pair_OBJECTS) $(local_connect_pair_DEPENDENCIES) $(EXTRA_local_connect_pair_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/connect_pair$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_connect_pair_OBJECTS) $(local_connect_pair_LDADD) $(LIBS) -local/iostream_client.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/iostream_client$(EXEEXT): $(local_iostream_client_OBJECTS) $(local_iostream_client_DEPENDENCIES) $(EXTRA_local_iostream_client_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/iostream_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_iostream_client_OBJECTS) $(local_iostream_client_LDADD) $(LIBS) -local/stream_client.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/stream_client$(EXEEXT): $(local_stream_client_OBJECTS) $(local_stream_client_DEPENDENCIES) $(EXTRA_local_stream_client_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/stream_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_stream_client_OBJECTS) $(local_stream_client_LDADD) $(LIBS) -local/stream_server.$(OBJEXT): local/$(am__dirstamp) \ - local/$(DEPDIR)/$(am__dirstamp) - -local/stream_server$(EXEEXT): $(local_stream_server_OBJECTS) $(local_stream_server_DEPENDENCIES) $(EXTRA_local_stream_server_DEPENDENCIES) local/$(am__dirstamp) - @rm -f local/stream_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(local_stream_server_OBJECTS) $(local_stream_server_LDADD) $(LIBS) -multicast/$(am__dirstamp): - @$(MKDIR_P) multicast - @: > multicast/$(am__dirstamp) -multicast/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) multicast/$(DEPDIR) - @: > multicast/$(DEPDIR)/$(am__dirstamp) -multicast/receiver.$(OBJEXT): multicast/$(am__dirstamp) \ - multicast/$(DEPDIR)/$(am__dirstamp) - -multicast/receiver$(EXEEXT): $(multicast_receiver_OBJECTS) $(multicast_receiver_DEPENDENCIES) $(EXTRA_multicast_receiver_DEPENDENCIES) multicast/$(am__dirstamp) - @rm -f multicast/receiver$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(multicast_receiver_OBJECTS) $(multicast_receiver_LDADD) $(LIBS) -multicast/sender.$(OBJEXT): multicast/$(am__dirstamp) \ - multicast/$(DEPDIR)/$(am__dirstamp) - -multicast/sender$(EXEEXT): $(multicast_sender_OBJECTS) $(multicast_sender_DEPENDENCIES) $(EXTRA_multicast_sender_DEPENDENCIES) multicast/$(am__dirstamp) - @rm -f multicast/sender$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(multicast_sender_OBJECTS) $(multicast_sender_LDADD) $(LIBS) -nonblocking/$(am__dirstamp): - @$(MKDIR_P) nonblocking - @: > nonblocking/$(am__dirstamp) -nonblocking/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) nonblocking/$(DEPDIR) - @: > nonblocking/$(DEPDIR)/$(am__dirstamp) -nonblocking/third_party_lib.$(OBJEXT): nonblocking/$(am__dirstamp) \ - nonblocking/$(DEPDIR)/$(am__dirstamp) - -nonblocking/third_party_lib$(EXEEXT): $(nonblocking_third_party_lib_OBJECTS) $(nonblocking_third_party_lib_DEPENDENCIES) $(EXTRA_nonblocking_third_party_lib_DEPENDENCIES) nonblocking/$(am__dirstamp) - @rm -f nonblocking/third_party_lib$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(nonblocking_third_party_lib_OBJECTS) $(nonblocking_third_party_lib_LDADD) $(LIBS) -operations/$(am__dirstamp): - @$(MKDIR_P) operations - @: > operations/$(am__dirstamp) -operations/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) operations/$(DEPDIR) - @: > operations/$(DEPDIR)/$(am__dirstamp) -operations/composed_1.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_1$(EXEEXT): $(operations_composed_1_OBJECTS) $(operations_composed_1_DEPENDENCIES) $(EXTRA_operations_composed_1_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_1$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_1_OBJECTS) $(operations_composed_1_LDADD) $(LIBS) -operations/composed_2.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_2$(EXEEXT): $(operations_composed_2_OBJECTS) $(operations_composed_2_DEPENDENCIES) $(EXTRA_operations_composed_2_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_2$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_2_OBJECTS) $(operations_composed_2_LDADD) $(LIBS) -operations/composed_3.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_3$(EXEEXT): $(operations_composed_3_OBJECTS) $(operations_composed_3_DEPENDENCIES) $(EXTRA_operations_composed_3_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_3$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_3_OBJECTS) $(operations_composed_3_LDADD) $(LIBS) -operations/composed_4.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_4$(EXEEXT): $(operations_composed_4_OBJECTS) $(operations_composed_4_DEPENDENCIES) $(EXTRA_operations_composed_4_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_4$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_4_OBJECTS) $(operations_composed_4_LDADD) $(LIBS) -operations/composed_5.$(OBJEXT): operations/$(am__dirstamp) \ - operations/$(DEPDIR)/$(am__dirstamp) - -operations/composed_5$(EXEEXT): $(operations_composed_5_OBJECTS) $(operations_composed_5_DEPENDENCIES) $(EXTRA_operations_composed_5_DEPENDENCIES) operations/$(am__dirstamp) - @rm -f operations/composed_5$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(operations_composed_5_OBJECTS) $(operations_composed_5_LDADD) $(LIBS) -socks4/$(am__dirstamp): - @$(MKDIR_P) socks4 - @: > socks4/$(am__dirstamp) -socks4/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) socks4/$(DEPDIR) - @: > socks4/$(DEPDIR)/$(am__dirstamp) -socks4/sync_client.$(OBJEXT): socks4/$(am__dirstamp) \ - socks4/$(DEPDIR)/$(am__dirstamp) - -socks4/sync_client$(EXEEXT): $(socks4_sync_client_OBJECTS) $(socks4_sync_client_DEPENDENCIES) $(EXTRA_socks4_sync_client_DEPENDENCIES) socks4/$(am__dirstamp) - @rm -f socks4/sync_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(socks4_sync_client_OBJECTS) $(socks4_sync_client_LDADD) $(LIBS) -spawn/$(am__dirstamp): - @$(MKDIR_P) spawn - @: > spawn/$(am__dirstamp) -spawn/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) spawn/$(DEPDIR) - @: > spawn/$(DEPDIR)/$(am__dirstamp) -spawn/echo_server.$(OBJEXT): spawn/$(am__dirstamp) \ - spawn/$(DEPDIR)/$(am__dirstamp) - -spawn/echo_server$(EXEEXT): $(spawn_echo_server_OBJECTS) $(spawn_echo_server_DEPENDENCIES) $(EXTRA_spawn_echo_server_DEPENDENCIES) spawn/$(am__dirstamp) - @rm -f spawn/echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(spawn_echo_server_OBJECTS) $(spawn_echo_server_LDADD) $(LIBS) -spawn/parallel_grep.$(OBJEXT): spawn/$(am__dirstamp) \ - spawn/$(DEPDIR)/$(am__dirstamp) - -spawn/parallel_grep$(EXEEXT): $(spawn_parallel_grep_OBJECTS) $(spawn_parallel_grep_DEPENDENCIES) $(EXTRA_spawn_parallel_grep_DEPENDENCIES) spawn/$(am__dirstamp) - @rm -f spawn/parallel_grep$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(spawn_parallel_grep_OBJECTS) $(spawn_parallel_grep_LDADD) $(LIBS) -ssl/$(am__dirstamp): - @$(MKDIR_P) ssl - @: > ssl/$(am__dirstamp) -ssl/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ssl/$(DEPDIR) - @: > ssl/$(DEPDIR)/$(am__dirstamp) -ssl/client.$(OBJEXT): ssl/$(am__dirstamp) \ - ssl/$(DEPDIR)/$(am__dirstamp) - -ssl/client$(EXEEXT): $(ssl_client_OBJECTS) $(ssl_client_DEPENDENCIES) $(EXTRA_ssl_client_DEPENDENCIES) ssl/$(am__dirstamp) - @rm -f ssl/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(ssl_client_OBJECTS) $(ssl_client_LDADD) $(LIBS) -ssl/server.$(OBJEXT): ssl/$(am__dirstamp) \ - ssl/$(DEPDIR)/$(am__dirstamp) - -ssl/server$(EXEEXT): $(ssl_server_OBJECTS) $(ssl_server_DEPENDENCIES) $(EXTRA_ssl_server_DEPENDENCIES) ssl/$(am__dirstamp) - @rm -f ssl/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(ssl_server_OBJECTS) $(ssl_server_LDADD) $(LIBS) -timeouts/$(am__dirstamp): - @$(MKDIR_P) timeouts - @: > timeouts/$(am__dirstamp) -timeouts/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) timeouts/$(DEPDIR) - @: > timeouts/$(DEPDIR)/$(am__dirstamp) -timeouts/async_tcp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/async_tcp_client$(EXEEXT): $(timeouts_async_tcp_client_OBJECTS) $(timeouts_async_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_async_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/async_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_async_tcp_client_OBJECTS) $(timeouts_async_tcp_client_LDADD) $(LIBS) -timeouts/blocking_tcp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_tcp_client$(EXEEXT): $(timeouts_blocking_tcp_client_OBJECTS) $(timeouts_blocking_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_tcp_client_OBJECTS) $(timeouts_blocking_tcp_client_LDADD) $(LIBS) -timeouts/blocking_token_tcp_client.$(OBJEXT): \ - timeouts/$(am__dirstamp) timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_token_tcp_client$(EXEEXT): $(timeouts_blocking_token_tcp_client_OBJECTS) $(timeouts_blocking_token_tcp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_token_tcp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_token_tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_token_tcp_client_OBJECTS) $(timeouts_blocking_token_tcp_client_LDADD) $(LIBS) -timeouts/blocking_udp_client.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/blocking_udp_client$(EXEEXT): $(timeouts_blocking_udp_client_OBJECTS) $(timeouts_blocking_udp_client_DEPENDENCIES) $(EXTRA_timeouts_blocking_udp_client_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/blocking_udp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_blocking_udp_client_OBJECTS) $(timeouts_blocking_udp_client_LDADD) $(LIBS) -timeouts/server.$(OBJEXT): timeouts/$(am__dirstamp) \ - timeouts/$(DEPDIR)/$(am__dirstamp) - -timeouts/server$(EXEEXT): $(timeouts_server_OBJECTS) $(timeouts_server_DEPENDENCIES) $(EXTRA_timeouts_server_DEPENDENCIES) timeouts/$(am__dirstamp) - @rm -f timeouts/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timeouts_server_OBJECTS) $(timeouts_server_LDADD) $(LIBS) -timers/$(am__dirstamp): - @$(MKDIR_P) timers - @: > timers/$(am__dirstamp) -timers/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) timers/$(DEPDIR) - @: > timers/$(DEPDIR)/$(am__dirstamp) -timers/time_t_timer.$(OBJEXT): timers/$(am__dirstamp) \ - timers/$(DEPDIR)/$(am__dirstamp) - -timers/time_t_timer$(EXEEXT): $(timers_time_t_timer_OBJECTS) $(timers_time_t_timer_DEPENDENCIES) $(EXTRA_timers_time_t_timer_DEPENDENCIES) timers/$(am__dirstamp) - @rm -f timers/time_t_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(timers_time_t_timer_OBJECTS) $(timers_time_t_timer_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../../*.$(OBJEXT) - -rm -f allocation/*.$(OBJEXT) - -rm -f buffers/*.$(OBJEXT) - -rm -f chat/*.$(OBJEXT) - -rm -f echo/*.$(OBJEXT) - -rm -f executors/*.$(OBJEXT) - -rm -f fork/*.$(OBJEXT) - -rm -f futures/*.$(OBJEXT) - -rm -f http/server/*.$(OBJEXT) - -rm -f invocation/*.$(OBJEXT) - -rm -f iostreams/*.$(OBJEXT) - -rm -f local/*.$(OBJEXT) - -rm -f multicast/*.$(OBJEXT) - -rm -f nonblocking/*.$(OBJEXT) - -rm -f operations/*.$(OBJEXT) - -rm -f socks4/*.$(OBJEXT) - -rm -f spawn/*.$(OBJEXT) - -rm -f ssl/*.$(OBJEXT) - -rm -f timeouts/*.$(OBJEXT) - -rm -f timers/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio_ssl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@allocation/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@buffers/$(DEPDIR)/reference_counted.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/chat_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@chat/$(DEPDIR)/chat_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/actor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/bank_account_1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/bank_account_2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/fork_join.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/pipeline.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/priority_scheduler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@fork/$(DEPDIR)/daemon.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@fork/$(DEPDIR)/process_per_connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@futures/$(DEPDIR)/daytime_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/connection.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/connection_manager.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/main.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/mime_types.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/reply.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/request_handler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/request_parser.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@http/server/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@invocation/$(DEPDIR)/prioritised_handlers.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/http_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/connect_pair.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/iostream_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/stream_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/stream_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@multicast/$(DEPDIR)/receiver.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@multicast/$(DEPDIR)/sender.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@nonblocking/$(DEPDIR)/third_party_lib.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_3.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@operations/$(DEPDIR)/composed_5.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@socks4/$(DEPDIR)/sync_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@spawn/$(DEPDIR)/echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@spawn/$(DEPDIR)/parallel_grep.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@ssl/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@ssl/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/async_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_token_tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/blocking_udp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timeouts/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@timers/$(DEPDIR)/time_t_timer.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../$(DEPDIR)/$(am__dirstamp) - -rm -f ../../$(am__dirstamp) - -rm -f allocation/$(DEPDIR)/$(am__dirstamp) - -rm -f allocation/$(am__dirstamp) - -rm -f buffers/$(DEPDIR)/$(am__dirstamp) - -rm -f buffers/$(am__dirstamp) - -rm -f chat/$(DEPDIR)/$(am__dirstamp) - -rm -f chat/$(am__dirstamp) - -rm -f echo/$(DEPDIR)/$(am__dirstamp) - -rm -f echo/$(am__dirstamp) - -rm -f executors/$(DEPDIR)/$(am__dirstamp) - -rm -f executors/$(am__dirstamp) - -rm -f fork/$(DEPDIR)/$(am__dirstamp) - -rm -f fork/$(am__dirstamp) - -rm -f futures/$(DEPDIR)/$(am__dirstamp) - -rm -f futures/$(am__dirstamp) - -rm -f http/server/$(DEPDIR)/$(am__dirstamp) - -rm -f http/server/$(am__dirstamp) - -rm -f invocation/$(DEPDIR)/$(am__dirstamp) - -rm -f invocation/$(am__dirstamp) - -rm -f iostreams/$(DEPDIR)/$(am__dirstamp) - -rm -f iostreams/$(am__dirstamp) - -rm -f local/$(DEPDIR)/$(am__dirstamp) - -rm -f local/$(am__dirstamp) - -rm -f multicast/$(DEPDIR)/$(am__dirstamp) - -rm -f multicast/$(am__dirstamp) - -rm -f nonblocking/$(DEPDIR)/$(am__dirstamp) - -rm -f nonblocking/$(am__dirstamp) - -rm -f operations/$(DEPDIR)/$(am__dirstamp) - -rm -f operations/$(am__dirstamp) - -rm -f socks4/$(DEPDIR)/$(am__dirstamp) - -rm -f socks4/$(am__dirstamp) - -rm -f spawn/$(DEPDIR)/$(am__dirstamp) - -rm -f spawn/$(am__dirstamp) - -rm -f ssl/$(DEPDIR)/$(am__dirstamp) - -rm -f ssl/$(am__dirstamp) - -rm -f timeouts/$(DEPDIR)/$(am__dirstamp) - -rm -f timeouts/$(am__dirstamp) - -rm -f timers/$(DEPDIR)/$(am__dirstamp) - -rm -f timers/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f allocation/$(DEPDIR)/server.Po - -rm -f buffers/$(DEPDIR)/reference_counted.Po - -rm -f chat/$(DEPDIR)/chat_client.Po - -rm -f chat/$(DEPDIR)/chat_server.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f executors/$(DEPDIR)/actor.Po - -rm -f executors/$(DEPDIR)/bank_account_1.Po - -rm -f executors/$(DEPDIR)/bank_account_2.Po - -rm -f executors/$(DEPDIR)/fork_join.Po - -rm -f executors/$(DEPDIR)/pipeline.Po - -rm -f executors/$(DEPDIR)/priority_scheduler.Po - -rm -f fork/$(DEPDIR)/daemon.Po - -rm -f fork/$(DEPDIR)/process_per_connection.Po - -rm -f futures/$(DEPDIR)/daytime_client.Po - -rm -f http/server/$(DEPDIR)/connection.Po - -rm -f http/server/$(DEPDIR)/connection_manager.Po - -rm -f http/server/$(DEPDIR)/main.Po - -rm -f http/server/$(DEPDIR)/mime_types.Po - -rm -f http/server/$(DEPDIR)/reply.Po - -rm -f http/server/$(DEPDIR)/request_handler.Po - -rm -f http/server/$(DEPDIR)/request_parser.Po - -rm -f http/server/$(DEPDIR)/server.Po - -rm -f invocation/$(DEPDIR)/prioritised_handlers.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f local/$(DEPDIR)/connect_pair.Po - -rm -f local/$(DEPDIR)/iostream_client.Po - -rm -f local/$(DEPDIR)/stream_client.Po - -rm -f local/$(DEPDIR)/stream_server.Po - -rm -f multicast/$(DEPDIR)/receiver.Po - -rm -f multicast/$(DEPDIR)/sender.Po - -rm -f nonblocking/$(DEPDIR)/third_party_lib.Po - -rm -f operations/$(DEPDIR)/composed_1.Po - -rm -f operations/$(DEPDIR)/composed_2.Po - -rm -f operations/$(DEPDIR)/composed_3.Po - -rm -f operations/$(DEPDIR)/composed_4.Po - -rm -f operations/$(DEPDIR)/composed_5.Po - -rm -f socks4/$(DEPDIR)/sync_client.Po - -rm -f spawn/$(DEPDIR)/echo_server.Po - -rm -f spawn/$(DEPDIR)/parallel_grep.Po - -rm -f ssl/$(DEPDIR)/client.Po - -rm -f ssl/$(DEPDIR)/server.Po - -rm -f timeouts/$(DEPDIR)/async_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_token_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_udp_client.Po - -rm -f timeouts/$(DEPDIR)/server.Po - -rm -f timers/$(DEPDIR)/time_t_timer.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f allocation/$(DEPDIR)/server.Po - -rm -f buffers/$(DEPDIR)/reference_counted.Po - -rm -f chat/$(DEPDIR)/chat_client.Po - -rm -f chat/$(DEPDIR)/chat_server.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f executors/$(DEPDIR)/actor.Po - -rm -f executors/$(DEPDIR)/bank_account_1.Po - -rm -f executors/$(DEPDIR)/bank_account_2.Po - -rm -f executors/$(DEPDIR)/fork_join.Po - -rm -f executors/$(DEPDIR)/pipeline.Po - -rm -f executors/$(DEPDIR)/priority_scheduler.Po - -rm -f fork/$(DEPDIR)/daemon.Po - -rm -f fork/$(DEPDIR)/process_per_connection.Po - -rm -f futures/$(DEPDIR)/daytime_client.Po - -rm -f http/server/$(DEPDIR)/connection.Po - -rm -f http/server/$(DEPDIR)/connection_manager.Po - -rm -f http/server/$(DEPDIR)/main.Po - -rm -f http/server/$(DEPDIR)/mime_types.Po - -rm -f http/server/$(DEPDIR)/reply.Po - -rm -f http/server/$(DEPDIR)/request_handler.Po - -rm -f http/server/$(DEPDIR)/request_parser.Po - -rm -f http/server/$(DEPDIR)/server.Po - -rm -f invocation/$(DEPDIR)/prioritised_handlers.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f local/$(DEPDIR)/connect_pair.Po - -rm -f local/$(DEPDIR)/iostream_client.Po - -rm -f local/$(DEPDIR)/stream_client.Po - -rm -f local/$(DEPDIR)/stream_server.Po - -rm -f multicast/$(DEPDIR)/receiver.Po - -rm -f multicast/$(DEPDIR)/sender.Po - -rm -f nonblocking/$(DEPDIR)/third_party_lib.Po - -rm -f operations/$(DEPDIR)/composed_1.Po - -rm -f operations/$(DEPDIR)/composed_2.Po - -rm -f operations/$(DEPDIR)/composed_3.Po - -rm -f operations/$(DEPDIR)/composed_4.Po - -rm -f operations/$(DEPDIR)/composed_5.Po - -rm -f socks4/$(DEPDIR)/sync_client.Po - -rm -f spawn/$(DEPDIR)/echo_server.Po - -rm -f spawn/$(DEPDIR)/parallel_grep.Po - -rm -f ssl/$(DEPDIR)/client.Po - -rm -f ssl/$(DEPDIR)/server.Po - -rm -f timeouts/$(DEPDIR)/async_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_token_tcp_client.Po - -rm -f timeouts/$(DEPDIR)/blocking_udp_client.Po - -rm -f timeouts/$(DEPDIR)/server.Po - -rm -f timers/$(DEPDIR)/time_t_timer.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/examples/cpp11/allocation/server.cpp b/Sources/Vendor/asio/src/examples/cpp11/allocation/server.cpp deleted file mode 100644 index 7954795..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/allocation/server.cpp +++ /dev/null @@ -1,255 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -// Class to manage the memory to be used for handler-based custom allocation. -// It contains a single block of memory which may be returned for allocation -// requests. If the memory is in use when an allocation request is made, the -// allocator delegates allocation to the global heap. -class handler_memory -{ -public: - handler_memory() - : in_use_(false) - { - } - - handler_memory(const handler_memory&) = delete; - handler_memory& operator=(const handler_memory&) = delete; - - void* allocate(std::size_t size) - { - if (!in_use_ && size < sizeof(storage_)) - { - in_use_ = true; - return &storage_; - } - else - { - return ::operator new(size); - } - } - - void deallocate(void* pointer) - { - if (pointer == &storage_) - { - in_use_ = false; - } - else - { - ::operator delete(pointer); - } - } - -private: - // Storage space used for handler-based custom memory allocation. - typename std::aligned_storage<1024>::type storage_; - - // Whether the handler-based custom allocation storage has been used. - bool in_use_; -}; - -// The allocator to be associated with the handler objects. This allocator only -// needs to satisfy the C++11 minimal allocator requirements. -template -class handler_allocator -{ -public: - using value_type = T; - - explicit handler_allocator(handler_memory& mem) - : memory_(mem) - { - } - - template - handler_allocator(const handler_allocator& other) noexcept - : memory_(other.memory_) - { - } - - bool operator==(const handler_allocator& other) const noexcept - { - return &memory_ == &other.memory_; - } - - bool operator!=(const handler_allocator& other) const noexcept - { - return &memory_ != &other.memory_; - } - - T* allocate(std::size_t n) const - { - return static_cast(memory_.allocate(sizeof(T) * n)); - } - - void deallocate(T* p, std::size_t /*n*/) const - { - return memory_.deallocate(p); - } - -private: - template friend class handler_allocator; - - // The underlying memory. - handler_memory& memory_; -}; - -// Wrapper class template for handler objects to allow handler memory -// allocation to be customised. The allocator_type type and get_allocator() -// member function are used by the asynchronous operations to obtain the -// allocator. Calls to operator() are forwarded to the encapsulated handler. -template -class custom_alloc_handler -{ -public: - using allocator_type = handler_allocator; - - custom_alloc_handler(handler_memory& m, Handler h) - : memory_(m), - handler_(h) - { - } - - allocator_type get_allocator() const noexcept - { - return allocator_type(memory_); - } - - template - void operator()(Args&&... args) - { - handler_(std::forward(args)...); - } - -private: - handler_memory& memory_; - Handler handler_; -}; - -// Helper function to wrap a handler object to add custom allocation. -template -inline custom_alloc_handler make_custom_alloc_handler( - handler_memory& m, Handler h) -{ - return custom_alloc_handler(m, h); -} - -class session - : public std::enable_shared_from_this -{ -public: - session(tcp::socket socket) - : socket_(std::move(socket)) - { - } - - void start() - { - do_read(); - } - -private: - void do_read() - { - auto self(shared_from_this()); - socket_.async_read_some(asio::buffer(data_), - make_custom_alloc_handler(handler_memory_, - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - { - do_write(length); - } - })); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, asio::buffer(data_, length), - make_custom_alloc_handler(handler_memory_, - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - { - do_read(); - } - })); - } - - // The socket used to communicate with the client. - tcp::socket socket_; - - // Buffer used to store data received from the client. - std::array data_; - - // The memory to use for handler-based custom memory allocation. - handler_memory handler_memory_; -}; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - server s(io_context, std::atoi(argv[1])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/buffers/reference_counted.cpp b/Sources/Vendor/asio/src/examples/cpp11/buffers/reference_counted.cpp deleted file mode 100644 index fb96ac0..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/buffers/reference_counted.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// reference_counted.cpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -// A reference-counted non-modifiable buffer class. -class shared_const_buffer -{ -public: - // Construct from a std::string. - explicit shared_const_buffer(const std::string& data) - : data_(new std::vector(data.begin(), data.end())), - buffer_(asio::buffer(*data_)) - { - } - - // Implement the ConstBufferSequence requirements. - typedef asio::const_buffer value_type; - typedef const asio::const_buffer* const_iterator; - const asio::const_buffer* begin() const { return &buffer_; } - const asio::const_buffer* end() const { return &buffer_ + 1; } - -private: - std::shared_ptr > data_; - asio::const_buffer buffer_; -}; - -class session - : public std::enable_shared_from_this -{ -public: - session(tcp::socket socket) - : socket_(std::move(socket)) - { - } - - void start() - { - do_write(); - } - -private: - void do_write() - { - std::time_t now = std::time(0); - shared_const_buffer buffer(std::ctime(&now)); - - auto self(shared_from_this()); - asio::async_write(socket_, buffer, - [this, self](std::error_code /*ec*/, std::size_t /*length*/) - { - }); - } - - // The socket used to communicate with the client. - tcp::socket socket_; -}; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: reference_counted \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/chat/chat_client.cpp deleted file mode 100644 index d5747b6..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_client.cpp +++ /dev/null @@ -1,167 +0,0 @@ -// -// chat_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -using asio::ip::tcp; - -typedef std::deque chat_message_queue; - -class chat_client -{ -public: - chat_client(asio::io_context& io_context, - const tcp::resolver::results_type& endpoints) - : io_context_(io_context), - socket_(io_context) - { - do_connect(endpoints); - } - - void write(const chat_message& msg) - { - asio::post(io_context_, - [this, msg]() - { - bool write_in_progress = !write_msgs_.empty(); - write_msgs_.push_back(msg); - if (!write_in_progress) - { - do_write(); - } - }); - } - - void close() - { - asio::post(io_context_, [this]() { socket_.close(); }); - } - -private: - void do_connect(const tcp::resolver::results_type& endpoints) - { - asio::async_connect(socket_, endpoints, - [this](std::error_code ec, tcp::endpoint) - { - if (!ec) - { - do_read_header(); - } - }); - } - - void do_read_header() - { - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec && read_msg_.decode_header()) - { - do_read_body(); - } - else - { - socket_.close(); - } - }); - } - - void do_read_body() - { - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - { - std::cout.write(read_msg_.body(), read_msg_.body_length()); - std::cout << "\n"; - do_read_header(); - } - else - { - socket_.close(); - } - }); - } - - void do_write() - { - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - { - write_msgs_.pop_front(); - if (!write_msgs_.empty()) - { - do_write(); - } - } - else - { - socket_.close(); - } - }); - } - -private: - asio::io_context& io_context_; - tcp::socket socket_; - chat_message read_msg_; - chat_message_queue write_msgs_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: chat_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - auto endpoints = resolver.resolve(argv[1], argv[2]); - chat_client c(io_context, endpoints); - - std::thread t([&io_context](){ io_context.run(); }); - - char line[chat_message::max_body_length + 1]; - while (std::cin.getline(line, chat_message::max_body_length + 1)) - { - chat_message msg; - msg.body_length(std::strlen(line)); - std::memcpy(msg.body(), line, msg.body_length()); - msg.encode_header(); - c.write(msg); - } - - c.close(); - t.join(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_message.hpp b/Sources/Vendor/asio/src/examples/cpp11/chat/chat_message.hpp deleted file mode 100644 index 629105b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_message.hpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// chat_message.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 CHAT_MESSAGE_HPP -#define CHAT_MESSAGE_HPP - -#include -#include -#include - -class chat_message -{ -public: - enum { header_length = 4 }; - enum { max_body_length = 512 }; - - chat_message() - : body_length_(0) - { - } - - const char* data() const - { - return data_; - } - - char* data() - { - return data_; - } - - std::size_t length() const - { - return header_length + body_length_; - } - - const char* body() const - { - return data_ + header_length; - } - - char* body() - { - return data_ + header_length; - } - - std::size_t body_length() const - { - return body_length_; - } - - void body_length(std::size_t new_length) - { - body_length_ = new_length; - if (body_length_ > max_body_length) - body_length_ = max_body_length; - } - - bool decode_header() - { - char header[header_length + 1] = ""; - std::strncat(header, data_, header_length); - body_length_ = std::atoi(header); - if (body_length_ > max_body_length) - { - body_length_ = 0; - return false; - } - return true; - } - - void encode_header() - { - char header[header_length + 1] = ""; - std::sprintf(header, "%4d", static_cast(body_length_)); - std::memcpy(data_, header, header_length); - } - -private: - char data_[header_length + max_body_length]; - std::size_t body_length_; -}; - -#endif // CHAT_MESSAGE_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/chat/chat_server.cpp deleted file mode 100644 index 9467f02..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/chat/chat_server.cpp +++ /dev/null @@ -1,227 +0,0 @@ -// -// chat_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include "asio.hpp" -#include "chat_message.hpp" - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -typedef std::deque chat_message_queue; - -//---------------------------------------------------------------------- - -class chat_participant -{ -public: - virtual ~chat_participant() {} - virtual void deliver(const chat_message& msg) = 0; -}; - -typedef std::shared_ptr chat_participant_ptr; - -//---------------------------------------------------------------------- - -class chat_room -{ -public: - void join(chat_participant_ptr participant) - { - participants_.insert(participant); - for (auto msg: recent_msgs_) - participant->deliver(msg); - } - - void leave(chat_participant_ptr participant) - { - participants_.erase(participant); - } - - void deliver(const chat_message& msg) - { - recent_msgs_.push_back(msg); - while (recent_msgs_.size() > max_recent_msgs) - recent_msgs_.pop_front(); - - for (auto participant: participants_) - participant->deliver(msg); - } - -private: - std::set participants_; - enum { max_recent_msgs = 100 }; - chat_message_queue recent_msgs_; -}; - -//---------------------------------------------------------------------- - -class chat_session - : public chat_participant, - public std::enable_shared_from_this -{ -public: - chat_session(tcp::socket socket, chat_room& room) - : socket_(std::move(socket)), - room_(room) - { - } - - void start() - { - room_.join(shared_from_this()); - do_read_header(); - } - - void deliver(const chat_message& msg) - { - bool write_in_progress = !write_msgs_.empty(); - write_msgs_.push_back(msg); - if (!write_in_progress) - { - do_write(); - } - } - -private: - void do_read_header() - { - auto self(shared_from_this()); - asio::async_read(socket_, - asio::buffer(read_msg_.data(), chat_message::header_length), - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (!ec && read_msg_.decode_header()) - { - do_read_body(); - } - else - { - room_.leave(shared_from_this()); - } - }); - } - - void do_read_body() - { - auto self(shared_from_this()); - asio::async_read(socket_, - asio::buffer(read_msg_.body(), read_msg_.body_length()), - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - { - room_.deliver(read_msg_); - do_read_header(); - } - else - { - room_.leave(shared_from_this()); - } - }); - } - - void do_write() - { - auto self(shared_from_this()); - asio::async_write(socket_, - asio::buffer(write_msgs_.front().data(), - write_msgs_.front().length()), - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - { - write_msgs_.pop_front(); - if (!write_msgs_.empty()) - { - do_write(); - } - } - else - { - room_.leave(shared_from_this()); - } - }); - } - - tcp::socket socket_; - chat_room& room_; - chat_message read_msg_; - chat_message_queue write_msgs_; -}; - -//---------------------------------------------------------------------- - -class chat_server -{ -public: - chat_server(asio::io_context& io_context, - const tcp::endpoint& endpoint) - : acceptor_(io_context, endpoint) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket), room_)->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; - chat_room room_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: chat_server [ ...]\n"; - return 1; - } - - asio::io_context io_context; - - std::list servers; - for (int i = 1; i < argc; ++i) - { - tcp::endpoint endpoint(tcp::v4(), std::atoi(argv[i])); - servers.emplace_back(io_context, endpoint); - } - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp deleted file mode 100644 index c0cdce1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// -// async_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -class session - : public std::enable_shared_from_this -{ -public: - session(tcp::socket socket) - : socket_(std::move(socket)) - { - } - - void start() - { - do_read(); - } - -private: - void do_read() - { - auto self(shared_from_this()); - socket_.async_read_some(asio::buffer(data_, max_length), - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - { - do_write(length); - } - }); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, asio::buffer(data_, length), - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - { - do_read(); - } - }); - } - - tcp::socket socket_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: async_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp deleted file mode 100644 index 02ff360..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// async_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : socket_(io_context, udp::endpoint(udp::v4(), port)) - { - do_receive(); - } - - void do_receive() - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - [this](std::error_code ec, std::size_t bytes_recvd) - { - if (!ec && bytes_recvd > 0) - { - do_send(bytes_recvd); - } - else - { - do_receive(); - } - }); - } - - void do_send(std::size_t length) - { - socket_.async_send_to( - asio::buffer(data_, length), sender_endpoint_, - [this](std::error_code /*ec*/, std::size_t /*bytes_sent*/) - { - do_receive(); - }); - } - -private: - udp::socket socket_; - udp::endpoint sender_endpoint_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: async_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp deleted file mode 100644 index 539843a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// -// blocking_tcp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_tcp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::socket s(io_context); - tcp::resolver resolver(io_context); - asio::connect(s, resolver.resolve(argv[1], argv[2])); - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = std::strlen(request); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - asio::buffer(reply, request_length)); - std::cout << "Reply is: "; - std::cout.write(reply, reply_length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp deleted file mode 100644 index c9a5f76..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// blocking_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -const int max_length = 1024; - -void session(tcp::socket sock) -{ - try - { - for (;;) - { - char data[max_length]; - - asio::error_code error; - size_t length = sock.read_some(asio::buffer(data), error); - if (error == asio::error::eof) - break; // Connection closed cleanly by peer. - else if (error) - throw asio::system_error(error); // Some other error. - - asio::write(sock, asio::buffer(data, length)); - } - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - } -} - -void server(asio::io_context& io_context, unsigned short port) -{ - tcp::acceptor a(io_context, tcp::endpoint(tcp::v4(), port)); - for (;;) - { - std::thread(session, a.accept()).detach(); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server(io_context, std::atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp deleted file mode 100644 index 6953f5d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// -// blocking_udp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - udp::socket s(io_context, udp::endpoint(udp::v4(), 0)); - - udp::resolver resolver(io_context); - udp::resolver::results_type endpoints = - resolver.resolve(udp::v4(), argv[1], argv[2]); - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = std::strlen(request); - s.send_to(asio::buffer(request, request_length), *endpoints.begin()); - - char reply[max_length]; - udp::endpoint sender_endpoint; - size_t reply_length = s.receive_from( - asio::buffer(reply, max_length), sender_endpoint); - std::cout << "Reply is: "; - std::cout.write(reply, reply_length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp deleted file mode 100644 index 6e4701b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// blocking_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include "asio.hpp" - -using asio::ip::udp; - -enum { max_length = 1024 }; - -void server(asio::io_context& io_context, unsigned short port) -{ - udp::socket sock(io_context, udp::endpoint(udp::v4(), port)); - for (;;) - { - char data[max_length]; - udp::endpoint sender_endpoint; - size_t length = sock.receive_from( - asio::buffer(data, max_length), sender_endpoint); - sock.send_to(asio::buffer(data, length), sender_endpoint); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server(io_context, std::atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/actor.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/actor.cpp deleted file mode 100644 index 22dbf20..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/actor.cpp +++ /dev/null @@ -1,286 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::defer; -using asio::executor; -using asio::post; -using asio::strand; -using asio::system_executor; - -//------------------------------------------------------------------------------ -// A tiny actor framework -// ~~~~~~~~~~~~~~~~~~~~~~ - -class actor; - -// Used to identify the sender and recipient of messages. -typedef actor* actor_address; - -// Base class for all registered message handlers. -class message_handler_base -{ -public: - virtual ~message_handler_base() {} - - // Used to determine which message handlers receive an incoming message. - virtual const std::type_info& message_id() const = 0; -}; - -// Base class for a handler for a specific message type. -template -class message_handler : public message_handler_base -{ -public: - // Handle an incoming message. - virtual void handle_message(Message msg, actor_address from) = 0; -}; - -// Concrete message handler for a specific message type. -template -class mf_message_handler : public message_handler -{ -public: - // Construct a message handler to invoke the specified member function. - mf_message_handler(void (Actor::* mf)(Message, actor_address), Actor* a) - : function_(mf), actor_(a) - { - } - - // Used to determine which message handlers receive an incoming message. - virtual const std::type_info& message_id() const - { - return typeid(Message); - } - - // Handle an incoming message. - virtual void handle_message(Message msg, actor_address from) - { - (actor_->*function_)(std::move(msg), from); - } - - // Determine whether the message handler represents the specified function. - bool is_function(void (Actor::* mf)(Message, actor_address)) const - { - return mf == function_; - } - -private: - void (Actor::* function_)(Message, actor_address); - Actor* actor_; -}; - -// Base class for all actors. -class actor -{ -public: - virtual ~actor() - { - } - - // Obtain the actor's address for use as a message sender or recipient. - actor_address address() - { - return this; - } - - // Send a message from one actor to another. - template - friend void send(Message msg, actor_address from, actor_address to) - { - // Execute the message handler in the context of the target's executor. - post(to->executor_, - [=] - { - to->call_handler(std::move(msg), from); - }); - } - -protected: - // Construct the actor to use the specified executor for all message handlers. - actor(executor e) - : executor_(std::move(e)) - { - } - - // Register a handler for a specific message type. Duplicates are permitted. - template - void register_handler(void (Actor::* mf)(Message, actor_address)) - { - handlers_.push_back( - std::make_shared>( - mf, static_cast(this))); - } - - // Deregister a handler. Removes only the first matching handler. - template - void deregister_handler(void (Actor::* mf)(Message, actor_address)) - { - const std::type_info& id = typeid(message_handler); - for (auto iter = handlers_.begin(); iter != handlers_.end(); ++iter) - { - if ((*iter)->message_id() == id) - { - auto mh = static_cast*>(iter->get()); - if (mh->is_function(mf)) - { - handlers_.erase(iter); - return; - } - } - } - } - - // Send a message from within a message handler. - template - void tail_send(Message msg, actor_address to) - { - // Execute the message handler in the context of the target's executor. - actor* from = this; - defer(to->executor_, - [=] - { - to->call_handler(std::move(msg), from); - }); - } - -private: - // Find the matching message handlers, if any, and call them. - template - void call_handler(Message msg, actor_address from) - { - const std::type_info& message_id = typeid(Message); - for (auto& h: handlers_) - { - if (h->message_id() == message_id) - { - auto mh = static_cast*>(h.get()); - mh->handle_message(msg, from); - } - } - } - - // All messages associated with a single actor object should be processed - // non-concurrently. We use a strand to ensure non-concurrent execution even - // if the underlying executor may use multiple threads. - strand executor_; - - std::vector> handlers_; -}; - -// A concrete actor that allows synchronous message retrieval. -template -class receiver : public actor -{ -public: - receiver() - : actor(system_executor()) - { - register_handler(&receiver::message_handler); - } - - // Block until a message has been received. - Message wait() - { - std::unique_lock lock(mutex_); - condition_.wait(lock, [this]{ return !message_queue_.empty(); }); - Message msg(std::move(message_queue_.front())); - message_queue_.pop_front(); - return msg; - } - -private: - // Handle a new message by adding it to the queue and waking a waiter. - void message_handler(Message msg, actor_address /* from */) - { - std::lock_guard lock(mutex_); - message_queue_.push_back(std::move(msg)); - condition_.notify_one(); - } - - std::mutex mutex_; - std::condition_variable condition_; - std::deque message_queue_; -}; - -//------------------------------------------------------------------------------ - -#include -#include - -using asio::thread_pool; - -class member : public actor -{ -public: - explicit member(executor e) - : actor(std::move(e)) - { - register_handler(&member::init_handler); - } - -private: - void init_handler(actor_address next, actor_address from) - { - next_ = next; - caller_ = from; - - register_handler(&member::token_handler); - deregister_handler(&member::init_handler); - } - - void token_handler(int token, actor_address /*from*/) - { - int msg(token); - actor_address to(caller_); - - if (token > 0) - { - msg = token - 1; - to = next_; - } - - tail_send(msg, to); - } - - actor_address next_; - actor_address caller_; -}; - -int main() -{ - const std::size_t num_threads = 16; - const int num_hops = 50000000; - const std::size_t num_actors = 503; - const int token_value = (num_hops + num_actors - 1) / num_actors; - const std::size_t actors_per_thread = num_actors / num_threads; - - struct single_thread_pool : thread_pool { single_thread_pool() : thread_pool(1) {} }; - single_thread_pool pools[num_threads]; - std::vector> members(num_actors); - receiver rcvr; - - // Create the member actors. - for (std::size_t i = 0; i < num_actors; ++i) - members[i] = std::make_shared(pools[(i / actors_per_thread) % num_threads].get_executor()); - - // Initialise the actors by passing each one the address of the next actor in the ring. - for (std::size_t i = num_actors, next_i = 0; i > 0; next_i = --i) - send(members[next_i]->address(), rcvr.address(), members[i - 1]->address()); - - // Send exactly one token to each actor, all with the same initial value, rounding up if required. - for (std::size_t i = 0; i < num_actors; ++i) - send(token_value, rcvr.address(), members[i]->address()); - - // Wait for all signal messages, indicating the tokens have all reached zero. - for (std::size_t i = 0; i < num_actors; ++i) - rcvr.wait(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_1.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_1.cpp deleted file mode 100644 index 85f7d95..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_1.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include - -using asio::post; -using asio::thread_pool; - -// Traditional active object pattern. -// Member functions do not block. - -class bank_account -{ - int balance_ = 0; - mutable thread_pool pool_{1}; - -public: - void deposit(int amount) - { - post(pool_, [=] - { - balance_ += amount; - }); - } - - void withdraw(int amount) - { - post(pool_, [=] - { - if (balance_ >= amount) - balance_ -= amount; - }); - } - - void print_balance() const - { - post(pool_, [=] - { - std::cout << "balance = " << balance_ << "\n"; - }); - } - - ~bank_account() - { - pool_.join(); - } -}; - -int main() -{ - bank_account acct; - acct.deposit(20); - acct.withdraw(10); - acct.print_balance(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_2.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_2.cpp deleted file mode 100644 index b646cb2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/bank_account_2.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include -#include - -using asio::post; -using asio::thread_pool; -using asio::use_future; - -// Traditional active object pattern. -// Member functions block until operation is finished. - -class bank_account -{ - int balance_ = 0; - mutable thread_pool pool_{1}; - -public: - void deposit(int amount) - { - post(pool_, - use_future([=] - { - balance_ += amount; - })).get(); - } - - void withdraw(int amount) - { - post(pool_, - use_future([=] - { - if (balance_ >= amount) - balance_ -= amount; - })).get(); - } - - int balance() const - { - return post(pool_, - use_future([=] - { - return balance_; - })).get(); - } -}; - -int main() -{ - bank_account acct; - acct.deposit(20); - acct.withdraw(10); - std::cout << "balance = " << acct.balance() << "\n"; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/fork_join.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/fork_join.cpp deleted file mode 100644 index 12bcfb1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/fork_join.cpp +++ /dev/null @@ -1,328 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::execution_context; -using asio::thread_pool; - -// A fixed-size thread pool used to implement fork/join semantics. Functions -// are scheduled using a simple FIFO queue. Implementing work stealing, or -// using a queue based on atomic operations, are left as tasks for the reader. -class fork_join_pool : public execution_context -{ -public: - // The constructor starts a thread pool with the specified number of threads. - // Note that the thread_count is not a fixed limit on the pool's concurrency. - // Additional threads may temporarily be added to the pool if they join a - // fork_executor. - explicit fork_join_pool( - std::size_t thread_count = std::thread::hardware_concurrency() * 2) - : use_count_(1), - threads_(thread_count) - { - try - { - // Ask each thread in the pool to dequeue and execute functions until - // it is time to shut down, i.e. the use count is zero. - for (thread_count_ = 0; thread_count_ < thread_count; ++thread_count_) - { - dispatch(threads_, [&] - { - std::unique_lock lock(mutex_); - while (use_count_ > 0) - if (!execute_next(lock)) - condition_.wait(lock); - }); - } - } - catch (...) - { - stop_threads(); - threads_.join(); - throw; - } - } - - // The destructor waits for the pool to finish executing functions. - ~fork_join_pool() - { - stop_threads(); - threads_.join(); - } - -private: - friend class fork_executor; - - // The base for all functions that are queued in the pool. - struct function_base - { - std::shared_ptr work_count_; - void (*execute_)(std::shared_ptr& p); - }; - - // Execute the next function from the queue, if any. Returns true if a - // function was executed, and false if the queue was empty. - bool execute_next(std::unique_lock& lock) - { - if (queue_.empty()) - return false; - auto p(queue_.front()); - queue_.pop(); - lock.unlock(); - execute(lock, p); - return true; - } - - // Execute a function and decrement the outstanding work. - void execute(std::unique_lock& lock, - std::shared_ptr& p) - { - std::shared_ptr work_count(std::move(p->work_count_)); - try - { - p->execute_(p); - lock.lock(); - do_work_finished(work_count); - } - catch (...) - { - lock.lock(); - do_work_finished(work_count); - throw; - } - } - - // Increment outstanding work. - void do_work_started(const std::shared_ptr& work_count) noexcept - { - if (++(*work_count) == 1) - ++use_count_; - } - - // Decrement outstanding work. Notify waiting threads if we run out. - void do_work_finished(const std::shared_ptr& work_count) noexcept - { - if (--(*work_count) == 0) - { - --use_count_; - condition_.notify_all(); - } - } - - // Dispatch a function, executing it immediately if the queue is already - // loaded. Otherwise adds the function to the queue and wakes a thread. - void do_dispatch(std::shared_ptr p, - const std::shared_ptr& work_count) - { - std::unique_lock lock(mutex_); - if (queue_.size() > thread_count_ * 16) - { - do_work_started(work_count); - lock.unlock(); - execute(lock, p); - } - else - { - queue_.push(p); - do_work_started(work_count); - condition_.notify_one(); - } - } - - // Add a function to the queue and wake a thread. - void do_post(std::shared_ptr p, - const std::shared_ptr& work_count) - { - std::lock_guard lock(mutex_); - queue_.push(p); - do_work_started(work_count); - condition_.notify_one(); - } - - // Ask all threads to shut down. - void stop_threads() - { - std::lock_guard lock(mutex_); - --use_count_; - condition_.notify_all(); - } - - std::mutex mutex_; - std::condition_variable condition_; - std::queue> queue_; - std::size_t use_count_; - std::size_t thread_count_; - thread_pool threads_; -}; - -// A class that satisfies the Executor requirements. Every function or piece of -// work associated with a fork_executor is part of a single, joinable group. -class fork_executor -{ -public: - fork_executor(fork_join_pool& ctx) - : context_(ctx), - work_count_(std::make_shared(0)) - { - } - - fork_join_pool& context() const noexcept - { - return context_; - } - - void on_work_started() const noexcept - { - std::lock_guard lock(context_.mutex_); - context_.do_work_started(work_count_); - } - - void on_work_finished() const noexcept - { - std::lock_guard lock(context_.mutex_); - context_.do_work_finished(work_count_); - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits::template rebind_alloc(a), - std::move(f), work_count_)); - context_.do_dispatch(p, work_count_); - } - - template - void post(Func f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits::template rebind_alloc(a), - std::move(f), work_count_)); - context_.do_post(p, work_count_); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const fork_executor& a, - const fork_executor& b) noexcept - { - return a.work_count_ == b.work_count_; - } - - friend bool operator!=(const fork_executor& a, - const fork_executor& b) noexcept - { - return a.work_count_ != b.work_count_; - } - - // Block until all work associated with the executor is complete. While it is - // waiting, the thread may be borrowed to execute functions from the queue. - void join() const - { - std::unique_lock lock(context_.mutex_); - while (*work_count_ > 0) - if (!context_.execute_next(lock)) - context_.condition_.wait(lock); - } - -private: - template - struct function : fork_join_pool::function_base - { - explicit function(Func f, const std::shared_ptr& w) - : function_(std::move(f)) - { - work_count_ = w; - execute_ = [](std::shared_ptr& p) - { - Func tmp(std::move(static_cast(p.get())->function_)); - p.reset(); - tmp(); - }; - } - - Func function_; - }; - - fork_join_pool& context_; - std::shared_ptr work_count_; -}; - -// Helper class to automatically join a fork_executor when exiting a scope. -class join_guard -{ -public: - explicit join_guard(const fork_executor& ex) : ex_(ex) {} - join_guard(const join_guard&) = delete; - join_guard(join_guard&&) = delete; - ~join_guard() { ex_.join(); } - -private: - fork_executor ex_; -}; - -//------------------------------------------------------------------------------ - -#include -#include -#include -#include - -fork_join_pool pool; - -template -void fork_join_sort(Iterator begin, Iterator end) -{ - std::size_t n = end - begin; - if (n > 32768) - { - { - fork_executor fork(pool); - join_guard join(fork); - dispatch(fork, [=]{ fork_join_sort(begin, begin + n / 2); }); - dispatch(fork, [=]{ fork_join_sort(begin + n / 2, end); }); - } - std::inplace_merge(begin, begin + n / 2, end); - } - else - { - std::sort(begin, end); - } -} - -int main(int argc, char* argv[]) -{ - if (argc != 2) - { - std::cerr << "Usage: fork_join \n"; - return 1; - } - - std::vector vec(std::atoll(argv[1])); - std::iota(vec.begin(), vec.end(), 0); - - std::random_device rd; - std::mt19937 g(rd()); - std::shuffle(vec.begin(), vec.end(), g); - - std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now(); - - fork_join_sort(vec.begin(), vec.end()); - - std::chrono::steady_clock::duration elapsed = std::chrono::steady_clock::now() - start; - - std::cout << "sort took "; - std::cout << std::chrono::duration_cast(elapsed).count(); - std::cout << " microseconds" << std::endl; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/pipeline.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/pipeline.cpp deleted file mode 100644 index fda0c9b..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/pipeline.cpp +++ /dev/null @@ -1,299 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::execution_context; -using asio::executor_binder; -using asio::get_associated_executor; -using asio::post; -using asio::system_executor; -using asio::use_future; -using asio::use_service; - -// An executor that launches a new thread for each function submitted to it. -// This class satisfies the Executor requirements. -class thread_executor -{ -private: - // Service to track all threads started through a thread_executor. - class thread_bag : public execution_context::service - { - public: - typedef thread_bag key_type; - - explicit thread_bag(execution_context& ctx) - : execution_context::service(ctx) - { - } - - void add_thread(std::thread&& t) - { - std::unique_lock lock(mutex_); - threads_.push_back(std::move(t)); - } - - private: - virtual void shutdown() - { - for (auto& t : threads_) - t.join(); - } - - std::mutex mutex_; - std::vector threads_; - }; - -public: - execution_context& context() const noexcept - { - return system_executor().context(); - } - - void on_work_started() const noexcept - { - // This executor doesn't count work. - } - - void on_work_finished() const noexcept - { - // This executor doesn't count work. - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - template - void post(Func f, const Alloc&) const - { - thread_bag& bag = use_service(context()); - bag.add_thread(std::thread(std::move(f))); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const thread_executor&, - const thread_executor&) noexcept - { - return true; - } - - friend bool operator!=(const thread_executor&, - const thread_executor&) noexcept - { - return false; - } -}; - -// Base class for all thread-safe queue implementations. -class queue_impl_base -{ - template friend class queue_front; - template friend class queue_back; - std::mutex mutex_; - std::condition_variable condition_; - bool stop_ = false; -}; - -// Underlying implementation of a thread-safe queue, shared between the -// queue_front and queue_back classes. -template -class queue_impl : public queue_impl_base -{ - template friend class queue_front; - template friend class queue_back; - std::queue queue_; -}; - -// The front end of a queue between consecutive pipeline stages. -template -class queue_front -{ -public: - typedef T value_type; - - explicit queue_front(std::shared_ptr> impl) - : impl_(impl) - { - } - - void push(T t) - { - std::unique_lock lock(impl_->mutex_); - impl_->queue_.push(std::move(t)); - impl_->condition_.notify_one(); - } - - void stop() - { - std::unique_lock lock(impl_->mutex_); - impl_->stop_ = true; - impl_->condition_.notify_one(); - } - -private: - std::shared_ptr> impl_; -}; - -// The back end of a queue between consecutive pipeline stages. -template -class queue_back -{ -public: - typedef T value_type; - - explicit queue_back(std::shared_ptr> impl) - : impl_(impl) - { - } - - bool pop(T& t) - { - std::unique_lock lock(impl_->mutex_); - while (impl_->queue_.empty() && !impl_->stop_) - impl_->condition_.wait(lock); - if (!impl_->queue_.empty()) - { - t = impl_->queue_.front(); - impl_->queue_.pop(); - return true; - } - return false; - } - -private: - std::shared_ptr> impl_; -}; - -// Launch the last stage in a pipeline. -template -std::future pipeline(queue_back in, F f) -{ - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function, and as we're the last stage return a future so that the - // caller can wait for the pipeline to finish. - return post(ex, use_future([in, f]() mutable { f(in); })); -} - -// Launch an intermediate stage in a pipeline. -template -std::future pipeline(queue_back in, F f, Tail... t) -{ - // Determine the output queue type. - typedef typename executor_binder::second_argument_type::value_type output_value_type; - - // Create the output queue and its implementation. - auto out_impl = std::make_shared>(); - queue_front out(out_impl); - queue_back next_in(out_impl); - - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function. - post(ex, [in, out, f]() mutable - { - f(in, out); - out.stop(); - }); - - // Launch the rest of the pipeline. - return pipeline(next_in, std::move(t)...); -} - -// Launch the first stage in a pipeline. -template -std::future pipeline(F f, Tail... t) -{ - // Determine the output queue type. - typedef typename executor_binder::argument_type::value_type output_value_type; - - // Create the output queue and its implementation. - auto out_impl = std::make_shared>(); - queue_front out(out_impl); - queue_back next_in(out_impl); - - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function. - post(ex, [out, f]() mutable - { - f(out); - out.stop(); - }); - - // Launch the rest of the pipeline. - return pipeline(next_in, std::move(t)...); -} - -//------------------------------------------------------------------------------ - -#include -#include -#include - -using asio::bind_executor; -using asio::thread_pool; - -void reader(queue_front out) -{ - std::string line; - while (std::getline(std::cin, line)) - out.push(line); -} - -void filter(queue_back in, queue_front out) -{ - std::string line; - while (in.pop(line)) - if (line.length() > 5) - out.push(line); -} - -void upper(queue_back in, queue_front out) -{ - std::string line; - while (in.pop(line)) - { - std::string new_line; - for (char c : line) - new_line.push_back(std::toupper(c)); - out.push(new_line); - } -} - -void writer(queue_back in) -{ - std::size_t count = 0; - std::string line; - while (in.pop(line)) - std::cout << count++ << ": " << line << std::endl; -} - -int main() -{ - thread_pool pool; - - auto f = pipeline(reader, filter, bind_executor(pool, upper), writer); - f.wait(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/executors/priority_scheduler.cpp b/Sources/Vendor/asio/src/examples/cpp11/executors/priority_scheduler.cpp deleted file mode 100644 index fb38fa2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/executors/priority_scheduler.cpp +++ /dev/null @@ -1,168 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::execution_context; - -class priority_scheduler : public execution_context -{ -public: - // A class that satisfies the Executor requirements. - class executor_type - { - public: - executor_type(priority_scheduler& ctx, int pri) noexcept - : context_(ctx), priority_(pri) - { - } - - priority_scheduler& context() const noexcept - { - return context_; - } - - void on_work_started() const noexcept - { - // This executor doesn't count work. Instead, the scheduler simply runs - // until explicitly stopped. - } - - void on_work_finished() const noexcept - { - // This executor doesn't count work. Instead, the scheduler simply runs - // until explicitly stopped. - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - template - void post(Func f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits< - Alloc>::template rebind_alloc(a), - priority_, std::move(f))); - std::lock_guard lock(context_.mutex_); - context_.queue_.push(p); - context_.condition_.notify_one(); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const executor_type& a, - const executor_type& b) noexcept - { - return &a.context_ == &b.context_; - } - - friend bool operator!=(const executor_type& a, - const executor_type& b) noexcept - { - return &a.context_ != &b.context_; - } - - private: - priority_scheduler& context_; - int priority_; - }; - - executor_type get_executor(int pri = 0) noexcept - { - return executor_type(*const_cast(this), pri); - } - - void run() - { - std::unique_lock lock(mutex_); - for (;;) - { - condition_.wait(lock, [&]{ return stopped_ || !queue_.empty(); }); - if (stopped_) - return; - auto p(queue_.top()); - queue_.pop(); - lock.unlock(); - p->execute_(p); - lock.lock(); - } - } - - void stop() - { - std::lock_guard lock(mutex_); - stopped_ = true; - condition_.notify_all(); - } - -private: - struct item_base - { - int priority_; - void (*execute_)(std::shared_ptr&); - }; - - template - struct item : item_base - { - item(int pri, Func f) : function_(std::move(f)) - { - priority_ = pri; - execute_ = [](std::shared_ptr& p) - { - Func tmp(std::move(static_cast(p.get())->function_)); - p.reset(); - tmp(); - }; - } - - Func function_; - }; - - struct item_comp - { - bool operator()( - const std::shared_ptr& a, - const std::shared_ptr& b) - { - return a->priority_ < b->priority_; - } - }; - - std::mutex mutex_; - std::condition_variable condition_; - std::priority_queue< - std::shared_ptr, - std::vector>, - item_comp> queue_; - bool stopped_ = false; -}; - -int main() -{ - priority_scheduler sched; - auto low = sched.get_executor(0); - auto med = sched.get_executor(1); - auto high = sched.get_executor(2); - dispatch(low, []{ std::cout << "1\n"; }); - dispatch(low, []{ std::cout << "11\n"; }); - dispatch(med, []{ std::cout << "2\n"; }); - dispatch(med, []{ std::cout << "22\n"; }); - dispatch(high, []{ std::cout << "3\n"; }); - dispatch(high, []{ std::cout << "33\n"; }); - dispatch(high, []{ std::cout << "333\n"; }); - dispatch(sched.get_executor(-1), [&]{ sched.stop(); }); - sched.run(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/fork/daemon.cpp b/Sources/Vendor/asio/src/examples/cpp11/fork/daemon.cpp deleted file mode 100644 index 894730d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/fork/daemon.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// daemon.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::udp; - -class udp_daytime_server -{ -public: - udp_daytime_server(asio::io_context& io_context) - : socket_(io_context, {udp::v4(), 13}) - { - receive(); - } - -private: - void receive() - { - socket_.async_receive_from( - asio::buffer(recv_buffer_), remote_endpoint_, - [this](std::error_code ec, std::size_t /*n*/) - { - if (!ec) - { - using namespace std; // For time_t, time and ctime; - time_t now = time(0); - std::string message = ctime(&now); - - std::error_code ignored_ec; - socket_.send_to(asio::buffer(message), - remote_endpoint_, 0, ignored_ec); - } - - receive(); - }); - } - - udp::socket socket_; - udp::endpoint remote_endpoint_; - std::array recv_buffer_; -}; - -int main() -{ - try - { - asio::io_context io_context; - - // Initialise the server before becoming a daemon. If the process is - // started from a shell, this means any errors will be reported back to the - // user. - udp_daytime_server server(io_context); - - // Register signal handlers so that the daemon may be shut down. You may - // also want to register for other signals, such as SIGHUP to trigger a - // re-read of a configuration file. - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait( - [&](std::error_code /*ec*/, int /*signo*/) - { - io_context.stop(); - }); - - // Inform the io_context that we are about to become a daemon. The - // io_context cleans up any internal resources, such as threads, that may - // interfere with forking. - io_context.notify_fork(asio::io_context::fork_prepare); - - // Fork the process and have the parent exit. If the process was started - // from a shell, this returns control to the user. Forking a new process is - // also a prerequisite for the subsequent call to setsid(). - if (pid_t pid = fork()) - { - if (pid > 0) - { - // We're in the parent process and need to exit. - // - // When the exit() function is used, the program terminates without - // invoking local variables' destructors. Only global variables are - // destroyed. As the io_context object is a local variable, this means - // we do not have to call: - // - // io_context.notify_fork(asio::io_context::fork_parent); - // - // However, this line should be added before each call to exit() if - // using a global io_context object. An additional call: - // - // io_context.notify_fork(asio::io_context::fork_prepare); - // - // should also precede the second fork(). - exit(0); - } - else - { - syslog(LOG_ERR | LOG_USER, "First fork failed: %m"); - return 1; - } - } - - // Make the process a new session leader. This detaches it from the - // terminal. - setsid(); - - // A process inherits its working directory from its parent. This could be - // on a mounted filesystem, which means that the running daemon would - // prevent this filesystem from being unmounted. Changing to the root - // directory avoids this problem. - chdir("/"); - - // The file mode creation mask is also inherited from the parent process. - // We don't want to restrict the permissions on files created by the - // daemon, so the mask is cleared. - umask(0); - - // A second fork ensures the process cannot acquire a controlling terminal. - if (pid_t pid = fork()) - { - if (pid > 0) - { - exit(0); - } - else - { - syslog(LOG_ERR | LOG_USER, "Second fork failed: %m"); - return 1; - } - } - - // Close the standard streams. This decouples the daemon from the terminal - // that started it. - close(0); - close(1); - close(2); - - // We don't want the daemon to have any standard input. - if (open("/dev/null", O_RDONLY) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to open /dev/null: %m"); - return 1; - } - - // Send standard output to a log file. - const char* output = "/tmp/asio.daemon.out"; - const int flags = O_WRONLY | O_CREAT | O_APPEND; - const mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; - if (open(output, flags, mode) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to open output file %s: %m", output); - return 1; - } - - // Also send standard error to the same log file. - if (dup(1) < 0) - { - syslog(LOG_ERR | LOG_USER, "Unable to dup output descriptor: %m"); - return 1; - } - - // Inform the io_context that we have finished becoming a daemon. The - // io_context uses this opportunity to create any internal file descriptors - // that need to be private to the new process. - io_context.notify_fork(asio::io_context::fork_child); - - // The io_context can now be used normally. - syslog(LOG_INFO | LOG_USER, "Daemon started"); - io_context.run(); - syslog(LOG_INFO | LOG_USER, "Daemon stopped"); - } - catch (std::exception& e) - { - syslog(LOG_ERR | LOG_USER, "Exception: %s", e.what()); - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/fork/process_per_connection.cpp b/Sources/Vendor/asio/src/examples/cpp11/fork/process_per_connection.cpp deleted file mode 100644 index d256b7a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/fork/process_per_connection.cpp +++ /dev/null @@ -1,162 +0,0 @@ -// -// process_per_connection.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : io_context_(io_context), - signal_(io_context, SIGCHLD), - acceptor_(io_context, {tcp::v4(), port}), - socket_(io_context) - { - wait_for_signal(); - accept(); - } - -private: - void wait_for_signal() - { - signal_.async_wait( - [this](std::error_code /*ec*/, int /*signo*/) - { - // Only the parent process should check for this signal. We can - // determine whether we are in the parent by checking if the acceptor - // is still open. - if (acceptor_.is_open()) - { - // Reap completed child processes so that we don't end up with - // zombies. - int status = 0; - while (waitpid(-1, &status, WNOHANG) > 0) {} - - wait_for_signal(); - } - }); - } - - void accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket new_socket) - { - if (!ec) - { - // Take ownership of the newly accepted socket. - socket_ = std::move(new_socket); - - // Inform the io_context that we are about to fork. The io_context - // cleans up any internal resources, such as threads, that may - // interfere with forking. - io_context_.notify_fork(asio::io_context::fork_prepare); - - if (fork() == 0) - { - // Inform the io_context that the fork is finished and that this - // is the child process. The io_context uses this opportunity to - // create any internal file descriptors that must be private to - // the new process. - io_context_.notify_fork(asio::io_context::fork_child); - - // The child won't be accepting new connections, so we can close - // the acceptor. It remains open in the parent. - acceptor_.close(); - - // The child process is not interested in processing the SIGCHLD - // signal. - signal_.cancel(); - - read(); - } - else - { - - // Inform the io_context that the fork is finished (or failed) - // and that this is the parent process. The io_context uses this - // opportunity to recreate any internal resources that were - // cleaned up during preparation for the fork. - io_context_.notify_fork(asio::io_context::fork_parent); - - // The parent process can now close the newly accepted socket. It - // remains open in the child. - socket_.close(); - - accept(); - } - } - else - { - std::cerr << "Accept error: " << ec.message() << std::endl; - accept(); - } - }); - } - - void read() - { - socket_.async_read_some(asio::buffer(data_), - [this](std::error_code ec, std::size_t length) - { - if (!ec) - write(length); - }); - } - - void write(std::size_t length) - { - asio::async_write(socket_, asio::buffer(data_, length), - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - read(); - }); - } - - asio::io_context& io_context_; - asio::signal_set signal_; - tcp::acceptor acceptor_; - tcp::socket socket_; - std::array data_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: process_per_connection \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << std::endl; - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/futures/daytime_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/futures/daytime_client.cpp deleted file mode 100644 index a79e132..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/futures/daytime_client.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// daytime_client.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::udp; - -void get_daytime(asio::io_context& io_context, const char* hostname) -{ - try - { - udp::resolver resolver(io_context); - - std::future endpoints = - resolver.async_resolve( - udp::v4(), hostname, "daytime", - asio::use_future); - - // The async_resolve operation above returns the endpoints as a future - // value that is not retrieved ... - - udp::socket socket(io_context, udp::v4()); - - std::array send_buf = {{ 0 }}; - std::future send_length = - socket.async_send_to(asio::buffer(send_buf), - *endpoints.get().begin(), // ... until here. This call may block. - asio::use_future); - - // Do other things here while the send completes. - - send_length.get(); // Blocks until the send is complete. Throws any errors. - - std::array recv_buf; - udp::endpoint sender_endpoint; - std::future recv_length = - socket.async_receive_from( - asio::buffer(recv_buf), - sender_endpoint, - asio::use_future); - - // Do other things here while the receive completes. - - std::cout.write( - recv_buf.data(), - recv_length.get()); // Blocks until receive is complete. - } - catch (std::system_error& e) - { - std::cerr << e.what() << std::endl; - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: daytime_client " << std::endl; - return 1; - } - - // We run the io_context off in its own thread so that it operates - // completely asynchronously with respect to the rest of the program. - asio::io_context io_context; - auto work = asio::make_work_guard(io_context); - std::thread thread([&io_context](){ io_context.run(); }); - - get_daytime(io_context, argv[1]); - - io_context.stop(); - thread.join(); - } - catch (std::exception& e) - { - std::cerr << e.what() << std::endl; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp b/Sources/Vendor/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp deleted file mode 100644 index 96dbe6f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +++ /dev/null @@ -1,201 +0,0 @@ -// -// custom_tracking.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 CUSTOM_TRACKING_HPP -#define CUSTOM_TRACKING_HPP - -#include -#include -#include - -# define ASIO_INHERIT_TRACKED_HANDLER \ - : public ::custom_tracking::tracked_handler - -# define ASIO_ALSO_INHERIT_TRACKED_HANDLER \ - , public ::custom_tracking::tracked_handler - -# define ASIO_HANDLER_TRACKING_INIT \ - ::custom_tracking::init() - -# define ASIO_HANDLER_CREATION(args) \ - ::custom_tracking::creation args - -# define ASIO_HANDLER_COMPLETION(args) \ - ::custom_tracking::completion tracked_completion args - -# define ASIO_HANDLER_INVOCATION_BEGIN(args) \ - tracked_completion.invocation_begin args - -# define ASIO_HANDLER_INVOCATION_END \ - tracked_completion.invocation_end() - -# define ASIO_HANDLER_OPERATION(args) \ - ::custom_tracking::operation args - -# define ASIO_HANDLER_REACTOR_REGISTRATION(args) \ - ::custom_tracking::reactor_registration args - -# define ASIO_HANDLER_REACTOR_DEREGISTRATION(args) \ - ::custom_tracking::reactor_deregistration args - -# define ASIO_HANDLER_REACTOR_READ_EVENT 1 -# define ASIO_HANDLER_REACTOR_WRITE_EVENT 2 -# define ASIO_HANDLER_REACTOR_ERROR_EVENT 4 - -# define ASIO_HANDLER_REACTOR_EVENTS(args) \ - ::custom_tracking::reactor_events args - -# define ASIO_HANDLER_REACTOR_OPERATION(args) \ - ::custom_tracking::reactor_operation args - -struct custom_tracking -{ - // Base class for objects containing tracked handlers. - struct tracked_handler - { - std::uintmax_t handler_id_ = 0; // To uniquely identify a handler. - std::uintmax_t tree_id_ = 0; // To identify related handlers. - const char* object_type_; // The object type associated with the handler. - std::uintmax_t native_handle_; // Native handle, if any. - }; - - // Initialise the tracking system. - static void init() - { - } - - // Record the creation of a tracked handler. - static void creation(asio::execution_context& /*ctx*/, - tracked_handler& h, const char* object_type, void* /*object*/, - std::uintmax_t native_handle, const char* op_name) - { - // Generate a unique id for the new handler. - static std::atomic next_handler_id{1}; - h.handler_id_ = next_handler_id++; - - // Copy the tree identifier forward from the current handler. - if (*current_completion()) - h.tree_id_ = (*current_completion())->handler_.tree_id_; - - // Store various attributes of the operation to use in later output. - h.object_type_ = object_type; - h.native_handle_ = native_handle; - - std::printf( - "Starting operation %s.%s for native_handle = %" PRIuMAX - ", handler = %" PRIuMAX ", tree = %" PRIuMAX "\n", - object_type, op_name, h.native_handle_, h.handler_id_, h.tree_id_); - } - - struct completion - { - explicit completion(const tracked_handler& h) - : handler_(h), - next_(*current_completion()) - { - *current_completion() = this; - } - - completion(const completion&) = delete; - completion& operator=(const completion&) = delete; - - // Destructor records only when an exception is thrown from the handler, or - // if the memory is being freed without the handler having been invoked. - ~completion() - { - *current_completion() = next_; - } - - // Records that handler is to be invoked with the specified arguments. - template - void invocation_begin(Args&&... /*args*/) - { - std::printf("Entering handler %" PRIuMAX " in tree %" PRIuMAX "\n", - handler_.handler_id_, handler_.tree_id_); - } - - // Record that handler invocation has ended. - void invocation_end() - { - std::printf("Leaving handler %" PRIuMAX " in tree %" PRIuMAX "\n", - handler_.handler_id_, handler_.tree_id_); - } - - tracked_handler handler_; - - // Completions may nest. Here we stash a pointer to the outer completion. - completion* next_; - }; - - static completion** current_completion() - { - static ASIO_THREAD_KEYWORD completion* current = nullptr; - return ¤t; - } - - // Record an operation that is not directly associated with a handler. - static void operation(asio::execution_context& /*ctx*/, - const char* /*object_type*/, void* /*object*/, - std::uintmax_t /*native_handle*/, const char* /*op_name*/) - { - } - - // Record that a descriptor has been registered with the reactor. - static void reactor_registration(asio::execution_context& context, - uintmax_t native_handle, uintmax_t registration) - { - std::printf("Adding to reactor native_handle = %" PRIuMAX - ", registration = %" PRIuMAX "\n", native_handle, registration); - } - - // Record that a descriptor has been deregistered from the reactor. - static void reactor_deregistration(asio::execution_context& context, - uintmax_t native_handle, uintmax_t registration) - { - std::printf("Removing from reactor native_handle = %" PRIuMAX - ", registration = %" PRIuMAX "\n", native_handle, registration); - } - - // Record reactor-based readiness events associated with a descriptor. - static void reactor_events(asio::execution_context& context, - uintmax_t registration, unsigned events) - { - std::printf( - "Reactor readiness for registration = %" PRIuMAX ", events =%s%s%s\n", - registration, - (events & ASIO_HANDLER_REACTOR_READ_EVENT) ? " read" : "", - (events & ASIO_HANDLER_REACTOR_WRITE_EVENT) ? " write" : "", - (events & ASIO_HANDLER_REACTOR_ERROR_EVENT) ? " error" : ""); - } - - // Record a reactor-based operation that is associated with a handler. - static void reactor_operation(const tracked_handler& h, - const char* op_name, const asio::error_code& ec) - { - std::printf( - "Performed operation %s.%s for native_handle = %" PRIuMAX - ", ec = %s:%d\n", h.object_type_, op_name, h.native_handle_, - ec.category().name(), ec.value()); - } - - // Record a reactor-based operation that is associated with a handler. - static void reactor_operation(const tracked_handler& h, - const char* op_name, const asio::error_code& ec, - std::size_t bytes_transferred) - { - std::printf( - "Performed operation %s.%s for native_handle = %" PRIuMAX - ", ec = %s:%d, n = %" PRIuMAX "\n", h.object_type_, op_name, - h.native_handle_, ec.category().name(), ec.value(), - static_cast(bytes_transferred)); - } -}; - -#endif // CUSTOM_TRACKING_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.cpp deleted file mode 100644 index 90ec2cd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// connection.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "connection.hpp" -#include -#include -#include "connection_manager.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server { - -connection::connection(asio::ip::tcp::socket socket, - connection_manager& manager, request_handler& handler) - : socket_(std::move(socket)), - connection_manager_(manager), - request_handler_(handler) -{ -} - -void connection::start() -{ - do_read(); -} - -void connection::stop() -{ - socket_.close(); -} - -void connection::do_read() -{ - auto self(shared_from_this()); - socket_.async_read_some(asio::buffer(buffer_), - [this, self](std::error_code ec, std::size_t bytes_transferred) - { - if (!ec) - { - request_parser::result_type result; - std::tie(result, std::ignore) = request_parser_.parse( - request_, buffer_.data(), buffer_.data() + bytes_transferred); - - if (result == request_parser::good) - { - request_handler_.handle_request(request_, reply_); - do_write(); - } - else if (result == request_parser::bad) - { - reply_ = reply::stock_reply(reply::bad_request); - do_write(); - } - else - { - do_read(); - } - } - else if (ec != asio::error::operation_aborted) - { - connection_manager_.stop(shared_from_this()); - } - }); -} - -void connection::do_write() -{ - auto self(shared_from_this()); - asio::async_write(socket_, reply_.to_buffers(), - [this, self](std::error_code ec, std::size_t) - { - if (!ec) - { - // Initiate graceful connection closure. - asio::error_code ignored_ec; - socket_.shutdown(asio::ip::tcp::socket::shutdown_both, - ignored_ec); - } - - if (ec != asio::error::operation_aborted) - { - connection_manager_.stop(shared_from_this()); - } - }); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.hpp deleted file mode 100644 index 3fc8c6e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection.hpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// connection.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_CONNECTION_HPP -#define HTTP_CONNECTION_HPP - -#include -#include -#include -#include "reply.hpp" -#include "request.hpp" -#include "request_handler.hpp" -#include "request_parser.hpp" - -namespace http { -namespace server { - -class connection_manager; - -/// Represents a single connection from a client. -class connection - : public std::enable_shared_from_this -{ -public: - connection(const connection&) = delete; - connection& operator=(const connection&) = delete; - - /// Construct a connection with the given socket. - explicit connection(asio::ip::tcp::socket socket, - connection_manager& manager, request_handler& handler); - - /// Start the first asynchronous operation for the connection. - void start(); - - /// Stop all asynchronous operations associated with the connection. - void stop(); - -private: - /// Perform an asynchronous read operation. - void do_read(); - - /// Perform an asynchronous write operation. - void do_write(); - - /// Socket for the connection. - asio::ip::tcp::socket socket_; - - /// The manager for this connection. - connection_manager& connection_manager_; - - /// The handler used to process the incoming request. - request_handler& request_handler_; - - /// Buffer for incoming data. - std::array buffer_; - - /// The incoming request. - request request_; - - /// The parser for the incoming request. - request_parser request_parser_; - - /// The reply to be sent back to the client. - reply reply_; -}; - -typedef std::shared_ptr connection_ptr; - -} // namespace server -} // namespace http - -#endif // HTTP_CONNECTION_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.cpp deleted file mode 100644 index ac86299..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.cpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// connection_manager.cpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "connection_manager.hpp" - -namespace http { -namespace server { - -connection_manager::connection_manager() -{ -} - -void connection_manager::start(connection_ptr c) -{ - connections_.insert(c); - c->start(); -} - -void connection_manager::stop(connection_ptr c) -{ - connections_.erase(c); - c->stop(); -} - -void connection_manager::stop_all() -{ - for (auto c: connections_) - c->stop(); - connections_.clear(); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.hpp deleted file mode 100644 index 027b9e9..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/connection_manager.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// connection_manager.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_CONNECTION_MANAGER_HPP -#define HTTP_CONNECTION_MANAGER_HPP - -#include -#include "connection.hpp" - -namespace http { -namespace server { - -/// Manages open connections so that they may be cleanly stopped when the server -/// needs to shut down. -class connection_manager -{ -public: - connection_manager(const connection_manager&) = delete; - connection_manager& operator=(const connection_manager&) = delete; - - /// Construct a connection manager. - connection_manager(); - - /// Add the specified connection to the manager and start it. - void start(connection_ptr c); - - /// Stop the specified connection. - void stop(connection_ptr c); - - /// Stop all connections. - void stop_all(); - -private: - /// The managed connections. - std::set connections_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_CONNECTION_MANAGER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/header.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/header.hpp deleted file mode 100644 index 18bad98..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/header.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// header.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_HEADER_HPP -#define HTTP_HEADER_HPP - -#include - -namespace http { -namespace server { - -struct header -{ - std::string name; - std::string value; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_HEADER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/main.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/main.cpp deleted file mode 100644 index 145e815..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/main.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// main.cpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "server.hpp" - -int main(int argc, char* argv[]) -{ - try - { - // Check command line arguments. - if (argc != 4) - { - std::cerr << "Usage: http_server
\n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 80 .\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 80 .\n"; - return 1; - } - - // Initialise the server. - http::server::server s(argv[1], argv[2], argv[3]); - - // Run the server until stopped. - s.run(); - } - catch (std::exception& e) - { - std::cerr << "exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.cpp deleted file mode 100644 index 0762cf7..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// -// mime_types.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "mime_types.hpp" - -namespace http { -namespace server { -namespace mime_types { - -struct mapping -{ - const char* extension; - const char* mime_type; -} mappings[] = -{ - { "gif", "image/gif" }, - { "htm", "text/html" }, - { "html", "text/html" }, - { "jpg", "image/jpeg" }, - { "png", "image/png" } -}; - -std::string extension_to_type(const std::string& extension) -{ - for (mapping m: mappings) - { - if (m.extension == extension) - { - return m.mime_type; - } - } - - return "text/plain"; -} - -} // namespace mime_types -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.hpp deleted file mode 100644 index a5f352e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/mime_types.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// mime_types.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_MIME_TYPES_HPP -#define HTTP_MIME_TYPES_HPP - -#include - -namespace http { -namespace server { -namespace mime_types { - -/// Convert a file extension into a MIME type. -std::string extension_to_type(const std::string& extension); - -} // namespace mime_types -} // namespace server -} // namespace http - -#endif // HTTP_MIME_TYPES_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.cpp deleted file mode 100644 index 66505ce..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.cpp +++ /dev/null @@ -1,255 +0,0 @@ -// -// reply.cpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "reply.hpp" -#include - -namespace http { -namespace server { - -namespace status_strings { - -const std::string ok = - "HTTP/1.0 200 OK\r\n"; -const std::string created = - "HTTP/1.0 201 Created\r\n"; -const std::string accepted = - "HTTP/1.0 202 Accepted\r\n"; -const std::string no_content = - "HTTP/1.0 204 No Content\r\n"; -const std::string multiple_choices = - "HTTP/1.0 300 Multiple Choices\r\n"; -const std::string moved_permanently = - "HTTP/1.0 301 Moved Permanently\r\n"; -const std::string moved_temporarily = - "HTTP/1.0 302 Moved Temporarily\r\n"; -const std::string not_modified = - "HTTP/1.0 304 Not Modified\r\n"; -const std::string bad_request = - "HTTP/1.0 400 Bad Request\r\n"; -const std::string unauthorized = - "HTTP/1.0 401 Unauthorized\r\n"; -const std::string forbidden = - "HTTP/1.0 403 Forbidden\r\n"; -const std::string not_found = - "HTTP/1.0 404 Not Found\r\n"; -const std::string internal_server_error = - "HTTP/1.0 500 Internal Server Error\r\n"; -const std::string not_implemented = - "HTTP/1.0 501 Not Implemented\r\n"; -const std::string bad_gateway = - "HTTP/1.0 502 Bad Gateway\r\n"; -const std::string service_unavailable = - "HTTP/1.0 503 Service Unavailable\r\n"; - -asio::const_buffer to_buffer(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return asio::buffer(ok); - case reply::created: - return asio::buffer(created); - case reply::accepted: - return asio::buffer(accepted); - case reply::no_content: - return asio::buffer(no_content); - case reply::multiple_choices: - return asio::buffer(multiple_choices); - case reply::moved_permanently: - return asio::buffer(moved_permanently); - case reply::moved_temporarily: - return asio::buffer(moved_temporarily); - case reply::not_modified: - return asio::buffer(not_modified); - case reply::bad_request: - return asio::buffer(bad_request); - case reply::unauthorized: - return asio::buffer(unauthorized); - case reply::forbidden: - return asio::buffer(forbidden); - case reply::not_found: - return asio::buffer(not_found); - case reply::internal_server_error: - return asio::buffer(internal_server_error); - case reply::not_implemented: - return asio::buffer(not_implemented); - case reply::bad_gateway: - return asio::buffer(bad_gateway); - case reply::service_unavailable: - return asio::buffer(service_unavailable); - default: - return asio::buffer(internal_server_error); - } -} - -} // namespace status_strings - -namespace misc_strings { - -const char name_value_separator[] = { ':', ' ' }; -const char crlf[] = { '\r', '\n' }; - -} // namespace misc_strings - -std::vector reply::to_buffers() -{ - std::vector buffers; - buffers.push_back(status_strings::to_buffer(status)); - for (std::size_t i = 0; i < headers.size(); ++i) - { - header& h = headers[i]; - buffers.push_back(asio::buffer(h.name)); - buffers.push_back(asio::buffer(misc_strings::name_value_separator)); - buffers.push_back(asio::buffer(h.value)); - buffers.push_back(asio::buffer(misc_strings::crlf)); - } - buffers.push_back(asio::buffer(misc_strings::crlf)); - buffers.push_back(asio::buffer(content)); - return buffers; -} - -namespace stock_replies { - -const char ok[] = ""; -const char created[] = - "" - "Created" - "

201 Created

" - ""; -const char accepted[] = - "" - "Accepted" - "

202 Accepted

" - ""; -const char no_content[] = - "" - "No Content" - "

204 Content

" - ""; -const char multiple_choices[] = - "" - "Multiple Choices" - "

300 Multiple Choices

" - ""; -const char moved_permanently[] = - "" - "Moved Permanently" - "

301 Moved Permanently

" - ""; -const char moved_temporarily[] = - "" - "Moved Temporarily" - "

302 Moved Temporarily

" - ""; -const char not_modified[] = - "" - "Not Modified" - "

304 Not Modified

" - ""; -const char bad_request[] = - "" - "Bad Request" - "

400 Bad Request

" - ""; -const char unauthorized[] = - "" - "Unauthorized" - "

401 Unauthorized

" - ""; -const char forbidden[] = - "" - "Forbidden" - "

403 Forbidden

" - ""; -const char not_found[] = - "" - "Not Found" - "

404 Not Found

" - ""; -const char internal_server_error[] = - "" - "Internal Server Error" - "

500 Internal Server Error

" - ""; -const char not_implemented[] = - "" - "Not Implemented" - "

501 Not Implemented

" - ""; -const char bad_gateway[] = - "" - "Bad Gateway" - "

502 Bad Gateway

" - ""; -const char service_unavailable[] = - "" - "Service Unavailable" - "

503 Service Unavailable

" - ""; - -std::string to_string(reply::status_type status) -{ - switch (status) - { - case reply::ok: - return ok; - case reply::created: - return created; - case reply::accepted: - return accepted; - case reply::no_content: - return no_content; - case reply::multiple_choices: - return multiple_choices; - case reply::moved_permanently: - return moved_permanently; - case reply::moved_temporarily: - return moved_temporarily; - case reply::not_modified: - return not_modified; - case reply::bad_request: - return bad_request; - case reply::unauthorized: - return unauthorized; - case reply::forbidden: - return forbidden; - case reply::not_found: - return not_found; - case reply::internal_server_error: - return internal_server_error; - case reply::not_implemented: - return not_implemented; - case reply::bad_gateway: - return bad_gateway; - case reply::service_unavailable: - return service_unavailable; - default: - return internal_server_error; - } -} - -} // namespace stock_replies - -reply reply::stock_reply(reply::status_type status) -{ - reply rep; - rep.status = status; - rep.content = stock_replies::to_string(status); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = std::to_string(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = "text/html"; - return rep; -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.hpp deleted file mode 100644 index 078e55c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/reply.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// reply.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_REPLY_HPP -#define HTTP_REPLY_HPP - -#include -#include -#include -#include "header.hpp" - -namespace http { -namespace server { - -/// A reply to be sent to a client. -struct reply -{ - /// The status of the reply. - enum status_type - { - ok = 200, - created = 201, - accepted = 202, - no_content = 204, - multiple_choices = 300, - moved_permanently = 301, - moved_temporarily = 302, - not_modified = 304, - bad_request = 400, - unauthorized = 401, - forbidden = 403, - not_found = 404, - internal_server_error = 500, - not_implemented = 501, - bad_gateway = 502, - service_unavailable = 503 - } status; - - /// The headers to be included in the reply. - std::vector
headers; - - /// The content to be sent in the reply. - std::string content; - - /// Convert the reply into a vector of buffers. The buffers do not own the - /// underlying memory blocks, therefore the reply object must remain valid and - /// not be changed until the write operation has completed. - std::vector to_buffers(); - - /// Get a stock reply. - static reply stock_reply(status_type status); -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REPLY_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/request.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request.hpp deleted file mode 100644 index 6488b1d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// -// request.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_REQUEST_HPP -#define HTTP_REQUEST_HPP - -#include -#include -#include "header.hpp" - -namespace http { -namespace server { - -/// A request received from a client. -struct request -{ - std::string method; - std::string uri; - int http_version_major; - int http_version_minor; - std::vector
headers; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REQUEST_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.cpp deleted file mode 100644 index 04a5959..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// request_handler.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_handler.hpp" -#include -#include -#include -#include "mime_types.hpp" -#include "reply.hpp" -#include "request.hpp" - -namespace http { -namespace server { - -request_handler::request_handler(const std::string& doc_root) - : doc_root_(doc_root) -{ -} - -void request_handler::handle_request(const request& req, reply& rep) -{ - // Decode url to path. - std::string request_path; - if (!url_decode(req.uri, request_path)) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // Request path must be absolute and not contain "..". - if (request_path.empty() || request_path[0] != '/' - || request_path.find("..") != std::string::npos) - { - rep = reply::stock_reply(reply::bad_request); - return; - } - - // If path ends in slash (i.e. is a directory) then add "index.html". - if (request_path[request_path.size() - 1] == '/') - { - request_path += "index.html"; - } - - // Determine the file extension. - std::size_t last_slash_pos = request_path.find_last_of("/"); - std::size_t last_dot_pos = request_path.find_last_of("."); - std::string extension; - if (last_dot_pos != std::string::npos && last_dot_pos > last_slash_pos) - { - extension = request_path.substr(last_dot_pos + 1); - } - - // Open the file to send back. - std::string full_path = doc_root_ + request_path; - std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary); - if (!is) - { - rep = reply::stock_reply(reply::not_found); - return; - } - - // Fill out the reply to be sent to the client. - rep.status = reply::ok; - char buf[512]; - while (is.read(buf, sizeof(buf)).gcount() > 0) - rep.content.append(buf, is.gcount()); - rep.headers.resize(2); - rep.headers[0].name = "Content-Length"; - rep.headers[0].value = std::to_string(rep.content.size()); - rep.headers[1].name = "Content-Type"; - rep.headers[1].value = mime_types::extension_to_type(extension); -} - -bool request_handler::url_decode(const std::string& in, std::string& out) -{ - out.clear(); - out.reserve(in.size()); - for (std::size_t i = 0; i < in.size(); ++i) - { - if (in[i] == '%') - { - if (i + 3 <= in.size()) - { - int value = 0; - std::istringstream is(in.substr(i + 1, 2)); - if (is >> std::hex >> value) - { - out += static_cast(value); - i += 2; - } - else - { - return false; - } - } - else - { - return false; - } - } - else if (in[i] == '+') - { - out += ' '; - } - else - { - out += in[i]; - } - } - return true; -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.hpp deleted file mode 100644 index 82bd613..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_handler.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// request_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_REQUEST_HANDLER_HPP -#define HTTP_REQUEST_HANDLER_HPP - -#include - -namespace http { -namespace server { - -struct reply; -struct request; - -/// The common handler for all incoming requests. -class request_handler -{ -public: - request_handler(const request_handler&) = delete; - request_handler& operator=(const request_handler&) = delete; - - /// Construct with a directory containing files to be served. - explicit request_handler(const std::string& doc_root); - - /// Handle a request and produce a reply. - void handle_request(const request& req, reply& rep); - -private: - /// The directory containing the files to be served. - std::string doc_root_; - - /// Perform URL-decoding on a string. Returns false if the encoding was - /// invalid. - static bool url_decode(const std::string& in, std::string& out); -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REQUEST_HANDLER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.cpp deleted file mode 100644 index 4b148c5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// -// request_parser.cpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "request_parser.hpp" -#include "request.hpp" - -namespace http { -namespace server { - -request_parser::request_parser() - : state_(method_start) -{ -} - -void request_parser::reset() -{ - state_ = method_start; -} - -request_parser::result_type request_parser::consume(request& req, char input) -{ - switch (state_) - { - case method_start: - if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return bad; - } - else - { - state_ = method; - req.method.push_back(input); - return indeterminate; - } - case method: - if (input == ' ') - { - state_ = uri; - return indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return bad; - } - else - { - req.method.push_back(input); - return indeterminate; - } - case uri: - if (input == ' ') - { - state_ = http_version_h; - return indeterminate; - } - else if (is_ctl(input)) - { - return bad; - } - else - { - req.uri.push_back(input); - return indeterminate; - } - case http_version_h: - if (input == 'H') - { - state_ = http_version_t_1; - return indeterminate; - } - else - { - return bad; - } - case http_version_t_1: - if (input == 'T') - { - state_ = http_version_t_2; - return indeterminate; - } - else - { - return bad; - } - case http_version_t_2: - if (input == 'T') - { - state_ = http_version_p; - return indeterminate; - } - else - { - return bad; - } - case http_version_p: - if (input == 'P') - { - state_ = http_version_slash; - return indeterminate; - } - else - { - return bad; - } - case http_version_slash: - if (input == '/') - { - req.http_version_major = 0; - req.http_version_minor = 0; - state_ = http_version_major_start; - return indeterminate; - } - else - { - return bad; - } - case http_version_major_start: - if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - state_ = http_version_major; - return indeterminate; - } - else - { - return bad; - } - case http_version_major: - if (input == '.') - { - state_ = http_version_minor_start; - return indeterminate; - } - else if (is_digit(input)) - { - req.http_version_major = req.http_version_major * 10 + input - '0'; - return indeterminate; - } - else - { - return bad; - } - case http_version_minor_start: - if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - state_ = http_version_minor; - return indeterminate; - } - else - { - return bad; - } - case http_version_minor: - if (input == '\r') - { - state_ = expecting_newline_1; - return indeterminate; - } - else if (is_digit(input)) - { - req.http_version_minor = req.http_version_minor * 10 + input - '0'; - return indeterminate; - } - else - { - return bad; - } - case expecting_newline_1: - if (input == '\n') - { - state_ = header_line_start; - return indeterminate; - } - else - { - return bad; - } - case header_line_start: - if (input == '\r') - { - state_ = expecting_newline_3; - return indeterminate; - } - else if (!req.headers.empty() && (input == ' ' || input == '\t')) - { - state_ = header_lws; - return indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return bad; - } - else - { - req.headers.push_back(header()); - req.headers.back().name.push_back(input); - state_ = header_name; - return indeterminate; - } - case header_lws: - if (input == '\r') - { - state_ = expecting_newline_2; - return indeterminate; - } - else if (input == ' ' || input == '\t') - { - return indeterminate; - } - else if (is_ctl(input)) - { - return bad; - } - else - { - state_ = header_value; - req.headers.back().value.push_back(input); - return indeterminate; - } - case header_name: - if (input == ':') - { - state_ = space_before_header_value; - return indeterminate; - } - else if (!is_char(input) || is_ctl(input) || is_tspecial(input)) - { - return bad; - } - else - { - req.headers.back().name.push_back(input); - return indeterminate; - } - case space_before_header_value: - if (input == ' ') - { - state_ = header_value; - return indeterminate; - } - else - { - return bad; - } - case header_value: - if (input == '\r') - { - state_ = expecting_newline_2; - return indeterminate; - } - else if (is_ctl(input)) - { - return bad; - } - else - { - req.headers.back().value.push_back(input); - return indeterminate; - } - case expecting_newline_2: - if (input == '\n') - { - state_ = header_line_start; - return indeterminate; - } - else - { - return bad; - } - case expecting_newline_3: - return (input == '\n') ? good : bad; - default: - return bad; - } -} - -bool request_parser::is_char(int c) -{ - return c >= 0 && c <= 127; -} - -bool request_parser::is_ctl(int c) -{ - return (c >= 0 && c <= 31) || (c == 127); -} - -bool request_parser::is_tspecial(int c) -{ - switch (c) - { - case '(': case ')': case '<': case '>': case '@': - case ',': case ';': case ':': case '\\': case '"': - case '/': case '[': case ']': case '?': case '=': - case '{': case '}': case ' ': case '\t': - return true; - default: - return false; - } -} - -bool request_parser::is_digit(int c) -{ - return c >= '0' && c <= '9'; -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.hpp deleted file mode 100644 index aaae6b9..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/request_parser.hpp +++ /dev/null @@ -1,96 +0,0 @@ -// -// request_parser.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_REQUEST_PARSER_HPP -#define HTTP_REQUEST_PARSER_HPP - -#include - -namespace http { -namespace server { - -struct request; - -/// Parser for incoming requests. -class request_parser -{ -public: - /// Construct ready to parse the request method. - request_parser(); - - /// Reset to initial parser state. - void reset(); - - /// Result of parse. - enum result_type { good, bad, indeterminate }; - - /// Parse some data. The enum return value is good when a complete request has - /// been parsed, bad if the data is invalid, indeterminate when more data is - /// required. The InputIterator return value indicates how much of the input - /// has been consumed. - template - std::tuple parse(request& req, - InputIterator begin, InputIterator end) - { - while (begin != end) - { - result_type result = consume(req, *begin++); - if (result == good || result == bad) - return std::make_tuple(result, begin); - } - return std::make_tuple(indeterminate, begin); - } - -private: - /// Handle the next character of input. - result_type consume(request& req, char input); - - /// Check if a byte is an HTTP character. - static bool is_char(int c); - - /// Check if a byte is an HTTP control character. - static bool is_ctl(int c); - - /// Check if a byte is defined as an HTTP tspecial character. - static bool is_tspecial(int c); - - /// Check if a byte is a digit. - static bool is_digit(int c); - - /// The current state of the parser. - enum state - { - method_start, - method, - uri, - http_version_h, - http_version_t_1, - http_version_t_2, - http_version_p, - http_version_slash, - http_version_major_start, - http_version_major, - http_version_minor_start, - http_version_minor, - expecting_newline_1, - header_line_start, - header_lws, - header_name, - space_before_header_value, - header_value, - expecting_newline_2, - expecting_newline_3 - } state_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_REQUEST_PARSER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/server.cpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/server.cpp deleted file mode 100644 index dac6ffd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/server.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "server.hpp" -#include -#include - -namespace http { -namespace server { - -server::server(const std::string& address, const std::string& port, - const std::string& doc_root) - : io_context_(1), - signals_(io_context_), - acceptor_(io_context_), - connection_manager_(), - request_handler_(doc_root) -{ - // Register to handle the signals that indicate when the server should exit. - // It is safe to register for the same signal multiple times in a program, - // provided all registration for the specified signal is made through Asio. - signals_.add(SIGINT); - signals_.add(SIGTERM); -#if defined(SIGQUIT) - signals_.add(SIGQUIT); -#endif // defined(SIGQUIT) - - do_await_stop(); - - // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). - asio::ip::tcp::resolver resolver(io_context_); - asio::ip::tcp::endpoint endpoint = - *resolver.resolve(address, port).begin(); - acceptor_.open(endpoint.protocol()); - acceptor_.set_option(asio::ip::tcp::acceptor::reuse_address(true)); - acceptor_.bind(endpoint); - acceptor_.listen(); - - do_accept(); -} - -void server::run() -{ - // The io_context::run() call will block until all asynchronous operations - // have finished. While the server is running, there is always at least one - // asynchronous operation outstanding: the asynchronous accept call waiting - // for new incoming connections. - io_context_.run(); -} - -void server::do_accept() -{ - acceptor_.async_accept( - [this](std::error_code ec, asio::ip::tcp::socket socket) - { - // Check whether the server was stopped by a signal before this - // completion handler had a chance to run. - if (!acceptor_.is_open()) - { - return; - } - - if (!ec) - { - connection_manager_.start(std::make_shared( - std::move(socket), connection_manager_, request_handler_)); - } - - do_accept(); - }); -} - -void server::do_await_stop() -{ - signals_.async_wait( - [this](std::error_code /*ec*/, int /*signo*/) - { - // The server is stopped by cancelling all outstanding asynchronous - // operations. Once all operations have finished the io_context::run() - // call will exit. - acceptor_.close(); - connection_manager_.stop_all(); - }); -} - -} // namespace server -} // namespace http diff --git a/Sources/Vendor/asio/src/examples/cpp11/http/server/server.hpp b/Sources/Vendor/asio/src/examples/cpp11/http/server/server.hpp deleted file mode 100644 index b55e21c..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/http/server/server.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// server.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HTTP_SERVER_HPP -#define HTTP_SERVER_HPP - -#include -#include -#include "connection.hpp" -#include "connection_manager.hpp" -#include "request_handler.hpp" - -namespace http { -namespace server { - -/// The top-level class of the HTTP server. -class server -{ -public: - server(const server&) = delete; - server& operator=(const server&) = delete; - - /// Construct the server to listen on the specified TCP address and port, and - /// serve up files from the given directory. - explicit server(const std::string& address, const std::string& port, - const std::string& doc_root); - - /// Run the server's io_context loop. - void run(); - -private: - /// Perform an asynchronous accept operation. - void do_accept(); - - /// Wait for a request to stop the server. - void do_await_stop(); - - /// The io_context used to perform asynchronous operations. - asio::io_context io_context_; - - /// The signal_set is used to register for process termination notifications. - asio::signal_set signals_; - - /// Acceptor used to listen for incoming connections. - asio::ip::tcp::acceptor acceptor_; - - /// The connection manager which owns all live connections. - connection_manager connection_manager_; - - /// The handler for all incoming requests. - request_handler request_handler_; -}; - -} // namespace server -} // namespace http - -#endif // HTTP_SERVER_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp b/Sources/Vendor/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp deleted file mode 100644 index acb5e3d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +++ /dev/null @@ -1,202 +0,0 @@ -// -// prioritised_handlers.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio.hpp" -#include -#include -#include - -using asio::ip::tcp; - -class handler_priority_queue : asio::execution_context -{ -public: - template - void add(int priority, Function function) - { - std::unique_ptr handler( - new queued_handler( - priority, std::move(function))); - - handlers_.push(std::move(handler)); - } - - void execute_all() - { - while (!handlers_.empty()) - { - handlers_.top()->execute(); - handlers_.pop(); - } - } - - class executor - { - public: - executor(handler_priority_queue& q, int p) - : context_(q), priority_(p) - { - } - - handler_priority_queue& context() const noexcept - { - return context_; - } - - template - void dispatch(Function f, const Allocator&) const - { - context_.add(priority_, std::move(f)); - } - - template - void post(Function f, const Allocator&) const - { - context_.add(priority_, std::move(f)); - } - - template - void defer(Function f, const Allocator&) const - { - context_.add(priority_, std::move(f)); - } - - void on_work_started() const noexcept {} - void on_work_finished() const noexcept {} - - bool operator==(const executor& other) const noexcept - { - return &context_ == &other.context_ && priority_ == other.priority_; - } - - bool operator!=(const executor& other) const noexcept - { - return !operator==(other); - } - - private: - handler_priority_queue& context_; - int priority_; - }; - - template - asio::executor_binder - wrap(int priority, Handler handler) - { - return asio::bind_executor( - executor(*this, priority), std::move(handler)); - } - -private: - class queued_handler_base - { - public: - queued_handler_base(int p) - : priority_(p) - { - } - - virtual ~queued_handler_base() - { - } - - virtual void execute() = 0; - - friend bool operator<(const std::unique_ptr& a, - const std::unique_ptr& b) noexcept - { - return a->priority_ < b->priority_; - } - - private: - int priority_; - }; - - template - class queued_handler : public queued_handler_base - { - public: - queued_handler(int p, Function f) - : queued_handler_base(p), function_(std::move(f)) - { - } - - void execute() override - { - function_(); - } - - private: - Function function_; - }; - - std::priority_queue> handlers_; -}; - -//---------------------------------------------------------------------- - -void high_priority_handler(const asio::error_code& /*ec*/, - tcp::socket /*socket*/) -{ - std::cout << "High priority handler\n"; -} - -void middle_priority_handler(const asio::error_code& /*ec*/) -{ - std::cout << "Middle priority handler\n"; -} - -struct low_priority_handler -{ - // Make the handler a move-only type. - low_priority_handler() = default; - low_priority_handler(const low_priority_handler&) = delete; - low_priority_handler(low_priority_handler&&) = default; - - void operator()() - { - std::cout << "Low priority handler\n"; - } -}; - -int main() -{ - asio::io_context io_context; - - handler_priority_queue pri_queue; - - // Post a completion handler to be run immediately. - asio::post(io_context, pri_queue.wrap(0, low_priority_handler())); - - // Start an asynchronous accept that will complete immediately. - tcp::endpoint endpoint(asio::ip::address_v4::loopback(), 0); - tcp::acceptor acceptor(io_context, endpoint); - tcp::socket server_socket(io_context); - acceptor.async_accept(pri_queue.wrap(100, high_priority_handler)); - tcp::socket client_socket(io_context); - client_socket.connect(acceptor.local_endpoint()); - - // Set a deadline timer to expire immediately. - asio::steady_timer timer(io_context); - timer.expires_at(asio::steady_timer::clock_type::time_point::min()); - timer.async_wait(pri_queue.wrap(42, middle_priority_handler)); - - while (io_context.run_one()) - { - // The custom invocation hook adds the handlers to the priority queue - // rather than executing them from within the poll_one() call. - while (io_context.poll_one()) - ; - - pri_queue.execute_all(); - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/iostreams/http_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/iostreams/http_client.cpp deleted file mode 100644 index dd6be3f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/iostreams/http_client.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// http_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: http_client \n"; - std::cout << "Example:\n"; - std::cout << " http_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::ip::tcp::iostream s; - - // The entire sequence of I/O operations must complete within 60 seconds. - // If an expiry occurs, the socket is automatically closed and the stream - // becomes bad. - s.expires_after(std::chrono::seconds(60)); - - // Establish a connection to the server. - s.connect(argv[1], "http"); - if (!s) - { - std::cout << "Unable to connect: " << s.error().message() << "\n"; - return 1; - } - - // Send the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - s << "GET " << argv[2] << " HTTP/1.0\r\n"; - s << "Host: " << argv[1] << "\r\n"; - s << "Accept: */*\r\n"; - s << "Connection: close\r\n\r\n"; - - // By default, the stream is tied with itself. This means that the stream - // automatically flush the buffered output before attempting a read. It is - // not necessary not explicitly flush the stream at this point. - - // Check that response is OK. - std::string http_version; - s >> http_version; - unsigned int status_code; - s >> status_code; - std::string status_message; - std::getline(s, status_message); - if (!s || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return 1; - } - if (status_code != 200) - { - std::cout << "Response returned with status code " << status_code << "\n"; - return 1; - } - - // Process the response headers, which are terminated by a blank line. - std::string header; - while (std::getline(s, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write the remaining data to output. - std::cout << s.rdbuf(); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/local/connect_pair.cpp b/Sources/Vendor/asio/src/examples/cpp11/local/connect_pair.cpp deleted file mode 100644 index aaa4ed8..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/local/connect_pair.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// connect_pair.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -class uppercase_filter -{ -public: - uppercase_filter(stream_protocol::socket sock) - : socket_(std::move(sock)) - { - read(); - } - -private: - void read() - { - socket_.async_read_some(asio::buffer(data_), - [this](std::error_code ec, std::size_t size) - { - if (!ec) - { - // Compute result. - for (std::size_t i = 0; i < size; ++i) - data_[i] = std::toupper(data_[i]); - - // Send result. - write(size); - } - else - { - throw asio::system_error(ec); - } - }); - } - - void write(std::size_t size) - { - asio::async_write(socket_, asio::buffer(data_, size), - [this](std::error_code ec, std::size_t /*size*/) - { - if (!ec) - { - // Wait for request. - read(); - } - else - { - throw asio::system_error(ec); - } - }); - } - - stream_protocol::socket socket_; - std::array data_; -}; - -int main() -{ - try - { - asio::io_context io_context; - - // Create a connected pair and pass one end to a filter. - stream_protocol::socket socket(io_context); - stream_protocol::socket filter_socket(io_context); - asio::local::connect_pair(socket, filter_socket); - uppercase_filter filter(std::move(filter_socket)); - - // The io_context runs in a background thread to perform filtering. - asio::thread thread( - [&io_context]() - { - try - { - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - std::exit(1); - } - }); - - for (;;) - { - // Collect request from user. - std::cout << "Enter a string: "; - std::string request; - std::getline(std::cin, request); - - // Send request to filter. - asio::write(socket, asio::buffer(request)); - - // Wait for reply from filter. - std::vector reply(request.size()); - asio::read(socket, asio::buffer(reply)); - - // Show reply to user. - std::cout << "Result: "; - std::cout.write(&reply[0], request.size()); - std::cout << std::endl; - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - std::exit(1); - } -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp11/local/iostream_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/local/iostream_client.cpp deleted file mode 100644 index df7c322..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/local/iostream_client.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// -// stream_client.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -constexpr std::size_t max_length = 1024; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: iostream_client \n"; - return 1; - } - - stream_protocol::endpoint ep(argv[1]); - stream_protocol::iostream s(ep); - if (!s) - { - std::cerr << "Unable to connect: " << s.error().message() << std::endl; - return 1; - } - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t length = std::strlen(request); - s << request; - - char reply[max_length]; - s.read(reply, length); - std::cout << "Reply is: "; - std::cout.write(reply, length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp11/local/stream_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/local/stream_client.cpp deleted file mode 100644 index 47a4e3d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/local/stream_client.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// stream_client.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -constexpr std::size_t max_length = 1024; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: stream_client \n"; - return 1; - } - - asio::io_context io_context; - - stream_protocol::socket s(io_context); - s.connect(stream_protocol::endpoint(argv[1])); - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = std::strlen(request); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - asio::buffer(reply, request_length)); - std::cout << "Reply is: "; - std::cout.write(reply, reply_length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp11/local/stream_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/local/stream_server.cpp deleted file mode 100644 index e43e232..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/local/stream_server.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// -// stream_server.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "asio.hpp" - -#if defined(ASIO_HAS_LOCAL_SOCKETS) - -using asio::local::stream_protocol; - -class session - : public std::enable_shared_from_this -{ -public: - session(stream_protocol::socket sock) - : socket_(std::move(sock)) - { - } - - void start() - { - do_read(); - } - -private: - void do_read() - { - auto self(shared_from_this()); - socket_.async_read_some(asio::buffer(data_), - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - do_write(length); - }); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, - asio::buffer(data_, length), - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - do_read(); - }); - } - - // The socket used to communicate with the client. - stream_protocol::socket socket_; - - // Buffer used to store data received from the client. - std::array data_; -}; - -class server -{ -public: - server(asio::io_context& io_context, const std::string& file) - : acceptor_(io_context, stream_protocol::endpoint(file)) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, stream_protocol::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - stream_protocol::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: stream_server \n"; - std::cerr << "*** WARNING: existing file is removed ***\n"; - return 1; - } - - asio::io_context io_context; - - std::remove(argv[1]); - server s(io_context, argv[1]); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} - -#else // defined(ASIO_HAS_LOCAL_SOCKETS) -# error Local sockets not available on this platform. -#endif // defined(ASIO_HAS_LOCAL_SOCKETS) diff --git a/Sources/Vendor/asio/src/examples/cpp11/multicast/receiver.cpp b/Sources/Vendor/asio/src/examples/cpp11/multicast/receiver.cpp deleted file mode 100644 index 3a15e38..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/multicast/receiver.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// -// receiver.cpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -constexpr short multicast_port = 30001; - -class receiver -{ -public: - receiver(asio::io_context& io_context, - const asio::ip::address& listen_address, - const asio::ip::address& multicast_address) - : socket_(io_context) - { - // Create the socket so that multiple may be bound to the same address. - asio::ip::udp::endpoint listen_endpoint( - listen_address, multicast_port); - socket_.open(listen_endpoint.protocol()); - socket_.set_option(asio::ip::udp::socket::reuse_address(true)); - socket_.bind(listen_endpoint); - - // Join the multicast group. - socket_.set_option( - asio::ip::multicast::join_group(multicast_address)); - - do_receive(); - } - -private: - void do_receive() - { - socket_.async_receive_from( - asio::buffer(data_), sender_endpoint_, - [this](std::error_code ec, std::size_t length) - { - if (!ec) - { - std::cout.write(data_.data(), length); - std::cout << std::endl; - - do_receive(); - } - }); - } - - asio::ip::udp::socket socket_; - asio::ip::udp::endpoint sender_endpoint_; - std::array data_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: receiver \n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " receiver 0.0.0.0 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " receiver 0::0 ff31::8000:1234\n"; - return 1; - } - - asio::io_context io_context; - receiver r(io_context, - asio::ip::make_address(argv[1]), - asio::ip::make_address(argv[2])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/multicast/sender.cpp b/Sources/Vendor/asio/src/examples/cpp11/multicast/sender.cpp deleted file mode 100644 index 459700f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/multicast/sender.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// sender.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -constexpr short multicast_port = 30001; -constexpr int max_message_count = 10; - -class sender -{ -public: - sender(asio::io_context& io_context, - const asio::ip::address& multicast_address) - : endpoint_(multicast_address, multicast_port), - socket_(io_context, endpoint_.protocol()), - timer_(io_context), - message_count_(0) - { - do_send(); - } - -private: - void do_send() - { - std::ostringstream os; - os << "Message " << message_count_++; - message_ = os.str(); - - socket_.async_send_to( - asio::buffer(message_), endpoint_, - [this](std::error_code ec, std::size_t /*length*/) - { - if (!ec && message_count_ < max_message_count) - do_timeout(); - }); - } - - void do_timeout() - { - timer_.expires_after(std::chrono::seconds(1)); - timer_.async_wait( - [this](std::error_code ec) - { - if (!ec) - do_send(); - }); - } - -private: - asio::ip::udp::endpoint endpoint_; - asio::ip::udp::socket socket_; - asio::steady_timer timer_; - int message_count_; - std::string message_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: sender \n"; - std::cerr << " For IPv4, try:\n"; - std::cerr << " sender 239.255.0.1\n"; - std::cerr << " For IPv6, try:\n"; - std::cerr << " sender ff31::8000:1234\n"; - return 1; - } - - asio::io_context io_context; - sender s(io_context, asio::ip::make_address(argv[1])); - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp b/Sources/Vendor/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp deleted file mode 100644 index 24e5a61..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +++ /dev/null @@ -1,212 +0,0 @@ -// -// third_party_lib.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include - -using asio::ip::tcp; - -namespace third_party_lib { - -// Simulation of a third party library that wants to perform read and write -// operations directly on a socket. It needs to be polled to determine whether -// it requires a read or write operation, and notified when the socket is ready -// for reading or writing. -class session -{ -public: - session(tcp::socket& socket) - : socket_(socket) - { - } - - // Returns true if the third party library wants to be notified when the - // socket is ready for reading. - bool want_read() const - { - return state_ == reading; - } - - // Notify that third party library that it should perform its read operation. - void do_read(std::error_code& ec) - { - if (std::size_t len = socket_.read_some(asio::buffer(data_), ec)) - { - write_buffer_ = asio::buffer(data_, len); - state_ = writing; - } - } - - // Returns true if the third party library wants to be notified when the - // socket is ready for writing. - bool want_write() const - { - return state_ == writing; - } - - // Notify that third party library that it should perform its write operation. - void do_write(std::error_code& ec) - { - if (std::size_t len = socket_.write_some( - asio::buffer(write_buffer_), ec)) - { - write_buffer_ = write_buffer_ + len; - state_ = asio::buffer_size(write_buffer_) > 0 ? writing : reading; - } - } - -private: - tcp::socket& socket_; - enum { reading, writing } state_ = reading; - std::array data_; - asio::const_buffer write_buffer_; -}; - -} // namespace third_party_lib - -// The glue between asio's sockets and the third party library. -class connection - : public std::enable_shared_from_this -{ -public: - connection(tcp::socket socket) - : socket_(std::move(socket)) - { - } - - void start() - { - // Put the socket into non-blocking mode. - socket_.non_blocking(true); - - do_operations(); - } - -private: - void do_operations() - { - auto self(shared_from_this()); - - // Start a read operation if the third party library wants one. - if (session_impl_.want_read() && !read_in_progress_) - { - read_in_progress_ = true; - socket_.async_wait(tcp::socket::wait_read, - [this, self](std::error_code ec) - { - read_in_progress_ = false; - - // Notify third party library that it can perform a read. - if (!ec) - session_impl_.do_read(ec); - - // The third party library successfully performed a read on the - // socket. Start new read or write operations based on what it now - // wants. - if (!ec || ec == asio::error::would_block) - do_operations(); - - // Otherwise, an error occurred. Closing the socket cancels any - // outstanding asynchronous read or write operations. The - // connection object will be destroyed automatically once those - // outstanding operations complete. - else - socket_.close(); - }); - } - - // Start a write operation if the third party library wants one. - if (session_impl_.want_write() && !write_in_progress_) - { - write_in_progress_ = true; - socket_.async_wait(tcp::socket::wait_write, - [this, self](std::error_code ec) - { - write_in_progress_ = false; - - // Notify third party library that it can perform a write. - if (!ec) - session_impl_.do_write(ec); - - // The third party library successfully performed a write on the - // socket. Start new read or write operations based on what it now - // wants. - if (!ec || ec == asio::error::would_block) - do_operations(); - - // Otherwise, an error occurred. Closing the socket cancels any - // outstanding asynchronous read or write operations. The - // connection object will be destroyed automatically once those - // outstanding operations complete. - else - socket_.close(); - }); - } - } - -private: - tcp::socket socket_; - third_party_lib::session session_impl_{socket_}; - bool read_in_progress_ = false; - bool write_in_progress_ = false; -}; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, {tcp::v4(), port}) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept( - [this](std::error_code ec, tcp::socket socket) - { - if (!ec) - { - std::make_shared(std::move(socket))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: third_party_lib \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_1.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_1.cpp deleted file mode 100644 index d45c901..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_1.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// -// composed_1.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// This is the simplest example of a composed asynchronous operation, where we -// simply repackage an existing operation. The asynchronous operation -// requirements are met by delegating responsibility to the underlying -// operation. -template -auto async_write_message(tcp::socket& socket, - const char* message, CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is void. However, - // when the completion token is asio::yield_context (used for stackful - // coroutines) the return type would be std::size_t, and when the completion - // token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code, std::size_t)>::return_type -{ - // When delegating to the underlying operation we must take care to perfectly - // forward the completion token. This ensures that our operation works - // correctly with move-only function objects as callbacks, as well as other - // completion token types. - return asio::async_write(socket, - asio::buffer(message, std::strlen(message)), - std::forward(token)); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_message(socket, "Testing callback\r\n", - [](const std::error_code& error, std::size_t n) - { - if (!error) - { - std::cout << n << " bytes transferred\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_message( - socket, "Testing future\r\n", asio::use_future); - - io_context.run(); - - try - { - // Get the result of the operation. - std::size_t n = f.get(); - std::cout << n << " bytes transferred\n"; - } - catch (const std::exception& e) - { - std::cout << "Error: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_2.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_2.cpp deleted file mode 100644 index 6d33b47..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_2.cpp +++ /dev/null @@ -1,148 +0,0 @@ -// -// composed_2.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// In this composed operation we repackage an existing operation, but with a -// different completion handler signature. The asynchronous operation -// requirements are met by delegating responsibility to the underlying -// operation. -template -auto async_write_message(tcp::socket& socket, - const char* message, CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is always void. - // In this example, when the completion token is asio::yield_context - // (used for stackful coroutines) the return type would be also be void, as - // there is no non-error argument to the completion handler. When the - // completion token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code)>::return_type -{ - // The asio::async_completion object takes the completion token and - // from it creates: - // - // - completion.completion_handler: - // A completion handler (i.e. a callback) with the specified signature. - // - // - completion.result: - // An object from which we obtain the result of the initiating function. - asio::async_completion completion(token); - - // The async_write operation has a completion handler signature of: - // - // void(std::error_code error, std::size n) - // - // This differs from our operation's signature in that it is also passed the - // number of bytes transferred as an argument of type std::size_t. We will - // adapt our completion handler to this signature by using std::bind, which - // drops the additional argument. - // - // However, it is essential to the correctness of our composed operation that - // we preserve the executor of the user-supplied completion handler. The - // std::bind function will not do this for us, so we must do this by first - // obtaining the completion handler's associated executor (defaulting to the - // I/O executor - in this case the executor of the socket - if the completion - // handler does not have its own) ... - auto executor = asio::get_associated_executor( - completion.completion_handler, socket.get_executor()); - - // ... and then binding this executor to our adapted completion handler using - // the asio::bind_executor function. - asio::async_write(socket, - asio::buffer(message, std::strlen(message)), - asio::bind_executor(executor, - std::bind(std::move(completion.completion_handler), - std::placeholders::_1))); - - // Finally, we return the result of the initiating function. - return completion.result.get(); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_message(socket, "Testing callback\r\n", - [](const std::error_code& error) - { - if (!error) - { - std::cout << "Message sent\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_message( - socket, "Testing future\r\n", asio::use_future); - - io_context.run(); - - // Get the result of the operation. - try - { - // Get the result of the operation. - f.get(); - std::cout << "Message sent\n"; - } - catch (const std::exception& e) - { - std::cout << "Error: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_3.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_3.cpp deleted file mode 100644 index ee0ef2f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_3.cpp +++ /dev/null @@ -1,168 +0,0 @@ -// -// composed_3.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// In this composed operation we repackage an existing operation, but with a -// different completion handler signature. We will also intercept an empty -// message as an invalid argument, and propagate the corresponding error to the -// user. The asynchronous operation requirements are met by delegating -// responsibility to the underlying operation. -template -auto async_write_message(tcp::socket& socket, - const char* message, CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is always void. - // In this example, when the completion token is asio::yield_context - // (used for stackful coroutines) the return type would be also be void, as - // there is no non-error argument to the completion handler. When the - // completion token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code)>::return_type -{ - // The asio::async_completion object takes the completion token and - // from it creates: - // - // - completion.completion_handler: - // A completion handler (i.e. a callback) with the specified signature. - // - // - completion.result: - // An object from which we obtain the result of the initiating function. - asio::async_completion completion(token); - - // If the user passes an empty message, this operation results in an - // invalid_argument error. This error is propagated to the user using the - // asio::post operation. The async_write operation is used only for - // valid input. - // - // The post operation has a completion handler signature of: - // - // void() - // - // and the async_write operation has a completion handler signature of: - // - // void(std::error_code error, std::size n) - // - // Both of these operations' completion handler signatures differ from our - // operation's completion handler signature. We will adapt our completion - // handler to these signatures by using std::bind, which drops the additional - // arguments. - // - // However, it is essential to the correctness of our composed operation that - // we preserve the executor of the user-supplied completion handler. The - // std::bind function will not do this for us, so we must do this by first - // obtaining the completion handler's associated executor (defaulting to the - // I/O executor - in this case the executor of the socket - if the completion - // handler does not have its own) ... - auto executor = asio::get_associated_executor( - completion.completion_handler, socket.get_executor()); - - // ... and then binding it to our adapted completion handlers using the - // asio::bind_executor function. - std::size_t length = std::strlen(message); - if (length == 0) - { - asio::post( - asio::bind_executor(executor, - std::bind(std::move(completion.completion_handler), - asio::error::invalid_argument))); - } - else - { - asio::async_write(socket, - asio::buffer(message, length), - asio::bind_executor(executor, - std::bind(std::move(completion.completion_handler), - std::placeholders::_1))); - } - - // Finally, we return the result of the initiating function. - return completion.result.get(); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_message(socket, "", - [](const std::error_code& error) - { - if (!error) - { - std::cout << "Message sent\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_message( - socket, "", asio::use_future); - - io_context.run(); - - try - { - // Get the result of the operation. - f.get(); - std::cout << "Message sent\n"; - } - catch (const std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_4.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_4.cpp deleted file mode 100644 index ff5bdc2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_4.cpp +++ /dev/null @@ -1,200 +0,0 @@ -// -// composed_4.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// This composed operation automatically serialises a message, using its I/O -// streams insertion operator, before sending it on the socket. To do this, it -// must allocate a buffer for the encoded message and ensure this buffer's -// validity until the underlying async_write operation completes. -template -auto async_write_message(tcp::socket& socket, - const T& message, CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is always void. - // In this example, when the completion token is asio::yield_context - // (used for stackful coroutines) the return type would be also be void, as - // there is no non-error argument to the completion handler. When the - // completion token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code)>::return_type -{ - // Define a type alias for the concrete completion handler, as we will use - // the type in several places in the implementation below. - using completion_handler_type = - typename asio::async_completion::completion_handler_type; - - // In this example, the composed operation's intermediate completion handler - // is implemented as a hand-crafted function object, rather than a lambda. - struct intermediate_completion_handler - { - // The intermediate completion handler holds a reference to the socket so - // that it can obtain the I/O executor (see get_executor below). - tcp::socket& socket_; - - // The allocated buffer for the encoded message. The std::unique_ptr smart - // pointer is move-only, and as a consequence our intermediate completion - // handler is also move-only. - std::unique_ptr encoded_message_; - - // The user-supplied completion handler. - completion_handler_type handler_; - - // The function call operator matches the completion signature of the - // async_write operation. - void operator()(const std::error_code& error, std::size_t /*n*/) - { - // Deallocate the encoded message before calling the user-supplied - // completion handler. - encoded_message_.reset(); - - // Call the user-supplied handler with the result of the operation. - // The arguments must match the completion signature of our composed - // operation. - handler_(error); - } - - // It is essential to the correctness of our composed operation that we - // preserve the executor of the user-supplied completion handler. With a - // hand-crafted function object we can do this by defining a nested type - // executor_type and member function get_executor. These obtain the - // completion handler's associated executor, and default to the I/O - // executor - in this case the executor of the socket - if the completion - // handler does not have its own. - using executor_type = asio::associated_executor_t< - completion_handler_type, tcp::socket::executor_type>; - - executor_type get_executor() const noexcept - { - return asio::get_associated_executor( - handler_, socket_.get_executor()); - } - - // Although not necessary for correctness, we may also preserve the - // allocator of the user-supplied completion handler. This is achieved by - // defining a nested type allocator_type and member function get_allocator. - // These obtain the completion handler's associated allocator, and default - // to std::allocator if the completion handler does not have its own. - using allocator_type = asio::associated_allocator_t< - completion_handler_type, std::allocator>; - - allocator_type get_allocator() const noexcept - { - return asio::get_associated_allocator( - handler_, std::allocator{}); - } - }; - - // The asio::async_completion object takes the completion token and - // from it creates: - // - // - completion.completion_handler: - // A completion handler (i.e. a callback) with the specified signature. - // - // - completion.result: - // An object from which we obtain the result of the initiating function. - asio::async_completion completion(token); - - // Encode the message and copy it into an allocated buffer. The buffer will - // be maintained for the lifetime of the asynchronous operation. - std::ostringstream os; - os << message; - std::unique_ptr encoded_message(new std::string(os.str())); - - // Initiate the underlying async_write operation using our intermediate - // completion handler. - asio::async_write(socket, asio::buffer(*encoded_message), - intermediate_completion_handler{socket, std::move(encoded_message), - std::move(completion.completion_handler)}); - - // Finally, we return the result of the initiating function. - return completion.result.get(); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_message(socket, "Testing callback\r\n", - [](const std::error_code& error) - { - if (!error) - { - std::cout << "Message sent\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_message( - socket, "Testing future\r\n", asio::use_future); - - io_context.run(); - - try - { - // Get the result of the operation. - f.get(); - std::cout << "Message sent\n"; - } - catch (const std::exception& e) - { - std::cout << "Error: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_5.cpp b/Sources/Vendor/asio/src/examples/cpp11/operations/composed_5.cpp deleted file mode 100644 index 5a9d2a2..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/operations/composed_5.cpp +++ /dev/null @@ -1,259 +0,0 @@ -// -// composed_5.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -//------------------------------------------------------------------------------ - -// This composed operation shows composition of multiple underlying operations. -// It automatically serialises a message, using its I/O streams insertion -// operator, before sending it N times on the socket. To do this, it must -// allocate a buffer for the encoded message and ensure this buffer's validity -// until all underlying async_write operation complete. A one second delay is -// inserted prior to each write operation, using a steady_timer. -template -auto async_write_messages(tcp::socket& socket, - const T& message, std::size_t repeat_count, - CompletionToken&& token) - // The return type of the initiating function is deduced from the combination - // of CompletionToken type and the completion handler's signature. When the - // completion token is a simple callback, the return type is always void. - // In this example, when the completion token is asio::yield_context - // (used for stackful coroutines) the return type would be also be void, as - // there is no non-error argument to the completion handler. When the - // completion token is asio::use_future it would be std::future. - -> typename asio::async_result< - typename std::decay::type, - void(std::error_code)>::return_type -{ - // Define a type alias for the concrete completion handler, as we will use - // the type in several places in the implementation below. - using completion_handler_type = - typename asio::async_completion::completion_handler_type; - - // In this example, the composed operation's intermediate completion handler - // is implemented as a hand-crafted function object. - struct intermediate_completion_handler - { - // The intermediate completion handler holds a reference to the socket as - // it is used for multiple async_write operations, as well as for obtaining - // the I/O executor (see get_executor below). - tcp::socket& socket_; - - // The allocated buffer for the encoded message. The std::unique_ptr smart - // pointer is move-only, and as a consequence our intermediate completion - // handler is also move-only. - std::unique_ptr encoded_message_; - - // The repeat count remaining. - std::size_t repeat_count_; - - // A steady timer used for introducing a delay. - std::unique_ptr delay_timer_; - - // To manage the cycle between the multiple underlying asychronous - // operations, our intermediate completion handler is implemented as a - // state machine. - enum { starting, waiting, writing } state_; - - // As our composed operation performs multiple underlying I/O operations, - // we should maintain a work object against the I/O executor. This tells - // the I/O executor that there is still more work to come in the future. - asio::executor_work_guard io_work_; - - // The user-supplied completion handler, called once only on completion of - // the entire composed operation. - completion_handler_type handler_; - - // By having a default value for the second argument, this function call - // operator matches the completion signature of both the async_write and - // steady_timer::async_wait operations. - void operator()(const std::error_code& error, std::size_t = 0) - { - if (!error) - { - switch (state_) - { - case starting: - case writing: - if (repeat_count_ > 0) - { - --repeat_count_; - state_ = waiting; - delay_timer_->expires_after(std::chrono::seconds(1)); - delay_timer_->async_wait(std::move(*this)); - return; // Composed operation not yet complete. - } - break; // Composed operation complete, continue below. - case waiting: - state_ = writing; - asio::async_write(socket_, - asio::buffer(*encoded_message_), std::move(*this)); - return; // Composed operation not yet complete. - } - } - - // This point is reached only on completion of the entire composed - // operation. - - // We no longer have any future work coming for the I/O executor. - io_work_.reset(); - - // Deallocate the encoded message before calling the user-supplied - // completion handler. - encoded_message_.reset(); - - // Call the user-supplied handler with the result of the operation. - handler_(error); - } - - // It is essential to the correctness of our composed operation that we - // preserve the executor of the user-supplied completion handler. With a - // hand-crafted function object we can do this by defining a nested type - // executor_type and member function get_executor. These obtain the - // completion handler's associated executor, and default to the I/O - // executor - in this case the executor of the socket - if the completion - // handler does not have its own. - using executor_type = asio::associated_executor_t< - completion_handler_type, tcp::socket::executor_type>; - - executor_type get_executor() const noexcept - { - return asio::get_associated_executor( - handler_, socket_.get_executor()); - } - - // Although not necessary for correctness, we may also preserve the - // allocator of the user-supplied completion handler. This is achieved by - // defining a nested type allocator_type and member function get_allocator. - // These obtain the completion handler's associated allocator, and default - // to std::allocator if the completion handler does not have its own. - using allocator_type = asio::associated_allocator_t< - completion_handler_type, std::allocator>; - - allocator_type get_allocator() const noexcept - { - return asio::get_associated_allocator( - handler_, std::allocator{}); - } - }; - - // The asio::async_completion object takes the completion token and - // from it creates: - // - // - completion.completion_handler: - // A completion handler (i.e. a callback) with the specified signature. - // - // - completion.result: - // An object from which we obtain the result of the initiating function. - asio::async_completion completion(token); - - // Encode the message and copy it into an allocated buffer. The buffer will - // be maintained for the lifetime of the composed asynchronous operation. - std::ostringstream os; - os << message; - std::unique_ptr encoded_message(new std::string(os.str())); - - // Create a steady_timer to be used for the delay between messages. - std::unique_ptr delay_timer( - new asio::steady_timer(socket.get_executor().context())); - - // Initiate the underlying operations by explicitly calling our intermediate - // completion handler's function call operator. - intermediate_completion_handler{ - socket, std::move(encoded_message), - repeat_count, std::move(delay_timer), - intermediate_completion_handler::starting, - asio::make_work_guard(socket.get_executor()), - std::move(completion.completion_handler) - }({}); - - // Finally, we return the result of the initiating function. - return completion.result.get(); -} - -//------------------------------------------------------------------------------ - -void test_callback() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using a lambda as a callback. - async_write_messages(socket, "Testing callback\r\n", 5, - [](const std::error_code& error) - { - if (!error) - { - std::cout << "Messages sent\n"; - } - else - { - std::cout << "Error: " << error.message() << "\n"; - } - }); - - io_context.run(); -} - -//------------------------------------------------------------------------------ - -void test_future() -{ - asio::io_context io_context; - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - tcp::socket socket = acceptor.accept(); - - // Test our asynchronous operation using the use_future completion token. - // This token causes the operation's initiating function to return a future, - // which may be used to synchronously wait for the result of the operation. - std::future f = async_write_messages( - socket, "Testing future\r\n", 5, asio::use_future); - - io_context.run(); - - try - { - // Get the result of the operation. - f.get(); - std::cout << "Messages sent\n"; - } - catch (const std::exception& e) - { - std::cout << "Error: " << e.what() << "\n"; - } -} - -//------------------------------------------------------------------------------ - -int main() -{ - test_callback(); - test_future(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/socks4/socks4.hpp b/Sources/Vendor/asio/src/examples/cpp11/socks4/socks4.hpp deleted file mode 100644 index e5cd176..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/socks4/socks4.hpp +++ /dev/null @@ -1,143 +0,0 @@ -// -// socks4.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 SOCKS4_HPP -#define SOCKS4_HPP - -#include -#include -#include -#include - -namespace socks4 { - -const unsigned char version = 0x04; - -class request -{ -public: - enum command_type - { - connect = 0x01, - bind = 0x02 - }; - - request(command_type cmd, const asio::ip::tcp::endpoint& endpoint, - const std::string& user_id) - : version_(version), - command_(cmd), - user_id_(user_id), - null_byte_(0) - { - // Only IPv4 is supported by the SOCKS 4 protocol. - if (endpoint.protocol() != asio::ip::tcp::v4()) - { - throw asio::system_error( - asio::error::address_family_not_supported); - } - - // Convert port number to network byte order. - unsigned short port = endpoint.port(); - port_high_byte_ = (port >> 8) & 0xff; - port_low_byte_ = port & 0xff; - - // Save IP address in network byte order. - address_ = endpoint.address().to_v4().to_bytes(); - } - - std::array buffers() const - { - return - { - { - asio::buffer(&version_, 1), - asio::buffer(&command_, 1), - asio::buffer(&port_high_byte_, 1), - asio::buffer(&port_low_byte_, 1), - asio::buffer(address_), - asio::buffer(user_id_), - asio::buffer(&null_byte_, 1) - } - }; - } - -private: - unsigned char version_; - unsigned char command_; - unsigned char port_high_byte_; - unsigned char port_low_byte_; - asio::ip::address_v4::bytes_type address_; - std::string user_id_; - unsigned char null_byte_; -}; - -class reply -{ -public: - enum status_type - { - request_granted = 0x5a, - request_failed = 0x5b, - request_failed_no_identd = 0x5c, - request_failed_bad_user_id = 0x5d - }; - - reply() - : null_byte_(0), - status_() - { - } - - std::array buffers() - { - return - { - { - asio::buffer(&null_byte_, 1), - asio::buffer(&status_, 1), - asio::buffer(&port_high_byte_, 1), - asio::buffer(&port_low_byte_, 1), - asio::buffer(address_) - } - }; - } - - bool success() const - { - return null_byte_ == 0 && status_ == request_granted; - } - - unsigned char status() const - { - return status_; - } - - asio::ip::tcp::endpoint endpoint() const - { - unsigned short port = port_high_byte_; - port = (port << 8) & 0xff00; - port = port | port_low_byte_; - - asio::ip::address_v4 address(address_); - - return asio::ip::tcp::endpoint(address, port); - } - -private: - unsigned char null_byte_; - unsigned char status_; - unsigned char port_high_byte_; - unsigned char port_low_byte_; - asio::ip::address_v4::bytes_type address_; -}; - -} // namespace socks4 - -#endif // SOCKS4_HPP diff --git a/Sources/Vendor/asio/src/examples/cpp11/socks4/sync_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/socks4/sync_client.cpp deleted file mode 100644 index ad0e48e..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/socks4/sync_client.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// sync_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include "socks4.hpp" - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cout << "Usage: sync_client \n"; - std::cout << "Examples:\n"; - std::cout << " sync_client 127.0.0.1 1080 chris\n"; - std::cout << " sync_client localhost socks chris\n"; - return 1; - } - - asio::io_context io_context; - - // Get a list of endpoints corresponding to the SOCKS 4 server name. - tcp::resolver resolver(io_context); - auto endpoints = resolver.resolve(argv[1], argv[2]); - - // Try each endpoint until we successfully establish a connection to the - // SOCKS 4 server. - tcp::socket socket(io_context); - asio::connect(socket, endpoints); - - // Get an endpoint for the Boost website. This will be passed to the SOCKS - // 4 server. Explicitly specify IPv4 since SOCKS 4 does not support IPv6. - auto http_endpoint = *resolver.resolve(tcp::v4(), "www.boost.org", "http"); - - // Send the request to the SOCKS 4 server. - socks4::request socks_request( - socks4::request::connect, http_endpoint, argv[3]); - asio::write(socket, socks_request.buffers()); - - // Receive a response from the SOCKS 4 server. - socks4::reply socks_reply; - asio::read(socket, socks_reply.buffers()); - - // Check whether we successfully negotiated with the SOCKS 4 server. - if (!socks_reply.success()) - { - std::cout << "Connection failed.\n"; - std::cout << "status = 0x" << std::hex << socks_reply.status(); - return 1; - } - - // Form the HTTP request. We specify the "Connection: close" header so that - // the server will close the socket after transmitting the response. This - // will allow us to treat all data up until the EOF as the response. - std::string request = - "GET / HTTP/1.0\r\n" - "Host: www.boost.org\r\n" - "Accept: */*\r\n" - "Connection: close\r\n\r\n"; - - // Send the HTTP request. - asio::write(socket, asio::buffer(request)); - - // Read until EOF, writing data to output as we go. - std::array response; - std::error_code error; - while (std::size_t s = socket.read_some( - asio::buffer(response), error)) - std::cout.write(response.data(), s); - if (error != asio::error::eof) - throw std::system_error(error); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/spawn/echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp11/spawn/echo_server.cpp deleted file mode 100644 index 6bd9499..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/spawn/echo_server.cpp +++ /dev/null @@ -1,108 +0,0 @@ -// -// echo_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class session : public std::enable_shared_from_this -{ -public: - explicit session(tcp::socket socket) - : socket_(std::move(socket)), - timer_(socket_.get_io_context()), - strand_(socket_.get_io_context()) - { - } - - void go() - { - auto self(shared_from_this()); - asio::spawn(strand_, - [this, self](asio::yield_context yield) - { - try - { - char data[128]; - for (;;) - { - timer_.expires_from_now(std::chrono::seconds(10)); - std::size_t n = socket_.async_read_some(asio::buffer(data), yield); - asio::async_write(socket_, asio::buffer(data, n), yield); - } - } - catch (std::exception& e) - { - socket_.close(); - timer_.cancel(); - } - }); - - asio::spawn(strand_, - [this, self](asio::yield_context yield) - { - while (socket_.is_open()) - { - asio::error_code ignored_ec; - timer_.async_wait(yield[ignored_ec]); - if (timer_.expires_from_now() <= std::chrono::seconds(0)) - socket_.close(); - } - }); - } - -private: - tcp::socket socket_; - asio::steady_timer timer_; - asio::io_context::strand strand_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: echo_server \n"; - return 1; - } - - asio::io_context io_context; - - asio::spawn(io_context, - [&](asio::yield_context yield) - { - tcp::acceptor acceptor(io_context, - tcp::endpoint(tcp::v4(), std::atoi(argv[1]))); - - for (;;) - { - asio::error_code ec; - tcp::socket socket(io_context); - acceptor.async_accept(socket, yield[ec]); - if (!ec) std::make_shared(std::move(socket))->go(); - } - }); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/spawn/parallel_grep.cpp b/Sources/Vendor/asio/src/examples/cpp11/spawn/parallel_grep.cpp deleted file mode 100644 index 18c2002..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/spawn/parallel_grep.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// -// parallel_grep.cpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::spawn; -using asio::strand; -using asio::thread_pool; -using asio::yield_context; - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: parallel_grep \n"; - return 1; - } - - // We use a fixed size pool of threads for reading the input files. The - // number of threads is automatically determined based on the number of - // CPUs available in the system. - thread_pool pool; - - // To prevent the output from being garbled, we use a strand to synchronise - // printing. - strand output_strand(pool.get_executor()); - - // Spawn a new coroutine for each file specified on the command line. - std::string search_string = argv[1]; - for (int argn = 2; argn < argc; ++argn) - { - std::string input_file = argv[argn]; - spawn(pool, - [=](yield_context yield) - { - std::ifstream is(input_file.c_str()); - std::string line; - std::size_t line_num = 0; - while (std::getline(is, line)) - { - // If we find a match, send a message to the output. - if (line.find(search_string) != std::string::npos) - { - dispatch(output_strand, - [=] - { - std::cout << input_file << ':' << line << std::endl; - }); - } - - // Every so often we yield control to another coroutine. - if (++line_num % 10 == 0) - post(yield); - } - }); - } - - // Join the thread pool to wait for all the spawned tasks to complete. - pool.join(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/ssl/client.cpp b/Sources/Vendor/asio/src/examples/cpp11/ssl/client.cpp deleted file mode 100644 index cf26291..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/ssl/client.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include "asio.hpp" -#include "asio/ssl.hpp" - -using asio::ip::tcp; -using std::placeholders::_1; -using std::placeholders::_2; - -enum { max_length = 1024 }; - -class client -{ -public: - client(asio::io_context& io_context, - asio::ssl::context& context, - const tcp::resolver::results_type& endpoints) - : socket_(io_context, context) - { - socket_.set_verify_mode(asio::ssl::verify_peer); - socket_.set_verify_callback( - std::bind(&client::verify_certificate, this, _1, _2)); - - connect(endpoints); - } - -private: - bool verify_certificate(bool preverified, - asio::ssl::verify_context& ctx) - { - // The verify callback can be used to check whether the certificate that is - // being presented is valid for the peer. For example, RFC 2818 describes - // the steps involved in doing this for HTTPS. Consult the OpenSSL - // documentation for more details. Note that the callback is called once - // for each certificate in the certificate chain, starting from the root - // certificate authority. - - // In this example we will simply print the certificate's subject name. - char subject_name[256]; - X509* cert = X509_STORE_CTX_get_current_cert(ctx.native_handle()); - X509_NAME_oneline(X509_get_subject_name(cert), subject_name, 256); - std::cout << "Verifying " << subject_name << "\n"; - - return preverified; - } - - void connect(const tcp::resolver::results_type& endpoints) - { - asio::async_connect(socket_.lowest_layer(), endpoints, - [this](const std::error_code& error, - const tcp::endpoint& /*endpoint*/) - { - if (!error) - { - handshake(); - } - else - { - std::cout << "Connect failed: " << error.message() << "\n"; - } - }); - } - - void handshake() - { - socket_.async_handshake(asio::ssl::stream_base::client, - [this](const std::error_code& error) - { - if (!error) - { - send_request(); - } - else - { - std::cout << "Handshake failed: " << error.message() << "\n"; - } - }); - } - - void send_request() - { - std::cout << "Enter message: "; - std::cin.getline(request_, max_length); - size_t request_length = std::strlen(request_); - - asio::async_write(socket_, - asio::buffer(request_, request_length), - [this](const std::error_code& error, std::size_t length) - { - if (!error) - { - receive_response(length); - } - else - { - std::cout << "Write failed: " << error.message() << "\n"; - } - }); - } - - void receive_response(std::size_t length) - { - asio::async_read(socket_, - asio::buffer(reply_, length), - [this](const std::error_code& error, std::size_t length) - { - if (!error) - { - std::cout << "Reply: "; - std::cout.write(reply_, length); - std::cout << "\n"; - } - else - { - std::cout << "Read failed: " << error.message() << "\n"; - } - }); - } - - asio::ssl::stream socket_; - char request_[max_length]; - char reply_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::resolver resolver(io_context); - auto endpoints = resolver.resolve(argv[1], argv[2]); - - asio::ssl::context ctx(asio::ssl::context::sslv23); - ctx.load_verify_file("ca.pem"); - - client c(io_context, ctx, endpoints); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/ssl/server.cpp b/Sources/Vendor/asio/src/examples/cpp11/ssl/server.cpp deleted file mode 100644 index 4e4609a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/ssl/server.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" -#include "asio/ssl.hpp" - -using asio::ip::tcp; - -class session : public std::enable_shared_from_this -{ -public: - session(tcp::socket socket, asio::ssl::context& context) - : socket_(std::move(socket), context) - { - } - - void start() - { - do_handshake(); - } - -private: - void do_handshake() - { - auto self(shared_from_this()); - socket_.async_handshake(asio::ssl::stream_base::server, - [this, self](const std::error_code& error) - { - if (!error) - { - do_read(); - } - }); - } - - void do_read() - { - auto self(shared_from_this()); - socket_.async_read_some(asio::buffer(data_), - [this, self](const std::error_code& ec, std::size_t length) - { - if (!ec) - { - do_write(length); - } - }); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, asio::buffer(data_, length), - [this, self](const std::error_code& ec, - std::size_t /*length*/) - { - if (!ec) - { - do_read(); - } - }); - } - - asio::ssl::stream socket_; - char data_[1024]; -}; - -class server -{ -public: - server(asio::io_context& io_context, unsigned short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - context_(asio::ssl::context::sslv23) - { - context_.set_options( - asio::ssl::context::default_workarounds - | asio::ssl::context::no_sslv2 - | asio::ssl::context::single_dh_use); - context_.set_password_callback(std::bind(&server::get_password, this)); - context_.use_certificate_chain_file("server.pem"); - context_.use_private_key_file("server.pem", asio::ssl::context::pem); - context_.use_tmp_dh_file("dh2048.pem"); - - do_accept(); - } - -private: - std::string get_password() const - { - return "test"; - } - - void do_accept() - { - acceptor_.async_accept( - [this](const std::error_code& error, tcp::socket socket) - { - if (!error) - { - std::make_shared(std::move(socket), context_)->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; - asio::ssl::context context_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - using namespace std; // For atoi. - server s(io_context, atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp deleted file mode 100644 index 3c1e7e4..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +++ /dev/null @@ -1,311 +0,0 @@ -// -// async_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/steady_timer.hpp" -#include "asio/write.hpp" -#include -#include -#include - -using asio::steady_timer; -using asio::ip::tcp; -using std::placeholders::_1; -using std::placeholders::_2; - -// -// This class manages socket timeouts by applying the concept of a deadline. -// Some asynchronous operations are given deadlines by which they must complete. -// Deadlines are enforced by an "actor" that persists for the lifetime of the -// client object: -// -// +----------------+ -// | | -// | check_deadline |<---+ -// | | | -// +----------------+ | async_wait() -// | | -// +---------+ -// -// If the deadline actor determines that the deadline has expired, the socket -// is closed and any outstanding operations are consequently cancelled. -// -// Connection establishment involves trying each endpoint in turn until a -// connection is successful, or the available endpoints are exhausted. If the -// deadline actor closes the socket, the connect actor is woken up and moves to -// the next endpoint. -// -// +---------------+ -// | | -// | start_connect |<---+ -// | | | -// +---------------+ | -// | | -// async_- | +----------------+ -// connect() | | | -// +--->| handle_connect | -// | | -// +----------------+ -// : -// Once a connection is : -// made, the connect : -// actor forks in two - : -// : -// an actor for reading : and an actor for -// inbound messages: : sending heartbeats: -// : -// +------------+ : +-------------+ -// | |<- - - - -+- - - - ->| | -// | start_read | | start_write |<---+ -// | |<---+ | | | -// +------------+ | +-------------+ | async_wait() -// | | | | -// async_- | +-------------+ async_- | +--------------+ -// read_- | | | write() | | | -// until() +--->| handle_read | +--->| handle_write | -// | | | | -// +-------------+ +--------------+ -// -// The input actor reads messages from the socket, where messages are delimited -// by the newline character. The deadline for a complete message is 30 seconds. -// -// The heartbeat actor sends a heartbeat (a message that consists of a single -// newline character) every 10 seconds. In this example, no deadline is applied -// to message sending. -// -class client -{ -public: - client(asio::io_context& io_context) - : socket_(io_context), - deadline_(io_context), - heartbeat_timer_(io_context) - { - } - - // Called by the user of the client class to initiate the connection process. - // The endpoints will have been obtained using a tcp::resolver. - void start(tcp::resolver::results_type endpoints) - { - // Start the connect actor. - endpoints_ = endpoints; - start_connect(endpoints_.begin()); - - // Start the deadline actor. You will note that we're not setting any - // particular deadline here. Instead, the connect and input actors will - // update the deadline prior to each asynchronous operation. - deadline_.async_wait(std::bind(&client::check_deadline, this)); - } - - // This function terminates all the actors to shut down the connection. It - // may be called by the user of the client class, or by the class itself in - // response to graceful termination or an unrecoverable error. - void stop() - { - stopped_ = true; - std::error_code ignored_error; - socket_.close(ignored_error); - deadline_.cancel(); - heartbeat_timer_.cancel(); - } - -private: - void start_connect(tcp::resolver::results_type::iterator endpoint_iter) - { - if (endpoint_iter != endpoints_.end()) - { - std::cout << "Trying " << endpoint_iter->endpoint() << "...\n"; - - // Set a deadline for the connect operation. - deadline_.expires_after(std::chrono::seconds(60)); - - // Start the asynchronous connect operation. - socket_.async_connect(endpoint_iter->endpoint(), - std::bind(&client::handle_connect, - this, _1, endpoint_iter)); - } - else - { - // There are no more endpoints to try. Shut down the client. - stop(); - } - } - - void handle_connect(const std::error_code& error, - tcp::resolver::results_type::iterator endpoint_iter) - { - if (stopped_) - return; - - // The async_connect() function automatically opens the socket at the start - // of the asynchronous operation. If the socket is closed at this time then - // the timeout handler must have run first. - if (!socket_.is_open()) - { - std::cout << "Connect timed out\n"; - - // Try the next available endpoint. - start_connect(++endpoint_iter); - } - - // Check if the connect operation failed before the deadline expired. - else if (error) - { - std::cout << "Connect error: " << error.message() << "\n"; - - // We need to close the socket used in the previous connection attempt - // before starting a new one. - socket_.close(); - - // Try the next available endpoint. - start_connect(++endpoint_iter); - } - - // Otherwise we have successfully established a connection. - else - { - std::cout << "Connected to " << endpoint_iter->endpoint() << "\n"; - - // Start the input actor. - start_read(); - - // Start the heartbeat actor. - start_write(); - } - } - - void start_read() - { - // Set a deadline for the read operation. - deadline_.expires_after(std::chrono::seconds(30)); - - // Start an asynchronous operation to read a newline-delimited message. - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - std::bind(&client::handle_read, this, _1, _2)); - } - - void handle_read(const std::error_code& error, std::size_t n) - { - if (stopped_) - return; - - if (!error) - { - // Extract the newline-delimited message from the buffer. - std::string line(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - - // Empty messages are heartbeats and so ignored. - if (!line.empty()) - { - std::cout << "Received: " << line << "\n"; - } - - start_read(); - } - else - { - std::cout << "Error on receive: " << error.message() << "\n"; - - stop(); - } - } - - void start_write() - { - if (stopped_) - return; - - // Start an asynchronous operation to send a heartbeat message. - asio::async_write(socket_, asio::buffer("\n", 1), - std::bind(&client::handle_write, this, _1)); - } - - void handle_write(const std::error_code& error) - { - if (stopped_) - return; - - if (!error) - { - // Wait 10 seconds before sending the next heartbeat. - heartbeat_timer_.expires_after(std::chrono::seconds(10)); - heartbeat_timer_.async_wait(std::bind(&client::start_write, this)); - } - else - { - std::cout << "Error on heartbeat: " << error.message() << "\n"; - - stop(); - } - } - - void check_deadline() - { - if (stopped_) - return; - - // Check whether the deadline has passed. We compare the deadline against - // the current time since a new asynchronous operation may have moved the - // deadline before this actor had a chance to run. - if (deadline_.expiry() <= steady_timer::clock_type::now()) - { - // The deadline has passed. The socket is closed so that any outstanding - // asynchronous operations are cancelled. - socket_.close(); - - // There is no longer an active deadline. The expiry is set to the - // maximum time point so that the actor takes no action until a new - // deadline is set. - deadline_.expires_at(steady_timer::time_point::max()); - } - - // Put the actor back to sleep. - deadline_.async_wait(std::bind(&client::check_deadline, this)); - } - -private: - bool stopped_ = false; - tcp::resolver::results_type endpoints_; - tcp::socket socket_; - std::string input_buffer_; - steady_timer deadline_; - steady_timer heartbeat_timer_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: client \n"; - return 1; - } - - asio::io_context io_context; - tcp::resolver r(io_context); - client c(io_context); - - c.start(r.resolve(argv[1], argv[2])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp deleted file mode 100644 index 766b5b5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// -// blocking_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/buffer.hpp" -#include "asio/connect.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/system_error.hpp" -#include "asio/write.hpp" -#include -#include -#include - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by running the io_context using the timed -// io_context::run_for() member function. Each asynchronous operation is given -// a timeout within which it must complete. The socket operations themselves -// use lambdas as completion handlers. For a given socket operation, the client -// object runs the io_context to block thread execution until the operation -// completes or the timeout is reached. If the io_context::run_for() function -// times out, the socket is closed and the outstanding asynchronous operation -// is cancelled. -// -class client -{ -public: - void connect(const std::string& host, const std::string& service, - std::chrono::steady_clock::duration timeout) - { - // Resolve the host name and service to a list of endpoints. - auto endpoints = tcp::resolver(io_context_).resolve(host, service); - - // Start the asynchronous operation itself. The lambda that is used as a - // callback will update the error variable when the operation completes. - // The blocking_udp_client.cpp example shows how you can use std::bind - // rather than a lambda. - std::error_code error; - asio::async_connect(socket_, endpoints, - [&](const std::error_code& result_error, - const tcp::endpoint& /*result_endpoint*/) - { - error = result_error; - }); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether a connection was successfully established. - if (error) - throw std::system_error(error); - } - - std::string read_line(std::chrono::steady_clock::duration timeout) - { - // Start the asynchronous operation. The lambda that is used as a callback - // will update the error and n variables when the operation completes. The - // blocking_udp_client.cpp example shows how you can use std::bind rather - // than a lambda. - std::error_code error; - std::size_t n = 0; - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - [&](const std::error_code& result_error, - std::size_t result_n) - { - error = result_error; - n = result_n; - }); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether the read completed successfully. - if (error) - throw std::system_error(error); - - std::string line(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - return line; - } - - void write_line(const std::string& line, - std::chrono::steady_clock::duration timeout) - { - std::string data = line + "\n"; - - // Start the asynchronous operation itself. The lambda that is used as a - // callback will update the error variable when the operation completes. - // The blocking_udp_client.cpp example shows how you can use std::bind - // rather than a lambda. - std::error_code error; - asio::async_write(socket_, asio::buffer(data), - [&](const std::error_code& result_error, - std::size_t /*result_n*/) - { - error = result_error; - }); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - // Determine whether the read completed successfully. - if (error) - throw std::system_error(error); - } - -private: - void run(std::chrono::steady_clock::duration timeout) - { - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context_.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context_.run_for(timeout); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out. - if (!io_context_.stopped()) - { - // Close the socket to cancel the outstanding asynchronous operation. - socket_.close(); - - // Run the io_context again until the operation completes. - io_context_.run(); - } - } - - asio::io_context io_context_; - tcp::socket socket_{io_context_}; - std::string input_buffer_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cerr << "Usage: blocking_tcp_client \n"; - return 1; - } - - client c; - c.connect(argv[1], argv[2], std::chrono::seconds(10)); - - auto time_sent = std::chrono::steady_clock::now(); - - c.write_line(argv[3], std::chrono::seconds(10)); - - for (;;) - { - std::string line = c.read_line(std::chrono::seconds(10)); - - // Keep going until we get back the line that was sent. - if (line == argv[3]) - break; - } - - auto time_received = std::chrono::steady_clock::now(); - - std::cout << "Round trip time: "; - std::cout << std::chrono::duration_cast< - std::chrono::microseconds>( - time_received - time_sent).count(); - std::cout << " microseconds\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp deleted file mode 100644 index fb9acbd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +++ /dev/null @@ -1,193 +0,0 @@ -// -// blocking_token_tcp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/connect.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/read_until.hpp" -#include "asio/streambuf.hpp" -#include "asio/system_error.hpp" -#include "asio/write.hpp" -#include -#include -#include -#include - -using asio::ip::tcp; - -//---------------------------------------------------------------------- - -// A custom completion token that makes asynchronous operations behave as -// though they are blocking calls with a timeout. -struct close_after -{ - close_after(std::chrono::steady_clock::duration t, tcp::socket& s) - : timeout_(t), socket_(s) - { - } - - // The maximum time to wait for an asynchronous operation to complete. - std::chrono::steady_clock::duration timeout_; - - // The socket to be closed if the operation does not complete in time. - tcp::socket& socket_; -}; - -namespace asio { - -// The async_result template is specialised to allow the close_after token to -// be used with asynchronous operations that have a completion signature of -// void(error_code, T). Generalising this for all completion signature forms is -// left as an exercise for the reader. -template -class async_result -{ -public: - // An asynchronous operation's initiating function automatically creates an - // completion_handler_type object from the token. This function object is - // then called on completion of the asynchronous operation. - class completion_handler_type - { - public: - completion_handler_type(const close_after& token) - : token_(token) - { - } - - void operator()(const std::error_code& error, T t) - { - *error_ = error; - *t_ = t; - } - - private: - friend class async_result; - close_after token_; - std::error_code* error_; - T* t_; - }; - - // The async_result constructor associates the completion handler object with - // the result of the initiating function. - explicit async_result(completion_handler_type& h) - : timeout_(h.token_.timeout_), - socket_(h.token_.socket_) - { - h.error_ = &error_; - h.t_ = &t_; - } - - // The return_type typedef determines the result type of the asynchronous - // operation's initiating function. - typedef T return_type; - - // The get() function is used to obtain the result of the asynchronous - // operation's initiating function. For the close_after completion token, we - // use this function to run the io_context until the operation is complete. - return_type get() - { - asio::io_context& io_context = socket_.get_executor().context(); - - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context.run_for(timeout_); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out and the - // operation is still incomplete. - if (!io_context.stopped()) - { - // Close the socket to cancel the outstanding asynchronous operation. - socket_.close(); - - // Run the io_context again until the operation completes. - io_context.run(); - } - - // If the operation failed, throw an exception. Otherwise return the result. - return error_ ? throw std::system_error(error_) : t_; - } - -private: - std::chrono::steady_clock::duration timeout_; - tcp::socket& socket_; - std::error_code error_; - T t_; -}; - -} // namespace asio - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 4) - { - std::cerr << "Usage: blocking_tcp_client \n"; - return 1; - } - - asio::io_context io_context; - - // Resolve the host name and service to a list of endpoints. - auto endpoints = tcp::resolver(io_context).resolve(argv[1], argv[2]); - - tcp::socket socket(io_context); - - // Run an asynchronous connect operation with a timeout. - asio::async_connect(socket, endpoints, - close_after(std::chrono::seconds(10), socket)); - - auto time_sent = std::chrono::steady_clock::now(); - - // Run an asynchronous write operation with a timeout. - std::string msg = argv[3] + std::string("\n"); - asio::async_write(socket, asio::buffer(msg), - close_after(std::chrono::seconds(10), socket)); - - for (std::string input_buffer;;) - { - // Run an asynchronous read operation with a timeout. - std::size_t n = asio::async_read_until(socket, - asio::dynamic_buffer(input_buffer), '\n', - close_after(std::chrono::seconds(10), socket)); - - std::string line(input_buffer.substr(0, n - 1)); - input_buffer.erase(0, n); - - // Keep going until we get back the line that was sent. - if (line == argv[3]) - break; - } - - auto time_received = std::chrono::steady_clock::now(); - - std::cout << "Round trip time: "; - std::cout << std::chrono::duration_cast< - std::chrono::microseconds>( - time_received - time_sent).count(); - std::cout << " microseconds\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp deleted file mode 100644 index 9c5b290..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +++ /dev/null @@ -1,155 +0,0 @@ -// -// blocking_udp_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/udp.hpp" -#include -#include -#include - -using asio::ip::udp; -using std::placeholders::_1; -using std::placeholders::_2; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by running the io_context using the timed -// io_context::run_for() member function. Each asynchronous operation is given -// a timeout within which it must complete. The socket operations themselves -// use std::bind to specify the completion handler: -// -// +---------------+ -// | | -// | receive | -// | | -// +---------------+ -// | -// async_- | +----------------+ -// receive() | | | -// +--->| handle_receive | -// | | -// +----------------+ -// -// For a given socket operation, the client object runs the io_context to block -// thread execution until the operation completes or the timeout is reached. If -// the io_context::run_for() function times out, the socket is closed and the -// outstanding asynchronous operation is cancelled. -// -class client -{ -public: - client(const udp::endpoint& listen_endpoint) - : socket_(io_context_, listen_endpoint) - { - } - - std::size_t receive(const asio::mutable_buffer& buffer, - std::chrono::steady_clock::duration timeout, - std::error_code& error) - { - // Start the asynchronous operation. The handle_receive function used as a - // callback will update the error and length variables. - std::size_t length = 0; - socket_.async_receive(asio::buffer(buffer), - std::bind(&client::handle_receive, _1, _2, &error, &length)); - - // Run the operation until it completes, or until the timeout. - run(timeout); - - return length; - } - -private: - void run(std::chrono::steady_clock::duration timeout) - { - // Restart the io_context, as it may have been left in the "stopped" state - // by a previous operation. - io_context_.restart(); - - // Block until the asynchronous operation has completed, or timed out. If - // the pending asynchronous operation is a composed operation, the deadline - // applies to the entire operation, rather than individual operations on - // the socket. - io_context_.run_for(timeout); - - // If the asynchronous operation completed successfully then the io_context - // would have been stopped due to running out of work. If it was not - // stopped, then the io_context::run_for call must have timed out. - if (!io_context_.stopped()) - { - // Cancel the outstanding asynchronous operation. - socket_.cancel(); - - // Run the io_context again until the operation completes. - io_context_.run(); - } - } - - static void handle_receive( - const std::error_code& error, std::size_t length, - std::error_code* out_error, std::size_t* out_length) - { - *out_error = error; - *out_length = length; - } - -private: - asio::io_context io_context_; - udp::socket socket_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - using namespace std; // For atoi. - - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_client \n"; - return 1; - } - - udp::endpoint listen_endpoint( - asio::ip::make_address(argv[1]), - std::atoi(argv[2])); - - client c(listen_endpoint); - - for (;;) - { - char data[1024]; - std::error_code error; - std::size_t n = c.receive(asio::buffer(data), - std::chrono::seconds(10), error); - - if (error) - { - std::cout << "Receive error: " << error.message() << "\n"; - } - else - { - std::cout << "Received: "; - std::cout.write(data, n); - std::cout << "\n"; - } - } - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timeouts/server.cpp b/Sources/Vendor/asio/src/examples/cpp11/timeouts/server.cpp deleted file mode 100644 index 2845b58..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timeouts/server.cpp +++ /dev/null @@ -1,433 +0,0 @@ -// -// server.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include "asio/buffer.hpp" -#include "asio/io_context.hpp" -#include "asio/ip/tcp.hpp" -#include "asio/ip/udp.hpp" -#include "asio/read_until.hpp" -#include "asio/steady_timer.hpp" -#include "asio/write.hpp" - -using asio::steady_timer; -using asio::ip::tcp; -using asio::ip::udp; - -//---------------------------------------------------------------------- - -class subscriber -{ -public: - virtual ~subscriber() = default; - virtual void deliver(const std::string& msg) = 0; -}; - -typedef std::shared_ptr subscriber_ptr; - -//---------------------------------------------------------------------- - -class channel -{ -public: - void join(subscriber_ptr subscriber) - { - subscribers_.insert(subscriber); - } - - void leave(subscriber_ptr subscriber) - { - subscribers_.erase(subscriber); - } - - void deliver(const std::string& msg) - { - for (const auto& s : subscribers_) - { - s->deliver(msg); - } - } - -private: - std::set subscribers_; -}; - -//---------------------------------------------------------------------- - -// -// This class manages socket timeouts by applying the concept of a deadline. -// Some asynchronous operations are given deadlines by which they must complete. -// Deadlines are enforced by two "actors" that persist for the lifetime of the -// session object, one for input and one for output: -// -// +----------------+ +----------------+ -// | | | | -// | check_deadline |<-------+ | check_deadline |<-------+ -// | | | | | | -// +----------------+ | +----------------+ | -// | | | | -// async_wait() | +----------------+ async_wait() | +----------------+ -// on input | | lambda | on output | | lambda | -// deadline +--->| in | deadline +--->| in | -// | check_deadline | | check_deadline | -// +----------------+ +----------------+ -// -// If either deadline actor determines that the corresponding deadline has -// expired, the socket is closed and any outstanding operations are cancelled. -// -// The input actor reads messages from the socket, where messages are delimited -// by the newline character: -// -// +-------------+ -// | | -// | read_line |<----+ -// | | | -// +-------------+ | -// | | -// async_- | +-------------+ -// read_- | | lambda | -// until() +--->| in | -// | read_line | -// +-------------+ -// -// The deadline for receiving a complete message is 30 seconds. If a non-empty -// message is received, it is delivered to all subscribers. If a heartbeat (a -// message that consists of a single newline character) is received, a heartbeat -// is enqueued for the client, provided there are no other messages waiting to -// be sent. -// -// The output actor is responsible for sending messages to the client: -// -// +----------------+ -// | |<---------------------+ -// | await_output | | -// | |<-------+ | -// +----------------+ | | -// | | | | -// | async_- | +----------------+ | -// | wait() | | lambda | | -// | +->| in | | -// | | await_output | | -// | +----------------+ | -// V | -// +--------------+ +--------------+ -// | | async_write() | lambda | -// | write_line |-------------->| in | -// | | | write_line | -// +--------------+ +--------------+ -// -// The output actor first waits for an output message to be enqueued. It does -// this by using a steady_timer as an asynchronous condition variable. The -// steady_timer will be signalled whenever the output queue is non-empty. -// -// Once a message is available, it is sent to the client. The deadline for -// sending a complete message is 30 seconds. After the message is successfully -// sent, the output actor again waits for the output queue to become non-empty. -// -class tcp_session - : public subscriber, - public std::enable_shared_from_this -{ -public: - tcp_session(tcp::socket socket, channel& ch) - : channel_(ch), - socket_(std::move(socket)) - { - input_deadline_.expires_at(steady_timer::time_point::max()); - output_deadline_.expires_at(steady_timer::time_point::max()); - - // The non_empty_output_queue_ steady_timer is set to the maximum time - // point whenever the output queue is empty. This ensures that the output - // actor stays asleep until a message is put into the queue. - non_empty_output_queue_.expires_at(steady_timer::time_point::max()); - } - - // Called by the server object to initiate the four actors. - void start() - { - channel_.join(shared_from_this()); - - read_line(); - check_deadline(input_deadline_); - - await_output(); - check_deadline(output_deadline_); - } - -private: - void stop() - { - channel_.leave(shared_from_this()); - - std::error_code ignored_error; - socket_.close(ignored_error); - input_deadline_.cancel(); - non_empty_output_queue_.cancel(); - output_deadline_.cancel(); - } - - bool stopped() const - { - return !socket_.is_open(); - } - - void deliver(const std::string& msg) override - { - output_queue_.push_back(msg + "\n"); - - // Signal that the output queue contains messages. Modifying the expiry - // will wake the output actor, if it is waiting on the timer. - non_empty_output_queue_.expires_at(steady_timer::time_point::min()); - } - - void read_line() - { - // Set a deadline for the read operation. - input_deadline_.expires_after(std::chrono::seconds(30)); - - // Start an asynchronous operation to read a newline-delimited message. - auto self(shared_from_this()); - asio::async_read_until(socket_, - asio::dynamic_buffer(input_buffer_), '\n', - [this, self](const std::error_code& error, std::size_t n) - { - // Check if the session was stopped while the operation was pending. - if (stopped()) - return; - - if (!error) - { - // Extract the newline-delimited message from the buffer. - std::string msg(input_buffer_.substr(0, n - 1)); - input_buffer_.erase(0, n); - - if (!msg.empty()) - { - channel_.deliver(msg); - } - else - { - - // We received a heartbeat message from the client. If there's - // nothing else being sent or ready to be sent, send a heartbeat - // right back. - if (output_queue_.empty()) - { - output_queue_.push_back("\n"); - - // Signal that the output queue contains messages. Modifying - // the expiry will wake the output actor, if it is waiting on - // the timer. - non_empty_output_queue_.expires_at( - steady_timer::time_point::min()); - } - } - - read_line(); - } - else - { - stop(); - } - }); - } - - void await_output() - { - auto self(shared_from_this()); - non_empty_output_queue_.async_wait( - [this, self](const std::error_code& /*error*/) - { - // Check if the session was stopped while the operation was pending. - if (stopped()) - return; - - if (output_queue_.empty()) - { - // There are no messages that are ready to be sent. The actor goes - // to sleep by waiting on the non_empty_output_queue_ timer. When a - // new message is added, the timer will be modified and the actor - // will wake. - non_empty_output_queue_.expires_at(steady_timer::time_point::max()); - await_output(); - } - else - { - write_line(); - } - }); - } - - void write_line() - { - // Set a deadline for the write operation. - output_deadline_.expires_after(std::chrono::seconds(30)); - - // Start an asynchronous operation to send a message. - auto self(shared_from_this()); - asio::async_write(socket_, - asio::buffer(output_queue_.front()), - [this, self](const std::error_code& error, std::size_t /*n*/) - { - // Check if the session was stopped while the operation was pending. - if (stopped()) - return; - - if (!error) - { - output_queue_.pop_front(); - - await_output(); - } - else - { - stop(); - } - }); - } - - void check_deadline(steady_timer& deadline) - { - auto self(shared_from_this()); - deadline.async_wait( - [this, self, &deadline](const std::error_code& /*error*/) - { - // Check if the session was stopped while the operation was pending. - if (stopped()) - return; - - // Check whether the deadline has passed. We compare the deadline - // against the current time since a new asynchronous operation may - // have moved the deadline before this actor had a chance to run. - if (deadline.expiry() <= steady_timer::clock_type::now()) - { - // The deadline has passed. Stop the session. The other actors will - // terminate as soon as possible. - stop(); - } - else - { - // Put the actor back to sleep. - check_deadline(deadline); - } - }); - } - - channel& channel_; - tcp::socket socket_; - std::string input_buffer_; - steady_timer input_deadline_{socket_.get_executor().context()}; - std::deque output_queue_; - steady_timer non_empty_output_queue_{socket_.get_executor().context()}; - steady_timer output_deadline_{socket_.get_executor().context()}; -}; - -typedef std::shared_ptr tcp_session_ptr; - -//---------------------------------------------------------------------- - -class udp_broadcaster - : public subscriber -{ -public: - udp_broadcaster(asio::io_context& io_context, - const udp::endpoint& broadcast_endpoint) - : socket_(io_context) - { - socket_.connect(broadcast_endpoint); - socket_.set_option(udp::socket::broadcast(true)); - } - -private: - void deliver(const std::string& msg) - { - std::error_code ignored_error; - socket_.send(asio::buffer(msg), 0, ignored_error); - } - - udp::socket socket_; -}; - -//---------------------------------------------------------------------- - -class server -{ -public: - server(asio::io_context& io_context, - const tcp::endpoint& listen_endpoint, - const udp::endpoint& broadcast_endpoint) - : io_context_(io_context), - acceptor_(io_context, listen_endpoint) - { - channel_.join( - std::make_shared( - io_context_, broadcast_endpoint)); - - accept(); - } - -private: - void accept() - { - acceptor_.async_accept( - [this](const std::error_code& error, tcp::socket socket) - { - if (!error) - { - std::make_shared(std::move(socket), channel_)->start(); - } - - accept(); - }); - } - - asio::io_context& io_context_; - tcp::acceptor acceptor_; - channel channel_; -}; - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - using namespace std; // For atoi. - - if (argc != 4) - { - std::cerr << "Usage: server \n"; - return 1; - } - - asio::io_context io_context; - - tcp::endpoint listen_endpoint(tcp::v4(), atoi(argv[1])); - - udp::endpoint broadcast_endpoint( - asio::ip::make_address(argv[2]), atoi(argv[3])); - - server s(io_context, listen_endpoint, broadcast_endpoint); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp11/timers/time_t_timer.cpp b/Sources/Vendor/asio/src/examples/cpp11/timers/time_t_timer.cpp deleted file mode 100644 index fd27381..0000000 --- a/Sources/Vendor/asio/src/examples/cpp11/timers/time_t_timer.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// time_t_timer.cpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include - -// A custom implementation of the Clock concept from the standard C++ library. -struct time_t_clock -{ - // The duration type. - typedef std::chrono::steady_clock::duration duration; - - // The duration's underlying arithmetic representation. - typedef duration::rep rep; - - // The ratio representing the duration's tick period. - typedef duration::period period; - - // An absolute time point represented using the clock. - typedef std::chrono::time_point time_point; - - // The clock is not monotonically increasing. - static constexpr bool is_steady = false; - - // Get the current time. - static time_point now() noexcept - { - return time_point() + std::chrono::seconds(std::time(0)); - } -}; - -// The asio::basic_waitable_timer template accepts an optional WaitTraits -// template parameter. The underlying time_t clock has one-second granularity, -// so these traits may be customised to reduce the latency between the clock -// ticking over and a wait operation's completion. When the timeout is near -// (less than one second away) we poll the clock more frequently to detect the -// time change closer to when it occurs. The user can select the appropriate -// trade off between accuracy and the increased CPU cost of polling. In extreme -// cases, a zero duration may be returned to make the timers as accurate as -// possible, albeit with 100% CPU usage. -struct time_t_wait_traits -{ - // Determine how long until the clock should be next polled to determine - // whether the duration has elapsed. - static time_t_clock::duration to_wait_duration( - const time_t_clock::duration& d) - { - if (d > std::chrono::seconds(1)) - return d - std::chrono::seconds(1); - else if (d > std::chrono::seconds(0)) - return std::chrono::milliseconds(10); - else - return std::chrono::seconds(0); - } - - // Determine how long until the clock should be next polled to determine - // whether the absoluate time has been reached. - static time_t_clock::duration to_wait_duration( - const time_t_clock::time_point& t) - { - return to_wait_duration(t - time_t_clock::now()); - } -}; - -typedef asio::basic_waitable_timer< - time_t_clock, time_t_wait_traits> time_t_timer; - -int main() -{ - try - { - asio::io_context io_context; - - time_t_timer timer(io_context); - - timer.expires_after(std::chrono::seconds(5)); - std::cout << "Starting synchronous wait\n"; - timer.wait(); - std::cout << "Finished synchronous wait\n"; - - timer.expires_after(std::chrono::seconds(5)); - std::cout << "Starting asynchronous wait\n"; - timer.async_wait( - [](const std::error_code& /*error*/) - { - std::cout << "timeout\n"; - }); - io_context.run(); - std::cout << "Finished asynchronous wait\n"; - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/Makefile.am b/Sources/Vendor/asio/src/examples/cpp14/Makefile.am deleted file mode 100644 index fb8c356..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/Makefile.am +++ /dev/null @@ -1,48 +0,0 @@ -AUTOMAKE_OPTIONS = subdir-objects - -if SEPARATE_COMPILATION -noinst_LIBRARIES = libasio.a -libasio_a_SOURCES = ../../asio.cpp -if HAVE_OPENSSL -libasio_a_SOURCES += ../../asio_ssl.cpp -endif -LDADD = libasio.a -endif - -noinst_PROGRAMS = \ - echo/async_tcp_echo_server \ - echo/async_udp_echo_server \ - echo/blocking_tcp_echo_client \ - echo/blocking_tcp_echo_server \ - echo/blocking_udp_echo_client \ - echo/blocking_udp_echo_server \ - executors/actor \ - executors/async_1 \ - executors/async_2 \ - executors/bank_account_1 \ - executors/bank_account_2 \ - executors/fork_join \ - executors/pipeline \ - executors/priority_scheduler \ - iostreams/http_client - -AM_CXXFLAGS = -I$(srcdir)/../../../include - -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -executors_actor_SOURCES = executors/actor.cpp -executors_async_1_SOURCES = executors/async_1.cpp -executors_async_2_SOURCES = executors/async_2.cpp -executors_bank_account_1_SOURCES = executors/bank_account_1.cpp -executors_bank_account_2_SOURCES = executors/bank_account_2.cpp -executors_fork_join_SOURCES = executors/fork_join.cpp -executors_pipeline_SOURCES = executors/pipeline.cpp -executors_priority_scheduler_SOURCES = executors/priority_scheduler.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/examples/cpp14/Makefile.in b/Sources/Vendor/asio/src/examples/cpp14/Makefile.in deleted file mode 100644 index 0aecefd..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/Makefile.in +++ /dev/null @@ -1,908 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../../asio_ssl.cpp -noinst_PROGRAMS = echo/async_tcp_echo_server$(EXEEXT) \ - echo/async_udp_echo_server$(EXEEXT) \ - echo/blocking_tcp_echo_client$(EXEEXT) \ - echo/blocking_tcp_echo_server$(EXEEXT) \ - echo/blocking_udp_echo_client$(EXEEXT) \ - echo/blocking_udp_echo_server$(EXEEXT) \ - executors/actor$(EXEEXT) executors/async_1$(EXEEXT) \ - executors/async_2$(EXEEXT) executors/bank_account_1$(EXEEXT) \ - executors/bank_account_2$(EXEEXT) executors/fork_join$(EXEEXT) \ - executors/pipeline$(EXEEXT) \ - executors/priority_scheduler$(EXEEXT) \ - iostreams/http_client$(EXEEXT) -subdir = src/examples/cpp14 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -PROGRAMS = $(noinst_PROGRAMS) -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libasio_a_AR = $(AR) $(ARFLAGS) -libasio_a_LIBADD = -am__libasio_a_SOURCES_DIST = ../../asio.cpp ../../asio_ssl.cpp -am__dirstamp = $(am__leading_dot)dirstamp -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__objects_1 = ../../asio_ssl.$(OBJEXT) -@SEPARATE_COMPILATION_TRUE@am_libasio_a_OBJECTS = \ -@SEPARATE_COMPILATION_TRUE@ ../../asio.$(OBJEXT) \ -@SEPARATE_COMPILATION_TRUE@ $(am__objects_1) -libasio_a_OBJECTS = $(am_libasio_a_OBJECTS) -am_echo_async_tcp_echo_server_OBJECTS = \ - echo/async_tcp_echo_server.$(OBJEXT) -echo_async_tcp_echo_server_OBJECTS = \ - $(am_echo_async_tcp_echo_server_OBJECTS) -echo_async_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_async_udp_echo_server_OBJECTS = \ - echo/async_udp_echo_server.$(OBJEXT) -echo_async_udp_echo_server_OBJECTS = \ - $(am_echo_async_udp_echo_server_OBJECTS) -echo_async_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_async_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_client_OBJECTS = \ - echo/blocking_tcp_echo_client.$(OBJEXT) -echo_blocking_tcp_echo_client_OBJECTS = \ - $(am_echo_blocking_tcp_echo_client_OBJECTS) -echo_blocking_tcp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_tcp_echo_server_OBJECTS = \ - echo/blocking_tcp_echo_server.$(OBJEXT) -echo_blocking_tcp_echo_server_OBJECTS = \ - $(am_echo_blocking_tcp_echo_server_OBJECTS) -echo_blocking_tcp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_tcp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_client_OBJECTS = \ - echo/blocking_udp_echo_client.$(OBJEXT) -echo_blocking_udp_echo_client_OBJECTS = \ - $(am_echo_blocking_udp_echo_client_OBJECTS) -echo_blocking_udp_echo_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_echo_blocking_udp_echo_server_OBJECTS = \ - echo/blocking_udp_echo_server.$(OBJEXT) -echo_blocking_udp_echo_server_OBJECTS = \ - $(am_echo_blocking_udp_echo_server_OBJECTS) -echo_blocking_udp_echo_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@echo_blocking_udp_echo_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_actor_OBJECTS = executors/actor.$(OBJEXT) -executors_actor_OBJECTS = $(am_executors_actor_OBJECTS) -executors_actor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_actor_DEPENDENCIES = libasio.a -am_executors_async_1_OBJECTS = executors/async_1.$(OBJEXT) -executors_async_1_OBJECTS = $(am_executors_async_1_OBJECTS) -executors_async_1_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_async_1_DEPENDENCIES = libasio.a -am_executors_async_2_OBJECTS = executors/async_2.$(OBJEXT) -executors_async_2_OBJECTS = $(am_executors_async_2_OBJECTS) -executors_async_2_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_async_2_DEPENDENCIES = libasio.a -am_executors_bank_account_1_OBJECTS = \ - executors/bank_account_1.$(OBJEXT) -executors_bank_account_1_OBJECTS = \ - $(am_executors_bank_account_1_OBJECTS) -executors_bank_account_1_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_bank_account_1_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_bank_account_2_OBJECTS = \ - executors/bank_account_2.$(OBJEXT) -executors_bank_account_2_OBJECTS = \ - $(am_executors_bank_account_2_OBJECTS) -executors_bank_account_2_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_bank_account_2_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_fork_join_OBJECTS = executors/fork_join.$(OBJEXT) -executors_fork_join_OBJECTS = $(am_executors_fork_join_OBJECTS) -executors_fork_join_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_fork_join_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_pipeline_OBJECTS = executors/pipeline.$(OBJEXT) -executors_pipeline_OBJECTS = $(am_executors_pipeline_OBJECTS) -executors_pipeline_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_pipeline_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_executors_priority_scheduler_OBJECTS = \ - executors/priority_scheduler.$(OBJEXT) -executors_priority_scheduler_OBJECTS = \ - $(am_executors_priority_scheduler_OBJECTS) -executors_priority_scheduler_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@executors_priority_scheduler_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_iostreams_http_client_OBJECTS = iostreams/http_client.$(OBJEXT) -iostreams_http_client_OBJECTS = $(am_iostreams_http_client_OBJECTS) -iostreams_http_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@iostreams_http_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../../$(DEPDIR)/asio.Po \ - ../../$(DEPDIR)/asio_ssl.Po \ - echo/$(DEPDIR)/async_tcp_echo_server.Po \ - echo/$(DEPDIR)/async_udp_echo_server.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_client.Po \ - echo/$(DEPDIR)/blocking_tcp_echo_server.Po \ - echo/$(DEPDIR)/blocking_udp_echo_client.Po \ - echo/$(DEPDIR)/blocking_udp_echo_server.Po \ - executors/$(DEPDIR)/actor.Po executors/$(DEPDIR)/async_1.Po \ - executors/$(DEPDIR)/async_2.Po \ - executors/$(DEPDIR)/bank_account_1.Po \ - executors/$(DEPDIR)/bank_account_2.Po \ - executors/$(DEPDIR)/fork_join.Po \ - executors/$(DEPDIR)/pipeline.Po \ - executors/$(DEPDIR)/priority_scheduler.Po \ - iostreams/$(DEPDIR)/http_client.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -SOURCES = $(libasio_a_SOURCES) $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(executors_actor_SOURCES) $(executors_async_1_SOURCES) \ - $(executors_async_2_SOURCES) \ - $(executors_bank_account_1_SOURCES) \ - $(executors_bank_account_2_SOURCES) \ - $(executors_fork_join_SOURCES) $(executors_pipeline_SOURCES) \ - $(executors_priority_scheduler_SOURCES) \ - $(iostreams_http_client_SOURCES) -DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ - $(echo_async_tcp_echo_server_SOURCES) \ - $(echo_async_udp_echo_server_SOURCES) \ - $(echo_blocking_tcp_echo_client_SOURCES) \ - $(echo_blocking_tcp_echo_server_SOURCES) \ - $(echo_blocking_udp_echo_client_SOURCES) \ - $(echo_blocking_udp_echo_server_SOURCES) \ - $(executors_actor_SOURCES) $(executors_async_1_SOURCES) \ - $(executors_async_2_SOURCES) \ - $(executors_bank_account_1_SOURCES) \ - $(executors_bank_account_2_SOURCES) \ - $(executors_fork_join_SOURCES) $(executors_pipeline_SOURCES) \ - $(executors_priority_scheduler_SOURCES) \ - $(iostreams_http_client_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -@SEPARATE_COMPILATION_TRUE@noinst_LIBRARIES = libasio.a -@SEPARATE_COMPILATION_TRUE@libasio_a_SOURCES = ../../asio.cpp \ -@SEPARATE_COMPILATION_TRUE@ $(am__append_1) -@SEPARATE_COMPILATION_TRUE@LDADD = libasio.a -AM_CXXFLAGS = -I$(srcdir)/../../../include -echo_async_tcp_echo_server_SOURCES = echo/async_tcp_echo_server.cpp -echo_async_udp_echo_server_SOURCES = echo/async_udp_echo_server.cpp -echo_blocking_tcp_echo_client_SOURCES = echo/blocking_tcp_echo_client.cpp -echo_blocking_tcp_echo_server_SOURCES = echo/blocking_tcp_echo_server.cpp -echo_blocking_udp_echo_client_SOURCES = echo/blocking_udp_echo_client.cpp -echo_blocking_udp_echo_server_SOURCES = echo/blocking_udp_echo_server.cpp -executors_actor_SOURCES = executors/actor.cpp -executors_async_1_SOURCES = executors/async_1.cpp -executors_async_2_SOURCES = executors/async_2.cpp -executors_bank_account_1_SOURCES = executors/bank_account_1.cpp -executors_bank_account_2_SOURCES = executors/bank_account_2.cpp -executors_fork_join_SOURCES = executors/fork_join.cpp -executors_pipeline_SOURCES = executors/pipeline.cpp -executors_priority_scheduler_SOURCES = executors/priority_scheduler.cpp -iostreams_http_client_SOURCES = iostreams/http_client.cpp -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .o .obj -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/cpp14/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/examples/cpp14/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -../../$(am__dirstamp): - @$(MKDIR_P) ../.. - @: > ../../$(am__dirstamp) -../../$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../../$(DEPDIR) - @: > ../../$(DEPDIR)/$(am__dirstamp) -../../asio.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) -../../asio_ssl.$(OBJEXT): ../../$(am__dirstamp) \ - ../../$(DEPDIR)/$(am__dirstamp) - -libasio.a: $(libasio_a_OBJECTS) $(libasio_a_DEPENDENCIES) $(EXTRA_libasio_a_DEPENDENCIES) - $(AM_V_at)-rm -f libasio.a - $(AM_V_AR)$(libasio_a_AR) libasio.a $(libasio_a_OBJECTS) $(libasio_a_LIBADD) - $(AM_V_at)$(RANLIB) libasio.a -echo/$(am__dirstamp): - @$(MKDIR_P) echo - @: > echo/$(am__dirstamp) -echo/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) echo/$(DEPDIR) - @: > echo/$(DEPDIR)/$(am__dirstamp) -echo/async_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_tcp_echo_server$(EXEEXT): $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_tcp_echo_server_OBJECTS) $(echo_async_tcp_echo_server_LDADD) $(LIBS) -echo/async_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/async_udp_echo_server$(EXEEXT): $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_async_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/async_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_async_udp_echo_server_OBJECTS) $(echo_async_udp_echo_server_LDADD) $(LIBS) -echo/blocking_tcp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_client$(EXEEXT): $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_client_OBJECTS) $(echo_blocking_tcp_echo_client_LDADD) $(LIBS) -echo/blocking_tcp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_tcp_echo_server$(EXEEXT): $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_tcp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_tcp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_tcp_echo_server_OBJECTS) $(echo_blocking_tcp_echo_server_LDADD) $(LIBS) -echo/blocking_udp_echo_client.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_client$(EXEEXT): $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_client_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_client_OBJECTS) $(echo_blocking_udp_echo_client_LDADD) $(LIBS) -echo/blocking_udp_echo_server.$(OBJEXT): echo/$(am__dirstamp) \ - echo/$(DEPDIR)/$(am__dirstamp) - -echo/blocking_udp_echo_server$(EXEEXT): $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_DEPENDENCIES) $(EXTRA_echo_blocking_udp_echo_server_DEPENDENCIES) echo/$(am__dirstamp) - @rm -f echo/blocking_udp_echo_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(echo_blocking_udp_echo_server_OBJECTS) $(echo_blocking_udp_echo_server_LDADD) $(LIBS) -executors/$(am__dirstamp): - @$(MKDIR_P) executors - @: > executors/$(am__dirstamp) -executors/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) executors/$(DEPDIR) - @: > executors/$(DEPDIR)/$(am__dirstamp) -executors/actor.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/actor$(EXEEXT): $(executors_actor_OBJECTS) $(executors_actor_DEPENDENCIES) $(EXTRA_executors_actor_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/actor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_actor_OBJECTS) $(executors_actor_LDADD) $(LIBS) -executors/async_1.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/async_1$(EXEEXT): $(executors_async_1_OBJECTS) $(executors_async_1_DEPENDENCIES) $(EXTRA_executors_async_1_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/async_1$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_async_1_OBJECTS) $(executors_async_1_LDADD) $(LIBS) -executors/async_2.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/async_2$(EXEEXT): $(executors_async_2_OBJECTS) $(executors_async_2_DEPENDENCIES) $(EXTRA_executors_async_2_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/async_2$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_async_2_OBJECTS) $(executors_async_2_LDADD) $(LIBS) -executors/bank_account_1.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/bank_account_1$(EXEEXT): $(executors_bank_account_1_OBJECTS) $(executors_bank_account_1_DEPENDENCIES) $(EXTRA_executors_bank_account_1_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/bank_account_1$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_bank_account_1_OBJECTS) $(executors_bank_account_1_LDADD) $(LIBS) -executors/bank_account_2.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/bank_account_2$(EXEEXT): $(executors_bank_account_2_OBJECTS) $(executors_bank_account_2_DEPENDENCIES) $(EXTRA_executors_bank_account_2_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/bank_account_2$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_bank_account_2_OBJECTS) $(executors_bank_account_2_LDADD) $(LIBS) -executors/fork_join.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/fork_join$(EXEEXT): $(executors_fork_join_OBJECTS) $(executors_fork_join_DEPENDENCIES) $(EXTRA_executors_fork_join_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/fork_join$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_fork_join_OBJECTS) $(executors_fork_join_LDADD) $(LIBS) -executors/pipeline.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/pipeline$(EXEEXT): $(executors_pipeline_OBJECTS) $(executors_pipeline_DEPENDENCIES) $(EXTRA_executors_pipeline_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/pipeline$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_pipeline_OBJECTS) $(executors_pipeline_LDADD) $(LIBS) -executors/priority_scheduler.$(OBJEXT): executors/$(am__dirstamp) \ - executors/$(DEPDIR)/$(am__dirstamp) - -executors/priority_scheduler$(EXEEXT): $(executors_priority_scheduler_OBJECTS) $(executors_priority_scheduler_DEPENDENCIES) $(EXTRA_executors_priority_scheduler_DEPENDENCIES) executors/$(am__dirstamp) - @rm -f executors/priority_scheduler$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(executors_priority_scheduler_OBJECTS) $(executors_priority_scheduler_LDADD) $(LIBS) -iostreams/$(am__dirstamp): - @$(MKDIR_P) iostreams - @: > iostreams/$(am__dirstamp) -iostreams/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) iostreams/$(DEPDIR) - @: > iostreams/$(DEPDIR)/$(am__dirstamp) -iostreams/http_client.$(OBJEXT): iostreams/$(am__dirstamp) \ - iostreams/$(DEPDIR)/$(am__dirstamp) - -iostreams/http_client$(EXEEXT): $(iostreams_http_client_OBJECTS) $(iostreams_http_client_DEPENDENCIES) $(EXTRA_iostreams_http_client_DEPENDENCIES) iostreams/$(am__dirstamp) - @rm -f iostreams/http_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(iostreams_http_client_OBJECTS) $(iostreams_http_client_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../../*.$(OBJEXT) - -rm -f echo/*.$(OBJEXT) - -rm -f executors/*.$(OBJEXT) - -rm -f iostreams/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../../$(DEPDIR)/asio_ssl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/async_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_tcp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@echo/$(DEPDIR)/blocking_udp_echo_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/actor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/async_1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/async_2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/bank_account_1.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/bank_account_2.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/fork_join.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/pipeline.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@executors/$(DEPDIR)/priority_scheduler.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@iostreams/$(DEPDIR)/http_client.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(LIBRARIES) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../../$(DEPDIR)/$(am__dirstamp) - -rm -f ../../$(am__dirstamp) - -rm -f echo/$(DEPDIR)/$(am__dirstamp) - -rm -f echo/$(am__dirstamp) - -rm -f executors/$(DEPDIR)/$(am__dirstamp) - -rm -f executors/$(am__dirstamp) - -rm -f iostreams/$(DEPDIR)/$(am__dirstamp) - -rm -f iostreams/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - mostlyclean-am - -distclean: distclean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f executors/$(DEPDIR)/actor.Po - -rm -f executors/$(DEPDIR)/async_1.Po - -rm -f executors/$(DEPDIR)/async_2.Po - -rm -f executors/$(DEPDIR)/bank_account_1.Po - -rm -f executors/$(DEPDIR)/bank_account_2.Po - -rm -f executors/$(DEPDIR)/fork_join.Po - -rm -f executors/$(DEPDIR)/pipeline.Po - -rm -f executors/$(DEPDIR)/priority_scheduler.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ../../$(DEPDIR)/asio.Po - -rm -f ../../$(DEPDIR)/asio_ssl.Po - -rm -f echo/$(DEPDIR)/async_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/async_udp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_tcp_echo_server.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_client.Po - -rm -f echo/$(DEPDIR)/blocking_udp_echo_server.Po - -rm -f executors/$(DEPDIR)/actor.Po - -rm -f executors/$(DEPDIR)/async_1.Po - -rm -f executors/$(DEPDIR)/async_2.Po - -rm -f executors/$(DEPDIR)/bank_account_1.Po - -rm -f executors/$(DEPDIR)/bank_account_2.Po - -rm -f executors/$(DEPDIR)/fork_join.Po - -rm -f executors/$(DEPDIR)/pipeline.Po - -rm -f executors/$(DEPDIR)/priority_scheduler.Po - -rm -f iostreams/$(DEPDIR)/http_client.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ - clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ - cscopelist-am ctags ctags-am distclean distclean-compile \ - distclean-generic distclean-tags distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp deleted file mode 100644 index f7c3d31..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// async_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -class session - : public std::enable_shared_from_this -{ -public: - session(tcp::socket socket) - : socket_(std::move(socket)) - { - } - - void start() - { - do_read(); - } - -private: - void do_read() - { - auto self(shared_from_this()); - socket_.async_read_some(asio::buffer(data_, max_length), - [this, self](std::error_code ec, std::size_t length) - { - if (!ec) - { - do_write(length); - } - }); - } - - void do_write(std::size_t length) - { - auto self(shared_from_this()); - asio::async_write(socket_, asio::buffer(data_, length), - [this, self](std::error_code ec, std::size_t /*length*/) - { - if (!ec) - { - do_read(); - } - }); - } - - tcp::socket socket_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : acceptor_(io_context, tcp::endpoint(tcp::v4(), port)), - socket_(io_context) - { - do_accept(); - } - -private: - void do_accept() - { - acceptor_.async_accept(socket_, - [this](std::error_code ec) - { - if (!ec) - { - std::make_shared(std::move(socket_))->start(); - } - - do_accept(); - }); - } - - tcp::acceptor acceptor_; - tcp::socket socket_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: async_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp deleted file mode 100644 index 921206f..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// async_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include - -using asio::ip::udp; - -class server -{ -public: - server(asio::io_context& io_context, short port) - : socket_(io_context, udp::endpoint(udp::v4(), port)) - { - do_receive(); - } - - void do_receive() - { - socket_.async_receive_from( - asio::buffer(data_, max_length), sender_endpoint_, - [this](std::error_code ec, std::size_t bytes_recvd) - { - if (!ec && bytes_recvd > 0) - { - do_send(bytes_recvd); - } - else - { - do_receive(); - } - }); - } - - void do_send(std::size_t length) - { - socket_.async_send_to( - asio::buffer(data_, length), sender_endpoint_, - [this](std::error_code /*ec*/, std::size_t /*bytes_sent*/) - { - do_receive(); - }); - } - -private: - udp::socket socket_; - udp::endpoint sender_endpoint_; - enum { max_length = 1024 }; - char data_[max_length]; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: async_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server s(io_context, std::atoi(argv[1])); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp deleted file mode 100644 index 539843a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// -// blocking_tcp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include "asio.hpp" - -using asio::ip::tcp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_tcp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - tcp::socket s(io_context); - tcp::resolver resolver(io_context); - asio::connect(s, resolver.resolve(argv[1], argv[2])); - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = std::strlen(request); - asio::write(s, asio::buffer(request, request_length)); - - char reply[max_length]; - size_t reply_length = asio::read(s, - asio::buffer(reply, request_length)); - std::cout << "Reply is: "; - std::cout.write(reply, reply_length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp deleted file mode 100644 index 4ce6221..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// -// blocking_tcp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -const int max_length = 1024; - -void session(tcp::socket sock) -{ - try - { - for (;;) - { - char data[max_length]; - - std::error_code error; - size_t length = sock.read_some(asio::buffer(data), error); - if (error == asio::stream_errc::eof) - break; // Connection closed cleanly by peer. - else if (error) - throw std::system_error(error); // Some other error. - - asio::write(sock, asio::buffer(data, length)); - } - } - catch (std::exception& e) - { - std::cerr << "Exception in thread: " << e.what() << "\n"; - } -} - -void server(asio::io_context& io_context, unsigned short port) -{ - tcp::acceptor a(io_context, tcp::endpoint(tcp::v4(), port)); - for (;;) - { - tcp::socket sock(io_context); - a.accept(sock); - std::thread(session, std::move(sock)).detach(); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_tcp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server(io_context, std::atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp deleted file mode 100644 index 8d21408..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// -// blocking_udp_echo_client.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include - -using asio::ip::udp; - -enum { max_length = 1024 }; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cerr << "Usage: blocking_udp_echo_client \n"; - return 1; - } - - asio::io_context io_context; - - udp::socket s(io_context, udp::endpoint(udp::v4(), 0)); - - udp::resolver resolver(io_context); - udp::endpoint endpoint = - *resolver.resolve(udp::v4(), argv[1], argv[2]).begin(); - - std::cout << "Enter message: "; - char request[max_length]; - std::cin.getline(request, max_length); - size_t request_length = std::strlen(request); - s.send_to(asio::buffer(request, request_length), endpoint); - - char reply[max_length]; - udp::endpoint sender_endpoint; - size_t reply_length = s.receive_from( - asio::buffer(reply, max_length), sender_endpoint); - std::cout << "Reply is: "; - std::cout.write(reply, reply_length); - std::cout << "\n"; - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp deleted file mode 100644 index 2b2c84a..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// blocking_udp_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include - -using asio::ip::udp; - -enum { max_length = 1024 }; - -void server(asio::io_context& io_context, unsigned short port) -{ - udp::socket sock(io_context, udp::endpoint(udp::v4(), port)); - for (;;) - { - char data[max_length]; - udp::endpoint sender_endpoint; - size_t length = sock.receive_from( - asio::buffer(data, max_length), sender_endpoint); - sock.send_to(asio::buffer(data, length), sender_endpoint); - } -} - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 2) - { - std::cerr << "Usage: blocking_udp_echo_server \n"; - return 1; - } - - asio::io_context io_context; - - server(io_context, std::atoi(argv[1])); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/actor.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/actor.cpp deleted file mode 100644 index e2cc9ba..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/actor.cpp +++ /dev/null @@ -1,281 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -using asio::defer; -using asio::executor; -using asio::post; -using asio::strand; -using asio::system_executor; - -//------------------------------------------------------------------------------ -// A tiny actor framework -// ~~~~~~~~~~~~~~~~~~~~~~ - -class actor; - -// Used to identify the sender and recipient of messages. -typedef actor* actor_address; - -// Base class for all registered message handlers. -class message_handler_base -{ -public: - virtual ~message_handler_base() {} - - // Used to determine which message handlers receive an incoming message. - virtual const std::type_info& message_id() const = 0; -}; - -// Base class for a handler for a specific message type. -template -class message_handler : public message_handler_base -{ -public: - // Handle an incoming message. - virtual void handle_message(Message msg, actor_address from) = 0; -}; - -// Concrete message handler for a specific message type. -template -class mf_message_handler : public message_handler -{ -public: - // Construct a message handler to invoke the specified member function. - mf_message_handler(void (Actor::* mf)(Message, actor_address), Actor* a) - : function_(mf), actor_(a) - { - } - - // Used to determine which message handlers receive an incoming message. - virtual const std::type_info& message_id() const - { - return typeid(Message); - } - - // Handle an incoming message. - virtual void handle_message(Message msg, actor_address from) - { - (actor_->*function_)(std::move(msg), from); - } - - // Determine whether the message handler represents the specified function. - bool is_function(void (Actor::* mf)(Message, actor_address)) const - { - return mf == function_; - } - -private: - void (Actor::* function_)(Message, actor_address); - Actor* actor_; -}; - -// Base class for all actors. -class actor -{ -public: - virtual ~actor() - { - } - - // Obtain the actor's address for use as a message sender or recipient. - actor_address address() - { - return this; - } - - // Send a message from one actor to another. - template - friend void send(Message msg, actor_address from, actor_address to) - { - // Execute the message handler in the context of the target's executor. - post(to->executor_, - [=, msg=std::move(msg)] - { - to->call_handler(std::move(msg), from); - }); - } - -protected: - // Construct the actor to use the specified executor for all message handlers. - actor(executor e) - : executor_(std::move(e)) - { - } - - // Register a handler for a specific message type. Duplicates are permitted. - template - void register_handler(void (Actor::* mf)(Message, actor_address)) - { - handlers_.push_back( - std::make_shared>( - mf, static_cast(this))); - } - - // Deregister a handler. Removes only the first matching handler. - template - void deregister_handler(void (Actor::* mf)(Message, actor_address)) - { - const std::type_info& id = typeid(Message); - for (auto iter = handlers_.begin(); iter != handlers_.end(); ++iter) - { - if ((*iter)->message_id() == id) - { - auto mh = static_cast*>(iter->get()); - if (mh->is_function(mf)) - { - handlers_.erase(iter); - return; - } - } - } - } - - // Send a message from within a message handler. - template - void tail_send(Message msg, actor_address to) - { - // Execute the message handler in the context of the target's executor. - defer(to->executor_, - [=, msg=std::move(msg), from=this] - { - to->call_handler(std::move(msg), from); - }); - } - -private: - // Find the matching message handlers, if any, and call them. - template - void call_handler(Message msg, actor_address from) - { - const std::type_info& message_id = typeid(Message); - for (auto& h: handlers_) - { - if (h->message_id() == message_id) - { - auto mh = static_cast*>(h.get()); - mh->handle_message(msg, from); - } - } - } - - // All messages associated with a single actor object should be processed - // non-concurrently. We use a strand to ensure non-concurrent execution even - // if the underlying executor may use multiple threads. - strand executor_; - - std::vector> handlers_; -}; - -// A concrete actor that allows synchronous message retrieval. -template -class receiver : public actor -{ -public: - receiver() - : actor(system_executor()) - { - register_handler(&receiver::message_handler); - } - - // Block until a message has been received. - Message wait() - { - std::unique_lock lock(mutex_); - condition_.wait(lock, [this]{ return !message_queue_.empty(); }); - Message msg(std::move(message_queue_.front())); - message_queue_.pop_front(); - return msg; - } - -private: - // Handle a new message by adding it to the queue and waking a waiter. - void message_handler(Message msg, actor_address /* from */) - { - std::lock_guard lock(mutex_); - message_queue_.push_back(std::move(msg)); - condition_.notify_one(); - } - - std::mutex mutex_; - std::condition_variable condition_; - std::deque message_queue_; -}; - -//------------------------------------------------------------------------------ - -#include -#include - -using asio::thread_pool; - -class member : public actor -{ -public: - explicit member(executor e) - : actor(std::move(e)) - { - register_handler(&member::init_handler); - } - -private: - void init_handler(actor_address next, actor_address from) - { - next_ = next; - caller_ = from; - - register_handler(&member::token_handler); - deregister_handler(&member::init_handler); - } - - void token_handler(int token, actor_address /*from*/) - { - int msg(token); - actor_address to(caller_); - - if (token > 0) - { - msg = token - 1; - to = next_; - } - - tail_send(msg, to); - } - - actor_address next_; - actor_address caller_; -}; - -int main() -{ - const std::size_t num_threads = 16; - const int num_hops = 50000000; - const std::size_t num_actors = 503; - const int token_value = (num_hops + num_actors - 1) / num_actors; - const std::size_t actors_per_thread = num_actors / num_threads; - - struct single_thread_pool : thread_pool { single_thread_pool() : thread_pool(1) {} }; - single_thread_pool pools[num_threads]; - std::vector> members(num_actors); - receiver rcvr; - - // Create the member actors. - for (std::size_t i = 0; i < num_actors; ++i) - members[i] = std::make_shared(pools[(i / actors_per_thread) % num_threads].get_executor()); - - // Initialise the actors by passing each one the address of the next actor in the ring. - for (std::size_t i = num_actors, next_i = 0; i > 0; next_i = --i) - send(members[next_i]->address(), rcvr.address(), members[i - 1]->address()); - - // Send exactly one token to each actor, all with the same initial value, rounding up if required. - for (std::size_t i = 0; i < num_actors; ++i) - send(token_value, rcvr.address(), members[i]->address()); - - // Wait for all signal messages, indicating the tokens have all reached zero. - for (std::size_t i = 0; i < num_actors; ++i) - rcvr.wait(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/async_1.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/async_1.cpp deleted file mode 100644 index d282b74..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/async_1.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include -#include -#include - -using asio::bind_executor; -using asio::dispatch; -using asio::make_work_guard; -using asio::post; -using asio::thread_pool; - -// A function to asynchronously read a single line from an input stream. -template -void async_getline(std::istream& is, Handler handler) -{ - // Create executor_work for the handler's associated executor. - auto work = make_work_guard(handler); - - // Post a function object to do the work asynchronously. - post([&is, work, handler=std::move(handler)]() mutable - { - std::string line; - std::getline(is, line); - - // Pass the result to the handler, via the associated executor. - dispatch(work.get_executor(), - [line=std::move(line), handler=std::move(handler)]() mutable - { - handler(std::move(line)); - }); - }); -} - -int main() -{ - thread_pool pool; - - std::cout << "Enter a line: "; - - async_getline(std::cin, - bind_executor(pool, [](std::string line) - { - std::cout << "Line: " << line << "\n"; - })); - - pool.join(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/async_2.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/async_2.cpp deleted file mode 100644 index b39156d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/async_2.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include - -using asio::bind_executor; -using asio::dispatch; -using asio::get_associated_executor; -using asio::make_work_guard; -using asio::post; -using asio::thread_pool; - -// A function to asynchronously read a single line from an input stream. -template -void async_getline(std::istream& is, Handler handler) -{ - // Create executor_work for the handler's associated executor. - auto work = make_work_guard(handler); - - // Post a function object to do the work asynchronously. - post([&is, work, handler=std::move(handler)]() mutable - { - std::string line; - std::getline(is, line); - - // Pass the result to the handler, via the associated executor. - dispatch(work.get_executor(), - [line=std::move(line), handler=std::move(handler)]() mutable - { - handler(std::move(line)); - }); - }); -} - -// A function to asynchronously read multiple lines from an input stream. -template -void async_getlines(std::istream& is, std::string init, Handler handler) -{ - // Get the final handler's associated executor. - auto ex = get_associated_executor(handler); - - // Use the associated executor for each operation in the composition. - async_getline(is, - bind_executor(ex, - [&is, lines=std::move(init), handler=std::move(handler)] - (std::string line) mutable - { - if (line.empty()) - handler(lines); - else - async_getlines(is, lines + line + "\n", std::move(handler)); - })); -} - -int main() -{ - thread_pool pool; - - std::cout << "Enter text, terminating with a blank line:\n"; - - async_getlines(std::cin, "", - bind_executor(pool, [](std::string lines) - { - std::cout << "Lines:\n" << lines << "\n"; - })); - - pool.join(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_1.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_1.cpp deleted file mode 100644 index f85a185..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_1.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include -#include -#include - -using asio::post; -using asio::thread_pool; - -// Traditional active object pattern. -// Member functions do not block. - -class bank_account -{ - int balance_ = 0; - mutable thread_pool pool_{1}; - -public: - void deposit(int amount) - { - post(pool_, [=] - { - balance_ += amount; - }); - } - - void withdraw(int amount) - { - post(pool_, [=] - { - if (balance_ >= amount) - balance_ -= amount; - }); - } - - void print_balance() const - { - post(pool_, [=] - { - std::cout << "balance = " << balance_ << "\n"; - }); - } - - ~bank_account() - { - pool_.join(); - } -}; - -int main() -{ - bank_account acct; - acct.deposit(20); - acct.withdraw(10); - acct.print_balance(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_2.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_2.cpp deleted file mode 100644 index 5233e77..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/bank_account_2.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include -#include - -using asio::post; -using asio::thread_pool; -using asio::use_future; - -// Traditional active object pattern. -// Member functions block until operation is finished. - -class bank_account -{ - int balance_ = 0; - mutable thread_pool pool_{1}; - -public: - void deposit(int amount) - { - post(pool_, - use_future([=] - { - balance_ += amount; - })).get(); - } - - void withdraw(int amount) - { - post(pool_, - use_future([=] - { - if (balance_ >= amount) - balance_ -= amount; - })).get(); - } - - int balance() const - { - return post(pool_, - use_future([=] - { - return balance_; - })).get(); - } -}; - -int main() -{ - bank_account acct; - acct.deposit(20); - acct.withdraw(10); - std::cout << "balance = " << acct.balance() << "\n"; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/fork_join.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/fork_join.cpp deleted file mode 100644 index 56d7cf7..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/fork_join.cpp +++ /dev/null @@ -1,327 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::execution_context; -using asio::thread_pool; - -// A fixed-size thread pool used to implement fork/join semantics. Functions -// are scheduled using a simple FIFO queue. Implementing work stealing, or -// using a queue based on atomic operations, are left as tasks for the reader. -class fork_join_pool : public execution_context -{ -public: - // The constructor starts a thread pool with the specified number of threads. - // Note that the thread_count is not a fixed limit on the pool's concurrency. - // Additional threads may temporarily be added to the pool if they join a - // fork_executor. - explicit fork_join_pool( - std::size_t thread_count = std::thread::hardware_concurrency() * 2) - : use_count_(1), - threads_(thread_count) - { - try - { - // Ask each thread in the pool to dequeue and execute functions until - // it is time to shut down, i.e. the use count is zero. - for (thread_count_ = 0; thread_count_ < thread_count; ++thread_count_) - { - dispatch(threads_, [&] - { - std::unique_lock lock(mutex_); - while (use_count_ > 0) - if (!execute_next(lock)) - condition_.wait(lock); - }); - } - } - catch (...) - { - stop_threads(); - threads_.join(); - throw; - } - } - - // The destructor waits for the pool to finish executing functions. - ~fork_join_pool() - { - stop_threads(); - threads_.join(); - } - -private: - friend class fork_executor; - - // The base for all functions that are queued in the pool. - struct function_base - { - std::shared_ptr work_count_; - void (*execute_)(std::shared_ptr& p); - }; - - // Execute the next function from the queue, if any. Returns true if a - // function was executed, and false if the queue was empty. - bool execute_next(std::unique_lock& lock) - { - if (queue_.empty()) - return false; - auto p(queue_.front()); - queue_.pop(); - lock.unlock(); - execute(lock, p); - return true; - } - - // Execute a function and decrement the outstanding work. - void execute(std::unique_lock& lock, - std::shared_ptr& p) - { - std::shared_ptr work_count(std::move(p->work_count_)); - try - { - p->execute_(p); - lock.lock(); - do_work_finished(work_count); - } - catch (...) - { - lock.lock(); - do_work_finished(work_count); - throw; - } - } - - // Increment outstanding work. - void do_work_started(const std::shared_ptr& work_count) noexcept - { - if (++(*work_count) == 1) - ++use_count_; - } - - // Decrement outstanding work. Notify waiting threads if we run out. - void do_work_finished(const std::shared_ptr& work_count) noexcept - { - if (--(*work_count) == 0) - { - --use_count_; - condition_.notify_all(); - } - } - - // Dispatch a function, executing it immediately if the queue is already - // loaded. Otherwise adds the function to the queue and wakes a thread. - void do_dispatch(std::shared_ptr p, - const std::shared_ptr& work_count) - { - std::unique_lock lock(mutex_); - if (queue_.size() > thread_count_ * 16) - { - do_work_started(work_count); - lock.unlock(); - execute(lock, p); - } - else - { - queue_.push(p); - do_work_started(work_count); - condition_.notify_one(); - } - } - - // Add a function to the queue and wake a thread. - void do_post(std::shared_ptr p, - const std::shared_ptr& work_count) - { - std::lock_guard lock(mutex_); - queue_.push(p); - do_work_started(work_count); - condition_.notify_one(); - } - - // Ask all threads to shut down. - void stop_threads() - { - std::lock_guard lock(mutex_); - --use_count_; - condition_.notify_all(); - } - - std::mutex mutex_; - std::condition_variable condition_; - std::queue> queue_; - std::size_t use_count_; - std::size_t thread_count_; - thread_pool threads_; -}; - -// A class that satisfies the Executor requirements. Every function or piece of -// work associated with a fork_executor is part of a single, joinable group. -class fork_executor -{ -public: - fork_executor(fork_join_pool& ctx) - : context_(ctx), - work_count_(std::make_shared(0)) - { - } - - fork_join_pool& context() const noexcept - { - return context_; - } - - void on_work_started() const noexcept - { - std::lock_guard lock(context_.mutex_); - context_.do_work_started(work_count_); - } - - void on_work_finished() const noexcept - { - std::lock_guard lock(context_.mutex_); - context_.do_work_finished(work_count_); - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits::template rebind_alloc(a), - std::move(f), work_count_)); - context_.do_dispatch(p, work_count_); - } - - template - void post(Func f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits::template rebind_alloc(a), - std::move(f), work_count_)); - context_.do_post(p, work_count_); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const fork_executor& a, - const fork_executor& b) noexcept - { - return a.work_count_ == b.work_count_; - } - - friend bool operator!=(const fork_executor& a, - const fork_executor& b) noexcept - { - return a.work_count_ != b.work_count_; - } - - // Block until all work associated with the executor is complete. While it is - // waiting, the thread may be borrowed to execute functions from the queue. - void join() const - { - std::unique_lock lock(context_.mutex_); - while (*work_count_ > 0) - if (!context_.execute_next(lock)) - context_.condition_.wait(lock); - } - -private: - template - struct function : fork_join_pool::function_base - { - explicit function(Func f, const std::shared_ptr& w) - : function_(std::move(f)) - { - work_count_ = w; - execute_ = [](std::shared_ptr& p) - { - Func tmp(std::move(static_cast(p.get())->function_)); - p.reset(); - tmp(); - }; - } - - Func function_; - }; - - fork_join_pool& context_; - std::shared_ptr work_count_; -}; - -// Helper class to automatically join a fork_executor when exiting a scope. -class join_guard -{ -public: - explicit join_guard(const fork_executor& ex) : ex_(ex) {} - join_guard(const join_guard&) = delete; - join_guard(join_guard&&) = delete; - ~join_guard() { ex_.join(); } - -private: - fork_executor ex_; -}; - -//------------------------------------------------------------------------------ - -#include -#include -#include -#include - -fork_join_pool pool; - -template -void fork_join_sort(Iterator begin, Iterator end) -{ - std::size_t n = end - begin; - if (n > 32768) - { - { - fork_executor fork(pool); - join_guard join(fork); - dispatch(fork, [=]{ fork_join_sort(begin, begin + n / 2); }); - dispatch(fork, [=]{ fork_join_sort(begin + n / 2, end); }); - } - std::inplace_merge(begin, begin + n / 2, end); - } - else - { - std::sort(begin, end); - } -} - -int main(int argc, char* argv[]) -{ - if (argc != 2) - { - std::cerr << "Usage: fork_join \n"; - return 1; - } - - std::vector vec(std::atoll(argv[1])); - std::iota(vec.begin(), vec.end(), 0); - - std::random_device rd; - std::mt19937 g(rd()); - std::shuffle(vec.begin(), vec.end(), g); - - std::chrono::steady_clock::time_point start = std::chrono::steady_clock::now(); - - fork_join_sort(vec.begin(), vec.end()); - - std::chrono::steady_clock::duration elapsed = std::chrono::steady_clock::now() - start; - - std::cout << "sort took "; - std::cout << std::chrono::duration_cast(elapsed).count(); - std::cout << " microseconds" << std::endl; -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/pipeline.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/pipeline.cpp deleted file mode 100644 index d86cfc1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/pipeline.cpp +++ /dev/null @@ -1,294 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::execution_context; -using asio::executor_binder; -using asio::get_associated_executor; -using asio::post; -using asio::system_executor; -using asio::use_future; -using asio::use_service; - -// An executor that launches a new thread for each function submitted to it. -// This class satisfies the Executor requirements. -class thread_executor -{ -private: - // Service to track all threads started through a thread_executor. - class thread_bag : public execution_context::service - { - public: - typedef thread_bag key_type; - - explicit thread_bag(execution_context& ctx) - : execution_context::service(ctx) - { - } - - void add_thread(std::thread&& t) - { - std::unique_lock lock(mutex_); - threads_.push_back(std::move(t)); - } - - private: - virtual void shutdown() - { - for (auto& t : threads_) - t.join(); - } - - std::mutex mutex_; - std::vector threads_; - }; - -public: - execution_context& context() const noexcept - { - return system_executor().context(); - } - - void on_work_started() const noexcept - { - // This executor doesn't count work. - } - - void on_work_finished() const noexcept - { - // This executor doesn't count work. - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - template - void post(Func f, const Alloc&) const - { - thread_bag& bag = use_service(context()); - bag.add_thread(std::thread(std::move(f))); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const thread_executor&, - const thread_executor&) noexcept - { - return true; - } - - friend bool operator!=(const thread_executor&, - const thread_executor&) noexcept - { - return false; - } -}; - -// Base class for all thread-safe queue implementations. -class queue_impl_base -{ - template friend class queue_front; - template friend class queue_back; - std::mutex mutex_; - std::condition_variable condition_; - bool stop_ = false; -}; - -// Underlying implementation of a thread-safe queue, shared between the -// queue_front and queue_back classes. -template -class queue_impl : public queue_impl_base -{ - template friend class queue_front; - template friend class queue_back; - std::queue queue_; -}; - -// The front end of a queue between consecutive pipeline stages. -template -class queue_front -{ -public: - typedef T value_type; - - explicit queue_front(std::shared_ptr> impl) - : impl_(impl) - { - } - - void push(T t) - { - std::unique_lock lock(impl_->mutex_); - impl_->queue_.push(std::move(t)); - impl_->condition_.notify_one(); - } - - void stop() - { - std::unique_lock lock(impl_->mutex_); - impl_->stop_ = true; - impl_->condition_.notify_one(); - } - -private: - std::shared_ptr> impl_; -}; - -// The back end of a queue between consecutive pipeline stages. -template -class queue_back -{ -public: - typedef T value_type; - - explicit queue_back(std::shared_ptr> impl) - : impl_(impl) - { - } - - bool pop(T& t) - { - std::unique_lock lock(impl_->mutex_); - while (impl_->queue_.empty() && !impl_->stop_) - impl_->condition_.wait(lock); - if (!impl_->queue_.empty()) - { - t = impl_->queue_.front(); - impl_->queue_.pop(); - return true; - } - return false; - } - -private: - std::shared_ptr> impl_; -}; - -// Launch the last stage in a pipeline. -template -std::future pipeline(queue_back in, F f) -{ - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function, and as we're the last stage return a future so that the - // caller can wait for the pipeline to finish. - return post(ex, use_future([in, f = std::move(f)]() mutable { f(in); })); -} - -// Launch an intermediate stage in a pipeline. -template -std::future pipeline(queue_back in, F f, Tail... t) -{ - // Determine the output queue type. - typedef typename executor_binder::second_argument_type::value_type output_value_type; - - // Create the output queue and its implementation. - auto out_impl = std::make_shared>(); - queue_front out(out_impl); - queue_back next_in(out_impl); - - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function. - post(ex, [in, out, f = std::move(f)]() mutable - { - f(in, out); - out.stop(); - }); - - // Launch the rest of the pipeline. - return pipeline(next_in, std::move(t)...); -} - -// Launch the first stage in a pipeline. -template -std::future pipeline(F f, Tail... t) -{ - // Determine the output queue type. - typedef typename executor_binder::argument_type::value_type output_value_type; - - // Create the output queue and its implementation. - auto out_impl = std::make_shared>(); - queue_front out(out_impl); - queue_back next_in(out_impl); - - // Get the function's associated executor, defaulting to thread_executor. - auto ex = get_associated_executor(f, thread_executor()); - - // Run the function. - post(ex, [out, f = std::move(f)]() mutable - { - f(out); - out.stop(); - }); - - // Launch the rest of the pipeline. - return pipeline(next_in, std::move(t)...); -} - -//------------------------------------------------------------------------------ - -#include -#include -#include - -using asio::bind_executor; -using asio::thread_pool; - -void reader(queue_front out) -{ - std::string line; - while (std::getline(std::cin, line)) - out.push(line); -} - -void filter(queue_back in, queue_front out) -{ - std::string line; - while (in.pop(line)) - if (line.length() > 5) - out.push(line); -} - -void upper(queue_back in, queue_front out) -{ - std::string line; - while (in.pop(line)) - { - std::string new_line; - for (char c : line) - new_line.push_back(std::toupper(c)); - out.push(new_line); - } -} - -void writer(queue_back in) -{ - std::size_t count = 0; - std::string line; - while (in.pop(line)) - std::cout << count++ << ": " << line << std::endl; -} - -int main() -{ - thread_pool pool; - - auto f = pipeline(reader, filter, bind_executor(pool, upper), writer); - f.wait(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/executors/priority_scheduler.cpp b/Sources/Vendor/asio/src/examples/cpp14/executors/priority_scheduler.cpp deleted file mode 100644 index 3b28af1..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/executors/priority_scheduler.cpp +++ /dev/null @@ -1,167 +0,0 @@ -#include -#include -#include -#include -#include -#include - -using asio::dispatch; -using asio::execution_context; - -class priority_scheduler : public execution_context -{ -public: - // A class that satisfies the Executor requirements. - class executor_type - { - public: - executor_type(priority_scheduler& ctx, int pri) noexcept - : context_(ctx), priority_(pri) - { - } - - priority_scheduler& context() const noexcept - { - return context_; - } - - void on_work_started() const noexcept - { - // This executor doesn't count work. Instead, the scheduler simply runs - // until explicitly stopped. - } - - void on_work_finished() const noexcept - { - // This executor doesn't count work. Instead, the scheduler simply runs - // until explicitly stopped. - } - - template - void dispatch(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - template - void post(Func f, const Alloc& a) const - { - auto p(std::allocate_shared>( - typename std::allocator_traits< - Alloc>::template rebind_alloc(a), - priority_, std::move(f))); - std::lock_guard lock(context_.mutex_); - context_.queue_.push(p); - context_.condition_.notify_one(); - } - - template - void defer(Func&& f, const Alloc& a) const - { - post(std::forward(f), a); - } - - friend bool operator==(const executor_type& a, - const executor_type& b) noexcept - { - return &a.context_ == &b.context_; - } - - friend bool operator!=(const executor_type& a, - const executor_type& b) noexcept - { - return &a.context_ != &b.context_; - } - - private: - priority_scheduler& context_; - int priority_; - }; - - executor_type get_executor(int pri = 0) noexcept - { - return executor_type(*const_cast(this), pri); - } - - void run() - { - std::unique_lock lock(mutex_); - for (;;) - { - condition_.wait(lock, [&]{ return stopped_ || !queue_.empty(); }); - if (stopped_) - return; - auto p(queue_.top()); - queue_.pop(); - lock.unlock(); - p->execute_(p); - lock.lock(); - } - } - - void stop() - { - std::lock_guard lock(mutex_); - stopped_ = true; - condition_.notify_all(); - } - -private: - struct item_base - { - int priority_; - void (*execute_)(std::shared_ptr&); - }; - - template - struct item : item_base - { - item(int pri, Func f) : function_(std::move(f)) - { - priority_ = pri; - execute_ = [](std::shared_ptr& p) - { - Func tmp(std::move(static_cast(p.get())->function_)); - p.reset(); - tmp(); - }; - } - - Func function_; - }; - - struct item_comp - { - bool operator()( - const std::shared_ptr& a, - const std::shared_ptr& b) - { - return a->priority_ < b->priority_; - } - }; - - std::mutex mutex_; - std::condition_variable condition_; - std::priority_queue< - std::shared_ptr, - std::vector>, - item_comp> queue_; - bool stopped_ = false; -}; - -int main() -{ - priority_scheduler sched; - auto low = sched.get_executor(0); - auto med = sched.get_executor(1); - auto high = sched.get_executor(2); - dispatch(low, []{ std::cout << "1\n"; }); - dispatch(low, []{ std::cout << "11\n"; }); - dispatch(med, []{ std::cout << "2\n"; }); - dispatch(med, []{ std::cout << "22\n"; }); - dispatch(high, []{ std::cout << "3\n"; }); - dispatch(high, []{ std::cout << "33\n"; }); - dispatch(high, []{ std::cout << "333\n"; }); - dispatch(sched.get_executor(-1), [&]{ sched.stop(); }); - sched.run(); -} diff --git a/Sources/Vendor/asio/src/examples/cpp14/iostreams/http_client.cpp b/Sources/Vendor/asio/src/examples/cpp14/iostreams/http_client.cpp deleted file mode 100644 index b6fb983..0000000 --- a/Sources/Vendor/asio/src/examples/cpp14/iostreams/http_client.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// http_client.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 3) - { - std::cout << "Usage: http_client \n"; - std::cout << "Example:\n"; - std::cout << " http_client www.boost.org /LICENSE_1_0.txt\n"; - return 1; - } - - asio::ip::tcp::iostream s; - - // The entire sequence of I/O operations must complete within 60 seconds. - // If an expiry occurs, the socket is automatically closed and the stream - // becomes bad. - s.expires_after(std::chrono::seconds(60)); - - // Establish a connection to the server. - s.connect(argv[1], "http"); - if (!s) - { - std::cout << "Unable to connect: " << s.error().message() << "\n"; - return 1; - } - - // Send the request. We specify the "Connection: close" header so that the - // server will close the socket after transmitting the response. This will - // allow us to treat all data up until the EOF as the content. - s << "GET " << argv[2] << " HTTP/1.0\r\n"; - s << "Host: " << argv[1] << "\r\n"; - s << "Accept: */*\r\n"; - s << "Connection: close\r\n\r\n"; - - // By default, the stream is tied with itself. This means that the stream - // automatically flush the buffered output before attempting a read. It is - // not necessary not explicitly flush the stream at this point. - - // Check that response is OK. - std::string http_version; - s >> http_version; - unsigned int status_code; - s >> status_code; - std::string status_message; - std::getline(s, status_message); - if (!s || http_version.substr(0, 5) != "HTTP/") - { - std::cout << "Invalid response\n"; - return 1; - } - if (status_code != 200) - { - std::cout << "Response returned with status code " << status_code << "\n"; - return 1; - } - - // Process the response headers, which are terminated by a blank line. - std::string header; - while (std::getline(s, header) && header != "\r") - std::cout << header << "\n"; - std::cout << "\n"; - - // Write the remaining data to output. - std::cout << s.rdbuf(); - } - catch (std::exception& e) - { - std::cout << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/Makefile.am b/Sources/Vendor/asio/src/examples/cpp17/Makefile.am deleted file mode 100644 index 2e09098..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -EXTRA_DIST = \ - coroutines_ts/chat_server.cpp \ - coroutines_ts/double_buffered_echo_server.cpp \ - coroutines_ts/echo_server.cpp \ - coroutines_ts/range_based_for.cpp \ - coroutines_ts/refactored_echo_server.cpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/examples/cpp17/Makefile.in b/Sources/Vendor/asio/src/examples/cpp17/Makefile.in deleted file mode 100644 index f5679a5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/Makefile.in +++ /dev/null @@ -1,423 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -subdir = src/examples/cpp17 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -SOURCES = -DIST_SOURCES = -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -am__DIST_COMMON = $(srcdir)/Makefile.in -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -EXTRA_DIST = \ - coroutines_ts/chat_server.cpp \ - coroutines_ts/double_buffered_echo_server.cpp \ - coroutines_ts/echo_server.cpp \ - coroutines_ts/range_based_for.cpp \ - coroutines_ts/refactored_echo_server.cpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/examples/cpp17/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/examples/cpp17/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): -tags TAGS: - -ctags CTAGS: - -cscope cscopelist: - - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f Makefile -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: install-am install-strip - -.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ - ctags-am distclean distclean-generic distdir dvi dvi-am html \ - html-am info info-am install install-am install-data \ - install-data-am install-dvi install-dvi-am install-exec \ - install-exec-am install-html install-html-am install-info \ - install-info-am install-man install-pdf install-pdf-am \ - install-ps install-ps-am install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ - pdf-am ps ps-am tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp deleted file mode 100644 index 634d1bc..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +++ /dev/null @@ -1,224 +0,0 @@ -// -// chat_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::awaitable; -using asio::experimental::co_spawn; -using asio::experimental::detached; -using asio::experimental::redirect_error; -namespace this_coro = asio::experimental::this_coro; - -//---------------------------------------------------------------------- - -class chat_participant -{ -public: - virtual ~chat_participant() {} - virtual void deliver(const std::string& msg) = 0; -}; - -typedef std::shared_ptr chat_participant_ptr; - -//---------------------------------------------------------------------- - -class chat_room -{ -public: - void join(chat_participant_ptr participant) - { - participants_.insert(participant); - for (auto msg: recent_msgs_) - participant->deliver(msg); - } - - void leave(chat_participant_ptr participant) - { - participants_.erase(participant); - } - - void deliver(const std::string& msg) - { - recent_msgs_.push_back(msg); - while (recent_msgs_.size() > max_recent_msgs) - recent_msgs_.pop_front(); - - for (auto participant: participants_) - participant->deliver(msg); - } - -private: - std::set participants_; - enum { max_recent_msgs = 100 }; - std::deque recent_msgs_; -}; - -//---------------------------------------------------------------------- - -class chat_session - : public chat_participant, - public std::enable_shared_from_this -{ -public: - chat_session(tcp::socket socket, chat_room& room) - : socket_(std::move(socket)), - timer_(socket_.get_executor().context()), - room_(room) - { - timer_.expires_at(std::chrono::steady_clock::time_point::max()); - } - - void start() - { - room_.join(shared_from_this()); - - co_spawn(socket_.get_executor(), - [self = shared_from_this()]{ return self->reader(); }, - detached); - - co_spawn(socket_.get_executor(), - [self = shared_from_this()]{ return self->writer(); }, - detached); - } - - void deliver(const std::string& msg) - { - write_msgs_.push_back(msg); - timer_.cancel_one(); - } - -private: - awaitable reader() - { - auto token = co_await this_coro::token(); - - try - { - for (std::string read_msg;;) - { - std::size_t n = co_await asio::async_read_until(socket_, - asio::dynamic_buffer(read_msg, 1024), "\n", token); - - room_.deliver(read_msg.substr(0, n)); - read_msg.erase(0, n); - } - } - catch (std::exception&) - { - stop(); - } - } - - awaitable writer() - { - auto token = co_await this_coro::token(); - - try - { - while (socket_.is_open()) - { - if (write_msgs_.empty()) - { - asio::error_code ec; - co_await timer_.async_wait(redirect_error(token, ec)); - } - else - { - co_await asio::async_write(socket_, - asio::buffer(write_msgs_.front()), token); - write_msgs_.pop_front(); - } - } - } - catch (std::exception&) - { - stop(); - } - } - - void stop() - { - room_.leave(shared_from_this()); - socket_.close(); - timer_.cancel(); - } - - tcp::socket socket_; - asio::steady_timer timer_; - chat_room& room_; - std::deque write_msgs_; -}; - -//---------------------------------------------------------------------- - -awaitable listener(tcp::acceptor acceptor) -{ - auto token = co_await this_coro::token(); - - chat_room room; - - for (;;) - { - std::make_shared( - co_await acceptor.async_accept(token), - room - )->start(); - } -} - -//---------------------------------------------------------------------- - -int main(int argc, char* argv[]) -{ - try - { - if (argc < 2) - { - std::cerr << "Usage: chat_server [ ...]\n"; - return 1; - } - - asio::io_context io_context(1); - - for (int i = 1; i < argc; ++i) - { - unsigned short port = std::atoi(argv[i]); - co_spawn(io_context, - [&]{ return listener(tcp::acceptor(io_context, {tcp::v4(), port})); }, - detached); - } - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - io_context.run(); - } - catch (std::exception& e) - { - std::cerr << "Exception: " << e.what() << "\n"; - } - - return 0; -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp deleted file mode 100644 index 3db4f7d..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/double_buffered_echo_server.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// -// double_buffered_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::co_spawn; -using asio::experimental::detached; -namespace this_coro = asio::experimental::this_coro; - -template - using awaitable = asio::experimental::awaitable< - T, asio::io_context::executor_type>; - -awaitable echo(tcp::socket s) -{ - auto token = co_await this_coro::token(); - - try - { - char data1[1024]; - char data2[1024]; - - char* p1 = data1; - char* p2 = data2; - - // Perform initial read into first buffer. - size_t n = co_await s.async_read_some(asio::buffer(p1, 1024), token); - - for (;;) - { - // Swap received data to other buffer and initiate write operation. - std::swap(p1, p2); - auto write_result = asio::async_write(s, asio::buffer(p2, n), token); - - // Perform next read while write operation is in progress. - n = co_await s.async_read_some(asio::buffer(p1, 1024), token); - - // Wait for write operation to complete before proceeding. - co_await write_result; - } - } - catch (std::exception& e) - { - std::printf("echo Exception: %s\n", e.what()); - } -} - -awaitable listener() -{ - auto executor = co_await this_coro::executor(); - auto token = co_await this_coro::token(); - - tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); - for (;;) - { - tcp::socket socket = co_await acceptor.async_accept(token); - co_spawn(executor, - [socket = std::move(socket)]() mutable - { - return echo(std::move(socket)); - }, - detached); - } -} - -int main() -{ - try - { - asio::io_context io_context(1); - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - co_spawn(io_context, listener, detached); - - io_context.run(); - } - catch (std::exception& e) - { - std::printf("Exception: %s\n", e.what()); - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp deleted file mode 100644 index 043f1ec..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// echo_server.cpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::co_spawn; -using asio::experimental::detached; -namespace this_coro = asio::experimental::this_coro; - -template - using awaitable = asio::experimental::awaitable< - T, asio::io_context::executor_type>; - -awaitable echo(tcp::socket socket) -{ - auto token = co_await this_coro::token(); - - try - { - char data[1024]; - for (;;) - { - std::size_t n = co_await socket.async_read_some(asio::buffer(data), token); - co_await async_write(socket, asio::buffer(data, n), token); - } - } - catch (std::exception& e) - { - std::printf("echo Exception: %s\n", e.what()); - } -} - -awaitable listener() -{ - auto executor = co_await this_coro::executor(); - auto token = co_await this_coro::token(); - - tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); - for (;;) - { - tcp::socket socket = co_await acceptor.async_accept(token); - co_spawn(executor, - [socket = std::move(socket)]() mutable - { - return echo(std::move(socket)); - }, - detached); - } -} - -int main() -{ - try - { - asio::io_context io_context(1); - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - co_spawn(io_context, listener, detached); - - io_context.run(); - } - catch (std::exception& e) - { - std::printf("Exception: %s\n", e.what()); - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp deleted file mode 100644 index f5435bb..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// range_based_for.cpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::awaitable; -using asio::experimental::co_spawn; -using asio::experimental::detached; -namespace this_coro = asio::experimental::this_coro; - -class connection_iter -{ - friend class connections; - tcp::acceptor* acceptor_ = nullptr; - tcp::socket socket_; - - connection_iter(tcp::acceptor& a, tcp::socket s) - : acceptor_(&a), socket_(std::move(s)) {} - -public: - tcp::socket operator*() - { - return std::move(socket_); - } - - awaitable operator++() - { - auto token = co_await this_coro::token(); - socket_ = co_await acceptor_->async_accept(token); - } - - bool operator==(const connection_iter&) const noexcept - { - return false; - } - - bool operator!=(const connection_iter&) const noexcept - { - return true; - } -}; - -class connections -{ - tcp::acceptor& acceptor_; - -public: - explicit connections(tcp::acceptor& a) : acceptor_(a) {} - - awaitable begin() - { - auto token = co_await this_coro::token(); - tcp::socket s = co_await acceptor_.async_accept(token); - co_return connection_iter(acceptor_, std::move(s)); - } - - connection_iter end() - { - return connection_iter(acceptor_, - tcp::socket(acceptor_.get_executor().context())); - } -}; - -awaitable listener(tcp::acceptor acceptor) -{ - auto token = co_await this_coro::token(); - - for co_await (tcp::socket s : connections(acceptor)) - { - co_await asio::async_write(s, asio::buffer("hello\r\n", 7), token); - } -} - -int main() -{ - try - { - asio::io_context io_context(1); - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - tcp::acceptor acceptor(io_context, {tcp::v4(), 55555}); - co_spawn(io_context, - [acceptor = std::move(acceptor)]() mutable - { - return listener(std::move(acceptor)); - }, - detached); - - io_context.run(); - } - catch (std::exception& e) - { - std::printf("Exception: %s\n", e.what()); - } -} diff --git a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp b/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp deleted file mode 100644 index 429bed5..0000000 --- a/Sources/Vendor/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// -// refactored_echo_server.cpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; -using asio::experimental::co_spawn; -using asio::experimental::detached; -namespace this_coro = asio::experimental::this_coro; - -template - using awaitable = asio::experimental::awaitable< - T, asio::io_context::executor_type>; - -awaitable echo_once(tcp::socket& socket) -{ - auto token = co_await this_coro::token(); - - char data[128]; - std::size_t n = co_await socket.async_read_some(asio::buffer(data), token); - co_await async_write(socket, asio::buffer(data, n), token); -} - -awaitable echo(tcp::socket socket) -{ - try - { - for (;;) - { - // The asynchronous operations to echo a single chunk of data have been - // refactored into a separate function. When this function is called, the - // operations are still performed in the context of the current - // coroutine, and the behaviour is functionally equivalent. - co_await echo_once(socket); - } - } - catch (std::exception& e) - { - std::printf("echo Exception: %s\n", e.what()); - } -} - -awaitable listener() -{ - auto executor = co_await this_coro::executor(); - auto token = co_await this_coro::token(); - - tcp::acceptor acceptor(executor.context(), {tcp::v4(), 55555}); - for (;;) - { - tcp::socket socket = co_await acceptor.async_accept(token); - co_spawn(executor, - [socket = std::move(socket)]() mutable - { - return echo(std::move(socket)); - }, - detached); - } -} - -int main() -{ - try - { - asio::io_context io_context(1); - - asio::signal_set signals(io_context, SIGINT, SIGTERM); - signals.async_wait([&](auto, auto){ io_context.stop(); }); - - co_spawn(io_context, listener, detached); - - io_context.run(); - } - catch (std::exception& e) - { - std::printf("Exception: %s\n", e.what()); - } -} diff --git a/Sources/Vendor/asio/src/tests/Makefile.am b/Sources/Vendor/asio/src/tests/Makefile.am deleted file mode 100644 index fe5e1d8..0000000 --- a/Sources/Vendor/asio/src/tests/Makefile.am +++ /dev/null @@ -1,446 +0,0 @@ -AUTOMAKE_OPTIONS = subdir-objects - -if SEPARATE_COMPILATION -noinst_LIBRARIES = libasio.a -libasio_a_SOURCES = ../asio.cpp -if HAVE_OPENSSL -libasio_a_SOURCES += ../asio_ssl.cpp -endif -LDADD = libasio.a -endif - -check_PROGRAMS = \ - unit/associated_allocator \ - unit/associated_executor \ - unit/async_result \ - unit/basic_datagram_socket \ - unit/basic_deadline_timer \ - unit/basic_raw_socket \ - unit/basic_seq_packet_socket \ - unit/basic_serial_port \ - unit/basic_signal_set \ - unit/basic_socket_acceptor \ - unit/basic_stream_socket \ - unit/basic_streambuf \ - unit/basic_waitable_timer \ - unit/bind_executor \ - unit/buffered_read_stream \ - unit/buffered_stream \ - unit/buffered_write_stream \ - unit/buffer \ - unit/buffers_iterator \ - unit/completion_condition \ - unit/connect \ - unit/coroutine \ - unit/datagram_socket_service \ - unit/deadline_timer_service \ - unit/deadline_timer \ - unit/defer \ - unit/dispatch \ - unit/error \ - unit/execution_context \ - unit/executor \ - unit/executor_work_guard \ - unit/generic/basic_endpoint \ - unit/generic/datagram_protocol \ - unit/generic/raw_protocol \ - unit/generic/seq_packet_protocol \ - unit/generic/stream_protocol \ - unit/high_resolution_timer \ - unit/io_context \ - unit/ip/address \ - unit/ip/address_v4 \ - unit/ip/address_v4_iterator \ - unit/ip/address_v4_range \ - unit/ip/address_v6 \ - unit/ip/address_v6_iterator \ - unit/ip/address_v6_range \ - unit/ip/basic_endpoint \ - unit/ip/basic_resolver \ - unit/ip/basic_resolver_entry \ - unit/ip/basic_resolver_iterator \ - unit/ip/basic_resolver_query \ - unit/ip/host_name \ - unit/ip/icmp \ - unit/ip/multicast \ - unit/ip/network_v4 \ - unit/ip/network_v6 \ - unit/ip/resolver_query_base \ - unit/ip/resolver_service \ - unit/ip/tcp \ - unit/ip/udp \ - unit/ip/unicast \ - unit/ip/v6_only \ - unit/is_read_buffered \ - unit/is_write_buffered \ - unit/local/basic_endpoint \ - unit/local/connect_pair \ - unit/local/datagram_protocol \ - unit/local/stream_protocol \ - unit/packaged_task \ - unit/placeholders \ - unit/posix/basic_descriptor \ - unit/posix/basic_stream_descriptor \ - unit/posix/descriptor \ - unit/posix/descriptor_base \ - unit/posix/stream_descriptor \ - unit/posix/stream_descriptor_service \ - unit/post \ - unit/raw_socket_service \ - unit/read \ - unit/read_at \ - unit/read_until \ - unit/seq_packet_socket_service \ - unit/serial_port \ - unit/serial_port_base \ - unit/serial_port_service \ - unit/signal_set \ - unit/signal_set_service \ - unit/socket_acceptor_service \ - unit/socket_base \ - unit/steady_timer \ - unit/strand \ - unit/stream_socket_service \ - unit/streambuf \ - unit/system_context \ - unit/system_executor \ - unit/system_timer \ - unit/thread \ - unit/time_traits \ - unit/ts/buffer \ - unit/ts/executor \ - unit/ts/internet \ - unit/ts/io_context \ - unit/ts/net \ - unit/ts/netfwd \ - unit/ts/socket \ - unit/ts/timer \ - unit/use_future \ - unit/uses_executor \ - unit/wait_traits \ - unit/waitable_timer_service \ - unit/windows/basic_handle \ - unit/windows/basic_object_handle \ - unit/windows/basic_random_access_handle \ - unit/windows/basic_stream_handle \ - unit/windows/object_handle \ - unit/windows/object_handle_service \ - unit/windows/overlapped_handle \ - unit/windows/overlapped_ptr \ - unit/windows/random_access_handle \ - unit/windows/random_access_handle_service \ - unit/windows/stream_handle \ - unit/windows/stream_handle_service \ - unit/write \ - unit/write_at - -if !STANDALONE -noinst_PROGRAMS = \ - latency/tcp_client \ - latency/tcp_server \ - latency/udp_client \ - latency/udp_server \ - performance/client \ - performance/server -endif - -if HAVE_OPENSSL -check_PROGRAMS += \ - unit/ssl/context_base \ - unit/ssl/context \ - unit/ssl/error \ - unit/ssl/rfc2818_verification \ - unit/ssl/stream_base \ - unit/ssl/stream -endif - -TESTS = \ - unit/associated_allocator \ - unit/associated_executor \ - unit/async_result \ - unit/basic_datagram_socket \ - unit/basic_deadline_timer \ - unit/basic_raw_socket \ - unit/basic_seq_packet_socket \ - unit/basic_serial_port \ - unit/basic_signal_set \ - unit/basic_socket_acceptor \ - unit/basic_stream_socket \ - unit/basic_streambuf \ - unit/basic_waitable_timer \ - unit/bind_executor \ - unit/buffered_read_stream \ - unit/buffered_stream \ - unit/buffered_write_stream \ - unit/buffer \ - unit/buffers_iterator \ - unit/completion_condition \ - unit/connect \ - unit/datagram_socket_service \ - unit/deadline_timer_service \ - unit/deadline_timer \ - unit/defer \ - unit/dispatch \ - unit/error \ - unit/execution_context \ - unit/executor \ - unit/executor_work_guard \ - unit/high_resolution_timer \ - unit/io_context \ - unit/ip/address \ - unit/ip/address_v4 \ - unit/ip/address_v4_iterator \ - unit/ip/address_v4_range \ - unit/ip/address_v6 \ - unit/ip/address_v6_iterator \ - unit/ip/address_v6_range \ - unit/ip/basic_endpoint \ - unit/ip/basic_resolver \ - unit/ip/basic_resolver_entry \ - unit/ip/basic_resolver_iterator \ - unit/ip/basic_resolver_query \ - unit/ip/host_name \ - unit/ip/icmp \ - unit/ip/multicast \ - unit/ip/network_v4 \ - unit/ip/network_v6 \ - unit/ip/resolver_query_base \ - unit/ip/resolver_service \ - unit/ip/tcp \ - unit/ip/udp \ - unit/ip/unicast \ - unit/ip/v6_only \ - unit/is_read_buffered \ - unit/is_write_buffered \ - unit/local/basic_endpoint \ - unit/local/connect_pair \ - unit/local/datagram_protocol \ - unit/local/stream_protocol \ - unit/packaged_task \ - unit/placeholders \ - unit/posix/basic_descriptor \ - unit/posix/basic_stream_descriptor \ - unit/posix/descriptor\ - unit/posix/descriptor_base \ - unit/posix/stream_descriptor \ - unit/posix/stream_descriptor_service \ - unit/post \ - unit/raw_socket_service \ - unit/read \ - unit/read_at \ - unit/read_until \ - unit/seq_packet_socket_service \ - unit/serial_port \ - unit/serial_port_base \ - unit/serial_port_service \ - unit/signal_set \ - unit/signal_set_service \ - unit/socket_acceptor_service \ - unit/socket_base \ - unit/steady_timer \ - unit/strand \ - unit/stream_socket_service \ - unit/streambuf \ - unit/system_context \ - unit/system_executor \ - unit/system_timer \ - unit/thread \ - unit/time_traits \ - unit/ts/buffer \ - unit/ts/executor \ - unit/ts/internet \ - unit/ts/io_context \ - unit/ts/net \ - unit/ts/netfwd \ - unit/ts/socket \ - unit/ts/timer \ - unit/use_future \ - unit/uses_executor \ - unit/wait_traits \ - unit/waitable_timer_service \ - unit/windows/basic_handle \ - unit/windows/basic_object_handle \ - unit/windows/basic_random_access_handle \ - unit/windows/basic_stream_handle \ - unit/windows/object_handle \ - unit/windows/object_handle_service \ - unit/windows/overlapped_handle \ - unit/windows/overlapped_ptr \ - unit/windows/random_access_handle \ - unit/windows/random_access_handle_service \ - unit/windows/stream_handle \ - unit/windows/stream_handle_service \ - unit/write \ - unit/write_at - -if HAVE_OPENSSL -TESTS += \ - unit/ssl/context_base \ - unit/ssl/context \ - unit/ssl/error \ - unit/ssl/rfc2818_verification \ - unit/ssl/stream_base \ - unit/ssl/stream -endif - -noinst_HEADERS = \ - latency/high_res_clock.hpp \ - unit/unit_test.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../include - -if !STANDALONE -latency_tcp_client_SOURCES = latency/tcp_client.cpp -latency_tcp_server_SOURCES = latency/tcp_server.cpp -latency_udp_client_SOURCES = latency/udp_client.cpp -latency_udp_server_SOURCES = latency/udp_server.cpp -performance_client_SOURCES = performance/client.cpp -performance_server_SOURCES = performance/server.cpp -endif - -unit_associated_allocator_SOURCES = unit/associated_allocator.cpp -unit_associated_executor_SOURCES = unit/associated_executor.cpp -unit_async_result_SOURCES = unit/async_result.cpp -unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp -unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp -unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp -unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp -unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp -unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp -unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp -unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp -unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp -unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp -unit_bind_executor_SOURCES = unit/bind_executor.cpp -unit_buffer_SOURCES = unit/buffer.cpp -unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp -unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp -unit_buffered_stream_SOURCES = unit/buffered_stream.cpp -unit_buffered_write_stream_SOURCES = unit/buffered_write_stream.cpp -unit_completion_condition_SOURCES = unit/completion_condition.cpp -unit_connect_SOURCES = unit/connect.cpp -unit_coroutine_SOURCES = unit/coroutine.cpp -unit_datagram_socket_service_SOURCES = unit/datagram_socket_service.cpp -unit_deadline_timer_service_SOURCES = unit/deadline_timer_service.cpp -unit_deadline_timer_SOURCES = unit/deadline_timer.cpp -unit_defer_SOURCES = unit/defer.cpp -unit_dispatch_SOURCES = unit/dispatch.cpp -unit_error_SOURCES = unit/error.cpp -unit_execution_context_SOURCES = unit/execution_context.cpp -unit_executor_SOURCES = unit/executor.cpp -unit_executor_work_guard_SOURCES = unit/executor_work_guard.cpp -unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp -unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp -unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp -unit_generic_seq_packet_protocol_SOURCES = unit/generic/seq_packet_protocol.cpp -unit_generic_stream_protocol_SOURCES = unit/generic/stream_protocol.cpp -unit_high_resolution_timer_SOURCES = unit/high_resolution_timer.cpp -unit_io_context_SOURCES = unit/io_context.cpp -unit_ip_address_SOURCES = unit/ip/address.cpp -unit_ip_address_v4_SOURCES = unit/ip/address_v4.cpp -unit_ip_address_v4_iterator_SOURCES = unit/ip/address_v4_iterator.cpp -unit_ip_address_v4_range_SOURCES = unit/ip/address_v4_range.cpp -unit_ip_address_v6_SOURCES = unit/ip/address_v6.cpp -unit_ip_address_v6_iterator_SOURCES = unit/ip/address_v6_iterator.cpp -unit_ip_address_v6_range_SOURCES = unit/ip/address_v6_range.cpp -unit_ip_basic_endpoint_SOURCES = unit/ip/basic_endpoint.cpp -unit_ip_basic_resolver_SOURCES = unit/ip/basic_resolver.cpp -unit_ip_basic_resolver_entry_SOURCES = unit/ip/basic_resolver_entry.cpp -unit_ip_basic_resolver_iterator_SOURCES = unit/ip/basic_resolver_iterator.cpp -unit_ip_basic_resolver_query_SOURCES = unit/ip/basic_resolver_query.cpp -unit_ip_host_name_SOURCES = unit/ip/host_name.cpp -unit_ip_icmp_SOURCES = unit/ip/icmp.cpp -unit_ip_multicast_SOURCES = unit/ip/multicast.cpp -unit_ip_network_v4_SOURCES = unit/ip/network_v4.cpp -unit_ip_network_v6_SOURCES = unit/ip/network_v6.cpp -unit_ip_resolver_query_base_SOURCES = unit/ip/resolver_query_base.cpp -unit_ip_resolver_service_SOURCES = unit/ip/resolver_service.cpp -unit_ip_tcp_SOURCES = unit/ip/tcp.cpp -unit_ip_udp_SOURCES = unit/ip/udp.cpp -unit_ip_unicast_SOURCES = unit/ip/unicast.cpp -unit_ip_v6_only_SOURCES = unit/ip/v6_only.cpp -unit_is_read_buffered_SOURCES = unit/is_read_buffered.cpp -unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp -unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp -unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp -unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp -unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp -unit_packaged_task_SOURCES = unit/packaged_task.cpp -unit_placeholders_SOURCES = unit/placeholders.cpp -unit_posix_basic_descriptor_SOURCES = unit/posix/basic_descriptor.cpp -unit_posix_basic_stream_descriptor_SOURCES = unit/posix/basic_stream_descriptor.cpp -unit_posix_descriptor_SOURCES = unit/posix/descriptor.cpp -unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp -unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp -unit_posix_stream_descriptor_service_SOURCES = unit/posix/stream_descriptor_service.cpp -unit_post_SOURCES = unit/post.cpp -unit_raw_socket_service_SOURCES = unit/raw_socket_service.cpp -unit_read_SOURCES = unit/read.cpp -unit_read_at_SOURCES = unit/read_at.cpp -unit_read_until_SOURCES = unit/read_until.cpp -unit_seq_packet_socket_service_SOURCES = unit/seq_packet_socket_service.cpp -unit_serial_port_SOURCES = unit/serial_port.cpp -unit_serial_port_base_SOURCES = unit/serial_port_base.cpp -unit_serial_port_service_SOURCES = unit/serial_port_service.cpp -unit_signal_set_SOURCES = unit/signal_set.cpp -unit_signal_set_service_SOURCES = unit/signal_set_service.cpp -unit_socket_acceptor_service_SOURCES = unit/socket_acceptor_service.cpp -unit_socket_base_SOURCES = unit/socket_base.cpp -unit_steady_timer_SOURCES = unit/steady_timer.cpp -unit_strand_SOURCES = unit/strand.cpp -unit_stream_socket_service_SOURCES = unit/stream_socket_service.cpp -unit_streambuf_SOURCES = unit/streambuf.cpp -unit_system_context_SOURCES = unit/system_context.cpp -unit_system_executor_SOURCES = unit/system_executor.cpp -unit_system_timer_SOURCES = unit/system_timer.cpp -unit_thread_SOURCES = unit/thread.cpp -unit_time_traits_SOURCES = unit/time_traits.cpp -unit_ts_buffer_SOURCES = unit/ts/buffer.cpp -unit_ts_executor_SOURCES = unit/ts/executor.cpp -unit_ts_internet_SOURCES = unit/ts/internet.cpp -unit_ts_io_context_SOURCES = unit/ts/io_context.cpp -unit_ts_net_SOURCES = unit/ts/net.cpp -unit_ts_netfwd_SOURCES = unit/ts/netfwd.cpp -unit_ts_socket_SOURCES = unit/ts/socket.cpp -unit_ts_timer_SOURCES = unit/ts/timer.cpp -unit_use_future_SOURCES = unit/use_future.cpp -unit_uses_executor_SOURCES = unit/uses_executor.cpp -unit_wait_traits_SOURCES = unit/wait_traits.cpp -unit_waitable_timer_service_SOURCES = unit/waitable_timer_service.cpp -unit_windows_basic_handle_SOURCES = unit/windows/basic_handle.cpp -unit_windows_basic_object_handle_SOURCES = unit/windows/basic_object_handle.cpp -unit_windows_basic_random_access_handle_SOURCES = unit/windows/basic_random_access_handle.cpp -unit_windows_basic_stream_handle_SOURCES = unit/windows/basic_stream_handle.cpp -unit_windows_object_handle_SOURCES = unit/windows/object_handle.cpp -unit_windows_object_handle_service_SOURCES = unit/windows/object_handle_service.cpp -unit_windows_overlapped_handle_SOURCES = unit/windows/overlapped_handle.cpp -unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp -unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp -unit_windows_random_access_handle_service_SOURCES = unit/windows/random_access_handle_service.cpp -unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp -unit_windows_stream_handle_service_SOURCES = unit/windows/stream_handle_service.cpp -unit_write_SOURCES = unit/write.cpp -unit_write_at_SOURCES = unit/write_at.cpp - -if HAVE_OPENSSL -unit_ssl_context_base_SOURCES = unit/ssl/context_base.cpp -unit_ssl_context_SOURCES = unit/ssl/context.cpp -unit_ssl_error_SOURCES = unit/ssl/error.cpp -unit_ssl_stream_base_SOURCES = unit/ssl/stream_base.cpp -unit_ssl_rfc2818_verification_SOURCES = unit/ssl/rfc2818_verification.cpp -unit_ssl_stream_SOURCES = unit/ssl/stream.cpp -endif - -EXTRA_DIST = \ - latency/allocator.hpp \ - performance/handler_allocator.hpp \ - unit/archetypes/async_ops.hpp \ - unit/archetypes/async_result.hpp \ - unit/archetypes/deprecated_async_result.hpp \ - unit/archetypes/deprecated_async_ops.hpp \ - unit/archetypes/gettable_socket_option.hpp \ - unit/archetypes/io_control_command.hpp \ - unit/archetypes/settable_socket_option.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in diff --git a/Sources/Vendor/asio/src/tests/Makefile.in b/Sources/Vendor/asio/src/tests/Makefile.in deleted file mode 100644 index 9ae8d87..0000000 --- a/Sources/Vendor/asio/src/tests/Makefile.in +++ /dev/null @@ -1,4580 +0,0 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994-2018 Free Software Foundation, Inc. - -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - - - -VPATH = @srcdir@ -am__is_gnu_make = { \ - if test -z '$(MAKELEVEL)'; then \ - false; \ - elif test -n '$(MAKE_HOST)'; then \ - true; \ - elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ - true; \ - else \ - false; \ - fi; \ -} -am__make_running_with_option = \ - case $${target_option-} in \ - ?) ;; \ - *) echo "am__make_running_with_option: internal error: invalid" \ - "target option '$${target_option-}' specified" >&2; \ - exit 1;; \ - esac; \ - has_opt=no; \ - sane_makeflags=$$MAKEFLAGS; \ - if $(am__is_gnu_make); then \ - sane_makeflags=$$MFLAGS; \ - else \ - case $$MAKEFLAGS in \ - *\\[\ \ ]*) \ - bs=\\; \ - sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ - | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ - esac; \ - fi; \ - skip_next=no; \ - strip_trailopt () \ - { \ - flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ - }; \ - for flg in $$sane_makeflags; do \ - test $$skip_next = yes && { skip_next=no; continue; }; \ - case $$flg in \ - *=*|--*) continue;; \ - -*I) strip_trailopt 'I'; skip_next=yes;; \ - -*I?*) strip_trailopt 'I';; \ - -*O) strip_trailopt 'O'; skip_next=yes;; \ - -*O?*) strip_trailopt 'O';; \ - -*l) strip_trailopt 'l'; skip_next=yes;; \ - -*l?*) strip_trailopt 'l';; \ - -[dEDm]) skip_next=yes;; \ - -[JT]) skip_next=yes;; \ - esac; \ - case $$flg in \ - *$$target_option*) has_opt=yes; break;; \ - esac; \ - done; \ - test $$has_opt = yes -am__make_dryrun = (target_option=n; $(am__make_running_with_option)) -am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) -pkgdatadir = $(datadir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkglibexecdir = $(libexecdir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -build_triplet = @build@ -host_triplet = @host@ -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__append_1 = ../asio_ssl.cpp -check_PROGRAMS = unit/associated_allocator$(EXEEXT) \ - unit/associated_executor$(EXEEXT) unit/async_result$(EXEEXT) \ - unit/basic_datagram_socket$(EXEEXT) \ - unit/basic_deadline_timer$(EXEEXT) \ - unit/basic_raw_socket$(EXEEXT) \ - unit/basic_seq_packet_socket$(EXEEXT) \ - unit/basic_serial_port$(EXEEXT) unit/basic_signal_set$(EXEEXT) \ - unit/basic_socket_acceptor$(EXEEXT) \ - unit/basic_stream_socket$(EXEEXT) \ - unit/basic_streambuf$(EXEEXT) \ - unit/basic_waitable_timer$(EXEEXT) unit/bind_executor$(EXEEXT) \ - unit/buffered_read_stream$(EXEEXT) \ - unit/buffered_stream$(EXEEXT) \ - unit/buffered_write_stream$(EXEEXT) unit/buffer$(EXEEXT) \ - unit/buffers_iterator$(EXEEXT) \ - unit/completion_condition$(EXEEXT) unit/connect$(EXEEXT) \ - unit/coroutine$(EXEEXT) unit/datagram_socket_service$(EXEEXT) \ - unit/deadline_timer_service$(EXEEXT) \ - unit/deadline_timer$(EXEEXT) unit/defer$(EXEEXT) \ - unit/dispatch$(EXEEXT) unit/error$(EXEEXT) \ - unit/execution_context$(EXEEXT) unit/executor$(EXEEXT) \ - unit/executor_work_guard$(EXEEXT) \ - unit/generic/basic_endpoint$(EXEEXT) \ - unit/generic/datagram_protocol$(EXEEXT) \ - unit/generic/raw_protocol$(EXEEXT) \ - unit/generic/seq_packet_protocol$(EXEEXT) \ - unit/generic/stream_protocol$(EXEEXT) \ - unit/high_resolution_timer$(EXEEXT) unit/io_context$(EXEEXT) \ - unit/ip/address$(EXEEXT) unit/ip/address_v4$(EXEEXT) \ - unit/ip/address_v4_iterator$(EXEEXT) \ - unit/ip/address_v4_range$(EXEEXT) unit/ip/address_v6$(EXEEXT) \ - unit/ip/address_v6_iterator$(EXEEXT) \ - unit/ip/address_v6_range$(EXEEXT) \ - unit/ip/basic_endpoint$(EXEEXT) \ - unit/ip/basic_resolver$(EXEEXT) \ - unit/ip/basic_resolver_entry$(EXEEXT) \ - unit/ip/basic_resolver_iterator$(EXEEXT) \ - unit/ip/basic_resolver_query$(EXEEXT) \ - unit/ip/host_name$(EXEEXT) unit/ip/icmp$(EXEEXT) \ - unit/ip/multicast$(EXEEXT) unit/ip/network_v4$(EXEEXT) \ - unit/ip/network_v6$(EXEEXT) \ - unit/ip/resolver_query_base$(EXEEXT) \ - unit/ip/resolver_service$(EXEEXT) unit/ip/tcp$(EXEEXT) \ - unit/ip/udp$(EXEEXT) unit/ip/unicast$(EXEEXT) \ - unit/ip/v6_only$(EXEEXT) unit/is_read_buffered$(EXEEXT) \ - unit/is_write_buffered$(EXEEXT) \ - unit/local/basic_endpoint$(EXEEXT) \ - unit/local/connect_pair$(EXEEXT) \ - unit/local/datagram_protocol$(EXEEXT) \ - unit/local/stream_protocol$(EXEEXT) \ - unit/packaged_task$(EXEEXT) unit/placeholders$(EXEEXT) \ - unit/posix/basic_descriptor$(EXEEXT) \ - unit/posix/basic_stream_descriptor$(EXEEXT) \ - unit/posix/descriptor$(EXEEXT) \ - unit/posix/descriptor_base$(EXEEXT) \ - unit/posix/stream_descriptor$(EXEEXT) \ - unit/posix/stream_descriptor_service$(EXEEXT) \ - unit/post$(EXEEXT) unit/raw_socket_service$(EXEEXT) \ - unit/read$(EXEEXT) unit/read_at$(EXEEXT) \ - unit/read_until$(EXEEXT) \ - unit/seq_packet_socket_service$(EXEEXT) \ - unit/serial_port$(EXEEXT) unit/serial_port_base$(EXEEXT) \ - unit/serial_port_service$(EXEEXT) unit/signal_set$(EXEEXT) \ - unit/signal_set_service$(EXEEXT) \ - unit/socket_acceptor_service$(EXEEXT) \ - unit/socket_base$(EXEEXT) unit/steady_timer$(EXEEXT) \ - unit/strand$(EXEEXT) unit/stream_socket_service$(EXEEXT) \ - unit/streambuf$(EXEEXT) unit/system_context$(EXEEXT) \ - unit/system_executor$(EXEEXT) unit/system_timer$(EXEEXT) \ - unit/thread$(EXEEXT) unit/time_traits$(EXEEXT) \ - unit/ts/buffer$(EXEEXT) unit/ts/executor$(EXEEXT) \ - unit/ts/internet$(EXEEXT) unit/ts/io_context$(EXEEXT) \ - unit/ts/net$(EXEEXT) unit/ts/netfwd$(EXEEXT) \ - unit/ts/socket$(EXEEXT) unit/ts/timer$(EXEEXT) \ - unit/use_future$(EXEEXT) unit/uses_executor$(EXEEXT) \ - unit/wait_traits$(EXEEXT) unit/waitable_timer_service$(EXEEXT) \ - unit/windows/basic_handle$(EXEEXT) \ - unit/windows/basic_object_handle$(EXEEXT) \ - unit/windows/basic_random_access_handle$(EXEEXT) \ - unit/windows/basic_stream_handle$(EXEEXT) \ - unit/windows/object_handle$(EXEEXT) \ - unit/windows/object_handle_service$(EXEEXT) \ - unit/windows/overlapped_handle$(EXEEXT) \ - unit/windows/overlapped_ptr$(EXEEXT) \ - unit/windows/random_access_handle$(EXEEXT) \ - unit/windows/random_access_handle_service$(EXEEXT) \ - unit/windows/stream_handle$(EXEEXT) \ - unit/windows/stream_handle_service$(EXEEXT) \ - unit/write$(EXEEXT) unit/write_at$(EXEEXT) $(am__EXEEXT_1) -@STANDALONE_FALSE@noinst_PROGRAMS = latency/tcp_client$(EXEEXT) \ -@STANDALONE_FALSE@ latency/tcp_server$(EXEEXT) \ -@STANDALONE_FALSE@ latency/udp_client$(EXEEXT) \ -@STANDALONE_FALSE@ latency/udp_server$(EXEEXT) \ -@STANDALONE_FALSE@ performance/client$(EXEEXT) \ -@STANDALONE_FALSE@ performance/server$(EXEEXT) -@HAVE_OPENSSL_TRUE@am__append_2 = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context_base \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context \ -@HAVE_OPENSSL_TRUE@ unit/ssl/error \ -@HAVE_OPENSSL_TRUE@ unit/ssl/rfc2818_verification \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream - -TESTS = unit/associated_allocator$(EXEEXT) \ - unit/associated_executor$(EXEEXT) unit/async_result$(EXEEXT) \ - unit/basic_datagram_socket$(EXEEXT) \ - unit/basic_deadline_timer$(EXEEXT) \ - unit/basic_raw_socket$(EXEEXT) \ - unit/basic_seq_packet_socket$(EXEEXT) \ - unit/basic_serial_port$(EXEEXT) unit/basic_signal_set$(EXEEXT) \ - unit/basic_socket_acceptor$(EXEEXT) \ - unit/basic_stream_socket$(EXEEXT) \ - unit/basic_streambuf$(EXEEXT) \ - unit/basic_waitable_timer$(EXEEXT) unit/bind_executor$(EXEEXT) \ - unit/buffered_read_stream$(EXEEXT) \ - unit/buffered_stream$(EXEEXT) \ - unit/buffered_write_stream$(EXEEXT) unit/buffer$(EXEEXT) \ - unit/buffers_iterator$(EXEEXT) \ - unit/completion_condition$(EXEEXT) unit/connect$(EXEEXT) \ - unit/datagram_socket_service$(EXEEXT) \ - unit/deadline_timer_service$(EXEEXT) \ - unit/deadline_timer$(EXEEXT) unit/defer$(EXEEXT) \ - unit/dispatch$(EXEEXT) unit/error$(EXEEXT) \ - unit/execution_context$(EXEEXT) unit/executor$(EXEEXT) \ - unit/executor_work_guard$(EXEEXT) \ - unit/high_resolution_timer$(EXEEXT) unit/io_context$(EXEEXT) \ - unit/ip/address$(EXEEXT) unit/ip/address_v4$(EXEEXT) \ - unit/ip/address_v4_iterator$(EXEEXT) \ - unit/ip/address_v4_range$(EXEEXT) unit/ip/address_v6$(EXEEXT) \ - unit/ip/address_v6_iterator$(EXEEXT) \ - unit/ip/address_v6_range$(EXEEXT) \ - unit/ip/basic_endpoint$(EXEEXT) \ - unit/ip/basic_resolver$(EXEEXT) \ - unit/ip/basic_resolver_entry$(EXEEXT) \ - unit/ip/basic_resolver_iterator$(EXEEXT) \ - unit/ip/basic_resolver_query$(EXEEXT) \ - unit/ip/host_name$(EXEEXT) unit/ip/icmp$(EXEEXT) \ - unit/ip/multicast$(EXEEXT) unit/ip/network_v4$(EXEEXT) \ - unit/ip/network_v6$(EXEEXT) \ - unit/ip/resolver_query_base$(EXEEXT) \ - unit/ip/resolver_service$(EXEEXT) unit/ip/tcp$(EXEEXT) \ - unit/ip/udp$(EXEEXT) unit/ip/unicast$(EXEEXT) \ - unit/ip/v6_only$(EXEEXT) unit/is_read_buffered$(EXEEXT) \ - unit/is_write_buffered$(EXEEXT) \ - unit/local/basic_endpoint$(EXEEXT) \ - unit/local/connect_pair$(EXEEXT) \ - unit/local/datagram_protocol$(EXEEXT) \ - unit/local/stream_protocol$(EXEEXT) \ - unit/packaged_task$(EXEEXT) unit/placeholders$(EXEEXT) \ - unit/posix/basic_descriptor$(EXEEXT) \ - unit/posix/basic_stream_descriptor$(EXEEXT) \ - unit/posix/descriptor$(EXEEXT) \ - unit/posix/descriptor_base$(EXEEXT) \ - unit/posix/stream_descriptor$(EXEEXT) \ - unit/posix/stream_descriptor_service$(EXEEXT) \ - unit/post$(EXEEXT) unit/raw_socket_service$(EXEEXT) \ - unit/read$(EXEEXT) unit/read_at$(EXEEXT) \ - unit/read_until$(EXEEXT) \ - unit/seq_packet_socket_service$(EXEEXT) \ - unit/serial_port$(EXEEXT) unit/serial_port_base$(EXEEXT) \ - unit/serial_port_service$(EXEEXT) unit/signal_set$(EXEEXT) \ - unit/signal_set_service$(EXEEXT) \ - unit/socket_acceptor_service$(EXEEXT) \ - unit/socket_base$(EXEEXT) unit/steady_timer$(EXEEXT) \ - unit/strand$(EXEEXT) unit/stream_socket_service$(EXEEXT) \ - unit/streambuf$(EXEEXT) unit/system_context$(EXEEXT) \ - unit/system_executor$(EXEEXT) unit/system_timer$(EXEEXT) \ - unit/thread$(EXEEXT) unit/time_traits$(EXEEXT) \ - unit/ts/buffer$(EXEEXT) unit/ts/executor$(EXEEXT) \ - unit/ts/internet$(EXEEXT) unit/ts/io_context$(EXEEXT) \ - unit/ts/net$(EXEEXT) unit/ts/netfwd$(EXEEXT) \ - unit/ts/socket$(EXEEXT) unit/ts/timer$(EXEEXT) \ - unit/use_future$(EXEEXT) unit/uses_executor$(EXEEXT) \ - unit/wait_traits$(EXEEXT) unit/waitable_timer_service$(EXEEXT) \ - unit/windows/basic_handle$(EXEEXT) \ - unit/windows/basic_object_handle$(EXEEXT) \ - unit/windows/basic_random_access_handle$(EXEEXT) \ - unit/windows/basic_stream_handle$(EXEEXT) \ - unit/windows/object_handle$(EXEEXT) \ - unit/windows/object_handle_service$(EXEEXT) \ - unit/windows/overlapped_handle$(EXEEXT) \ - unit/windows/overlapped_ptr$(EXEEXT) \ - unit/windows/random_access_handle$(EXEEXT) \ - unit/windows/random_access_handle_service$(EXEEXT) \ - unit/windows/stream_handle$(EXEEXT) \ - unit/windows/stream_handle_service$(EXEEXT) \ - unit/write$(EXEEXT) unit/write_at$(EXEEXT) $(am__EXEEXT_1) -@HAVE_OPENSSL_TRUE@am__append_3 = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context_base \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context \ -@HAVE_OPENSSL_TRUE@ unit/ssl/error \ -@HAVE_OPENSSL_TRUE@ unit/ssl/rfc2818_verification \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream - -subdir = src/tests -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.ac -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ - $(am__DIST_COMMON) -mkinstalldirs = $(install_sh) -d -CONFIG_CLEAN_FILES = -CONFIG_CLEAN_VPATH_FILES = -@HAVE_OPENSSL_TRUE@am__EXEEXT_1 = unit/ssl/context_base$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/error$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/rfc2818_verification$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base$(EXEEXT) \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream$(EXEEXT) -PROGRAMS = $(noinst_PROGRAMS) -LIBRARIES = $(noinst_LIBRARIES) -AR = ar -ARFLAGS = cru -AM_V_AR = $(am__v_AR_@AM_V@) -am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) -am__v_AR_0 = @echo " AR " $@; -am__v_AR_1 = -libasio_a_AR = $(AR) $(ARFLAGS) -libasio_a_LIBADD = -am__libasio_a_SOURCES_DIST = ../asio.cpp ../asio_ssl.cpp -am__dirstamp = $(am__leading_dot)dirstamp -@HAVE_OPENSSL_TRUE@@SEPARATE_COMPILATION_TRUE@am__objects_1 = ../asio_ssl.$(OBJEXT) -@SEPARATE_COMPILATION_TRUE@am_libasio_a_OBJECTS = ../asio.$(OBJEXT) \ -@SEPARATE_COMPILATION_TRUE@ $(am__objects_1) -libasio_a_OBJECTS = $(am_libasio_a_OBJECTS) -am__latency_tcp_client_SOURCES_DIST = latency/tcp_client.cpp -@STANDALONE_FALSE@am_latency_tcp_client_OBJECTS = \ -@STANDALONE_FALSE@ latency/tcp_client.$(OBJEXT) -latency_tcp_client_OBJECTS = $(am_latency_tcp_client_OBJECTS) -latency_tcp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@latency_tcp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__latency_tcp_server_SOURCES_DIST = latency/tcp_server.cpp -@STANDALONE_FALSE@am_latency_tcp_server_OBJECTS = \ -@STANDALONE_FALSE@ latency/tcp_server.$(OBJEXT) -latency_tcp_server_OBJECTS = $(am_latency_tcp_server_OBJECTS) -latency_tcp_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@latency_tcp_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__latency_udp_client_SOURCES_DIST = latency/udp_client.cpp -@STANDALONE_FALSE@am_latency_udp_client_OBJECTS = \ -@STANDALONE_FALSE@ latency/udp_client.$(OBJEXT) -latency_udp_client_OBJECTS = $(am_latency_udp_client_OBJECTS) -latency_udp_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@latency_udp_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__latency_udp_server_SOURCES_DIST = latency/udp_server.cpp -@STANDALONE_FALSE@am_latency_udp_server_OBJECTS = \ -@STANDALONE_FALSE@ latency/udp_server.$(OBJEXT) -latency_udp_server_OBJECTS = $(am_latency_udp_server_OBJECTS) -latency_udp_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@latency_udp_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__performance_client_SOURCES_DIST = performance/client.cpp -@STANDALONE_FALSE@am_performance_client_OBJECTS = \ -@STANDALONE_FALSE@ performance/client.$(OBJEXT) -performance_client_OBJECTS = $(am_performance_client_OBJECTS) -performance_client_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@performance_client_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__performance_server_SOURCES_DIST = performance/server.cpp -@STANDALONE_FALSE@am_performance_server_OBJECTS = \ -@STANDALONE_FALSE@ performance/server.$(OBJEXT) -performance_server_OBJECTS = $(am_performance_server_OBJECTS) -performance_server_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@performance_server_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_associated_allocator_OBJECTS = \ - unit/associated_allocator.$(OBJEXT) -unit_associated_allocator_OBJECTS = \ - $(am_unit_associated_allocator_OBJECTS) -unit_associated_allocator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_associated_allocator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_associated_executor_OBJECTS = \ - unit/associated_executor.$(OBJEXT) -unit_associated_executor_OBJECTS = \ - $(am_unit_associated_executor_OBJECTS) -unit_associated_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_associated_executor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_async_result_OBJECTS = unit/async_result.$(OBJEXT) -unit_async_result_OBJECTS = $(am_unit_async_result_OBJECTS) -unit_async_result_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_async_result_DEPENDENCIES = libasio.a -am_unit_basic_datagram_socket_OBJECTS = \ - unit/basic_datagram_socket.$(OBJEXT) -unit_basic_datagram_socket_OBJECTS = \ - $(am_unit_basic_datagram_socket_OBJECTS) -unit_basic_datagram_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_datagram_socket_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_deadline_timer_OBJECTS = \ - unit/basic_deadline_timer.$(OBJEXT) -unit_basic_deadline_timer_OBJECTS = \ - $(am_unit_basic_deadline_timer_OBJECTS) -unit_basic_deadline_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_deadline_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_raw_socket_OBJECTS = unit/basic_raw_socket.$(OBJEXT) -unit_basic_raw_socket_OBJECTS = $(am_unit_basic_raw_socket_OBJECTS) -unit_basic_raw_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_raw_socket_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_seq_packet_socket_OBJECTS = \ - unit/basic_seq_packet_socket.$(OBJEXT) -unit_basic_seq_packet_socket_OBJECTS = \ - $(am_unit_basic_seq_packet_socket_OBJECTS) -unit_basic_seq_packet_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_seq_packet_socket_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_serial_port_OBJECTS = unit/basic_serial_port.$(OBJEXT) -unit_basic_serial_port_OBJECTS = $(am_unit_basic_serial_port_OBJECTS) -unit_basic_serial_port_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_serial_port_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_signal_set_OBJECTS = unit/basic_signal_set.$(OBJEXT) -unit_basic_signal_set_OBJECTS = $(am_unit_basic_signal_set_OBJECTS) -unit_basic_signal_set_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_signal_set_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_socket_acceptor_OBJECTS = \ - unit/basic_socket_acceptor.$(OBJEXT) -unit_basic_socket_acceptor_OBJECTS = \ - $(am_unit_basic_socket_acceptor_OBJECTS) -unit_basic_socket_acceptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_socket_acceptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_stream_socket_OBJECTS = \ - unit/basic_stream_socket.$(OBJEXT) -unit_basic_stream_socket_OBJECTS = \ - $(am_unit_basic_stream_socket_OBJECTS) -unit_basic_stream_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_stream_socket_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_streambuf_OBJECTS = unit/basic_streambuf.$(OBJEXT) -unit_basic_streambuf_OBJECTS = $(am_unit_basic_streambuf_OBJECTS) -unit_basic_streambuf_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_streambuf_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_basic_waitable_timer_OBJECTS = \ - unit/basic_waitable_timer.$(OBJEXT) -unit_basic_waitable_timer_OBJECTS = \ - $(am_unit_basic_waitable_timer_OBJECTS) -unit_basic_waitable_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_basic_waitable_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_bind_executor_OBJECTS = unit/bind_executor.$(OBJEXT) -unit_bind_executor_OBJECTS = $(am_unit_bind_executor_OBJECTS) -unit_bind_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_bind_executor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_buffer_OBJECTS = unit/buffer.$(OBJEXT) -unit_buffer_OBJECTS = $(am_unit_buffer_OBJECTS) -unit_buffer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffer_DEPENDENCIES = libasio.a -am_unit_buffered_read_stream_OBJECTS = \ - unit/buffered_read_stream.$(OBJEXT) -unit_buffered_read_stream_OBJECTS = \ - $(am_unit_buffered_read_stream_OBJECTS) -unit_buffered_read_stream_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffered_read_stream_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_buffered_stream_OBJECTS = unit/buffered_stream.$(OBJEXT) -unit_buffered_stream_OBJECTS = $(am_unit_buffered_stream_OBJECTS) -unit_buffered_stream_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffered_stream_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_buffered_write_stream_OBJECTS = \ - unit/buffered_write_stream.$(OBJEXT) -unit_buffered_write_stream_OBJECTS = \ - $(am_unit_buffered_write_stream_OBJECTS) -unit_buffered_write_stream_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffered_write_stream_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_buffers_iterator_OBJECTS = unit/buffers_iterator.$(OBJEXT) -unit_buffers_iterator_OBJECTS = $(am_unit_buffers_iterator_OBJECTS) -unit_buffers_iterator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_buffers_iterator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_completion_condition_OBJECTS = \ - unit/completion_condition.$(OBJEXT) -unit_completion_condition_OBJECTS = \ - $(am_unit_completion_condition_OBJECTS) -unit_completion_condition_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_completion_condition_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_connect_OBJECTS = unit/connect.$(OBJEXT) -unit_connect_OBJECTS = $(am_unit_connect_OBJECTS) -unit_connect_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_connect_DEPENDENCIES = libasio.a -am_unit_coroutine_OBJECTS = unit/coroutine.$(OBJEXT) -unit_coroutine_OBJECTS = $(am_unit_coroutine_OBJECTS) -unit_coroutine_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_coroutine_DEPENDENCIES = libasio.a -am_unit_datagram_socket_service_OBJECTS = \ - unit/datagram_socket_service.$(OBJEXT) -unit_datagram_socket_service_OBJECTS = \ - $(am_unit_datagram_socket_service_OBJECTS) -unit_datagram_socket_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_datagram_socket_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_deadline_timer_OBJECTS = unit/deadline_timer.$(OBJEXT) -unit_deadline_timer_OBJECTS = $(am_unit_deadline_timer_OBJECTS) -unit_deadline_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_deadline_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_deadline_timer_service_OBJECTS = \ - unit/deadline_timer_service.$(OBJEXT) -unit_deadline_timer_service_OBJECTS = \ - $(am_unit_deadline_timer_service_OBJECTS) -unit_deadline_timer_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_deadline_timer_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_defer_OBJECTS = unit/defer.$(OBJEXT) -unit_defer_OBJECTS = $(am_unit_defer_OBJECTS) -unit_defer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_defer_DEPENDENCIES = libasio.a -am_unit_dispatch_OBJECTS = unit/dispatch.$(OBJEXT) -unit_dispatch_OBJECTS = $(am_unit_dispatch_OBJECTS) -unit_dispatch_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_dispatch_DEPENDENCIES = libasio.a -am_unit_error_OBJECTS = unit/error.$(OBJEXT) -unit_error_OBJECTS = $(am_unit_error_OBJECTS) -unit_error_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_error_DEPENDENCIES = libasio.a -am_unit_execution_context_OBJECTS = unit/execution_context.$(OBJEXT) -unit_execution_context_OBJECTS = $(am_unit_execution_context_OBJECTS) -unit_execution_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_execution_context_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_executor_OBJECTS = unit/executor.$(OBJEXT) -unit_executor_OBJECTS = $(am_unit_executor_OBJECTS) -unit_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_executor_DEPENDENCIES = libasio.a -am_unit_executor_work_guard_OBJECTS = \ - unit/executor_work_guard.$(OBJEXT) -unit_executor_work_guard_OBJECTS = \ - $(am_unit_executor_work_guard_OBJECTS) -unit_executor_work_guard_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_executor_work_guard_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_basic_endpoint_OBJECTS = \ - unit/generic/basic_endpoint.$(OBJEXT) -unit_generic_basic_endpoint_OBJECTS = \ - $(am_unit_generic_basic_endpoint_OBJECTS) -unit_generic_basic_endpoint_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_basic_endpoint_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_datagram_protocol_OBJECTS = \ - unit/generic/datagram_protocol.$(OBJEXT) -unit_generic_datagram_protocol_OBJECTS = \ - $(am_unit_generic_datagram_protocol_OBJECTS) -unit_generic_datagram_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_datagram_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_raw_protocol_OBJECTS = \ - unit/generic/raw_protocol.$(OBJEXT) -unit_generic_raw_protocol_OBJECTS = \ - $(am_unit_generic_raw_protocol_OBJECTS) -unit_generic_raw_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_raw_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_seq_packet_protocol_OBJECTS = \ - unit/generic/seq_packet_protocol.$(OBJEXT) -unit_generic_seq_packet_protocol_OBJECTS = \ - $(am_unit_generic_seq_packet_protocol_OBJECTS) -unit_generic_seq_packet_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_seq_packet_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_generic_stream_protocol_OBJECTS = \ - unit/generic/stream_protocol.$(OBJEXT) -unit_generic_stream_protocol_OBJECTS = \ - $(am_unit_generic_stream_protocol_OBJECTS) -unit_generic_stream_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_generic_stream_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_high_resolution_timer_OBJECTS = \ - unit/high_resolution_timer.$(OBJEXT) -unit_high_resolution_timer_OBJECTS = \ - $(am_unit_high_resolution_timer_OBJECTS) -unit_high_resolution_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_high_resolution_timer_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_io_context_OBJECTS = unit/io_context.$(OBJEXT) -unit_io_context_OBJECTS = $(am_unit_io_context_OBJECTS) -unit_io_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_io_context_DEPENDENCIES = libasio.a -am_unit_ip_address_OBJECTS = unit/ip/address.$(OBJEXT) -unit_ip_address_OBJECTS = $(am_unit_ip_address_OBJECTS) -unit_ip_address_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_DEPENDENCIES = libasio.a -am_unit_ip_address_v4_OBJECTS = unit/ip/address_v4.$(OBJEXT) -unit_ip_address_v4_OBJECTS = $(am_unit_ip_address_v4_OBJECTS) -unit_ip_address_v4_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v4_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v4_iterator_OBJECTS = \ - unit/ip/address_v4_iterator.$(OBJEXT) -unit_ip_address_v4_iterator_OBJECTS = \ - $(am_unit_ip_address_v4_iterator_OBJECTS) -unit_ip_address_v4_iterator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v4_iterator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v4_range_OBJECTS = \ - unit/ip/address_v4_range.$(OBJEXT) -unit_ip_address_v4_range_OBJECTS = \ - $(am_unit_ip_address_v4_range_OBJECTS) -unit_ip_address_v4_range_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v4_range_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v6_OBJECTS = unit/ip/address_v6.$(OBJEXT) -unit_ip_address_v6_OBJECTS = $(am_unit_ip_address_v6_OBJECTS) -unit_ip_address_v6_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v6_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v6_iterator_OBJECTS = \ - unit/ip/address_v6_iterator.$(OBJEXT) -unit_ip_address_v6_iterator_OBJECTS = \ - $(am_unit_ip_address_v6_iterator_OBJECTS) -unit_ip_address_v6_iterator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v6_iterator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_address_v6_range_OBJECTS = \ - unit/ip/address_v6_range.$(OBJEXT) -unit_ip_address_v6_range_OBJECTS = \ - $(am_unit_ip_address_v6_range_OBJECTS) -unit_ip_address_v6_range_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_address_v6_range_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_endpoint_OBJECTS = unit/ip/basic_endpoint.$(OBJEXT) -unit_ip_basic_endpoint_OBJECTS = $(am_unit_ip_basic_endpoint_OBJECTS) -unit_ip_basic_endpoint_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_endpoint_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_resolver_OBJECTS = unit/ip/basic_resolver.$(OBJEXT) -unit_ip_basic_resolver_OBJECTS = $(am_unit_ip_basic_resolver_OBJECTS) -unit_ip_basic_resolver_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_resolver_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_resolver_entry_OBJECTS = \ - unit/ip/basic_resolver_entry.$(OBJEXT) -unit_ip_basic_resolver_entry_OBJECTS = \ - $(am_unit_ip_basic_resolver_entry_OBJECTS) -unit_ip_basic_resolver_entry_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_resolver_entry_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_resolver_iterator_OBJECTS = \ - unit/ip/basic_resolver_iterator.$(OBJEXT) -unit_ip_basic_resolver_iterator_OBJECTS = \ - $(am_unit_ip_basic_resolver_iterator_OBJECTS) -unit_ip_basic_resolver_iterator_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_resolver_iterator_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_basic_resolver_query_OBJECTS = \ - unit/ip/basic_resolver_query.$(OBJEXT) -unit_ip_basic_resolver_query_OBJECTS = \ - $(am_unit_ip_basic_resolver_query_OBJECTS) -unit_ip_basic_resolver_query_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_basic_resolver_query_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_host_name_OBJECTS = unit/ip/host_name.$(OBJEXT) -unit_ip_host_name_OBJECTS = $(am_unit_ip_host_name_OBJECTS) -unit_ip_host_name_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_host_name_DEPENDENCIES = libasio.a -am_unit_ip_icmp_OBJECTS = unit/ip/icmp.$(OBJEXT) -unit_ip_icmp_OBJECTS = $(am_unit_ip_icmp_OBJECTS) -unit_ip_icmp_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_icmp_DEPENDENCIES = libasio.a -am_unit_ip_multicast_OBJECTS = unit/ip/multicast.$(OBJEXT) -unit_ip_multicast_OBJECTS = $(am_unit_ip_multicast_OBJECTS) -unit_ip_multicast_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_multicast_DEPENDENCIES = libasio.a -am_unit_ip_network_v4_OBJECTS = unit/ip/network_v4.$(OBJEXT) -unit_ip_network_v4_OBJECTS = $(am_unit_ip_network_v4_OBJECTS) -unit_ip_network_v4_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_network_v4_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_network_v6_OBJECTS = unit/ip/network_v6.$(OBJEXT) -unit_ip_network_v6_OBJECTS = $(am_unit_ip_network_v6_OBJECTS) -unit_ip_network_v6_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_network_v6_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_resolver_query_base_OBJECTS = \ - unit/ip/resolver_query_base.$(OBJEXT) -unit_ip_resolver_query_base_OBJECTS = \ - $(am_unit_ip_resolver_query_base_OBJECTS) -unit_ip_resolver_query_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_resolver_query_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_resolver_service_OBJECTS = \ - unit/ip/resolver_service.$(OBJEXT) -unit_ip_resolver_service_OBJECTS = \ - $(am_unit_ip_resolver_service_OBJECTS) -unit_ip_resolver_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_resolver_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ip_tcp_OBJECTS = unit/ip/tcp.$(OBJEXT) -unit_ip_tcp_OBJECTS = $(am_unit_ip_tcp_OBJECTS) -unit_ip_tcp_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_tcp_DEPENDENCIES = libasio.a -am_unit_ip_udp_OBJECTS = unit/ip/udp.$(OBJEXT) -unit_ip_udp_OBJECTS = $(am_unit_ip_udp_OBJECTS) -unit_ip_udp_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_udp_DEPENDENCIES = libasio.a -am_unit_ip_unicast_OBJECTS = unit/ip/unicast.$(OBJEXT) -unit_ip_unicast_OBJECTS = $(am_unit_ip_unicast_OBJECTS) -unit_ip_unicast_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_unicast_DEPENDENCIES = libasio.a -am_unit_ip_v6_only_OBJECTS = unit/ip/v6_only.$(OBJEXT) -unit_ip_v6_only_OBJECTS = $(am_unit_ip_v6_only_OBJECTS) -unit_ip_v6_only_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ip_v6_only_DEPENDENCIES = libasio.a -am_unit_is_read_buffered_OBJECTS = unit/is_read_buffered.$(OBJEXT) -unit_is_read_buffered_OBJECTS = $(am_unit_is_read_buffered_OBJECTS) -unit_is_read_buffered_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_is_read_buffered_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_is_write_buffered_OBJECTS = unit/is_write_buffered.$(OBJEXT) -unit_is_write_buffered_OBJECTS = $(am_unit_is_write_buffered_OBJECTS) -unit_is_write_buffered_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_is_write_buffered_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_local_basic_endpoint_OBJECTS = \ - unit/local/basic_endpoint.$(OBJEXT) -unit_local_basic_endpoint_OBJECTS = \ - $(am_unit_local_basic_endpoint_OBJECTS) -unit_local_basic_endpoint_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_local_basic_endpoint_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_local_connect_pair_OBJECTS = \ - unit/local/connect_pair.$(OBJEXT) -unit_local_connect_pair_OBJECTS = \ - $(am_unit_local_connect_pair_OBJECTS) -unit_local_connect_pair_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_local_connect_pair_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_local_datagram_protocol_OBJECTS = \ - unit/local/datagram_protocol.$(OBJEXT) -unit_local_datagram_protocol_OBJECTS = \ - $(am_unit_local_datagram_protocol_OBJECTS) -unit_local_datagram_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_local_datagram_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_local_stream_protocol_OBJECTS = \ - unit/local/stream_protocol.$(OBJEXT) -unit_local_stream_protocol_OBJECTS = \ - $(am_unit_local_stream_protocol_OBJECTS) -unit_local_stream_protocol_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_local_stream_protocol_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_packaged_task_OBJECTS = unit/packaged_task.$(OBJEXT) -unit_packaged_task_OBJECTS = $(am_unit_packaged_task_OBJECTS) -unit_packaged_task_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_packaged_task_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_placeholders_OBJECTS = unit/placeholders.$(OBJEXT) -unit_placeholders_OBJECTS = $(am_unit_placeholders_OBJECTS) -unit_placeholders_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_placeholders_DEPENDENCIES = libasio.a -am_unit_posix_basic_descriptor_OBJECTS = \ - unit/posix/basic_descriptor.$(OBJEXT) -unit_posix_basic_descriptor_OBJECTS = \ - $(am_unit_posix_basic_descriptor_OBJECTS) -unit_posix_basic_descriptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_basic_descriptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_basic_stream_descriptor_OBJECTS = \ - unit/posix/basic_stream_descriptor.$(OBJEXT) -unit_posix_basic_stream_descriptor_OBJECTS = \ - $(am_unit_posix_basic_stream_descriptor_OBJECTS) -unit_posix_basic_stream_descriptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_basic_stream_descriptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_descriptor_OBJECTS = unit/posix/descriptor.$(OBJEXT) -unit_posix_descriptor_OBJECTS = $(am_unit_posix_descriptor_OBJECTS) -unit_posix_descriptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_descriptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_descriptor_base_OBJECTS = \ - unit/posix/descriptor_base.$(OBJEXT) -unit_posix_descriptor_base_OBJECTS = \ - $(am_unit_posix_descriptor_base_OBJECTS) -unit_posix_descriptor_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_descriptor_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_stream_descriptor_OBJECTS = \ - unit/posix/stream_descriptor.$(OBJEXT) -unit_posix_stream_descriptor_OBJECTS = \ - $(am_unit_posix_stream_descriptor_OBJECTS) -unit_posix_stream_descriptor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_stream_descriptor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_posix_stream_descriptor_service_OBJECTS = \ - unit/posix/stream_descriptor_service.$(OBJEXT) -unit_posix_stream_descriptor_service_OBJECTS = \ - $(am_unit_posix_stream_descriptor_service_OBJECTS) -unit_posix_stream_descriptor_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_posix_stream_descriptor_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_post_OBJECTS = unit/post.$(OBJEXT) -unit_post_OBJECTS = $(am_unit_post_OBJECTS) -unit_post_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_post_DEPENDENCIES = libasio.a -am_unit_raw_socket_service_OBJECTS = \ - unit/raw_socket_service.$(OBJEXT) -unit_raw_socket_service_OBJECTS = \ - $(am_unit_raw_socket_service_OBJECTS) -unit_raw_socket_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_raw_socket_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_read_OBJECTS = unit/read.$(OBJEXT) -unit_read_OBJECTS = $(am_unit_read_OBJECTS) -unit_read_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_read_DEPENDENCIES = libasio.a -am_unit_read_at_OBJECTS = unit/read_at.$(OBJEXT) -unit_read_at_OBJECTS = $(am_unit_read_at_OBJECTS) -unit_read_at_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_read_at_DEPENDENCIES = libasio.a -am_unit_read_until_OBJECTS = unit/read_until.$(OBJEXT) -unit_read_until_OBJECTS = $(am_unit_read_until_OBJECTS) -unit_read_until_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_read_until_DEPENDENCIES = libasio.a -am_unit_seq_packet_socket_service_OBJECTS = \ - unit/seq_packet_socket_service.$(OBJEXT) -unit_seq_packet_socket_service_OBJECTS = \ - $(am_unit_seq_packet_socket_service_OBJECTS) -unit_seq_packet_socket_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_seq_packet_socket_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_serial_port_OBJECTS = unit/serial_port.$(OBJEXT) -unit_serial_port_OBJECTS = $(am_unit_serial_port_OBJECTS) -unit_serial_port_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_serial_port_DEPENDENCIES = libasio.a -am_unit_serial_port_base_OBJECTS = unit/serial_port_base.$(OBJEXT) -unit_serial_port_base_OBJECTS = $(am_unit_serial_port_base_OBJECTS) -unit_serial_port_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_serial_port_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_serial_port_service_OBJECTS = \ - unit/serial_port_service.$(OBJEXT) -unit_serial_port_service_OBJECTS = \ - $(am_unit_serial_port_service_OBJECTS) -unit_serial_port_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_serial_port_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_signal_set_OBJECTS = unit/signal_set.$(OBJEXT) -unit_signal_set_OBJECTS = $(am_unit_signal_set_OBJECTS) -unit_signal_set_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_signal_set_DEPENDENCIES = libasio.a -am_unit_signal_set_service_OBJECTS = \ - unit/signal_set_service.$(OBJEXT) -unit_signal_set_service_OBJECTS = \ - $(am_unit_signal_set_service_OBJECTS) -unit_signal_set_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_signal_set_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_socket_acceptor_service_OBJECTS = \ - unit/socket_acceptor_service.$(OBJEXT) -unit_socket_acceptor_service_OBJECTS = \ - $(am_unit_socket_acceptor_service_OBJECTS) -unit_socket_acceptor_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_socket_acceptor_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_socket_base_OBJECTS = unit/socket_base.$(OBJEXT) -unit_socket_base_OBJECTS = $(am_unit_socket_base_OBJECTS) -unit_socket_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_socket_base_DEPENDENCIES = libasio.a -am__unit_ssl_context_SOURCES_DIST = unit/ssl/context.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_context_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context.$(OBJEXT) -unit_ssl_context_OBJECTS = $(am_unit_ssl_context_OBJECTS) -unit_ssl_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_context_DEPENDENCIES = libasio.a -am__unit_ssl_context_base_SOURCES_DIST = unit/ssl/context_base.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_context_base_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/context_base.$(OBJEXT) -unit_ssl_context_base_OBJECTS = $(am_unit_ssl_context_base_OBJECTS) -unit_ssl_context_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_context_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__unit_ssl_error_SOURCES_DIST = unit/ssl/error.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_error_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/error.$(OBJEXT) -unit_ssl_error_OBJECTS = $(am_unit_ssl_error_OBJECTS) -unit_ssl_error_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_error_DEPENDENCIES = libasio.a -am__unit_ssl_rfc2818_verification_SOURCES_DIST = \ - unit/ssl/rfc2818_verification.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_rfc2818_verification_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/rfc2818_verification.$(OBJEXT) -unit_ssl_rfc2818_verification_OBJECTS = \ - $(am_unit_ssl_rfc2818_verification_OBJECTS) -unit_ssl_rfc2818_verification_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_rfc2818_verification_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am__unit_ssl_stream_SOURCES_DIST = unit/ssl/stream.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_stream_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream.$(OBJEXT) -unit_ssl_stream_OBJECTS = $(am_unit_ssl_stream_OBJECTS) -unit_ssl_stream_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_stream_DEPENDENCIES = libasio.a -am__unit_ssl_stream_base_SOURCES_DIST = unit/ssl/stream_base.cpp -@HAVE_OPENSSL_TRUE@am_unit_ssl_stream_base_OBJECTS = \ -@HAVE_OPENSSL_TRUE@ unit/ssl/stream_base.$(OBJEXT) -unit_ssl_stream_base_OBJECTS = $(am_unit_ssl_stream_base_OBJECTS) -unit_ssl_stream_base_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ssl_stream_base_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_steady_timer_OBJECTS = unit/steady_timer.$(OBJEXT) -unit_steady_timer_OBJECTS = $(am_unit_steady_timer_OBJECTS) -unit_steady_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_steady_timer_DEPENDENCIES = libasio.a -am_unit_strand_OBJECTS = unit/strand.$(OBJEXT) -unit_strand_OBJECTS = $(am_unit_strand_OBJECTS) -unit_strand_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_strand_DEPENDENCIES = libasio.a -am_unit_stream_socket_service_OBJECTS = \ - unit/stream_socket_service.$(OBJEXT) -unit_stream_socket_service_OBJECTS = \ - $(am_unit_stream_socket_service_OBJECTS) -unit_stream_socket_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_stream_socket_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_streambuf_OBJECTS = unit/streambuf.$(OBJEXT) -unit_streambuf_OBJECTS = $(am_unit_streambuf_OBJECTS) -unit_streambuf_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_streambuf_DEPENDENCIES = libasio.a -am_unit_system_context_OBJECTS = unit/system_context.$(OBJEXT) -unit_system_context_OBJECTS = $(am_unit_system_context_OBJECTS) -unit_system_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_system_context_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_system_executor_OBJECTS = unit/system_executor.$(OBJEXT) -unit_system_executor_OBJECTS = $(am_unit_system_executor_OBJECTS) -unit_system_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_system_executor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_system_timer_OBJECTS = unit/system_timer.$(OBJEXT) -unit_system_timer_OBJECTS = $(am_unit_system_timer_OBJECTS) -unit_system_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_system_timer_DEPENDENCIES = libasio.a -am_unit_thread_OBJECTS = unit/thread.$(OBJEXT) -unit_thread_OBJECTS = $(am_unit_thread_OBJECTS) -unit_thread_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_thread_DEPENDENCIES = libasio.a -am_unit_time_traits_OBJECTS = unit/time_traits.$(OBJEXT) -unit_time_traits_OBJECTS = $(am_unit_time_traits_OBJECTS) -unit_time_traits_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_time_traits_DEPENDENCIES = libasio.a -am_unit_ts_buffer_OBJECTS = unit/ts/buffer.$(OBJEXT) -unit_ts_buffer_OBJECTS = $(am_unit_ts_buffer_OBJECTS) -unit_ts_buffer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_buffer_DEPENDENCIES = libasio.a -am_unit_ts_executor_OBJECTS = unit/ts/executor.$(OBJEXT) -unit_ts_executor_OBJECTS = $(am_unit_ts_executor_OBJECTS) -unit_ts_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_executor_DEPENDENCIES = libasio.a -am_unit_ts_internet_OBJECTS = unit/ts/internet.$(OBJEXT) -unit_ts_internet_OBJECTS = $(am_unit_ts_internet_OBJECTS) -unit_ts_internet_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_internet_DEPENDENCIES = libasio.a -am_unit_ts_io_context_OBJECTS = unit/ts/io_context.$(OBJEXT) -unit_ts_io_context_OBJECTS = $(am_unit_ts_io_context_OBJECTS) -unit_ts_io_context_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_io_context_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_ts_net_OBJECTS = unit/ts/net.$(OBJEXT) -unit_ts_net_OBJECTS = $(am_unit_ts_net_OBJECTS) -unit_ts_net_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_net_DEPENDENCIES = libasio.a -am_unit_ts_netfwd_OBJECTS = unit/ts/netfwd.$(OBJEXT) -unit_ts_netfwd_OBJECTS = $(am_unit_ts_netfwd_OBJECTS) -unit_ts_netfwd_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_netfwd_DEPENDENCIES = libasio.a -am_unit_ts_socket_OBJECTS = unit/ts/socket.$(OBJEXT) -unit_ts_socket_OBJECTS = $(am_unit_ts_socket_OBJECTS) -unit_ts_socket_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_socket_DEPENDENCIES = libasio.a -am_unit_ts_timer_OBJECTS = unit/ts/timer.$(OBJEXT) -unit_ts_timer_OBJECTS = $(am_unit_ts_timer_OBJECTS) -unit_ts_timer_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_ts_timer_DEPENDENCIES = libasio.a -am_unit_use_future_OBJECTS = unit/use_future.$(OBJEXT) -unit_use_future_OBJECTS = $(am_unit_use_future_OBJECTS) -unit_use_future_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_use_future_DEPENDENCIES = libasio.a -am_unit_uses_executor_OBJECTS = unit/uses_executor.$(OBJEXT) -unit_uses_executor_OBJECTS = $(am_unit_uses_executor_OBJECTS) -unit_uses_executor_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_uses_executor_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_wait_traits_OBJECTS = unit/wait_traits.$(OBJEXT) -unit_wait_traits_OBJECTS = $(am_unit_wait_traits_OBJECTS) -unit_wait_traits_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_wait_traits_DEPENDENCIES = libasio.a -am_unit_waitable_timer_service_OBJECTS = \ - unit/waitable_timer_service.$(OBJEXT) -unit_waitable_timer_service_OBJECTS = \ - $(am_unit_waitable_timer_service_OBJECTS) -unit_waitable_timer_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_waitable_timer_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_basic_handle_OBJECTS = \ - unit/windows/basic_handle.$(OBJEXT) -unit_windows_basic_handle_OBJECTS = \ - $(am_unit_windows_basic_handle_OBJECTS) -unit_windows_basic_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_basic_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_basic_object_handle_OBJECTS = \ - unit/windows/basic_object_handle.$(OBJEXT) -unit_windows_basic_object_handle_OBJECTS = \ - $(am_unit_windows_basic_object_handle_OBJECTS) -unit_windows_basic_object_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_basic_object_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_basic_random_access_handle_OBJECTS = \ - unit/windows/basic_random_access_handle.$(OBJEXT) -unit_windows_basic_random_access_handle_OBJECTS = \ - $(am_unit_windows_basic_random_access_handle_OBJECTS) -unit_windows_basic_random_access_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_basic_random_access_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_basic_stream_handle_OBJECTS = \ - unit/windows/basic_stream_handle.$(OBJEXT) -unit_windows_basic_stream_handle_OBJECTS = \ - $(am_unit_windows_basic_stream_handle_OBJECTS) -unit_windows_basic_stream_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_basic_stream_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_object_handle_OBJECTS = \ - unit/windows/object_handle.$(OBJEXT) -unit_windows_object_handle_OBJECTS = \ - $(am_unit_windows_object_handle_OBJECTS) -unit_windows_object_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_object_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_object_handle_service_OBJECTS = \ - unit/windows/object_handle_service.$(OBJEXT) -unit_windows_object_handle_service_OBJECTS = \ - $(am_unit_windows_object_handle_service_OBJECTS) -unit_windows_object_handle_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_object_handle_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_overlapped_handle_OBJECTS = \ - unit/windows/overlapped_handle.$(OBJEXT) -unit_windows_overlapped_handle_OBJECTS = \ - $(am_unit_windows_overlapped_handle_OBJECTS) -unit_windows_overlapped_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_overlapped_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_overlapped_ptr_OBJECTS = \ - unit/windows/overlapped_ptr.$(OBJEXT) -unit_windows_overlapped_ptr_OBJECTS = \ - $(am_unit_windows_overlapped_ptr_OBJECTS) -unit_windows_overlapped_ptr_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_overlapped_ptr_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_random_access_handle_OBJECTS = \ - unit/windows/random_access_handle.$(OBJEXT) -unit_windows_random_access_handle_OBJECTS = \ - $(am_unit_windows_random_access_handle_OBJECTS) -unit_windows_random_access_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_random_access_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_random_access_handle_service_OBJECTS = \ - unit/windows/random_access_handle_service.$(OBJEXT) -unit_windows_random_access_handle_service_OBJECTS = \ - $(am_unit_windows_random_access_handle_service_OBJECTS) -unit_windows_random_access_handle_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_random_access_handle_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_stream_handle_OBJECTS = \ - unit/windows/stream_handle.$(OBJEXT) -unit_windows_stream_handle_OBJECTS = \ - $(am_unit_windows_stream_handle_OBJECTS) -unit_windows_stream_handle_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_stream_handle_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_windows_stream_handle_service_OBJECTS = \ - unit/windows/stream_handle_service.$(OBJEXT) -unit_windows_stream_handle_service_OBJECTS = \ - $(am_unit_windows_stream_handle_service_OBJECTS) -unit_windows_stream_handle_service_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_windows_stream_handle_service_DEPENDENCIES = \ -@SEPARATE_COMPILATION_TRUE@ libasio.a -am_unit_write_OBJECTS = unit/write.$(OBJEXT) -unit_write_OBJECTS = $(am_unit_write_OBJECTS) -unit_write_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_write_DEPENDENCIES = libasio.a -am_unit_write_at_OBJECTS = unit/write_at.$(OBJEXT) -unit_write_at_OBJECTS = $(am_unit_write_at_OBJECTS) -unit_write_at_LDADD = $(LDADD) -@SEPARATE_COMPILATION_TRUE@unit_write_at_DEPENDENCIES = libasio.a -AM_V_P = $(am__v_P_@AM_V@) -am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) -am__v_P_0 = false -am__v_P_1 = : -AM_V_GEN = $(am__v_GEN_@AM_V@) -am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) -am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = -AM_V_at = $(am__v_at_@AM_V@) -am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) -am__v_at_0 = @ -am__v_at_1 = -DEFAULT_INCLUDES = -I.@am__isrc@ -depcomp = $(SHELL) $(top_srcdir)/depcomp -am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ../$(DEPDIR)/asio.Po ../$(DEPDIR)/asio_ssl.Po \ - latency/$(DEPDIR)/tcp_client.Po \ - latency/$(DEPDIR)/tcp_server.Po \ - latency/$(DEPDIR)/udp_client.Po \ - latency/$(DEPDIR)/udp_server.Po \ - performance/$(DEPDIR)/client.Po \ - performance/$(DEPDIR)/server.Po \ - unit/$(DEPDIR)/associated_allocator.Po \ - unit/$(DEPDIR)/associated_executor.Po \ - unit/$(DEPDIR)/async_result.Po \ - unit/$(DEPDIR)/basic_datagram_socket.Po \ - unit/$(DEPDIR)/basic_deadline_timer.Po \ - unit/$(DEPDIR)/basic_raw_socket.Po \ - unit/$(DEPDIR)/basic_seq_packet_socket.Po \ - unit/$(DEPDIR)/basic_serial_port.Po \ - unit/$(DEPDIR)/basic_signal_set.Po \ - unit/$(DEPDIR)/basic_socket_acceptor.Po \ - unit/$(DEPDIR)/basic_stream_socket.Po \ - unit/$(DEPDIR)/basic_streambuf.Po \ - unit/$(DEPDIR)/basic_waitable_timer.Po \ - unit/$(DEPDIR)/bind_executor.Po unit/$(DEPDIR)/buffer.Po \ - unit/$(DEPDIR)/buffered_read_stream.Po \ - unit/$(DEPDIR)/buffered_stream.Po \ - unit/$(DEPDIR)/buffered_write_stream.Po \ - unit/$(DEPDIR)/buffers_iterator.Po \ - unit/$(DEPDIR)/completion_condition.Po \ - unit/$(DEPDIR)/connect.Po unit/$(DEPDIR)/coroutine.Po \ - unit/$(DEPDIR)/datagram_socket_service.Po \ - unit/$(DEPDIR)/deadline_timer.Po \ - unit/$(DEPDIR)/deadline_timer_service.Po \ - unit/$(DEPDIR)/defer.Po unit/$(DEPDIR)/dispatch.Po \ - unit/$(DEPDIR)/error.Po unit/$(DEPDIR)/execution_context.Po \ - unit/$(DEPDIR)/executor.Po \ - unit/$(DEPDIR)/executor_work_guard.Po \ - unit/$(DEPDIR)/high_resolution_timer.Po \ - unit/$(DEPDIR)/io_context.Po \ - unit/$(DEPDIR)/is_read_buffered.Po \ - unit/$(DEPDIR)/is_write_buffered.Po \ - unit/$(DEPDIR)/packaged_task.Po unit/$(DEPDIR)/placeholders.Po \ - unit/$(DEPDIR)/post.Po unit/$(DEPDIR)/raw_socket_service.Po \ - unit/$(DEPDIR)/read.Po unit/$(DEPDIR)/read_at.Po \ - unit/$(DEPDIR)/read_until.Po \ - unit/$(DEPDIR)/seq_packet_socket_service.Po \ - unit/$(DEPDIR)/serial_port.Po \ - unit/$(DEPDIR)/serial_port_base.Po \ - unit/$(DEPDIR)/serial_port_service.Po \ - unit/$(DEPDIR)/signal_set.Po \ - unit/$(DEPDIR)/signal_set_service.Po \ - unit/$(DEPDIR)/socket_acceptor_service.Po \ - unit/$(DEPDIR)/socket_base.Po unit/$(DEPDIR)/steady_timer.Po \ - unit/$(DEPDIR)/strand.Po \ - unit/$(DEPDIR)/stream_socket_service.Po \ - unit/$(DEPDIR)/streambuf.Po unit/$(DEPDIR)/system_context.Po \ - unit/$(DEPDIR)/system_executor.Po \ - unit/$(DEPDIR)/system_timer.Po unit/$(DEPDIR)/thread.Po \ - unit/$(DEPDIR)/time_traits.Po unit/$(DEPDIR)/use_future.Po \ - unit/$(DEPDIR)/uses_executor.Po unit/$(DEPDIR)/wait_traits.Po \ - unit/$(DEPDIR)/waitable_timer_service.Po \ - unit/$(DEPDIR)/write.Po unit/$(DEPDIR)/write_at.Po \ - unit/generic/$(DEPDIR)/basic_endpoint.Po \ - unit/generic/$(DEPDIR)/datagram_protocol.Po \ - unit/generic/$(DEPDIR)/raw_protocol.Po \ - unit/generic/$(DEPDIR)/seq_packet_protocol.Po \ - unit/generic/$(DEPDIR)/stream_protocol.Po \ - unit/ip/$(DEPDIR)/address.Po unit/ip/$(DEPDIR)/address_v4.Po \ - unit/ip/$(DEPDIR)/address_v4_iterator.Po \ - unit/ip/$(DEPDIR)/address_v4_range.Po \ - unit/ip/$(DEPDIR)/address_v6.Po \ - unit/ip/$(DEPDIR)/address_v6_iterator.Po \ - unit/ip/$(DEPDIR)/address_v6_range.Po \ - unit/ip/$(DEPDIR)/basic_endpoint.Po \ - unit/ip/$(DEPDIR)/basic_resolver.Po \ - unit/ip/$(DEPDIR)/basic_resolver_entry.Po \ - unit/ip/$(DEPDIR)/basic_resolver_iterator.Po \ - unit/ip/$(DEPDIR)/basic_resolver_query.Po \ - unit/ip/$(DEPDIR)/host_name.Po unit/ip/$(DEPDIR)/icmp.Po \ - unit/ip/$(DEPDIR)/multicast.Po unit/ip/$(DEPDIR)/network_v4.Po \ - unit/ip/$(DEPDIR)/network_v6.Po \ - unit/ip/$(DEPDIR)/resolver_query_base.Po \ - unit/ip/$(DEPDIR)/resolver_service.Po unit/ip/$(DEPDIR)/tcp.Po \ - unit/ip/$(DEPDIR)/udp.Po unit/ip/$(DEPDIR)/unicast.Po \ - unit/ip/$(DEPDIR)/v6_only.Po \ - unit/local/$(DEPDIR)/basic_endpoint.Po \ - unit/local/$(DEPDIR)/connect_pair.Po \ - unit/local/$(DEPDIR)/datagram_protocol.Po \ - unit/local/$(DEPDIR)/stream_protocol.Po \ - unit/posix/$(DEPDIR)/basic_descriptor.Po \ - unit/posix/$(DEPDIR)/basic_stream_descriptor.Po \ - unit/posix/$(DEPDIR)/descriptor.Po \ - unit/posix/$(DEPDIR)/descriptor_base.Po \ - unit/posix/$(DEPDIR)/stream_descriptor.Po \ - unit/posix/$(DEPDIR)/stream_descriptor_service.Po \ - unit/ssl/$(DEPDIR)/context.Po \ - unit/ssl/$(DEPDIR)/context_base.Po unit/ssl/$(DEPDIR)/error.Po \ - unit/ssl/$(DEPDIR)/rfc2818_verification.Po \ - unit/ssl/$(DEPDIR)/stream.Po unit/ssl/$(DEPDIR)/stream_base.Po \ - unit/ts/$(DEPDIR)/buffer.Po unit/ts/$(DEPDIR)/executor.Po \ - unit/ts/$(DEPDIR)/internet.Po unit/ts/$(DEPDIR)/io_context.Po \ - unit/ts/$(DEPDIR)/net.Po unit/ts/$(DEPDIR)/netfwd.Po \ - unit/ts/$(DEPDIR)/socket.Po unit/ts/$(DEPDIR)/timer.Po \ - unit/windows/$(DEPDIR)/basic_handle.Po \ - unit/windows/$(DEPDIR)/basic_object_handle.Po \ - unit/windows/$(DEPDIR)/basic_random_access_handle.Po \ - unit/windows/$(DEPDIR)/basic_stream_handle.Po \ - unit/windows/$(DEPDIR)/object_handle.Po \ - unit/windows/$(DEPDIR)/object_handle_service.Po \ - unit/windows/$(DEPDIR)/overlapped_handle.Po \ - unit/windows/$(DEPDIR)/overlapped_ptr.Po \ - unit/windows/$(DEPDIR)/random_access_handle.Po \ - unit/windows/$(DEPDIR)/random_access_handle_service.Po \ - unit/windows/$(DEPDIR)/stream_handle.Po \ - unit/windows/$(DEPDIR)/stream_handle_service.Po -am__mv = mv -f -CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -AM_V_CXX = $(am__v_CXX_@AM_V@) -am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) -am__v_CXX_0 = @echo " CXX " $@; -am__v_CXX_1 = -CXXLD = $(CXX) -CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ - -o $@ -AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) -am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) -am__v_CXXLD_0 = @echo " CXXLD " $@; -am__v_CXXLD_1 = -SOURCES = $(libasio_a_SOURCES) $(latency_tcp_client_SOURCES) \ - $(latency_tcp_server_SOURCES) $(latency_udp_client_SOURCES) \ - $(latency_udp_server_SOURCES) $(performance_client_SOURCES) \ - $(performance_server_SOURCES) \ - $(unit_associated_allocator_SOURCES) \ - $(unit_associated_executor_SOURCES) \ - $(unit_async_result_SOURCES) \ - $(unit_basic_datagram_socket_SOURCES) \ - $(unit_basic_deadline_timer_SOURCES) \ - $(unit_basic_raw_socket_SOURCES) \ - $(unit_basic_seq_packet_socket_SOURCES) \ - $(unit_basic_serial_port_SOURCES) \ - $(unit_basic_signal_set_SOURCES) \ - $(unit_basic_socket_acceptor_SOURCES) \ - $(unit_basic_stream_socket_SOURCES) \ - $(unit_basic_streambuf_SOURCES) \ - $(unit_basic_waitable_timer_SOURCES) \ - $(unit_bind_executor_SOURCES) $(unit_buffer_SOURCES) \ - $(unit_buffered_read_stream_SOURCES) \ - $(unit_buffered_stream_SOURCES) \ - $(unit_buffered_write_stream_SOURCES) \ - $(unit_buffers_iterator_SOURCES) \ - $(unit_completion_condition_SOURCES) $(unit_connect_SOURCES) \ - $(unit_coroutine_SOURCES) \ - $(unit_datagram_socket_service_SOURCES) \ - $(unit_deadline_timer_SOURCES) \ - $(unit_deadline_timer_service_SOURCES) $(unit_defer_SOURCES) \ - $(unit_dispatch_SOURCES) $(unit_error_SOURCES) \ - $(unit_execution_context_SOURCES) $(unit_executor_SOURCES) \ - $(unit_executor_work_guard_SOURCES) \ - $(unit_generic_basic_endpoint_SOURCES) \ - $(unit_generic_datagram_protocol_SOURCES) \ - $(unit_generic_raw_protocol_SOURCES) \ - $(unit_generic_seq_packet_protocol_SOURCES) \ - $(unit_generic_stream_protocol_SOURCES) \ - $(unit_high_resolution_timer_SOURCES) \ - $(unit_io_context_SOURCES) $(unit_ip_address_SOURCES) \ - $(unit_ip_address_v4_SOURCES) \ - $(unit_ip_address_v4_iterator_SOURCES) \ - $(unit_ip_address_v4_range_SOURCES) \ - $(unit_ip_address_v6_SOURCES) \ - $(unit_ip_address_v6_iterator_SOURCES) \ - $(unit_ip_address_v6_range_SOURCES) \ - $(unit_ip_basic_endpoint_SOURCES) \ - $(unit_ip_basic_resolver_SOURCES) \ - $(unit_ip_basic_resolver_entry_SOURCES) \ - $(unit_ip_basic_resolver_iterator_SOURCES) \ - $(unit_ip_basic_resolver_query_SOURCES) \ - $(unit_ip_host_name_SOURCES) $(unit_ip_icmp_SOURCES) \ - $(unit_ip_multicast_SOURCES) $(unit_ip_network_v4_SOURCES) \ - $(unit_ip_network_v6_SOURCES) \ - $(unit_ip_resolver_query_base_SOURCES) \ - $(unit_ip_resolver_service_SOURCES) $(unit_ip_tcp_SOURCES) \ - $(unit_ip_udp_SOURCES) $(unit_ip_unicast_SOURCES) \ - $(unit_ip_v6_only_SOURCES) $(unit_is_read_buffered_SOURCES) \ - $(unit_is_write_buffered_SOURCES) \ - $(unit_local_basic_endpoint_SOURCES) \ - $(unit_local_connect_pair_SOURCES) \ - $(unit_local_datagram_protocol_SOURCES) \ - $(unit_local_stream_protocol_SOURCES) \ - $(unit_packaged_task_SOURCES) $(unit_placeholders_SOURCES) \ - $(unit_posix_basic_descriptor_SOURCES) \ - $(unit_posix_basic_stream_descriptor_SOURCES) \ - $(unit_posix_descriptor_SOURCES) \ - $(unit_posix_descriptor_base_SOURCES) \ - $(unit_posix_stream_descriptor_SOURCES) \ - $(unit_posix_stream_descriptor_service_SOURCES) \ - $(unit_post_SOURCES) $(unit_raw_socket_service_SOURCES) \ - $(unit_read_SOURCES) $(unit_read_at_SOURCES) \ - $(unit_read_until_SOURCES) \ - $(unit_seq_packet_socket_service_SOURCES) \ - $(unit_serial_port_SOURCES) $(unit_serial_port_base_SOURCES) \ - $(unit_serial_port_service_SOURCES) $(unit_signal_set_SOURCES) \ - $(unit_signal_set_service_SOURCES) \ - $(unit_socket_acceptor_service_SOURCES) \ - $(unit_socket_base_SOURCES) $(unit_ssl_context_SOURCES) \ - $(unit_ssl_context_base_SOURCES) $(unit_ssl_error_SOURCES) \ - $(unit_ssl_rfc2818_verification_SOURCES) \ - $(unit_ssl_stream_SOURCES) $(unit_ssl_stream_base_SOURCES) \ - $(unit_steady_timer_SOURCES) $(unit_strand_SOURCES) \ - $(unit_stream_socket_service_SOURCES) \ - $(unit_streambuf_SOURCES) $(unit_system_context_SOURCES) \ - $(unit_system_executor_SOURCES) $(unit_system_timer_SOURCES) \ - $(unit_thread_SOURCES) $(unit_time_traits_SOURCES) \ - $(unit_ts_buffer_SOURCES) $(unit_ts_executor_SOURCES) \ - $(unit_ts_internet_SOURCES) $(unit_ts_io_context_SOURCES) \ - $(unit_ts_net_SOURCES) $(unit_ts_netfwd_SOURCES) \ - $(unit_ts_socket_SOURCES) $(unit_ts_timer_SOURCES) \ - $(unit_use_future_SOURCES) $(unit_uses_executor_SOURCES) \ - $(unit_wait_traits_SOURCES) \ - $(unit_waitable_timer_service_SOURCES) \ - $(unit_windows_basic_handle_SOURCES) \ - $(unit_windows_basic_object_handle_SOURCES) \ - $(unit_windows_basic_random_access_handle_SOURCES) \ - $(unit_windows_basic_stream_handle_SOURCES) \ - $(unit_windows_object_handle_SOURCES) \ - $(unit_windows_object_handle_service_SOURCES) \ - $(unit_windows_overlapped_handle_SOURCES) \ - $(unit_windows_overlapped_ptr_SOURCES) \ - $(unit_windows_random_access_handle_SOURCES) \ - $(unit_windows_random_access_handle_service_SOURCES) \ - $(unit_windows_stream_handle_SOURCES) \ - $(unit_windows_stream_handle_service_SOURCES) \ - $(unit_write_SOURCES) $(unit_write_at_SOURCES) -DIST_SOURCES = $(am__libasio_a_SOURCES_DIST) \ - $(am__latency_tcp_client_SOURCES_DIST) \ - $(am__latency_tcp_server_SOURCES_DIST) \ - $(am__latency_udp_client_SOURCES_DIST) \ - $(am__latency_udp_server_SOURCES_DIST) \ - $(am__performance_client_SOURCES_DIST) \ - $(am__performance_server_SOURCES_DIST) \ - $(unit_associated_allocator_SOURCES) \ - $(unit_associated_executor_SOURCES) \ - $(unit_async_result_SOURCES) \ - $(unit_basic_datagram_socket_SOURCES) \ - $(unit_basic_deadline_timer_SOURCES) \ - $(unit_basic_raw_socket_SOURCES) \ - $(unit_basic_seq_packet_socket_SOURCES) \ - $(unit_basic_serial_port_SOURCES) \ - $(unit_basic_signal_set_SOURCES) \ - $(unit_basic_socket_acceptor_SOURCES) \ - $(unit_basic_stream_socket_SOURCES) \ - $(unit_basic_streambuf_SOURCES) \ - $(unit_basic_waitable_timer_SOURCES) \ - $(unit_bind_executor_SOURCES) $(unit_buffer_SOURCES) \ - $(unit_buffered_read_stream_SOURCES) \ - $(unit_buffered_stream_SOURCES) \ - $(unit_buffered_write_stream_SOURCES) \ - $(unit_buffers_iterator_SOURCES) \ - $(unit_completion_condition_SOURCES) $(unit_connect_SOURCES) \ - $(unit_coroutine_SOURCES) \ - $(unit_datagram_socket_service_SOURCES) \ - $(unit_deadline_timer_SOURCES) \ - $(unit_deadline_timer_service_SOURCES) $(unit_defer_SOURCES) \ - $(unit_dispatch_SOURCES) $(unit_error_SOURCES) \ - $(unit_execution_context_SOURCES) $(unit_executor_SOURCES) \ - $(unit_executor_work_guard_SOURCES) \ - $(unit_generic_basic_endpoint_SOURCES) \ - $(unit_generic_datagram_protocol_SOURCES) \ - $(unit_generic_raw_protocol_SOURCES) \ - $(unit_generic_seq_packet_protocol_SOURCES) \ - $(unit_generic_stream_protocol_SOURCES) \ - $(unit_high_resolution_timer_SOURCES) \ - $(unit_io_context_SOURCES) $(unit_ip_address_SOURCES) \ - $(unit_ip_address_v4_SOURCES) \ - $(unit_ip_address_v4_iterator_SOURCES) \ - $(unit_ip_address_v4_range_SOURCES) \ - $(unit_ip_address_v6_SOURCES) \ - $(unit_ip_address_v6_iterator_SOURCES) \ - $(unit_ip_address_v6_range_SOURCES) \ - $(unit_ip_basic_endpoint_SOURCES) \ - $(unit_ip_basic_resolver_SOURCES) \ - $(unit_ip_basic_resolver_entry_SOURCES) \ - $(unit_ip_basic_resolver_iterator_SOURCES) \ - $(unit_ip_basic_resolver_query_SOURCES) \ - $(unit_ip_host_name_SOURCES) $(unit_ip_icmp_SOURCES) \ - $(unit_ip_multicast_SOURCES) $(unit_ip_network_v4_SOURCES) \ - $(unit_ip_network_v6_SOURCES) \ - $(unit_ip_resolver_query_base_SOURCES) \ - $(unit_ip_resolver_service_SOURCES) $(unit_ip_tcp_SOURCES) \ - $(unit_ip_udp_SOURCES) $(unit_ip_unicast_SOURCES) \ - $(unit_ip_v6_only_SOURCES) $(unit_is_read_buffered_SOURCES) \ - $(unit_is_write_buffered_SOURCES) \ - $(unit_local_basic_endpoint_SOURCES) \ - $(unit_local_connect_pair_SOURCES) \ - $(unit_local_datagram_protocol_SOURCES) \ - $(unit_local_stream_protocol_SOURCES) \ - $(unit_packaged_task_SOURCES) $(unit_placeholders_SOURCES) \ - $(unit_posix_basic_descriptor_SOURCES) \ - $(unit_posix_basic_stream_descriptor_SOURCES) \ - $(unit_posix_descriptor_SOURCES) \ - $(unit_posix_descriptor_base_SOURCES) \ - $(unit_posix_stream_descriptor_SOURCES) \ - $(unit_posix_stream_descriptor_service_SOURCES) \ - $(unit_post_SOURCES) $(unit_raw_socket_service_SOURCES) \ - $(unit_read_SOURCES) $(unit_read_at_SOURCES) \ - $(unit_read_until_SOURCES) \ - $(unit_seq_packet_socket_service_SOURCES) \ - $(unit_serial_port_SOURCES) $(unit_serial_port_base_SOURCES) \ - $(unit_serial_port_service_SOURCES) $(unit_signal_set_SOURCES) \ - $(unit_signal_set_service_SOURCES) \ - $(unit_socket_acceptor_service_SOURCES) \ - $(unit_socket_base_SOURCES) \ - $(am__unit_ssl_context_SOURCES_DIST) \ - $(am__unit_ssl_context_base_SOURCES_DIST) \ - $(am__unit_ssl_error_SOURCES_DIST) \ - $(am__unit_ssl_rfc2818_verification_SOURCES_DIST) \ - $(am__unit_ssl_stream_SOURCES_DIST) \ - $(am__unit_ssl_stream_base_SOURCES_DIST) \ - $(unit_steady_timer_SOURCES) $(unit_strand_SOURCES) \ - $(unit_stream_socket_service_SOURCES) \ - $(unit_streambuf_SOURCES) $(unit_system_context_SOURCES) \ - $(unit_system_executor_SOURCES) $(unit_system_timer_SOURCES) \ - $(unit_thread_SOURCES) $(unit_time_traits_SOURCES) \ - $(unit_ts_buffer_SOURCES) $(unit_ts_executor_SOURCES) \ - $(unit_ts_internet_SOURCES) $(unit_ts_io_context_SOURCES) \ - $(unit_ts_net_SOURCES) $(unit_ts_netfwd_SOURCES) \ - $(unit_ts_socket_SOURCES) $(unit_ts_timer_SOURCES) \ - $(unit_use_future_SOURCES) $(unit_uses_executor_SOURCES) \ - $(unit_wait_traits_SOURCES) \ - $(unit_waitable_timer_service_SOURCES) \ - $(unit_windows_basic_handle_SOURCES) \ - $(unit_windows_basic_object_handle_SOURCES) \ - $(unit_windows_basic_random_access_handle_SOURCES) \ - $(unit_windows_basic_stream_handle_SOURCES) \ - $(unit_windows_object_handle_SOURCES) \ - $(unit_windows_object_handle_service_SOURCES) \ - $(unit_windows_overlapped_handle_SOURCES) \ - $(unit_windows_overlapped_ptr_SOURCES) \ - $(unit_windows_random_access_handle_SOURCES) \ - $(unit_windows_random_access_handle_service_SOURCES) \ - $(unit_windows_stream_handle_SOURCES) \ - $(unit_windows_stream_handle_service_SOURCES) \ - $(unit_write_SOURCES) $(unit_write_at_SOURCES) -am__can_run_installinfo = \ - case $$AM_UPDATE_INFO_DIR in \ - n|no|NO) false;; \ - *) (install-info --version) >/dev/null 2>&1;; \ - esac -HEADERS = $(noinst_HEADERS) -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) -# Read a list of newline-separated strings from the standard input, -# and print each of them once, without duplicates. Input order is -# *not* preserved. -am__uniquify_input = $(AWK) '\ - BEGIN { nonempty = 0; } \ - { items[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in items) print i; }; } \ -' -# Make sure the list of sources is unique. This is necessary because, -# e.g., the same source file might be shared among _SOURCES variables -# for different programs/libraries. -am__define_uniq_tagged_files = \ - list='$(am__tagged_files)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | $(am__uniquify_input)` -ETAGS = etags -CTAGS = ctags -am__tty_colors_dummy = \ - mgn= red= grn= lgn= blu= brg= std=; \ - am__color_tests=no -am__tty_colors = { \ - $(am__tty_colors_dummy); \ - if test "X$(AM_COLOR_TESTS)" = Xno; then \ - am__color_tests=no; \ - elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ - am__color_tests=yes; \ - elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ - am__color_tests=yes; \ - fi; \ - if test $$am__color_tests = yes; then \ - red=''; \ - grn=''; \ - lgn=''; \ - blu=''; \ - mgn=''; \ - brg=''; \ - std=''; \ - fi; \ -} -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; -am__vpath_adj = case $$p in \ - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ - *) f=$$p;; \ - esac; -am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; -am__install_max = 40 -am__nobase_strip_setup = \ - srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` -am__nobase_strip = \ - for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" -am__nobase_list = $(am__nobase_strip_setup); \ - for p in $$list; do echo "$$p $$p"; done | \ - sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ - $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ - if (++n[$$2] == $(am__install_max)) \ - { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ - END { for (dir in files) print dir, files[dir] }' -am__base_list = \ - sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ - sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' -am__uninstall_files_from_dir = { \ - test -z "$$files" \ - || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ - || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ - $(am__cd) "$$dir" && rm -f $$files; }; \ - } -am__recheck_rx = ^[ ]*:recheck:[ ]* -am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* -am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* -# A command that, given a newline-separated list of test names on the -# standard input, print the name of the tests that are to be re-run -# upon "make recheck". -am__list_recheck_tests = $(AWK) '{ \ - recheck = 1; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - { \ - if ((getline line2 < ($$0 ".log")) < 0) \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ - { \ - recheck = 0; \ - break; \ - } \ - else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ - { \ - break; \ - } \ - }; \ - if (recheck) \ - print $$0; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# A command that, given a newline-separated list of test names on the -# standard input, create the global log from their .trs and .log files. -am__create_global_log = $(AWK) ' \ -function fatal(msg) \ -{ \ - print "fatal: making $@: " msg | "cat >&2"; \ - exit 1; \ -} \ -function rst_section(header) \ -{ \ - print header; \ - len = length(header); \ - for (i = 1; i <= len; i = i + 1) \ - printf "="; \ - printf "\n\n"; \ -} \ -{ \ - copy_in_global_log = 1; \ - global_test_result = "RUN"; \ - while ((rc = (getline line < ($$0 ".trs"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".trs"); \ - if (line ~ /$(am__global_test_result_rx)/) \ - { \ - sub("$(am__global_test_result_rx)", "", line); \ - sub("[ ]*$$", "", line); \ - global_test_result = line; \ - } \ - else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ - copy_in_global_log = 0; \ - }; \ - if (copy_in_global_log) \ - { \ - rst_section(global_test_result ": " $$0); \ - while ((rc = (getline line < ($$0 ".log"))) != 0) \ - { \ - if (rc < 0) \ - fatal("failed to read from " $$0 ".log"); \ - print line; \ - }; \ - printf "\n"; \ - }; \ - close ($$0 ".trs"); \ - close ($$0 ".log"); \ -}' -# Restructured Text title. -am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } -# Solaris 10 'make', and several other traditional 'make' implementations, -# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it -# by disabling -e (using the XSI extension "set +e") if it's set. -am__sh_e_setup = case $$- in *e*) set +e;; esac -# Default flags passed to test drivers. -am__common_driver_flags = \ - --color-tests "$$am__color_tests" \ - --enable-hard-errors "$$am__enable_hard_errors" \ - --expect-failure "$$am__expect_failure" -# To be inserted before the command running the test. Creates the -# directory for the log if needed. Stores in $dir the directory -# containing $f, in $tst the test, in $log the log. Executes the -# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and -# passes TESTS_ENVIRONMENT. Set up options for the wrapper that -# will run the test scripts (or their associated LOG_COMPILER, if -# thy have one). -am__check_pre = \ -$(am__sh_e_setup); \ -$(am__vpath_adj_setup) $(am__vpath_adj) \ -$(am__tty_colors); \ -srcdir=$(srcdir); export srcdir; \ -case "$@" in \ - */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ - *) am__odir=.;; \ -esac; \ -test "x$$am__odir" = x"." || test -d "$$am__odir" \ - || $(MKDIR_P) "$$am__odir" || exit $$?; \ -if test -f "./$$f"; then dir=./; \ -elif test -f "$$f"; then dir=; \ -else dir="$(srcdir)/"; fi; \ -tst=$$dir$$f; log='$@'; \ -if test -n '$(DISABLE_HARD_ERRORS)'; then \ - am__enable_hard_errors=no; \ -else \ - am__enable_hard_errors=yes; \ -fi; \ -case " $(XFAIL_TESTS) " in \ - *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ - am__expect_failure=yes;; \ - *) \ - am__expect_failure=no;; \ -esac; \ -$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) -# A shell command to get the names of the tests scripts with any registered -# extension removed (i.e., equivalently, the names of the test logs, with -# the '.log' extension removed). The result is saved in the shell variable -# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, -# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", -# since that might cause problem with VPATH rewrites for suffix-less tests. -# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. -am__set_TESTS_bases = \ - bases='$(TEST_LOGS)'; \ - bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ - bases=`echo $$bases` -RECHECK_LOGS = $(TEST_LOGS) -AM_RECURSIVE_TARGETS = check recheck -TEST_SUITE_LOG = test-suite.log -TEST_EXTENSIONS = @EXEEXT@ .test -LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver -LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) -am__set_b = \ - case '$@' in \ - */*) \ - case '$*' in \ - */*) b='$*';; \ - *) b=`echo '$@' | sed 's/\.log$$//'`; \ - esac;; \ - *) \ - b='$*';; \ - esac -am__test_logs1 = $(TESTS:=.log) -am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) -TEST_LOGS = $(am__test_logs2:.test.log=.log) -TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver -TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ - $(TEST_LOG_FLAGS) -am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \ - $(top_srcdir)/test-driver -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -CXX = @CXX@ -CXXCPP = @CXXCPP@ -CXXDEPMODE = @CXXDEPMODE@ -CXXFLAGS = @CXXFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -GREP = @GREP@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAKEINFO = @MAKEINFO@ -MKDIR_P = @MKDIR_P@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_URL = @PACKAGE_URL@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -RANLIB = @RANLIB@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_CXX = @ac_ct_CXX@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build = @build@ -build_alias = @build_alias@ -build_cpu = @build_cpu@ -build_os = @build_os@ -build_vendor = @build_vendor@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host = @host@ -host_alias = @host_alias@ -host_cpu = @host_cpu@ -host_os = @host_os@ -host_vendor = @host_vendor@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_build_prefix = @top_build_prefix@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = subdir-objects -@SEPARATE_COMPILATION_TRUE@noinst_LIBRARIES = libasio.a -@SEPARATE_COMPILATION_TRUE@libasio_a_SOURCES = ../asio.cpp \ -@SEPARATE_COMPILATION_TRUE@ $(am__append_1) -@SEPARATE_COMPILATION_TRUE@LDADD = libasio.a -noinst_HEADERS = \ - latency/high_res_clock.hpp \ - unit/unit_test.hpp - -AM_CXXFLAGS = -I$(srcdir)/../../include -@STANDALONE_FALSE@latency_tcp_client_SOURCES = latency/tcp_client.cpp -@STANDALONE_FALSE@latency_tcp_server_SOURCES = latency/tcp_server.cpp -@STANDALONE_FALSE@latency_udp_client_SOURCES = latency/udp_client.cpp -@STANDALONE_FALSE@latency_udp_server_SOURCES = latency/udp_server.cpp -@STANDALONE_FALSE@performance_client_SOURCES = performance/client.cpp -@STANDALONE_FALSE@performance_server_SOURCES = performance/server.cpp -unit_associated_allocator_SOURCES = unit/associated_allocator.cpp -unit_associated_executor_SOURCES = unit/associated_executor.cpp -unit_async_result_SOURCES = unit/async_result.cpp -unit_basic_datagram_socket_SOURCES = unit/basic_datagram_socket.cpp -unit_basic_deadline_timer_SOURCES = unit/basic_deadline_timer.cpp -unit_basic_raw_socket_SOURCES = unit/basic_raw_socket.cpp -unit_basic_seq_packet_socket_SOURCES = unit/basic_seq_packet_socket.cpp -unit_basic_serial_port_SOURCES = unit/basic_serial_port.cpp -unit_basic_signal_set_SOURCES = unit/basic_signal_set.cpp -unit_basic_socket_acceptor_SOURCES = unit/basic_socket_acceptor.cpp -unit_basic_stream_socket_SOURCES = unit/basic_stream_socket.cpp -unit_basic_streambuf_SOURCES = unit/basic_streambuf.cpp -unit_basic_waitable_timer_SOURCES = unit/basic_waitable_timer.cpp -unit_bind_executor_SOURCES = unit/bind_executor.cpp -unit_buffer_SOURCES = unit/buffer.cpp -unit_buffers_iterator_SOURCES = unit/buffers_iterator.cpp -unit_buffered_read_stream_SOURCES = unit/buffered_read_stream.cpp -unit_buffered_stream_SOURCES = unit/buffered_stream.cpp -unit_buffered_write_stream_SOURCES = unit/buffered_write_stream.cpp -unit_completion_condition_SOURCES = unit/completion_condition.cpp -unit_connect_SOURCES = unit/connect.cpp -unit_coroutine_SOURCES = unit/coroutine.cpp -unit_datagram_socket_service_SOURCES = unit/datagram_socket_service.cpp -unit_deadline_timer_service_SOURCES = unit/deadline_timer_service.cpp -unit_deadline_timer_SOURCES = unit/deadline_timer.cpp -unit_defer_SOURCES = unit/defer.cpp -unit_dispatch_SOURCES = unit/dispatch.cpp -unit_error_SOURCES = unit/error.cpp -unit_execution_context_SOURCES = unit/execution_context.cpp -unit_executor_SOURCES = unit/executor.cpp -unit_executor_work_guard_SOURCES = unit/executor_work_guard.cpp -unit_generic_basic_endpoint_SOURCES = unit/generic/basic_endpoint.cpp -unit_generic_datagram_protocol_SOURCES = unit/generic/datagram_protocol.cpp -unit_generic_raw_protocol_SOURCES = unit/generic/raw_protocol.cpp -unit_generic_seq_packet_protocol_SOURCES = unit/generic/seq_packet_protocol.cpp -unit_generic_stream_protocol_SOURCES = unit/generic/stream_protocol.cpp -unit_high_resolution_timer_SOURCES = unit/high_resolution_timer.cpp -unit_io_context_SOURCES = unit/io_context.cpp -unit_ip_address_SOURCES = unit/ip/address.cpp -unit_ip_address_v4_SOURCES = unit/ip/address_v4.cpp -unit_ip_address_v4_iterator_SOURCES = unit/ip/address_v4_iterator.cpp -unit_ip_address_v4_range_SOURCES = unit/ip/address_v4_range.cpp -unit_ip_address_v6_SOURCES = unit/ip/address_v6.cpp -unit_ip_address_v6_iterator_SOURCES = unit/ip/address_v6_iterator.cpp -unit_ip_address_v6_range_SOURCES = unit/ip/address_v6_range.cpp -unit_ip_basic_endpoint_SOURCES = unit/ip/basic_endpoint.cpp -unit_ip_basic_resolver_SOURCES = unit/ip/basic_resolver.cpp -unit_ip_basic_resolver_entry_SOURCES = unit/ip/basic_resolver_entry.cpp -unit_ip_basic_resolver_iterator_SOURCES = unit/ip/basic_resolver_iterator.cpp -unit_ip_basic_resolver_query_SOURCES = unit/ip/basic_resolver_query.cpp -unit_ip_host_name_SOURCES = unit/ip/host_name.cpp -unit_ip_icmp_SOURCES = unit/ip/icmp.cpp -unit_ip_multicast_SOURCES = unit/ip/multicast.cpp -unit_ip_network_v4_SOURCES = unit/ip/network_v4.cpp -unit_ip_network_v6_SOURCES = unit/ip/network_v6.cpp -unit_ip_resolver_query_base_SOURCES = unit/ip/resolver_query_base.cpp -unit_ip_resolver_service_SOURCES = unit/ip/resolver_service.cpp -unit_ip_tcp_SOURCES = unit/ip/tcp.cpp -unit_ip_udp_SOURCES = unit/ip/udp.cpp -unit_ip_unicast_SOURCES = unit/ip/unicast.cpp -unit_ip_v6_only_SOURCES = unit/ip/v6_only.cpp -unit_is_read_buffered_SOURCES = unit/is_read_buffered.cpp -unit_is_write_buffered_SOURCES = unit/is_write_buffered.cpp -unit_local_basic_endpoint_SOURCES = unit/local/basic_endpoint.cpp -unit_local_connect_pair_SOURCES = unit/local/connect_pair.cpp -unit_local_datagram_protocol_SOURCES = unit/local/datagram_protocol.cpp -unit_local_stream_protocol_SOURCES = unit/local/stream_protocol.cpp -unit_packaged_task_SOURCES = unit/packaged_task.cpp -unit_placeholders_SOURCES = unit/placeholders.cpp -unit_posix_basic_descriptor_SOURCES = unit/posix/basic_descriptor.cpp -unit_posix_basic_stream_descriptor_SOURCES = unit/posix/basic_stream_descriptor.cpp -unit_posix_descriptor_SOURCES = unit/posix/descriptor.cpp -unit_posix_descriptor_base_SOURCES = unit/posix/descriptor_base.cpp -unit_posix_stream_descriptor_SOURCES = unit/posix/stream_descriptor.cpp -unit_posix_stream_descriptor_service_SOURCES = unit/posix/stream_descriptor_service.cpp -unit_post_SOURCES = unit/post.cpp -unit_raw_socket_service_SOURCES = unit/raw_socket_service.cpp -unit_read_SOURCES = unit/read.cpp -unit_read_at_SOURCES = unit/read_at.cpp -unit_read_until_SOURCES = unit/read_until.cpp -unit_seq_packet_socket_service_SOURCES = unit/seq_packet_socket_service.cpp -unit_serial_port_SOURCES = unit/serial_port.cpp -unit_serial_port_base_SOURCES = unit/serial_port_base.cpp -unit_serial_port_service_SOURCES = unit/serial_port_service.cpp -unit_signal_set_SOURCES = unit/signal_set.cpp -unit_signal_set_service_SOURCES = unit/signal_set_service.cpp -unit_socket_acceptor_service_SOURCES = unit/socket_acceptor_service.cpp -unit_socket_base_SOURCES = unit/socket_base.cpp -unit_steady_timer_SOURCES = unit/steady_timer.cpp -unit_strand_SOURCES = unit/strand.cpp -unit_stream_socket_service_SOURCES = unit/stream_socket_service.cpp -unit_streambuf_SOURCES = unit/streambuf.cpp -unit_system_context_SOURCES = unit/system_context.cpp -unit_system_executor_SOURCES = unit/system_executor.cpp -unit_system_timer_SOURCES = unit/system_timer.cpp -unit_thread_SOURCES = unit/thread.cpp -unit_time_traits_SOURCES = unit/time_traits.cpp -unit_ts_buffer_SOURCES = unit/ts/buffer.cpp -unit_ts_executor_SOURCES = unit/ts/executor.cpp -unit_ts_internet_SOURCES = unit/ts/internet.cpp -unit_ts_io_context_SOURCES = unit/ts/io_context.cpp -unit_ts_net_SOURCES = unit/ts/net.cpp -unit_ts_netfwd_SOURCES = unit/ts/netfwd.cpp -unit_ts_socket_SOURCES = unit/ts/socket.cpp -unit_ts_timer_SOURCES = unit/ts/timer.cpp -unit_use_future_SOURCES = unit/use_future.cpp -unit_uses_executor_SOURCES = unit/uses_executor.cpp -unit_wait_traits_SOURCES = unit/wait_traits.cpp -unit_waitable_timer_service_SOURCES = unit/waitable_timer_service.cpp -unit_windows_basic_handle_SOURCES = unit/windows/basic_handle.cpp -unit_windows_basic_object_handle_SOURCES = unit/windows/basic_object_handle.cpp -unit_windows_basic_random_access_handle_SOURCES = unit/windows/basic_random_access_handle.cpp -unit_windows_basic_stream_handle_SOURCES = unit/windows/basic_stream_handle.cpp -unit_windows_object_handle_SOURCES = unit/windows/object_handle.cpp -unit_windows_object_handle_service_SOURCES = unit/windows/object_handle_service.cpp -unit_windows_overlapped_handle_SOURCES = unit/windows/overlapped_handle.cpp -unit_windows_overlapped_ptr_SOURCES = unit/windows/overlapped_ptr.cpp -unit_windows_random_access_handle_SOURCES = unit/windows/random_access_handle.cpp -unit_windows_random_access_handle_service_SOURCES = unit/windows/random_access_handle_service.cpp -unit_windows_stream_handle_SOURCES = unit/windows/stream_handle.cpp -unit_windows_stream_handle_service_SOURCES = unit/windows/stream_handle_service.cpp -unit_write_SOURCES = unit/write.cpp -unit_write_at_SOURCES = unit/write_at.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_context_base_SOURCES = unit/ssl/context_base.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_context_SOURCES = unit/ssl/context.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_error_SOURCES = unit/ssl/error.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_stream_base_SOURCES = unit/ssl/stream_base.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_rfc2818_verification_SOURCES = unit/ssl/rfc2818_verification.cpp -@HAVE_OPENSSL_TRUE@unit_ssl_stream_SOURCES = unit/ssl/stream.cpp -EXTRA_DIST = \ - latency/allocator.hpp \ - performance/handler_allocator.hpp \ - unit/archetypes/async_ops.hpp \ - unit/archetypes/async_result.hpp \ - unit/archetypes/deprecated_async_result.hpp \ - unit/archetypes/deprecated_async_ops.hpp \ - unit/archetypes/gettable_socket_option.hpp \ - unit/archetypes/io_control_command.hpp \ - unit/archetypes/settable_socket_option.hpp - -MAINTAINERCLEANFILES = \ - $(srcdir)/Makefile.in - -all: all-am - -.SUFFIXES: -.SUFFIXES: .cpp .log .o .obj .test .test$(EXEEXT) .trs -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ - && { if test -f $@; then exit 0; else break; fi; }; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/tests/Makefile'; \ - $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/tests/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(am__aclocal_m4_deps): - -clean-checkPROGRAMS: - -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) - -clean-noinstPROGRAMS: - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -../$(am__dirstamp): - @$(MKDIR_P) .. - @: > ../$(am__dirstamp) -../$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) ../$(DEPDIR) - @: > ../$(DEPDIR)/$(am__dirstamp) -../asio.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) -../asio_ssl.$(OBJEXT): ../$(am__dirstamp) ../$(DEPDIR)/$(am__dirstamp) - -libasio.a: $(libasio_a_OBJECTS) $(libasio_a_DEPENDENCIES) $(EXTRA_libasio_a_DEPENDENCIES) - $(AM_V_at)-rm -f libasio.a - $(AM_V_AR)$(libasio_a_AR) libasio.a $(libasio_a_OBJECTS) $(libasio_a_LIBADD) - $(AM_V_at)$(RANLIB) libasio.a -latency/$(am__dirstamp): - @$(MKDIR_P) latency - @: > latency/$(am__dirstamp) -latency/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) latency/$(DEPDIR) - @: > latency/$(DEPDIR)/$(am__dirstamp) -latency/tcp_client.$(OBJEXT): latency/$(am__dirstamp) \ - latency/$(DEPDIR)/$(am__dirstamp) - -latency/tcp_client$(EXEEXT): $(latency_tcp_client_OBJECTS) $(latency_tcp_client_DEPENDENCIES) $(EXTRA_latency_tcp_client_DEPENDENCIES) latency/$(am__dirstamp) - @rm -f latency/tcp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(latency_tcp_client_OBJECTS) $(latency_tcp_client_LDADD) $(LIBS) -latency/tcp_server.$(OBJEXT): latency/$(am__dirstamp) \ - latency/$(DEPDIR)/$(am__dirstamp) - -latency/tcp_server$(EXEEXT): $(latency_tcp_server_OBJECTS) $(latency_tcp_server_DEPENDENCIES) $(EXTRA_latency_tcp_server_DEPENDENCIES) latency/$(am__dirstamp) - @rm -f latency/tcp_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(latency_tcp_server_OBJECTS) $(latency_tcp_server_LDADD) $(LIBS) -latency/udp_client.$(OBJEXT): latency/$(am__dirstamp) \ - latency/$(DEPDIR)/$(am__dirstamp) - -latency/udp_client$(EXEEXT): $(latency_udp_client_OBJECTS) $(latency_udp_client_DEPENDENCIES) $(EXTRA_latency_udp_client_DEPENDENCIES) latency/$(am__dirstamp) - @rm -f latency/udp_client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(latency_udp_client_OBJECTS) $(latency_udp_client_LDADD) $(LIBS) -latency/udp_server.$(OBJEXT): latency/$(am__dirstamp) \ - latency/$(DEPDIR)/$(am__dirstamp) - -latency/udp_server$(EXEEXT): $(latency_udp_server_OBJECTS) $(latency_udp_server_DEPENDENCIES) $(EXTRA_latency_udp_server_DEPENDENCIES) latency/$(am__dirstamp) - @rm -f latency/udp_server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(latency_udp_server_OBJECTS) $(latency_udp_server_LDADD) $(LIBS) -performance/$(am__dirstamp): - @$(MKDIR_P) performance - @: > performance/$(am__dirstamp) -performance/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) performance/$(DEPDIR) - @: > performance/$(DEPDIR)/$(am__dirstamp) -performance/client.$(OBJEXT): performance/$(am__dirstamp) \ - performance/$(DEPDIR)/$(am__dirstamp) - -performance/client$(EXEEXT): $(performance_client_OBJECTS) $(performance_client_DEPENDENCIES) $(EXTRA_performance_client_DEPENDENCIES) performance/$(am__dirstamp) - @rm -f performance/client$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(performance_client_OBJECTS) $(performance_client_LDADD) $(LIBS) -performance/server.$(OBJEXT): performance/$(am__dirstamp) \ - performance/$(DEPDIR)/$(am__dirstamp) - -performance/server$(EXEEXT): $(performance_server_OBJECTS) $(performance_server_DEPENDENCIES) $(EXTRA_performance_server_DEPENDENCIES) performance/$(am__dirstamp) - @rm -f performance/server$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(performance_server_OBJECTS) $(performance_server_LDADD) $(LIBS) -unit/$(am__dirstamp): - @$(MKDIR_P) unit - @: > unit/$(am__dirstamp) -unit/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/$(DEPDIR) - @: > unit/$(DEPDIR)/$(am__dirstamp) -unit/associated_allocator.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/associated_allocator$(EXEEXT): $(unit_associated_allocator_OBJECTS) $(unit_associated_allocator_DEPENDENCIES) $(EXTRA_unit_associated_allocator_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/associated_allocator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_associated_allocator_OBJECTS) $(unit_associated_allocator_LDADD) $(LIBS) -unit/associated_executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/associated_executor$(EXEEXT): $(unit_associated_executor_OBJECTS) $(unit_associated_executor_DEPENDENCIES) $(EXTRA_unit_associated_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/associated_executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_associated_executor_OBJECTS) $(unit_associated_executor_LDADD) $(LIBS) -unit/async_result.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/async_result$(EXEEXT): $(unit_async_result_OBJECTS) $(unit_async_result_DEPENDENCIES) $(EXTRA_unit_async_result_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/async_result$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_async_result_OBJECTS) $(unit_async_result_LDADD) $(LIBS) -unit/basic_datagram_socket.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_datagram_socket$(EXEEXT): $(unit_basic_datagram_socket_OBJECTS) $(unit_basic_datagram_socket_DEPENDENCIES) $(EXTRA_unit_basic_datagram_socket_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_datagram_socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_datagram_socket_OBJECTS) $(unit_basic_datagram_socket_LDADD) $(LIBS) -unit/basic_deadline_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_deadline_timer$(EXEEXT): $(unit_basic_deadline_timer_OBJECTS) $(unit_basic_deadline_timer_DEPENDENCIES) $(EXTRA_unit_basic_deadline_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_deadline_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_deadline_timer_OBJECTS) $(unit_basic_deadline_timer_LDADD) $(LIBS) -unit/basic_raw_socket.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_raw_socket$(EXEEXT): $(unit_basic_raw_socket_OBJECTS) $(unit_basic_raw_socket_DEPENDENCIES) $(EXTRA_unit_basic_raw_socket_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_raw_socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_raw_socket_OBJECTS) $(unit_basic_raw_socket_LDADD) $(LIBS) -unit/basic_seq_packet_socket.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_seq_packet_socket$(EXEEXT): $(unit_basic_seq_packet_socket_OBJECTS) $(unit_basic_seq_packet_socket_DEPENDENCIES) $(EXTRA_unit_basic_seq_packet_socket_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_seq_packet_socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_seq_packet_socket_OBJECTS) $(unit_basic_seq_packet_socket_LDADD) $(LIBS) -unit/basic_serial_port.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_serial_port$(EXEEXT): $(unit_basic_serial_port_OBJECTS) $(unit_basic_serial_port_DEPENDENCIES) $(EXTRA_unit_basic_serial_port_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_serial_port$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_serial_port_OBJECTS) $(unit_basic_serial_port_LDADD) $(LIBS) -unit/basic_signal_set.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_signal_set$(EXEEXT): $(unit_basic_signal_set_OBJECTS) $(unit_basic_signal_set_DEPENDENCIES) $(EXTRA_unit_basic_signal_set_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_signal_set$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_signal_set_OBJECTS) $(unit_basic_signal_set_LDADD) $(LIBS) -unit/basic_socket_acceptor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_socket_acceptor$(EXEEXT): $(unit_basic_socket_acceptor_OBJECTS) $(unit_basic_socket_acceptor_DEPENDENCIES) $(EXTRA_unit_basic_socket_acceptor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_socket_acceptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_socket_acceptor_OBJECTS) $(unit_basic_socket_acceptor_LDADD) $(LIBS) -unit/basic_stream_socket.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_stream_socket$(EXEEXT): $(unit_basic_stream_socket_OBJECTS) $(unit_basic_stream_socket_DEPENDENCIES) $(EXTRA_unit_basic_stream_socket_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_stream_socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_stream_socket_OBJECTS) $(unit_basic_stream_socket_LDADD) $(LIBS) -unit/basic_streambuf.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_streambuf$(EXEEXT): $(unit_basic_streambuf_OBJECTS) $(unit_basic_streambuf_DEPENDENCIES) $(EXTRA_unit_basic_streambuf_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_streambuf$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_streambuf_OBJECTS) $(unit_basic_streambuf_LDADD) $(LIBS) -unit/basic_waitable_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/basic_waitable_timer$(EXEEXT): $(unit_basic_waitable_timer_OBJECTS) $(unit_basic_waitable_timer_DEPENDENCIES) $(EXTRA_unit_basic_waitable_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/basic_waitable_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_basic_waitable_timer_OBJECTS) $(unit_basic_waitable_timer_LDADD) $(LIBS) -unit/bind_executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/bind_executor$(EXEEXT): $(unit_bind_executor_OBJECTS) $(unit_bind_executor_DEPENDENCIES) $(EXTRA_unit_bind_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/bind_executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_bind_executor_OBJECTS) $(unit_bind_executor_LDADD) $(LIBS) -unit/buffer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffer$(EXEEXT): $(unit_buffer_OBJECTS) $(unit_buffer_DEPENDENCIES) $(EXTRA_unit_buffer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffer_OBJECTS) $(unit_buffer_LDADD) $(LIBS) -unit/buffered_read_stream.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffered_read_stream$(EXEEXT): $(unit_buffered_read_stream_OBJECTS) $(unit_buffered_read_stream_DEPENDENCIES) $(EXTRA_unit_buffered_read_stream_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffered_read_stream$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffered_read_stream_OBJECTS) $(unit_buffered_read_stream_LDADD) $(LIBS) -unit/buffered_stream.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffered_stream$(EXEEXT): $(unit_buffered_stream_OBJECTS) $(unit_buffered_stream_DEPENDENCIES) $(EXTRA_unit_buffered_stream_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffered_stream$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffered_stream_OBJECTS) $(unit_buffered_stream_LDADD) $(LIBS) -unit/buffered_write_stream.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffered_write_stream$(EXEEXT): $(unit_buffered_write_stream_OBJECTS) $(unit_buffered_write_stream_DEPENDENCIES) $(EXTRA_unit_buffered_write_stream_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffered_write_stream$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffered_write_stream_OBJECTS) $(unit_buffered_write_stream_LDADD) $(LIBS) -unit/buffers_iterator.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/buffers_iterator$(EXEEXT): $(unit_buffers_iterator_OBJECTS) $(unit_buffers_iterator_DEPENDENCIES) $(EXTRA_unit_buffers_iterator_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/buffers_iterator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_buffers_iterator_OBJECTS) $(unit_buffers_iterator_LDADD) $(LIBS) -unit/completion_condition.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/completion_condition$(EXEEXT): $(unit_completion_condition_OBJECTS) $(unit_completion_condition_DEPENDENCIES) $(EXTRA_unit_completion_condition_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/completion_condition$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_completion_condition_OBJECTS) $(unit_completion_condition_LDADD) $(LIBS) -unit/connect.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/connect$(EXEEXT): $(unit_connect_OBJECTS) $(unit_connect_DEPENDENCIES) $(EXTRA_unit_connect_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/connect$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_connect_OBJECTS) $(unit_connect_LDADD) $(LIBS) -unit/coroutine.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/coroutine$(EXEEXT): $(unit_coroutine_OBJECTS) $(unit_coroutine_DEPENDENCIES) $(EXTRA_unit_coroutine_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/coroutine$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_coroutine_OBJECTS) $(unit_coroutine_LDADD) $(LIBS) -unit/datagram_socket_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/datagram_socket_service$(EXEEXT): $(unit_datagram_socket_service_OBJECTS) $(unit_datagram_socket_service_DEPENDENCIES) $(EXTRA_unit_datagram_socket_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/datagram_socket_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_datagram_socket_service_OBJECTS) $(unit_datagram_socket_service_LDADD) $(LIBS) -unit/deadline_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/deadline_timer$(EXEEXT): $(unit_deadline_timer_OBJECTS) $(unit_deadline_timer_DEPENDENCIES) $(EXTRA_unit_deadline_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/deadline_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_deadline_timer_OBJECTS) $(unit_deadline_timer_LDADD) $(LIBS) -unit/deadline_timer_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/deadline_timer_service$(EXEEXT): $(unit_deadline_timer_service_OBJECTS) $(unit_deadline_timer_service_DEPENDENCIES) $(EXTRA_unit_deadline_timer_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/deadline_timer_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_deadline_timer_service_OBJECTS) $(unit_deadline_timer_service_LDADD) $(LIBS) -unit/defer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/defer$(EXEEXT): $(unit_defer_OBJECTS) $(unit_defer_DEPENDENCIES) $(EXTRA_unit_defer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/defer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_defer_OBJECTS) $(unit_defer_LDADD) $(LIBS) -unit/dispatch.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/dispatch$(EXEEXT): $(unit_dispatch_OBJECTS) $(unit_dispatch_DEPENDENCIES) $(EXTRA_unit_dispatch_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/dispatch$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_dispatch_OBJECTS) $(unit_dispatch_LDADD) $(LIBS) -unit/error.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/error$(EXEEXT): $(unit_error_OBJECTS) $(unit_error_DEPENDENCIES) $(EXTRA_unit_error_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/error$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_error_OBJECTS) $(unit_error_LDADD) $(LIBS) -unit/execution_context.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/execution_context$(EXEEXT): $(unit_execution_context_OBJECTS) $(unit_execution_context_DEPENDENCIES) $(EXTRA_unit_execution_context_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/execution_context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_execution_context_OBJECTS) $(unit_execution_context_LDADD) $(LIBS) -unit/executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/executor$(EXEEXT): $(unit_executor_OBJECTS) $(unit_executor_DEPENDENCIES) $(EXTRA_unit_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_executor_OBJECTS) $(unit_executor_LDADD) $(LIBS) -unit/executor_work_guard.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/executor_work_guard$(EXEEXT): $(unit_executor_work_guard_OBJECTS) $(unit_executor_work_guard_DEPENDENCIES) $(EXTRA_unit_executor_work_guard_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/executor_work_guard$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_executor_work_guard_OBJECTS) $(unit_executor_work_guard_LDADD) $(LIBS) -unit/generic/$(am__dirstamp): - @$(MKDIR_P) unit/generic - @: > unit/generic/$(am__dirstamp) -unit/generic/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/generic/$(DEPDIR) - @: > unit/generic/$(DEPDIR)/$(am__dirstamp) -unit/generic/basic_endpoint.$(OBJEXT): unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/basic_endpoint$(EXEEXT): $(unit_generic_basic_endpoint_OBJECTS) $(unit_generic_basic_endpoint_DEPENDENCIES) $(EXTRA_unit_generic_basic_endpoint_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/basic_endpoint$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_basic_endpoint_OBJECTS) $(unit_generic_basic_endpoint_LDADD) $(LIBS) -unit/generic/datagram_protocol.$(OBJEXT): \ - unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/datagram_protocol$(EXEEXT): $(unit_generic_datagram_protocol_OBJECTS) $(unit_generic_datagram_protocol_DEPENDENCIES) $(EXTRA_unit_generic_datagram_protocol_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/datagram_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_datagram_protocol_OBJECTS) $(unit_generic_datagram_protocol_LDADD) $(LIBS) -unit/generic/raw_protocol.$(OBJEXT): unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/raw_protocol$(EXEEXT): $(unit_generic_raw_protocol_OBJECTS) $(unit_generic_raw_protocol_DEPENDENCIES) $(EXTRA_unit_generic_raw_protocol_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/raw_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_raw_protocol_OBJECTS) $(unit_generic_raw_protocol_LDADD) $(LIBS) -unit/generic/seq_packet_protocol.$(OBJEXT): \ - unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/seq_packet_protocol$(EXEEXT): $(unit_generic_seq_packet_protocol_OBJECTS) $(unit_generic_seq_packet_protocol_DEPENDENCIES) $(EXTRA_unit_generic_seq_packet_protocol_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/seq_packet_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_seq_packet_protocol_OBJECTS) $(unit_generic_seq_packet_protocol_LDADD) $(LIBS) -unit/generic/stream_protocol.$(OBJEXT): unit/generic/$(am__dirstamp) \ - unit/generic/$(DEPDIR)/$(am__dirstamp) - -unit/generic/stream_protocol$(EXEEXT): $(unit_generic_stream_protocol_OBJECTS) $(unit_generic_stream_protocol_DEPENDENCIES) $(EXTRA_unit_generic_stream_protocol_DEPENDENCIES) unit/generic/$(am__dirstamp) - @rm -f unit/generic/stream_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_generic_stream_protocol_OBJECTS) $(unit_generic_stream_protocol_LDADD) $(LIBS) -unit/high_resolution_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/high_resolution_timer$(EXEEXT): $(unit_high_resolution_timer_OBJECTS) $(unit_high_resolution_timer_DEPENDENCIES) $(EXTRA_unit_high_resolution_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/high_resolution_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_high_resolution_timer_OBJECTS) $(unit_high_resolution_timer_LDADD) $(LIBS) -unit/io_context.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/io_context$(EXEEXT): $(unit_io_context_OBJECTS) $(unit_io_context_DEPENDENCIES) $(EXTRA_unit_io_context_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/io_context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_io_context_OBJECTS) $(unit_io_context_LDADD) $(LIBS) -unit/ip/$(am__dirstamp): - @$(MKDIR_P) unit/ip - @: > unit/ip/$(am__dirstamp) -unit/ip/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/ip/$(DEPDIR) - @: > unit/ip/$(DEPDIR)/$(am__dirstamp) -unit/ip/address.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address$(EXEEXT): $(unit_ip_address_OBJECTS) $(unit_ip_address_DEPENDENCIES) $(EXTRA_unit_ip_address_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_OBJECTS) $(unit_ip_address_LDADD) $(LIBS) -unit/ip/address_v4.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v4$(EXEEXT): $(unit_ip_address_v4_OBJECTS) $(unit_ip_address_v4_DEPENDENCIES) $(EXTRA_unit_ip_address_v4_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v4$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v4_OBJECTS) $(unit_ip_address_v4_LDADD) $(LIBS) -unit/ip/address_v4_iterator.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v4_iterator$(EXEEXT): $(unit_ip_address_v4_iterator_OBJECTS) $(unit_ip_address_v4_iterator_DEPENDENCIES) $(EXTRA_unit_ip_address_v4_iterator_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v4_iterator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v4_iterator_OBJECTS) $(unit_ip_address_v4_iterator_LDADD) $(LIBS) -unit/ip/address_v4_range.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v4_range$(EXEEXT): $(unit_ip_address_v4_range_OBJECTS) $(unit_ip_address_v4_range_DEPENDENCIES) $(EXTRA_unit_ip_address_v4_range_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v4_range$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v4_range_OBJECTS) $(unit_ip_address_v4_range_LDADD) $(LIBS) -unit/ip/address_v6.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v6$(EXEEXT): $(unit_ip_address_v6_OBJECTS) $(unit_ip_address_v6_DEPENDENCIES) $(EXTRA_unit_ip_address_v6_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v6$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v6_OBJECTS) $(unit_ip_address_v6_LDADD) $(LIBS) -unit/ip/address_v6_iterator.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v6_iterator$(EXEEXT): $(unit_ip_address_v6_iterator_OBJECTS) $(unit_ip_address_v6_iterator_DEPENDENCIES) $(EXTRA_unit_ip_address_v6_iterator_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v6_iterator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v6_iterator_OBJECTS) $(unit_ip_address_v6_iterator_LDADD) $(LIBS) -unit/ip/address_v6_range.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/address_v6_range$(EXEEXT): $(unit_ip_address_v6_range_OBJECTS) $(unit_ip_address_v6_range_DEPENDENCIES) $(EXTRA_unit_ip_address_v6_range_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/address_v6_range$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_address_v6_range_OBJECTS) $(unit_ip_address_v6_range_LDADD) $(LIBS) -unit/ip/basic_endpoint.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_endpoint$(EXEEXT): $(unit_ip_basic_endpoint_OBJECTS) $(unit_ip_basic_endpoint_DEPENDENCIES) $(EXTRA_unit_ip_basic_endpoint_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_endpoint$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_endpoint_OBJECTS) $(unit_ip_basic_endpoint_LDADD) $(LIBS) -unit/ip/basic_resolver.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_resolver$(EXEEXT): $(unit_ip_basic_resolver_OBJECTS) $(unit_ip_basic_resolver_DEPENDENCIES) $(EXTRA_unit_ip_basic_resolver_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_resolver$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_resolver_OBJECTS) $(unit_ip_basic_resolver_LDADD) $(LIBS) -unit/ip/basic_resolver_entry.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_resolver_entry$(EXEEXT): $(unit_ip_basic_resolver_entry_OBJECTS) $(unit_ip_basic_resolver_entry_DEPENDENCIES) $(EXTRA_unit_ip_basic_resolver_entry_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_resolver_entry$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_resolver_entry_OBJECTS) $(unit_ip_basic_resolver_entry_LDADD) $(LIBS) -unit/ip/basic_resolver_iterator.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_resolver_iterator$(EXEEXT): $(unit_ip_basic_resolver_iterator_OBJECTS) $(unit_ip_basic_resolver_iterator_DEPENDENCIES) $(EXTRA_unit_ip_basic_resolver_iterator_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_resolver_iterator$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_resolver_iterator_OBJECTS) $(unit_ip_basic_resolver_iterator_LDADD) $(LIBS) -unit/ip/basic_resolver_query.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/basic_resolver_query$(EXEEXT): $(unit_ip_basic_resolver_query_OBJECTS) $(unit_ip_basic_resolver_query_DEPENDENCIES) $(EXTRA_unit_ip_basic_resolver_query_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/basic_resolver_query$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_basic_resolver_query_OBJECTS) $(unit_ip_basic_resolver_query_LDADD) $(LIBS) -unit/ip/host_name.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/host_name$(EXEEXT): $(unit_ip_host_name_OBJECTS) $(unit_ip_host_name_DEPENDENCIES) $(EXTRA_unit_ip_host_name_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/host_name$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_host_name_OBJECTS) $(unit_ip_host_name_LDADD) $(LIBS) -unit/ip/icmp.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/icmp$(EXEEXT): $(unit_ip_icmp_OBJECTS) $(unit_ip_icmp_DEPENDENCIES) $(EXTRA_unit_ip_icmp_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/icmp$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_icmp_OBJECTS) $(unit_ip_icmp_LDADD) $(LIBS) -unit/ip/multicast.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/multicast$(EXEEXT): $(unit_ip_multicast_OBJECTS) $(unit_ip_multicast_DEPENDENCIES) $(EXTRA_unit_ip_multicast_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/multicast$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_multicast_OBJECTS) $(unit_ip_multicast_LDADD) $(LIBS) -unit/ip/network_v4.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/network_v4$(EXEEXT): $(unit_ip_network_v4_OBJECTS) $(unit_ip_network_v4_DEPENDENCIES) $(EXTRA_unit_ip_network_v4_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/network_v4$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_network_v4_OBJECTS) $(unit_ip_network_v4_LDADD) $(LIBS) -unit/ip/network_v6.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/network_v6$(EXEEXT): $(unit_ip_network_v6_OBJECTS) $(unit_ip_network_v6_DEPENDENCIES) $(EXTRA_unit_ip_network_v6_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/network_v6$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_network_v6_OBJECTS) $(unit_ip_network_v6_LDADD) $(LIBS) -unit/ip/resolver_query_base.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/resolver_query_base$(EXEEXT): $(unit_ip_resolver_query_base_OBJECTS) $(unit_ip_resolver_query_base_DEPENDENCIES) $(EXTRA_unit_ip_resolver_query_base_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/resolver_query_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_resolver_query_base_OBJECTS) $(unit_ip_resolver_query_base_LDADD) $(LIBS) -unit/ip/resolver_service.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/resolver_service$(EXEEXT): $(unit_ip_resolver_service_OBJECTS) $(unit_ip_resolver_service_DEPENDENCIES) $(EXTRA_unit_ip_resolver_service_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/resolver_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_resolver_service_OBJECTS) $(unit_ip_resolver_service_LDADD) $(LIBS) -unit/ip/tcp.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/tcp$(EXEEXT): $(unit_ip_tcp_OBJECTS) $(unit_ip_tcp_DEPENDENCIES) $(EXTRA_unit_ip_tcp_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/tcp$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_tcp_OBJECTS) $(unit_ip_tcp_LDADD) $(LIBS) -unit/ip/udp.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/udp$(EXEEXT): $(unit_ip_udp_OBJECTS) $(unit_ip_udp_DEPENDENCIES) $(EXTRA_unit_ip_udp_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/udp$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_udp_OBJECTS) $(unit_ip_udp_LDADD) $(LIBS) -unit/ip/unicast.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/unicast$(EXEEXT): $(unit_ip_unicast_OBJECTS) $(unit_ip_unicast_DEPENDENCIES) $(EXTRA_unit_ip_unicast_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/unicast$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_unicast_OBJECTS) $(unit_ip_unicast_LDADD) $(LIBS) -unit/ip/v6_only.$(OBJEXT): unit/ip/$(am__dirstamp) \ - unit/ip/$(DEPDIR)/$(am__dirstamp) - -unit/ip/v6_only$(EXEEXT): $(unit_ip_v6_only_OBJECTS) $(unit_ip_v6_only_DEPENDENCIES) $(EXTRA_unit_ip_v6_only_DEPENDENCIES) unit/ip/$(am__dirstamp) - @rm -f unit/ip/v6_only$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ip_v6_only_OBJECTS) $(unit_ip_v6_only_LDADD) $(LIBS) -unit/is_read_buffered.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/is_read_buffered$(EXEEXT): $(unit_is_read_buffered_OBJECTS) $(unit_is_read_buffered_DEPENDENCIES) $(EXTRA_unit_is_read_buffered_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/is_read_buffered$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_is_read_buffered_OBJECTS) $(unit_is_read_buffered_LDADD) $(LIBS) -unit/is_write_buffered.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/is_write_buffered$(EXEEXT): $(unit_is_write_buffered_OBJECTS) $(unit_is_write_buffered_DEPENDENCIES) $(EXTRA_unit_is_write_buffered_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/is_write_buffered$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_is_write_buffered_OBJECTS) $(unit_is_write_buffered_LDADD) $(LIBS) -unit/local/$(am__dirstamp): - @$(MKDIR_P) unit/local - @: > unit/local/$(am__dirstamp) -unit/local/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/local/$(DEPDIR) - @: > unit/local/$(DEPDIR)/$(am__dirstamp) -unit/local/basic_endpoint.$(OBJEXT): unit/local/$(am__dirstamp) \ - unit/local/$(DEPDIR)/$(am__dirstamp) - -unit/local/basic_endpoint$(EXEEXT): $(unit_local_basic_endpoint_OBJECTS) $(unit_local_basic_endpoint_DEPENDENCIES) $(EXTRA_unit_local_basic_endpoint_DEPENDENCIES) unit/local/$(am__dirstamp) - @rm -f unit/local/basic_endpoint$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_local_basic_endpoint_OBJECTS) $(unit_local_basic_endpoint_LDADD) $(LIBS) -unit/local/connect_pair.$(OBJEXT): unit/local/$(am__dirstamp) \ - unit/local/$(DEPDIR)/$(am__dirstamp) - -unit/local/connect_pair$(EXEEXT): $(unit_local_connect_pair_OBJECTS) $(unit_local_connect_pair_DEPENDENCIES) $(EXTRA_unit_local_connect_pair_DEPENDENCIES) unit/local/$(am__dirstamp) - @rm -f unit/local/connect_pair$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_local_connect_pair_OBJECTS) $(unit_local_connect_pair_LDADD) $(LIBS) -unit/local/datagram_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \ - unit/local/$(DEPDIR)/$(am__dirstamp) - -unit/local/datagram_protocol$(EXEEXT): $(unit_local_datagram_protocol_OBJECTS) $(unit_local_datagram_protocol_DEPENDENCIES) $(EXTRA_unit_local_datagram_protocol_DEPENDENCIES) unit/local/$(am__dirstamp) - @rm -f unit/local/datagram_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_local_datagram_protocol_OBJECTS) $(unit_local_datagram_protocol_LDADD) $(LIBS) -unit/local/stream_protocol.$(OBJEXT): unit/local/$(am__dirstamp) \ - unit/local/$(DEPDIR)/$(am__dirstamp) - -unit/local/stream_protocol$(EXEEXT): $(unit_local_stream_protocol_OBJECTS) $(unit_local_stream_protocol_DEPENDENCIES) $(EXTRA_unit_local_stream_protocol_DEPENDENCIES) unit/local/$(am__dirstamp) - @rm -f unit/local/stream_protocol$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_local_stream_protocol_OBJECTS) $(unit_local_stream_protocol_LDADD) $(LIBS) -unit/packaged_task.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/packaged_task$(EXEEXT): $(unit_packaged_task_OBJECTS) $(unit_packaged_task_DEPENDENCIES) $(EXTRA_unit_packaged_task_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/packaged_task$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_packaged_task_OBJECTS) $(unit_packaged_task_LDADD) $(LIBS) -unit/placeholders.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/placeholders$(EXEEXT): $(unit_placeholders_OBJECTS) $(unit_placeholders_DEPENDENCIES) $(EXTRA_unit_placeholders_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/placeholders$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_placeholders_OBJECTS) $(unit_placeholders_LDADD) $(LIBS) -unit/posix/$(am__dirstamp): - @$(MKDIR_P) unit/posix - @: > unit/posix/$(am__dirstamp) -unit/posix/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/posix/$(DEPDIR) - @: > unit/posix/$(DEPDIR)/$(am__dirstamp) -unit/posix/basic_descriptor.$(OBJEXT): unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/basic_descriptor$(EXEEXT): $(unit_posix_basic_descriptor_OBJECTS) $(unit_posix_basic_descriptor_DEPENDENCIES) $(EXTRA_unit_posix_basic_descriptor_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/basic_descriptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_basic_descriptor_OBJECTS) $(unit_posix_basic_descriptor_LDADD) $(LIBS) -unit/posix/basic_stream_descriptor.$(OBJEXT): \ - unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/basic_stream_descriptor$(EXEEXT): $(unit_posix_basic_stream_descriptor_OBJECTS) $(unit_posix_basic_stream_descriptor_DEPENDENCIES) $(EXTRA_unit_posix_basic_stream_descriptor_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/basic_stream_descriptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_basic_stream_descriptor_OBJECTS) $(unit_posix_basic_stream_descriptor_LDADD) $(LIBS) -unit/posix/descriptor.$(OBJEXT): unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/descriptor$(EXEEXT): $(unit_posix_descriptor_OBJECTS) $(unit_posix_descriptor_DEPENDENCIES) $(EXTRA_unit_posix_descriptor_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/descriptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_descriptor_OBJECTS) $(unit_posix_descriptor_LDADD) $(LIBS) -unit/posix/descriptor_base.$(OBJEXT): unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/descriptor_base$(EXEEXT): $(unit_posix_descriptor_base_OBJECTS) $(unit_posix_descriptor_base_DEPENDENCIES) $(EXTRA_unit_posix_descriptor_base_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/descriptor_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_descriptor_base_OBJECTS) $(unit_posix_descriptor_base_LDADD) $(LIBS) -unit/posix/stream_descriptor.$(OBJEXT): unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/stream_descriptor$(EXEEXT): $(unit_posix_stream_descriptor_OBJECTS) $(unit_posix_stream_descriptor_DEPENDENCIES) $(EXTRA_unit_posix_stream_descriptor_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/stream_descriptor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_stream_descriptor_OBJECTS) $(unit_posix_stream_descriptor_LDADD) $(LIBS) -unit/posix/stream_descriptor_service.$(OBJEXT): \ - unit/posix/$(am__dirstamp) \ - unit/posix/$(DEPDIR)/$(am__dirstamp) - -unit/posix/stream_descriptor_service$(EXEEXT): $(unit_posix_stream_descriptor_service_OBJECTS) $(unit_posix_stream_descriptor_service_DEPENDENCIES) $(EXTRA_unit_posix_stream_descriptor_service_DEPENDENCIES) unit/posix/$(am__dirstamp) - @rm -f unit/posix/stream_descriptor_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_posix_stream_descriptor_service_OBJECTS) $(unit_posix_stream_descriptor_service_LDADD) $(LIBS) -unit/post.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/post$(EXEEXT): $(unit_post_OBJECTS) $(unit_post_DEPENDENCIES) $(EXTRA_unit_post_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/post$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_post_OBJECTS) $(unit_post_LDADD) $(LIBS) -unit/raw_socket_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/raw_socket_service$(EXEEXT): $(unit_raw_socket_service_OBJECTS) $(unit_raw_socket_service_DEPENDENCIES) $(EXTRA_unit_raw_socket_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/raw_socket_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_raw_socket_service_OBJECTS) $(unit_raw_socket_service_LDADD) $(LIBS) -unit/read.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/read$(EXEEXT): $(unit_read_OBJECTS) $(unit_read_DEPENDENCIES) $(EXTRA_unit_read_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/read$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_read_OBJECTS) $(unit_read_LDADD) $(LIBS) -unit/read_at.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/read_at$(EXEEXT): $(unit_read_at_OBJECTS) $(unit_read_at_DEPENDENCIES) $(EXTRA_unit_read_at_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/read_at$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_read_at_OBJECTS) $(unit_read_at_LDADD) $(LIBS) -unit/read_until.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/read_until$(EXEEXT): $(unit_read_until_OBJECTS) $(unit_read_until_DEPENDENCIES) $(EXTRA_unit_read_until_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/read_until$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_read_until_OBJECTS) $(unit_read_until_LDADD) $(LIBS) -unit/seq_packet_socket_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/seq_packet_socket_service$(EXEEXT): $(unit_seq_packet_socket_service_OBJECTS) $(unit_seq_packet_socket_service_DEPENDENCIES) $(EXTRA_unit_seq_packet_socket_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/seq_packet_socket_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_seq_packet_socket_service_OBJECTS) $(unit_seq_packet_socket_service_LDADD) $(LIBS) -unit/serial_port.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/serial_port$(EXEEXT): $(unit_serial_port_OBJECTS) $(unit_serial_port_DEPENDENCIES) $(EXTRA_unit_serial_port_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/serial_port$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_serial_port_OBJECTS) $(unit_serial_port_LDADD) $(LIBS) -unit/serial_port_base.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/serial_port_base$(EXEEXT): $(unit_serial_port_base_OBJECTS) $(unit_serial_port_base_DEPENDENCIES) $(EXTRA_unit_serial_port_base_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/serial_port_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_serial_port_base_OBJECTS) $(unit_serial_port_base_LDADD) $(LIBS) -unit/serial_port_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/serial_port_service$(EXEEXT): $(unit_serial_port_service_OBJECTS) $(unit_serial_port_service_DEPENDENCIES) $(EXTRA_unit_serial_port_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/serial_port_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_serial_port_service_OBJECTS) $(unit_serial_port_service_LDADD) $(LIBS) -unit/signal_set.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/signal_set$(EXEEXT): $(unit_signal_set_OBJECTS) $(unit_signal_set_DEPENDENCIES) $(EXTRA_unit_signal_set_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/signal_set$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_signal_set_OBJECTS) $(unit_signal_set_LDADD) $(LIBS) -unit/signal_set_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/signal_set_service$(EXEEXT): $(unit_signal_set_service_OBJECTS) $(unit_signal_set_service_DEPENDENCIES) $(EXTRA_unit_signal_set_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/signal_set_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_signal_set_service_OBJECTS) $(unit_signal_set_service_LDADD) $(LIBS) -unit/socket_acceptor_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/socket_acceptor_service$(EXEEXT): $(unit_socket_acceptor_service_OBJECTS) $(unit_socket_acceptor_service_DEPENDENCIES) $(EXTRA_unit_socket_acceptor_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/socket_acceptor_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_socket_acceptor_service_OBJECTS) $(unit_socket_acceptor_service_LDADD) $(LIBS) -unit/socket_base.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/socket_base$(EXEEXT): $(unit_socket_base_OBJECTS) $(unit_socket_base_DEPENDENCIES) $(EXTRA_unit_socket_base_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/socket_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_socket_base_OBJECTS) $(unit_socket_base_LDADD) $(LIBS) -unit/ssl/$(am__dirstamp): - @$(MKDIR_P) unit/ssl - @: > unit/ssl/$(am__dirstamp) -unit/ssl/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/ssl/$(DEPDIR) - @: > unit/ssl/$(DEPDIR)/$(am__dirstamp) -unit/ssl/context.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/context$(EXEEXT): $(unit_ssl_context_OBJECTS) $(unit_ssl_context_DEPENDENCIES) $(EXTRA_unit_ssl_context_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_context_OBJECTS) $(unit_ssl_context_LDADD) $(LIBS) -unit/ssl/context_base.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/context_base$(EXEEXT): $(unit_ssl_context_base_OBJECTS) $(unit_ssl_context_base_DEPENDENCIES) $(EXTRA_unit_ssl_context_base_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/context_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_context_base_OBJECTS) $(unit_ssl_context_base_LDADD) $(LIBS) -unit/ssl/error.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/error$(EXEEXT): $(unit_ssl_error_OBJECTS) $(unit_ssl_error_DEPENDENCIES) $(EXTRA_unit_ssl_error_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/error$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_error_OBJECTS) $(unit_ssl_error_LDADD) $(LIBS) -unit/ssl/rfc2818_verification.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/rfc2818_verification$(EXEEXT): $(unit_ssl_rfc2818_verification_OBJECTS) $(unit_ssl_rfc2818_verification_DEPENDENCIES) $(EXTRA_unit_ssl_rfc2818_verification_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/rfc2818_verification$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_rfc2818_verification_OBJECTS) $(unit_ssl_rfc2818_verification_LDADD) $(LIBS) -unit/ssl/stream.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/stream$(EXEEXT): $(unit_ssl_stream_OBJECTS) $(unit_ssl_stream_DEPENDENCIES) $(EXTRA_unit_ssl_stream_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/stream$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_stream_OBJECTS) $(unit_ssl_stream_LDADD) $(LIBS) -unit/ssl/stream_base.$(OBJEXT): unit/ssl/$(am__dirstamp) \ - unit/ssl/$(DEPDIR)/$(am__dirstamp) - -unit/ssl/stream_base$(EXEEXT): $(unit_ssl_stream_base_OBJECTS) $(unit_ssl_stream_base_DEPENDENCIES) $(EXTRA_unit_ssl_stream_base_DEPENDENCIES) unit/ssl/$(am__dirstamp) - @rm -f unit/ssl/stream_base$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ssl_stream_base_OBJECTS) $(unit_ssl_stream_base_LDADD) $(LIBS) -unit/steady_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/steady_timer$(EXEEXT): $(unit_steady_timer_OBJECTS) $(unit_steady_timer_DEPENDENCIES) $(EXTRA_unit_steady_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/steady_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_steady_timer_OBJECTS) $(unit_steady_timer_LDADD) $(LIBS) -unit/strand.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/strand$(EXEEXT): $(unit_strand_OBJECTS) $(unit_strand_DEPENDENCIES) $(EXTRA_unit_strand_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/strand$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_strand_OBJECTS) $(unit_strand_LDADD) $(LIBS) -unit/stream_socket_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/stream_socket_service$(EXEEXT): $(unit_stream_socket_service_OBJECTS) $(unit_stream_socket_service_DEPENDENCIES) $(EXTRA_unit_stream_socket_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/stream_socket_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_stream_socket_service_OBJECTS) $(unit_stream_socket_service_LDADD) $(LIBS) -unit/streambuf.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/streambuf$(EXEEXT): $(unit_streambuf_OBJECTS) $(unit_streambuf_DEPENDENCIES) $(EXTRA_unit_streambuf_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/streambuf$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_streambuf_OBJECTS) $(unit_streambuf_LDADD) $(LIBS) -unit/system_context.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/system_context$(EXEEXT): $(unit_system_context_OBJECTS) $(unit_system_context_DEPENDENCIES) $(EXTRA_unit_system_context_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/system_context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_system_context_OBJECTS) $(unit_system_context_LDADD) $(LIBS) -unit/system_executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/system_executor$(EXEEXT): $(unit_system_executor_OBJECTS) $(unit_system_executor_DEPENDENCIES) $(EXTRA_unit_system_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/system_executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_system_executor_OBJECTS) $(unit_system_executor_LDADD) $(LIBS) -unit/system_timer.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/system_timer$(EXEEXT): $(unit_system_timer_OBJECTS) $(unit_system_timer_DEPENDENCIES) $(EXTRA_unit_system_timer_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/system_timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_system_timer_OBJECTS) $(unit_system_timer_LDADD) $(LIBS) -unit/thread.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/thread$(EXEEXT): $(unit_thread_OBJECTS) $(unit_thread_DEPENDENCIES) $(EXTRA_unit_thread_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/thread$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_thread_OBJECTS) $(unit_thread_LDADD) $(LIBS) -unit/time_traits.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/time_traits$(EXEEXT): $(unit_time_traits_OBJECTS) $(unit_time_traits_DEPENDENCIES) $(EXTRA_unit_time_traits_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/time_traits$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_time_traits_OBJECTS) $(unit_time_traits_LDADD) $(LIBS) -unit/ts/$(am__dirstamp): - @$(MKDIR_P) unit/ts - @: > unit/ts/$(am__dirstamp) -unit/ts/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/ts/$(DEPDIR) - @: > unit/ts/$(DEPDIR)/$(am__dirstamp) -unit/ts/buffer.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/buffer$(EXEEXT): $(unit_ts_buffer_OBJECTS) $(unit_ts_buffer_DEPENDENCIES) $(EXTRA_unit_ts_buffer_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/buffer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_buffer_OBJECTS) $(unit_ts_buffer_LDADD) $(LIBS) -unit/ts/executor.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/executor$(EXEEXT): $(unit_ts_executor_OBJECTS) $(unit_ts_executor_DEPENDENCIES) $(EXTRA_unit_ts_executor_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_executor_OBJECTS) $(unit_ts_executor_LDADD) $(LIBS) -unit/ts/internet.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/internet$(EXEEXT): $(unit_ts_internet_OBJECTS) $(unit_ts_internet_DEPENDENCIES) $(EXTRA_unit_ts_internet_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/internet$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_internet_OBJECTS) $(unit_ts_internet_LDADD) $(LIBS) -unit/ts/io_context.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/io_context$(EXEEXT): $(unit_ts_io_context_OBJECTS) $(unit_ts_io_context_DEPENDENCIES) $(EXTRA_unit_ts_io_context_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/io_context$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_io_context_OBJECTS) $(unit_ts_io_context_LDADD) $(LIBS) -unit/ts/net.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/net$(EXEEXT): $(unit_ts_net_OBJECTS) $(unit_ts_net_DEPENDENCIES) $(EXTRA_unit_ts_net_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/net$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_net_OBJECTS) $(unit_ts_net_LDADD) $(LIBS) -unit/ts/netfwd.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/netfwd$(EXEEXT): $(unit_ts_netfwd_OBJECTS) $(unit_ts_netfwd_DEPENDENCIES) $(EXTRA_unit_ts_netfwd_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/netfwd$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_netfwd_OBJECTS) $(unit_ts_netfwd_LDADD) $(LIBS) -unit/ts/socket.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/socket$(EXEEXT): $(unit_ts_socket_OBJECTS) $(unit_ts_socket_DEPENDENCIES) $(EXTRA_unit_ts_socket_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/socket$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_socket_OBJECTS) $(unit_ts_socket_LDADD) $(LIBS) -unit/ts/timer.$(OBJEXT): unit/ts/$(am__dirstamp) \ - unit/ts/$(DEPDIR)/$(am__dirstamp) - -unit/ts/timer$(EXEEXT): $(unit_ts_timer_OBJECTS) $(unit_ts_timer_DEPENDENCIES) $(EXTRA_unit_ts_timer_DEPENDENCIES) unit/ts/$(am__dirstamp) - @rm -f unit/ts/timer$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_ts_timer_OBJECTS) $(unit_ts_timer_LDADD) $(LIBS) -unit/use_future.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/use_future$(EXEEXT): $(unit_use_future_OBJECTS) $(unit_use_future_DEPENDENCIES) $(EXTRA_unit_use_future_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/use_future$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_use_future_OBJECTS) $(unit_use_future_LDADD) $(LIBS) -unit/uses_executor.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/uses_executor$(EXEEXT): $(unit_uses_executor_OBJECTS) $(unit_uses_executor_DEPENDENCIES) $(EXTRA_unit_uses_executor_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/uses_executor$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_uses_executor_OBJECTS) $(unit_uses_executor_LDADD) $(LIBS) -unit/wait_traits.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/wait_traits$(EXEEXT): $(unit_wait_traits_OBJECTS) $(unit_wait_traits_DEPENDENCIES) $(EXTRA_unit_wait_traits_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/wait_traits$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_wait_traits_OBJECTS) $(unit_wait_traits_LDADD) $(LIBS) -unit/waitable_timer_service.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/waitable_timer_service$(EXEEXT): $(unit_waitable_timer_service_OBJECTS) $(unit_waitable_timer_service_DEPENDENCIES) $(EXTRA_unit_waitable_timer_service_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/waitable_timer_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_waitable_timer_service_OBJECTS) $(unit_waitable_timer_service_LDADD) $(LIBS) -unit/windows/$(am__dirstamp): - @$(MKDIR_P) unit/windows - @: > unit/windows/$(am__dirstamp) -unit/windows/$(DEPDIR)/$(am__dirstamp): - @$(MKDIR_P) unit/windows/$(DEPDIR) - @: > unit/windows/$(DEPDIR)/$(am__dirstamp) -unit/windows/basic_handle.$(OBJEXT): unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/basic_handle$(EXEEXT): $(unit_windows_basic_handle_OBJECTS) $(unit_windows_basic_handle_DEPENDENCIES) $(EXTRA_unit_windows_basic_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/basic_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_basic_handle_OBJECTS) $(unit_windows_basic_handle_LDADD) $(LIBS) -unit/windows/basic_object_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/basic_object_handle$(EXEEXT): $(unit_windows_basic_object_handle_OBJECTS) $(unit_windows_basic_object_handle_DEPENDENCIES) $(EXTRA_unit_windows_basic_object_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/basic_object_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_basic_object_handle_OBJECTS) $(unit_windows_basic_object_handle_LDADD) $(LIBS) -unit/windows/basic_random_access_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/basic_random_access_handle$(EXEEXT): $(unit_windows_basic_random_access_handle_OBJECTS) $(unit_windows_basic_random_access_handle_DEPENDENCIES) $(EXTRA_unit_windows_basic_random_access_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/basic_random_access_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_basic_random_access_handle_OBJECTS) $(unit_windows_basic_random_access_handle_LDADD) $(LIBS) -unit/windows/basic_stream_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/basic_stream_handle$(EXEEXT): $(unit_windows_basic_stream_handle_OBJECTS) $(unit_windows_basic_stream_handle_DEPENDENCIES) $(EXTRA_unit_windows_basic_stream_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/basic_stream_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_basic_stream_handle_OBJECTS) $(unit_windows_basic_stream_handle_LDADD) $(LIBS) -unit/windows/object_handle.$(OBJEXT): unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/object_handle$(EXEEXT): $(unit_windows_object_handle_OBJECTS) $(unit_windows_object_handle_DEPENDENCIES) $(EXTRA_unit_windows_object_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/object_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_object_handle_OBJECTS) $(unit_windows_object_handle_LDADD) $(LIBS) -unit/windows/object_handle_service.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/object_handle_service$(EXEEXT): $(unit_windows_object_handle_service_OBJECTS) $(unit_windows_object_handle_service_DEPENDENCIES) $(EXTRA_unit_windows_object_handle_service_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/object_handle_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_object_handle_service_OBJECTS) $(unit_windows_object_handle_service_LDADD) $(LIBS) -unit/windows/overlapped_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/overlapped_handle$(EXEEXT): $(unit_windows_overlapped_handle_OBJECTS) $(unit_windows_overlapped_handle_DEPENDENCIES) $(EXTRA_unit_windows_overlapped_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/overlapped_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_overlapped_handle_OBJECTS) $(unit_windows_overlapped_handle_LDADD) $(LIBS) -unit/windows/overlapped_ptr.$(OBJEXT): unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/overlapped_ptr$(EXEEXT): $(unit_windows_overlapped_ptr_OBJECTS) $(unit_windows_overlapped_ptr_DEPENDENCIES) $(EXTRA_unit_windows_overlapped_ptr_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/overlapped_ptr$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_overlapped_ptr_OBJECTS) $(unit_windows_overlapped_ptr_LDADD) $(LIBS) -unit/windows/random_access_handle.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/random_access_handle$(EXEEXT): $(unit_windows_random_access_handle_OBJECTS) $(unit_windows_random_access_handle_DEPENDENCIES) $(EXTRA_unit_windows_random_access_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/random_access_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_random_access_handle_OBJECTS) $(unit_windows_random_access_handle_LDADD) $(LIBS) -unit/windows/random_access_handle_service.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/random_access_handle_service$(EXEEXT): $(unit_windows_random_access_handle_service_OBJECTS) $(unit_windows_random_access_handle_service_DEPENDENCIES) $(EXTRA_unit_windows_random_access_handle_service_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/random_access_handle_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_random_access_handle_service_OBJECTS) $(unit_windows_random_access_handle_service_LDADD) $(LIBS) -unit/windows/stream_handle.$(OBJEXT): unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/stream_handle$(EXEEXT): $(unit_windows_stream_handle_OBJECTS) $(unit_windows_stream_handle_DEPENDENCIES) $(EXTRA_unit_windows_stream_handle_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/stream_handle$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_stream_handle_OBJECTS) $(unit_windows_stream_handle_LDADD) $(LIBS) -unit/windows/stream_handle_service.$(OBJEXT): \ - unit/windows/$(am__dirstamp) \ - unit/windows/$(DEPDIR)/$(am__dirstamp) - -unit/windows/stream_handle_service$(EXEEXT): $(unit_windows_stream_handle_service_OBJECTS) $(unit_windows_stream_handle_service_DEPENDENCIES) $(EXTRA_unit_windows_stream_handle_service_DEPENDENCIES) unit/windows/$(am__dirstamp) - @rm -f unit/windows/stream_handle_service$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_windows_stream_handle_service_OBJECTS) $(unit_windows_stream_handle_service_LDADD) $(LIBS) -unit/write.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/write$(EXEEXT): $(unit_write_OBJECTS) $(unit_write_DEPENDENCIES) $(EXTRA_unit_write_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/write$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_write_OBJECTS) $(unit_write_LDADD) $(LIBS) -unit/write_at.$(OBJEXT): unit/$(am__dirstamp) \ - unit/$(DEPDIR)/$(am__dirstamp) - -unit/write_at$(EXEEXT): $(unit_write_at_OBJECTS) $(unit_write_at_DEPENDENCIES) $(EXTRA_unit_write_at_DEPENDENCIES) unit/$(am__dirstamp) - @rm -f unit/write_at$(EXEEXT) - $(AM_V_CXXLD)$(CXXLINK) $(unit_write_at_OBJECTS) $(unit_write_at_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -rm -f ../*.$(OBJEXT) - -rm -f latency/*.$(OBJEXT) - -rm -f performance/*.$(OBJEXT) - -rm -f unit/*.$(OBJEXT) - -rm -f unit/generic/*.$(OBJEXT) - -rm -f unit/ip/*.$(OBJEXT) - -rm -f unit/local/*.$(OBJEXT) - -rm -f unit/posix/*.$(OBJEXT) - -rm -f unit/ssl/*.$(OBJEXT) - -rm -f unit/ts/*.$(OBJEXT) - -rm -f unit/windows/*.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/asio.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@../$(DEPDIR)/asio_ssl.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/tcp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/tcp_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/udp_client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@latency/$(DEPDIR)/udp_server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@performance/$(DEPDIR)/client.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@performance/$(DEPDIR)/server.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_allocator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/associated_executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/async_result.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_datagram_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_deadline_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_raw_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_seq_packet_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_serial_port.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_signal_set.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_socket_acceptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_stream_socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_streambuf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/basic_waitable_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/bind_executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_read_stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffered_write_stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/buffers_iterator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/completion_condition.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/connect.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/coroutine.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/datagram_socket_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/deadline_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/deadline_timer_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/defer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/dispatch.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/error.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/execution_context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/executor_work_guard.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/high_resolution_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/io_context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/is_read_buffered.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/is_write_buffered.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/packaged_task.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/placeholders.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/post.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/raw_socket_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read_at.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/read_until.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/seq_packet_socket_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/serial_port_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/signal_set.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/signal_set_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/socket_acceptor_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/socket_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/steady_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/strand.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/stream_socket_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/streambuf.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/system_timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/thread.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/time_traits.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/use_future.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/uses_executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/wait_traits.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/waitable_timer_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/write.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/$(DEPDIR)/write_at.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/basic_endpoint.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/datagram_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/raw_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/seq_packet_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/generic/$(DEPDIR)/stream_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v4_iterator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v4_range.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v6.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v6_iterator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/address_v6_range.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_endpoint.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_resolver.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_resolver_entry.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_resolver_iterator.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/basic_resolver_query.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/host_name.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/icmp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/multicast.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/network_v4.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/network_v6.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/resolver_query_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/resolver_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/tcp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/udp.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/unicast.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ip/$(DEPDIR)/v6_only.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/basic_endpoint.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/connect_pair.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/datagram_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/local/$(DEPDIR)/stream_protocol.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/basic_descriptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/basic_stream_descriptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/descriptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/descriptor_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/stream_descriptor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/posix/$(DEPDIR)/stream_descriptor_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/context_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/error.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/rfc2818_verification.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/stream.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ssl/$(DEPDIR)/stream_base.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/buffer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/executor.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/internet.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/io_context.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/net.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/netfwd.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/socket.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/ts/$(DEPDIR)/timer.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/basic_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/basic_object_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/basic_random_access_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/basic_stream_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/object_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/object_handle_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/overlapped_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/overlapped_ptr.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/random_access_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/random_access_handle_service.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/stream_handle.Po@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@unit/windows/$(DEPDIR)/stream_handle_service.Po@am__quote@ # am--include-marker - -$(am__depfiles_remade): - @$(MKDIR_P) $(@D) - @echo '# dummy' >$@-t && $(am__mv) $@-t $@ - -am--depfiles: $(am__depfiles_remade) - -.cpp.o: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< - -.cpp.obj: -@am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ -@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ -@am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -ID: $(am__tagged_files) - $(am__define_uniq_tagged_files); mkid -fID $$unique -tags: tags-am -TAGS: tags - -tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - set x; \ - here=`pwd`; \ - $(am__define_uniq_tagged_files); \ - shift; \ - if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - if test $$# -gt 0; then \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - "$$@" $$unique; \ - else \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$unique; \ - fi; \ - fi -ctags: ctags-am - -CTAGS: ctags -ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) - $(am__define_uniq_tagged_files); \ - test -z "$(CTAGS_ARGS)$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && $(am__cd) $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) "$$here" -cscopelist: cscopelist-am - -cscopelist-am: $(am__tagged_files) - list='$(am__tagged_files)'; \ - case "$(srcdir)" in \ - [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ - *) sdir=$(subdir)/$(srcdir) ;; \ - esac; \ - for i in $$list; do \ - if test -f "$$i"; then \ - echo "$(subdir)/$$i"; \ - else \ - echo "$$sdir/$$i"; \ - fi; \ - done >> $(top_builddir)/cscope.files - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -# Recover from deleted '.trs' file; this should ensure that -# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create -# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells -# to avoid problems with "make -n". -.log.trs: - rm -f $< $@ - $(MAKE) $(AM_MAKEFLAGS) $< - -# Leading 'am--fnord' is there to ensure the list of targets does not -# expand to empty, as could happen e.g. with make check TESTS=''. -am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) -am--force-recheck: - @: - -$(TEST_SUITE_LOG): $(TEST_LOGS) - @$(am__set_TESTS_bases); \ - am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ - redo_bases=`for i in $$bases; do \ - am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ - done`; \ - if test -n "$$redo_bases"; then \ - redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ - redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ - if $(am__make_dryrun); then :; else \ - rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ - fi; \ - fi; \ - if test -n "$$am__remaking_logs"; then \ - echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ - "recursion detected" >&2; \ - elif test -n "$$redo_logs"; then \ - am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ - fi; \ - if $(am__make_dryrun); then :; else \ - st=0; \ - errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ - for i in $$redo_bases; do \ - test -f $$i.trs && test -r $$i.trs \ - || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ - test -f $$i.log && test -r $$i.log \ - || { echo "$$errmsg $$i.log" >&2; st=1; }; \ - done; \ - test $$st -eq 0 || exit 1; \ - fi - @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ - ws='[ ]'; \ - results=`for b in $$bases; do echo $$b.trs; done`; \ - test -n "$$results" || results=/dev/null; \ - all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ - pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ - fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ - skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ - xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ - xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ - error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ - if test `expr $$fail + $$xpass + $$error` -eq 0; then \ - success=true; \ - else \ - success=false; \ - fi; \ - br='==================='; br=$$br$$br$$br$$br; \ - result_count () \ - { \ - if test x"$$1" = x"--maybe-color"; then \ - maybe_colorize=yes; \ - elif test x"$$1" = x"--no-color"; then \ - maybe_colorize=no; \ - else \ - echo "$@: invalid 'result_count' usage" >&2; exit 4; \ - fi; \ - shift; \ - desc=$$1 count=$$2; \ - if test $$maybe_colorize = yes && test $$count -gt 0; then \ - color_start=$$3 color_end=$$std; \ - else \ - color_start= color_end=; \ - fi; \ - echo "$${color_start}# $$desc $$count$${color_end}"; \ - }; \ - create_testsuite_report () \ - { \ - result_count $$1 "TOTAL:" $$all "$$brg"; \ - result_count $$1 "PASS: " $$pass "$$grn"; \ - result_count $$1 "SKIP: " $$skip "$$blu"; \ - result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ - result_count $$1 "FAIL: " $$fail "$$red"; \ - result_count $$1 "XPASS:" $$xpass "$$red"; \ - result_count $$1 "ERROR:" $$error "$$mgn"; \ - }; \ - { \ - echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ - $(am__rst_title); \ - create_testsuite_report --no-color; \ - echo; \ - echo ".. contents:: :depth: 2"; \ - echo; \ - for b in $$bases; do echo $$b; done \ - | $(am__create_global_log); \ - } >$(TEST_SUITE_LOG).tmp || exit 1; \ - mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ - if $$success; then \ - col="$$grn"; \ - else \ - col="$$red"; \ - test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ - fi; \ - echo "$${col}$$br$${std}"; \ - echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ - echo "$${col}$$br$${std}"; \ - create_testsuite_report --maybe-color; \ - echo "$$col$$br$$std"; \ - if $$success; then :; else \ - echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ - if test -n "$(PACKAGE_BUGREPORT)"; then \ - echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ - fi; \ - echo "$$col$$br$$std"; \ - fi; \ - $$success || exit 1 - -check-TESTS: $(check_PROGRAMS) - @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list - @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - trs_list=`for i in $$bases; do echo $$i.trs; done`; \ - log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ - exit $$?; -recheck: all $(check_PROGRAMS) - @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - @set +e; $(am__set_TESTS_bases); \ - bases=`for i in $$bases; do echo $$i; done \ - | $(am__list_recheck_tests)` || exit 1; \ - log_list=`for i in $$bases; do echo $$i.log; done`; \ - log_list=`echo $$log_list`; \ - $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ - am__force_recheck=am--force-recheck \ - TEST_LOGS="$$log_list"; \ - exit $$? -unit/associated_allocator.log: unit/associated_allocator$(EXEEXT) - @p='unit/associated_allocator$(EXEEXT)'; \ - b='unit/associated_allocator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/associated_executor.log: unit/associated_executor$(EXEEXT) - @p='unit/associated_executor$(EXEEXT)'; \ - b='unit/associated_executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/async_result.log: unit/async_result$(EXEEXT) - @p='unit/async_result$(EXEEXT)'; \ - b='unit/async_result'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_datagram_socket.log: unit/basic_datagram_socket$(EXEEXT) - @p='unit/basic_datagram_socket$(EXEEXT)'; \ - b='unit/basic_datagram_socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_deadline_timer.log: unit/basic_deadline_timer$(EXEEXT) - @p='unit/basic_deadline_timer$(EXEEXT)'; \ - b='unit/basic_deadline_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_raw_socket.log: unit/basic_raw_socket$(EXEEXT) - @p='unit/basic_raw_socket$(EXEEXT)'; \ - b='unit/basic_raw_socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_seq_packet_socket.log: unit/basic_seq_packet_socket$(EXEEXT) - @p='unit/basic_seq_packet_socket$(EXEEXT)'; \ - b='unit/basic_seq_packet_socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_serial_port.log: unit/basic_serial_port$(EXEEXT) - @p='unit/basic_serial_port$(EXEEXT)'; \ - b='unit/basic_serial_port'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_signal_set.log: unit/basic_signal_set$(EXEEXT) - @p='unit/basic_signal_set$(EXEEXT)'; \ - b='unit/basic_signal_set'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_socket_acceptor.log: unit/basic_socket_acceptor$(EXEEXT) - @p='unit/basic_socket_acceptor$(EXEEXT)'; \ - b='unit/basic_socket_acceptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_stream_socket.log: unit/basic_stream_socket$(EXEEXT) - @p='unit/basic_stream_socket$(EXEEXT)'; \ - b='unit/basic_stream_socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_streambuf.log: unit/basic_streambuf$(EXEEXT) - @p='unit/basic_streambuf$(EXEEXT)'; \ - b='unit/basic_streambuf'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/basic_waitable_timer.log: unit/basic_waitable_timer$(EXEEXT) - @p='unit/basic_waitable_timer$(EXEEXT)'; \ - b='unit/basic_waitable_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/bind_executor.log: unit/bind_executor$(EXEEXT) - @p='unit/bind_executor$(EXEEXT)'; \ - b='unit/bind_executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffered_read_stream.log: unit/buffered_read_stream$(EXEEXT) - @p='unit/buffered_read_stream$(EXEEXT)'; \ - b='unit/buffered_read_stream'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffered_stream.log: unit/buffered_stream$(EXEEXT) - @p='unit/buffered_stream$(EXEEXT)'; \ - b='unit/buffered_stream'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffered_write_stream.log: unit/buffered_write_stream$(EXEEXT) - @p='unit/buffered_write_stream$(EXEEXT)'; \ - b='unit/buffered_write_stream'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffer.log: unit/buffer$(EXEEXT) - @p='unit/buffer$(EXEEXT)'; \ - b='unit/buffer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/buffers_iterator.log: unit/buffers_iterator$(EXEEXT) - @p='unit/buffers_iterator$(EXEEXT)'; \ - b='unit/buffers_iterator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/completion_condition.log: unit/completion_condition$(EXEEXT) - @p='unit/completion_condition$(EXEEXT)'; \ - b='unit/completion_condition'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/connect.log: unit/connect$(EXEEXT) - @p='unit/connect$(EXEEXT)'; \ - b='unit/connect'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/datagram_socket_service.log: unit/datagram_socket_service$(EXEEXT) - @p='unit/datagram_socket_service$(EXEEXT)'; \ - b='unit/datagram_socket_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/deadline_timer_service.log: unit/deadline_timer_service$(EXEEXT) - @p='unit/deadline_timer_service$(EXEEXT)'; \ - b='unit/deadline_timer_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/deadline_timer.log: unit/deadline_timer$(EXEEXT) - @p='unit/deadline_timer$(EXEEXT)'; \ - b='unit/deadline_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/defer.log: unit/defer$(EXEEXT) - @p='unit/defer$(EXEEXT)'; \ - b='unit/defer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/dispatch.log: unit/dispatch$(EXEEXT) - @p='unit/dispatch$(EXEEXT)'; \ - b='unit/dispatch'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/error.log: unit/error$(EXEEXT) - @p='unit/error$(EXEEXT)'; \ - b='unit/error'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/execution_context.log: unit/execution_context$(EXEEXT) - @p='unit/execution_context$(EXEEXT)'; \ - b='unit/execution_context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/executor.log: unit/executor$(EXEEXT) - @p='unit/executor$(EXEEXT)'; \ - b='unit/executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/executor_work_guard.log: unit/executor_work_guard$(EXEEXT) - @p='unit/executor_work_guard$(EXEEXT)'; \ - b='unit/executor_work_guard'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/high_resolution_timer.log: unit/high_resolution_timer$(EXEEXT) - @p='unit/high_resolution_timer$(EXEEXT)'; \ - b='unit/high_resolution_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/io_context.log: unit/io_context$(EXEEXT) - @p='unit/io_context$(EXEEXT)'; \ - b='unit/io_context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address.log: unit/ip/address$(EXEEXT) - @p='unit/ip/address$(EXEEXT)'; \ - b='unit/ip/address'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v4.log: unit/ip/address_v4$(EXEEXT) - @p='unit/ip/address_v4$(EXEEXT)'; \ - b='unit/ip/address_v4'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v4_iterator.log: unit/ip/address_v4_iterator$(EXEEXT) - @p='unit/ip/address_v4_iterator$(EXEEXT)'; \ - b='unit/ip/address_v4_iterator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v4_range.log: unit/ip/address_v4_range$(EXEEXT) - @p='unit/ip/address_v4_range$(EXEEXT)'; \ - b='unit/ip/address_v4_range'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v6.log: unit/ip/address_v6$(EXEEXT) - @p='unit/ip/address_v6$(EXEEXT)'; \ - b='unit/ip/address_v6'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v6_iterator.log: unit/ip/address_v6_iterator$(EXEEXT) - @p='unit/ip/address_v6_iterator$(EXEEXT)'; \ - b='unit/ip/address_v6_iterator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/address_v6_range.log: unit/ip/address_v6_range$(EXEEXT) - @p='unit/ip/address_v6_range$(EXEEXT)'; \ - b='unit/ip/address_v6_range'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_endpoint.log: unit/ip/basic_endpoint$(EXEEXT) - @p='unit/ip/basic_endpoint$(EXEEXT)'; \ - b='unit/ip/basic_endpoint'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_resolver.log: unit/ip/basic_resolver$(EXEEXT) - @p='unit/ip/basic_resolver$(EXEEXT)'; \ - b='unit/ip/basic_resolver'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_resolver_entry.log: unit/ip/basic_resolver_entry$(EXEEXT) - @p='unit/ip/basic_resolver_entry$(EXEEXT)'; \ - b='unit/ip/basic_resolver_entry'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_resolver_iterator.log: unit/ip/basic_resolver_iterator$(EXEEXT) - @p='unit/ip/basic_resolver_iterator$(EXEEXT)'; \ - b='unit/ip/basic_resolver_iterator'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/basic_resolver_query.log: unit/ip/basic_resolver_query$(EXEEXT) - @p='unit/ip/basic_resolver_query$(EXEEXT)'; \ - b='unit/ip/basic_resolver_query'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/host_name.log: unit/ip/host_name$(EXEEXT) - @p='unit/ip/host_name$(EXEEXT)'; \ - b='unit/ip/host_name'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/icmp.log: unit/ip/icmp$(EXEEXT) - @p='unit/ip/icmp$(EXEEXT)'; \ - b='unit/ip/icmp'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/multicast.log: unit/ip/multicast$(EXEEXT) - @p='unit/ip/multicast$(EXEEXT)'; \ - b='unit/ip/multicast'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/network_v4.log: unit/ip/network_v4$(EXEEXT) - @p='unit/ip/network_v4$(EXEEXT)'; \ - b='unit/ip/network_v4'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/network_v6.log: unit/ip/network_v6$(EXEEXT) - @p='unit/ip/network_v6$(EXEEXT)'; \ - b='unit/ip/network_v6'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/resolver_query_base.log: unit/ip/resolver_query_base$(EXEEXT) - @p='unit/ip/resolver_query_base$(EXEEXT)'; \ - b='unit/ip/resolver_query_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/resolver_service.log: unit/ip/resolver_service$(EXEEXT) - @p='unit/ip/resolver_service$(EXEEXT)'; \ - b='unit/ip/resolver_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/tcp.log: unit/ip/tcp$(EXEEXT) - @p='unit/ip/tcp$(EXEEXT)'; \ - b='unit/ip/tcp'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/udp.log: unit/ip/udp$(EXEEXT) - @p='unit/ip/udp$(EXEEXT)'; \ - b='unit/ip/udp'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/unicast.log: unit/ip/unicast$(EXEEXT) - @p='unit/ip/unicast$(EXEEXT)'; \ - b='unit/ip/unicast'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ip/v6_only.log: unit/ip/v6_only$(EXEEXT) - @p='unit/ip/v6_only$(EXEEXT)'; \ - b='unit/ip/v6_only'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/is_read_buffered.log: unit/is_read_buffered$(EXEEXT) - @p='unit/is_read_buffered$(EXEEXT)'; \ - b='unit/is_read_buffered'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/is_write_buffered.log: unit/is_write_buffered$(EXEEXT) - @p='unit/is_write_buffered$(EXEEXT)'; \ - b='unit/is_write_buffered'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/local/basic_endpoint.log: unit/local/basic_endpoint$(EXEEXT) - @p='unit/local/basic_endpoint$(EXEEXT)'; \ - b='unit/local/basic_endpoint'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/local/connect_pair.log: unit/local/connect_pair$(EXEEXT) - @p='unit/local/connect_pair$(EXEEXT)'; \ - b='unit/local/connect_pair'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/local/datagram_protocol.log: unit/local/datagram_protocol$(EXEEXT) - @p='unit/local/datagram_protocol$(EXEEXT)'; \ - b='unit/local/datagram_protocol'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/local/stream_protocol.log: unit/local/stream_protocol$(EXEEXT) - @p='unit/local/stream_protocol$(EXEEXT)'; \ - b='unit/local/stream_protocol'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/packaged_task.log: unit/packaged_task$(EXEEXT) - @p='unit/packaged_task$(EXEEXT)'; \ - b='unit/packaged_task'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/placeholders.log: unit/placeholders$(EXEEXT) - @p='unit/placeholders$(EXEEXT)'; \ - b='unit/placeholders'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/basic_descriptor.log: unit/posix/basic_descriptor$(EXEEXT) - @p='unit/posix/basic_descriptor$(EXEEXT)'; \ - b='unit/posix/basic_descriptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/basic_stream_descriptor.log: unit/posix/basic_stream_descriptor$(EXEEXT) - @p='unit/posix/basic_stream_descriptor$(EXEEXT)'; \ - b='unit/posix/basic_stream_descriptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/descriptor.log: unit/posix/descriptor$(EXEEXT) - @p='unit/posix/descriptor$(EXEEXT)'; \ - b='unit/posix/descriptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/descriptor_base.log: unit/posix/descriptor_base$(EXEEXT) - @p='unit/posix/descriptor_base$(EXEEXT)'; \ - b='unit/posix/descriptor_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/stream_descriptor.log: unit/posix/stream_descriptor$(EXEEXT) - @p='unit/posix/stream_descriptor$(EXEEXT)'; \ - b='unit/posix/stream_descriptor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/posix/stream_descriptor_service.log: unit/posix/stream_descriptor_service$(EXEEXT) - @p='unit/posix/stream_descriptor_service$(EXEEXT)'; \ - b='unit/posix/stream_descriptor_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/post.log: unit/post$(EXEEXT) - @p='unit/post$(EXEEXT)'; \ - b='unit/post'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/raw_socket_service.log: unit/raw_socket_service$(EXEEXT) - @p='unit/raw_socket_service$(EXEEXT)'; \ - b='unit/raw_socket_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/read.log: unit/read$(EXEEXT) - @p='unit/read$(EXEEXT)'; \ - b='unit/read'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/read_at.log: unit/read_at$(EXEEXT) - @p='unit/read_at$(EXEEXT)'; \ - b='unit/read_at'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/read_until.log: unit/read_until$(EXEEXT) - @p='unit/read_until$(EXEEXT)'; \ - b='unit/read_until'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/seq_packet_socket_service.log: unit/seq_packet_socket_service$(EXEEXT) - @p='unit/seq_packet_socket_service$(EXEEXT)'; \ - b='unit/seq_packet_socket_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/serial_port.log: unit/serial_port$(EXEEXT) - @p='unit/serial_port$(EXEEXT)'; \ - b='unit/serial_port'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/serial_port_base.log: unit/serial_port_base$(EXEEXT) - @p='unit/serial_port_base$(EXEEXT)'; \ - b='unit/serial_port_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/serial_port_service.log: unit/serial_port_service$(EXEEXT) - @p='unit/serial_port_service$(EXEEXT)'; \ - b='unit/serial_port_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/signal_set.log: unit/signal_set$(EXEEXT) - @p='unit/signal_set$(EXEEXT)'; \ - b='unit/signal_set'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/signal_set_service.log: unit/signal_set_service$(EXEEXT) - @p='unit/signal_set_service$(EXEEXT)'; \ - b='unit/signal_set_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/socket_acceptor_service.log: unit/socket_acceptor_service$(EXEEXT) - @p='unit/socket_acceptor_service$(EXEEXT)'; \ - b='unit/socket_acceptor_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/socket_base.log: unit/socket_base$(EXEEXT) - @p='unit/socket_base$(EXEEXT)'; \ - b='unit/socket_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/steady_timer.log: unit/steady_timer$(EXEEXT) - @p='unit/steady_timer$(EXEEXT)'; \ - b='unit/steady_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/strand.log: unit/strand$(EXEEXT) - @p='unit/strand$(EXEEXT)'; \ - b='unit/strand'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/stream_socket_service.log: unit/stream_socket_service$(EXEEXT) - @p='unit/stream_socket_service$(EXEEXT)'; \ - b='unit/stream_socket_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/streambuf.log: unit/streambuf$(EXEEXT) - @p='unit/streambuf$(EXEEXT)'; \ - b='unit/streambuf'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/system_context.log: unit/system_context$(EXEEXT) - @p='unit/system_context$(EXEEXT)'; \ - b='unit/system_context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/system_executor.log: unit/system_executor$(EXEEXT) - @p='unit/system_executor$(EXEEXT)'; \ - b='unit/system_executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/system_timer.log: unit/system_timer$(EXEEXT) - @p='unit/system_timer$(EXEEXT)'; \ - b='unit/system_timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/thread.log: unit/thread$(EXEEXT) - @p='unit/thread$(EXEEXT)'; \ - b='unit/thread'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/time_traits.log: unit/time_traits$(EXEEXT) - @p='unit/time_traits$(EXEEXT)'; \ - b='unit/time_traits'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/buffer.log: unit/ts/buffer$(EXEEXT) - @p='unit/ts/buffer$(EXEEXT)'; \ - b='unit/ts/buffer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/executor.log: unit/ts/executor$(EXEEXT) - @p='unit/ts/executor$(EXEEXT)'; \ - b='unit/ts/executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/internet.log: unit/ts/internet$(EXEEXT) - @p='unit/ts/internet$(EXEEXT)'; \ - b='unit/ts/internet'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/io_context.log: unit/ts/io_context$(EXEEXT) - @p='unit/ts/io_context$(EXEEXT)'; \ - b='unit/ts/io_context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/net.log: unit/ts/net$(EXEEXT) - @p='unit/ts/net$(EXEEXT)'; \ - b='unit/ts/net'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/netfwd.log: unit/ts/netfwd$(EXEEXT) - @p='unit/ts/netfwd$(EXEEXT)'; \ - b='unit/ts/netfwd'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/socket.log: unit/ts/socket$(EXEEXT) - @p='unit/ts/socket$(EXEEXT)'; \ - b='unit/ts/socket'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ts/timer.log: unit/ts/timer$(EXEEXT) - @p='unit/ts/timer$(EXEEXT)'; \ - b='unit/ts/timer'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/use_future.log: unit/use_future$(EXEEXT) - @p='unit/use_future$(EXEEXT)'; \ - b='unit/use_future'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/uses_executor.log: unit/uses_executor$(EXEEXT) - @p='unit/uses_executor$(EXEEXT)'; \ - b='unit/uses_executor'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/wait_traits.log: unit/wait_traits$(EXEEXT) - @p='unit/wait_traits$(EXEEXT)'; \ - b='unit/wait_traits'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/waitable_timer_service.log: unit/waitable_timer_service$(EXEEXT) - @p='unit/waitable_timer_service$(EXEEXT)'; \ - b='unit/waitable_timer_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/basic_handle.log: unit/windows/basic_handle$(EXEEXT) - @p='unit/windows/basic_handle$(EXEEXT)'; \ - b='unit/windows/basic_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/basic_object_handle.log: unit/windows/basic_object_handle$(EXEEXT) - @p='unit/windows/basic_object_handle$(EXEEXT)'; \ - b='unit/windows/basic_object_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/basic_random_access_handle.log: unit/windows/basic_random_access_handle$(EXEEXT) - @p='unit/windows/basic_random_access_handle$(EXEEXT)'; \ - b='unit/windows/basic_random_access_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/basic_stream_handle.log: unit/windows/basic_stream_handle$(EXEEXT) - @p='unit/windows/basic_stream_handle$(EXEEXT)'; \ - b='unit/windows/basic_stream_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/object_handle.log: unit/windows/object_handle$(EXEEXT) - @p='unit/windows/object_handle$(EXEEXT)'; \ - b='unit/windows/object_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/object_handle_service.log: unit/windows/object_handle_service$(EXEEXT) - @p='unit/windows/object_handle_service$(EXEEXT)'; \ - b='unit/windows/object_handle_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/overlapped_handle.log: unit/windows/overlapped_handle$(EXEEXT) - @p='unit/windows/overlapped_handle$(EXEEXT)'; \ - b='unit/windows/overlapped_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/overlapped_ptr.log: unit/windows/overlapped_ptr$(EXEEXT) - @p='unit/windows/overlapped_ptr$(EXEEXT)'; \ - b='unit/windows/overlapped_ptr'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/random_access_handle.log: unit/windows/random_access_handle$(EXEEXT) - @p='unit/windows/random_access_handle$(EXEEXT)'; \ - b='unit/windows/random_access_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/random_access_handle_service.log: unit/windows/random_access_handle_service$(EXEEXT) - @p='unit/windows/random_access_handle_service$(EXEEXT)'; \ - b='unit/windows/random_access_handle_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/stream_handle.log: unit/windows/stream_handle$(EXEEXT) - @p='unit/windows/stream_handle$(EXEEXT)'; \ - b='unit/windows/stream_handle'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/windows/stream_handle_service.log: unit/windows/stream_handle_service$(EXEEXT) - @p='unit/windows/stream_handle_service$(EXEEXT)'; \ - b='unit/windows/stream_handle_service'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/write.log: unit/write$(EXEEXT) - @p='unit/write$(EXEEXT)'; \ - b='unit/write'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/write_at.log: unit/write_at$(EXEEXT) - @p='unit/write_at$(EXEEXT)'; \ - b='unit/write_at'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/context_base.log: unit/ssl/context_base$(EXEEXT) - @p='unit/ssl/context_base$(EXEEXT)'; \ - b='unit/ssl/context_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/context.log: unit/ssl/context$(EXEEXT) - @p='unit/ssl/context$(EXEEXT)'; \ - b='unit/ssl/context'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/error.log: unit/ssl/error$(EXEEXT) - @p='unit/ssl/error$(EXEEXT)'; \ - b='unit/ssl/error'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/rfc2818_verification.log: unit/ssl/rfc2818_verification$(EXEEXT) - @p='unit/ssl/rfc2818_verification$(EXEEXT)'; \ - b='unit/ssl/rfc2818_verification'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/stream_base.log: unit/ssl/stream_base$(EXEEXT) - @p='unit/ssl/stream_base$(EXEEXT)'; \ - b='unit/ssl/stream_base'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -unit/ssl/stream.log: unit/ssl/stream$(EXEEXT) - @p='unit/ssl/stream$(EXEEXT)'; \ - b='unit/ssl/stream'; \ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -.test.log: - @p='$<'; \ - $(am__set_b); \ - $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) -@am__EXEEXT_TRUE@.test$(EXEEXT).log: -@am__EXEEXT_TRUE@ @p='$<'; \ -@am__EXEEXT_TRUE@ $(am__set_b); \ -@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ -@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ -@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ -@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) - -distdir: $(BUILT_SOURCES) - $(MAKE) $(AM_MAKEFLAGS) distdir-am - -distdir-am: $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d "$(distdir)/$$file"; then \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ - find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ - fi; \ - cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ - else \ - test -f "$(distdir)/$$file" \ - || cp -p $$d/$$file "$(distdir)/$$file" \ - || exit 1; \ - fi; \ - done -check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) - $(MAKE) $(AM_MAKEFLAGS) check-TESTS -check: check-am -all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(HEADERS) -installdirs: -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - if test -z '$(STRIP)'; then \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - install; \ - else \ - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ - fi -mostlyclean-generic: - -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) - -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) - -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) - -rm -f ../$(DEPDIR)/$(am__dirstamp) - -rm -f ../$(am__dirstamp) - -rm -f latency/$(DEPDIR)/$(am__dirstamp) - -rm -f latency/$(am__dirstamp) - -rm -f performance/$(DEPDIR)/$(am__dirstamp) - -rm -f performance/$(am__dirstamp) - -rm -f unit/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/$(am__dirstamp) - -rm -f unit/generic/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/generic/$(am__dirstamp) - -rm -f unit/ip/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/ip/$(am__dirstamp) - -rm -f unit/local/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/local/$(am__dirstamp) - -rm -f unit/posix/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/posix/$(am__dirstamp) - -rm -f unit/ssl/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/ssl/$(am__dirstamp) - -rm -f unit/ts/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/ts/$(am__dirstamp) - -rm -f unit/windows/$(DEPDIR)/$(am__dirstamp) - -rm -f unit/windows/$(am__dirstamp) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \ - clean-noinstPROGRAMS mostlyclean-am - -distclean: distclean-am - -rm -f ../$(DEPDIR)/asio.Po - -rm -f ../$(DEPDIR)/asio_ssl.Po - -rm -f latency/$(DEPDIR)/tcp_client.Po - -rm -f latency/$(DEPDIR)/tcp_server.Po - -rm -f latency/$(DEPDIR)/udp_client.Po - -rm -f latency/$(DEPDIR)/udp_server.Po - -rm -f performance/$(DEPDIR)/client.Po - -rm -f performance/$(DEPDIR)/server.Po - -rm -f unit/$(DEPDIR)/associated_allocator.Po - -rm -f unit/$(DEPDIR)/associated_executor.Po - -rm -f unit/$(DEPDIR)/async_result.Po - -rm -f unit/$(DEPDIR)/basic_datagram_socket.Po - -rm -f unit/$(DEPDIR)/basic_deadline_timer.Po - -rm -f unit/$(DEPDIR)/basic_raw_socket.Po - -rm -f unit/$(DEPDIR)/basic_seq_packet_socket.Po - -rm -f unit/$(DEPDIR)/basic_serial_port.Po - -rm -f unit/$(DEPDIR)/basic_signal_set.Po - -rm -f unit/$(DEPDIR)/basic_socket_acceptor.Po - -rm -f unit/$(DEPDIR)/basic_stream_socket.Po - -rm -f unit/$(DEPDIR)/basic_streambuf.Po - -rm -f unit/$(DEPDIR)/basic_waitable_timer.Po - -rm -f unit/$(DEPDIR)/bind_executor.Po - -rm -f unit/$(DEPDIR)/buffer.Po - -rm -f unit/$(DEPDIR)/buffered_read_stream.Po - -rm -f unit/$(DEPDIR)/buffered_stream.Po - -rm -f unit/$(DEPDIR)/buffered_write_stream.Po - -rm -f unit/$(DEPDIR)/buffers_iterator.Po - -rm -f unit/$(DEPDIR)/completion_condition.Po - -rm -f unit/$(DEPDIR)/connect.Po - -rm -f unit/$(DEPDIR)/coroutine.Po - -rm -f unit/$(DEPDIR)/datagram_socket_service.Po - -rm -f unit/$(DEPDIR)/deadline_timer.Po - -rm -f unit/$(DEPDIR)/deadline_timer_service.Po - -rm -f unit/$(DEPDIR)/defer.Po - -rm -f unit/$(DEPDIR)/dispatch.Po - -rm -f unit/$(DEPDIR)/error.Po - -rm -f unit/$(DEPDIR)/execution_context.Po - -rm -f unit/$(DEPDIR)/executor.Po - -rm -f unit/$(DEPDIR)/executor_work_guard.Po - -rm -f unit/$(DEPDIR)/high_resolution_timer.Po - -rm -f unit/$(DEPDIR)/io_context.Po - -rm -f unit/$(DEPDIR)/is_read_buffered.Po - -rm -f unit/$(DEPDIR)/is_write_buffered.Po - -rm -f unit/$(DEPDIR)/packaged_task.Po - -rm -f unit/$(DEPDIR)/placeholders.Po - -rm -f unit/$(DEPDIR)/post.Po - -rm -f unit/$(DEPDIR)/raw_socket_service.Po - -rm -f unit/$(DEPDIR)/read.Po - -rm -f unit/$(DEPDIR)/read_at.Po - -rm -f unit/$(DEPDIR)/read_until.Po - -rm -f unit/$(DEPDIR)/seq_packet_socket_service.Po - -rm -f unit/$(DEPDIR)/serial_port.Po - -rm -f unit/$(DEPDIR)/serial_port_base.Po - -rm -f unit/$(DEPDIR)/serial_port_service.Po - -rm -f unit/$(DEPDIR)/signal_set.Po - -rm -f unit/$(DEPDIR)/signal_set_service.Po - -rm -f unit/$(DEPDIR)/socket_acceptor_service.Po - -rm -f unit/$(DEPDIR)/socket_base.Po - -rm -f unit/$(DEPDIR)/steady_timer.Po - -rm -f unit/$(DEPDIR)/strand.Po - -rm -f unit/$(DEPDIR)/stream_socket_service.Po - -rm -f unit/$(DEPDIR)/streambuf.Po - -rm -f unit/$(DEPDIR)/system_context.Po - -rm -f unit/$(DEPDIR)/system_executor.Po - -rm -f unit/$(DEPDIR)/system_timer.Po - -rm -f unit/$(DEPDIR)/thread.Po - -rm -f unit/$(DEPDIR)/time_traits.Po - -rm -f unit/$(DEPDIR)/use_future.Po - -rm -f unit/$(DEPDIR)/uses_executor.Po - -rm -f unit/$(DEPDIR)/wait_traits.Po - -rm -f unit/$(DEPDIR)/waitable_timer_service.Po - -rm -f unit/$(DEPDIR)/write.Po - -rm -f unit/$(DEPDIR)/write_at.Po - -rm -f unit/generic/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/generic/$(DEPDIR)/datagram_protocol.Po - -rm -f unit/generic/$(DEPDIR)/raw_protocol.Po - -rm -f unit/generic/$(DEPDIR)/seq_packet_protocol.Po - -rm -f unit/generic/$(DEPDIR)/stream_protocol.Po - -rm -f unit/ip/$(DEPDIR)/address.Po - -rm -f unit/ip/$(DEPDIR)/address_v4.Po - -rm -f unit/ip/$(DEPDIR)/address_v4_iterator.Po - -rm -f unit/ip/$(DEPDIR)/address_v4_range.Po - -rm -f unit/ip/$(DEPDIR)/address_v6.Po - -rm -f unit/ip/$(DEPDIR)/address_v6_iterator.Po - -rm -f unit/ip/$(DEPDIR)/address_v6_range.Po - -rm -f unit/ip/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_entry.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_iterator.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_query.Po - -rm -f unit/ip/$(DEPDIR)/host_name.Po - -rm -f unit/ip/$(DEPDIR)/icmp.Po - -rm -f unit/ip/$(DEPDIR)/multicast.Po - -rm -f unit/ip/$(DEPDIR)/network_v4.Po - -rm -f unit/ip/$(DEPDIR)/network_v6.Po - -rm -f unit/ip/$(DEPDIR)/resolver_query_base.Po - -rm -f unit/ip/$(DEPDIR)/resolver_service.Po - -rm -f unit/ip/$(DEPDIR)/tcp.Po - -rm -f unit/ip/$(DEPDIR)/udp.Po - -rm -f unit/ip/$(DEPDIR)/unicast.Po - -rm -f unit/ip/$(DEPDIR)/v6_only.Po - -rm -f unit/local/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/local/$(DEPDIR)/connect_pair.Po - -rm -f unit/local/$(DEPDIR)/datagram_protocol.Po - -rm -f unit/local/$(DEPDIR)/stream_protocol.Po - -rm -f unit/posix/$(DEPDIR)/basic_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/basic_stream_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/descriptor.Po - -rm -f unit/posix/$(DEPDIR)/descriptor_base.Po - -rm -f unit/posix/$(DEPDIR)/stream_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/stream_descriptor_service.Po - -rm -f unit/ssl/$(DEPDIR)/context.Po - -rm -f unit/ssl/$(DEPDIR)/context_base.Po - -rm -f unit/ssl/$(DEPDIR)/error.Po - -rm -f unit/ssl/$(DEPDIR)/rfc2818_verification.Po - -rm -f unit/ssl/$(DEPDIR)/stream.Po - -rm -f unit/ssl/$(DEPDIR)/stream_base.Po - -rm -f unit/ts/$(DEPDIR)/buffer.Po - -rm -f unit/ts/$(DEPDIR)/executor.Po - -rm -f unit/ts/$(DEPDIR)/internet.Po - -rm -f unit/ts/$(DEPDIR)/io_context.Po - -rm -f unit/ts/$(DEPDIR)/net.Po - -rm -f unit/ts/$(DEPDIR)/netfwd.Po - -rm -f unit/ts/$(DEPDIR)/socket.Po - -rm -f unit/ts/$(DEPDIR)/timer.Po - -rm -f unit/windows/$(DEPDIR)/basic_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_object_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_random_access_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_stream_handle.Po - -rm -f unit/windows/$(DEPDIR)/object_handle.Po - -rm -f unit/windows/$(DEPDIR)/object_handle_service.Po - -rm -f unit/windows/$(DEPDIR)/overlapped_handle.Po - -rm -f unit/windows/$(DEPDIR)/overlapped_ptr.Po - -rm -f unit/windows/$(DEPDIR)/random_access_handle.Po - -rm -f unit/windows/$(DEPDIR)/random_access_handle_service.Po - -rm -f unit/windows/$(DEPDIR)/stream_handle.Po - -rm -f unit/windows/$(DEPDIR)/stream_handle_service.Po - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -html-am: - -info: info-am - -info-am: - -install-data-am: - -install-dvi: install-dvi-am - -install-dvi-am: - -install-exec-am: - -install-html: install-html-am - -install-html-am: - -install-info: install-info-am - -install-info-am: - -install-man: - -install-pdf: install-pdf-am - -install-pdf-am: - -install-ps: install-ps-am - -install-ps-am: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f ../$(DEPDIR)/asio.Po - -rm -f ../$(DEPDIR)/asio_ssl.Po - -rm -f latency/$(DEPDIR)/tcp_client.Po - -rm -f latency/$(DEPDIR)/tcp_server.Po - -rm -f latency/$(DEPDIR)/udp_client.Po - -rm -f latency/$(DEPDIR)/udp_server.Po - -rm -f performance/$(DEPDIR)/client.Po - -rm -f performance/$(DEPDIR)/server.Po - -rm -f unit/$(DEPDIR)/associated_allocator.Po - -rm -f unit/$(DEPDIR)/associated_executor.Po - -rm -f unit/$(DEPDIR)/async_result.Po - -rm -f unit/$(DEPDIR)/basic_datagram_socket.Po - -rm -f unit/$(DEPDIR)/basic_deadline_timer.Po - -rm -f unit/$(DEPDIR)/basic_raw_socket.Po - -rm -f unit/$(DEPDIR)/basic_seq_packet_socket.Po - -rm -f unit/$(DEPDIR)/basic_serial_port.Po - -rm -f unit/$(DEPDIR)/basic_signal_set.Po - -rm -f unit/$(DEPDIR)/basic_socket_acceptor.Po - -rm -f unit/$(DEPDIR)/basic_stream_socket.Po - -rm -f unit/$(DEPDIR)/basic_streambuf.Po - -rm -f unit/$(DEPDIR)/basic_waitable_timer.Po - -rm -f unit/$(DEPDIR)/bind_executor.Po - -rm -f unit/$(DEPDIR)/buffer.Po - -rm -f unit/$(DEPDIR)/buffered_read_stream.Po - -rm -f unit/$(DEPDIR)/buffered_stream.Po - -rm -f unit/$(DEPDIR)/buffered_write_stream.Po - -rm -f unit/$(DEPDIR)/buffers_iterator.Po - -rm -f unit/$(DEPDIR)/completion_condition.Po - -rm -f unit/$(DEPDIR)/connect.Po - -rm -f unit/$(DEPDIR)/coroutine.Po - -rm -f unit/$(DEPDIR)/datagram_socket_service.Po - -rm -f unit/$(DEPDIR)/deadline_timer.Po - -rm -f unit/$(DEPDIR)/deadline_timer_service.Po - -rm -f unit/$(DEPDIR)/defer.Po - -rm -f unit/$(DEPDIR)/dispatch.Po - -rm -f unit/$(DEPDIR)/error.Po - -rm -f unit/$(DEPDIR)/execution_context.Po - -rm -f unit/$(DEPDIR)/executor.Po - -rm -f unit/$(DEPDIR)/executor_work_guard.Po - -rm -f unit/$(DEPDIR)/high_resolution_timer.Po - -rm -f unit/$(DEPDIR)/io_context.Po - -rm -f unit/$(DEPDIR)/is_read_buffered.Po - -rm -f unit/$(DEPDIR)/is_write_buffered.Po - -rm -f unit/$(DEPDIR)/packaged_task.Po - -rm -f unit/$(DEPDIR)/placeholders.Po - -rm -f unit/$(DEPDIR)/post.Po - -rm -f unit/$(DEPDIR)/raw_socket_service.Po - -rm -f unit/$(DEPDIR)/read.Po - -rm -f unit/$(DEPDIR)/read_at.Po - -rm -f unit/$(DEPDIR)/read_until.Po - -rm -f unit/$(DEPDIR)/seq_packet_socket_service.Po - -rm -f unit/$(DEPDIR)/serial_port.Po - -rm -f unit/$(DEPDIR)/serial_port_base.Po - -rm -f unit/$(DEPDIR)/serial_port_service.Po - -rm -f unit/$(DEPDIR)/signal_set.Po - -rm -f unit/$(DEPDIR)/signal_set_service.Po - -rm -f unit/$(DEPDIR)/socket_acceptor_service.Po - -rm -f unit/$(DEPDIR)/socket_base.Po - -rm -f unit/$(DEPDIR)/steady_timer.Po - -rm -f unit/$(DEPDIR)/strand.Po - -rm -f unit/$(DEPDIR)/stream_socket_service.Po - -rm -f unit/$(DEPDIR)/streambuf.Po - -rm -f unit/$(DEPDIR)/system_context.Po - -rm -f unit/$(DEPDIR)/system_executor.Po - -rm -f unit/$(DEPDIR)/system_timer.Po - -rm -f unit/$(DEPDIR)/thread.Po - -rm -f unit/$(DEPDIR)/time_traits.Po - -rm -f unit/$(DEPDIR)/use_future.Po - -rm -f unit/$(DEPDIR)/uses_executor.Po - -rm -f unit/$(DEPDIR)/wait_traits.Po - -rm -f unit/$(DEPDIR)/waitable_timer_service.Po - -rm -f unit/$(DEPDIR)/write.Po - -rm -f unit/$(DEPDIR)/write_at.Po - -rm -f unit/generic/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/generic/$(DEPDIR)/datagram_protocol.Po - -rm -f unit/generic/$(DEPDIR)/raw_protocol.Po - -rm -f unit/generic/$(DEPDIR)/seq_packet_protocol.Po - -rm -f unit/generic/$(DEPDIR)/stream_protocol.Po - -rm -f unit/ip/$(DEPDIR)/address.Po - -rm -f unit/ip/$(DEPDIR)/address_v4.Po - -rm -f unit/ip/$(DEPDIR)/address_v4_iterator.Po - -rm -f unit/ip/$(DEPDIR)/address_v4_range.Po - -rm -f unit/ip/$(DEPDIR)/address_v6.Po - -rm -f unit/ip/$(DEPDIR)/address_v6_iterator.Po - -rm -f unit/ip/$(DEPDIR)/address_v6_range.Po - -rm -f unit/ip/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_entry.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_iterator.Po - -rm -f unit/ip/$(DEPDIR)/basic_resolver_query.Po - -rm -f unit/ip/$(DEPDIR)/host_name.Po - -rm -f unit/ip/$(DEPDIR)/icmp.Po - -rm -f unit/ip/$(DEPDIR)/multicast.Po - -rm -f unit/ip/$(DEPDIR)/network_v4.Po - -rm -f unit/ip/$(DEPDIR)/network_v6.Po - -rm -f unit/ip/$(DEPDIR)/resolver_query_base.Po - -rm -f unit/ip/$(DEPDIR)/resolver_service.Po - -rm -f unit/ip/$(DEPDIR)/tcp.Po - -rm -f unit/ip/$(DEPDIR)/udp.Po - -rm -f unit/ip/$(DEPDIR)/unicast.Po - -rm -f unit/ip/$(DEPDIR)/v6_only.Po - -rm -f unit/local/$(DEPDIR)/basic_endpoint.Po - -rm -f unit/local/$(DEPDIR)/connect_pair.Po - -rm -f unit/local/$(DEPDIR)/datagram_protocol.Po - -rm -f unit/local/$(DEPDIR)/stream_protocol.Po - -rm -f unit/posix/$(DEPDIR)/basic_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/basic_stream_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/descriptor.Po - -rm -f unit/posix/$(DEPDIR)/descriptor_base.Po - -rm -f unit/posix/$(DEPDIR)/stream_descriptor.Po - -rm -f unit/posix/$(DEPDIR)/stream_descriptor_service.Po - -rm -f unit/ssl/$(DEPDIR)/context.Po - -rm -f unit/ssl/$(DEPDIR)/context_base.Po - -rm -f unit/ssl/$(DEPDIR)/error.Po - -rm -f unit/ssl/$(DEPDIR)/rfc2818_verification.Po - -rm -f unit/ssl/$(DEPDIR)/stream.Po - -rm -f unit/ssl/$(DEPDIR)/stream_base.Po - -rm -f unit/ts/$(DEPDIR)/buffer.Po - -rm -f unit/ts/$(DEPDIR)/executor.Po - -rm -f unit/ts/$(DEPDIR)/internet.Po - -rm -f unit/ts/$(DEPDIR)/io_context.Po - -rm -f unit/ts/$(DEPDIR)/net.Po - -rm -f unit/ts/$(DEPDIR)/netfwd.Po - -rm -f unit/ts/$(DEPDIR)/socket.Po - -rm -f unit/ts/$(DEPDIR)/timer.Po - -rm -f unit/windows/$(DEPDIR)/basic_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_object_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_random_access_handle.Po - -rm -f unit/windows/$(DEPDIR)/basic_stream_handle.Po - -rm -f unit/windows/$(DEPDIR)/object_handle.Po - -rm -f unit/windows/$(DEPDIR)/object_handle_service.Po - -rm -f unit/windows/$(DEPDIR)/overlapped_handle.Po - -rm -f unit/windows/$(DEPDIR)/overlapped_ptr.Po - -rm -f unit/windows/$(DEPDIR)/random_access_handle.Po - -rm -f unit/windows/$(DEPDIR)/random_access_handle_service.Po - -rm -f unit/windows/$(DEPDIR)/stream_handle.Po - -rm -f unit/windows/$(DEPDIR)/stream_handle_service.Po - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: - -.MAKE: check-am install-am install-strip - -.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \ - check-am clean clean-checkPROGRAMS clean-generic \ - clean-noinstLIBRARIES clean-noinstPROGRAMS cscopelist-am ctags \ - ctags-am distclean distclean-compile distclean-generic \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ - recheck tags tags-am uninstall uninstall-am - -.PRECIOUS: Makefile - - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/Sources/Vendor/asio/src/tests/latency/allocator.hpp b/Sources/Vendor/asio/src/tests/latency/allocator.hpp deleted file mode 100644 index c79af45..0000000 --- a/Sources/Vendor/asio/src/tests/latency/allocator.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// allocator.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 ALLOCATOR_HPP -#define ALLOCATOR_HPP - -#include - -// Represents a single connection from a client. -class allocator -{ -public: - allocator() - : in_use_(false) - { - } - - void* allocate(std::size_t n) - { - if (in_use_ || n >= 1024) - return ::operator new(n); - in_use_ = true; - return static_cast(&space_); - } - - void deallocate(void* p) - { - if (p != static_cast(&space_)) - ::operator delete(p); - else - in_use_ = false; - } - -private: - allocator(const allocator&); - allocator& operator=(const allocator&); - - // Whether the reusable memory space is currently in use. - bool in_use_; - - // The reusable memory space made available by the allocator. - boost::aligned_storage<1024>::type space_; -}; - -#endif // ALLOCATOR_HPP diff --git a/Sources/Vendor/asio/src/tests/latency/high_res_clock.hpp b/Sources/Vendor/asio/src/tests/latency/high_res_clock.hpp deleted file mode 100644 index 642d52b..0000000 --- a/Sources/Vendor/asio/src/tests/latency/high_res_clock.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// high_res_clock.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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 HIGH_RES_CLOCK_HPP -#define HIGH_RES_CLOCK_HPP - -#include -#include - -#if defined(ASIO_WINDOWS) - -inline boost::uint64_t high_res_clock() -{ - LARGE_INTEGER i; - QueryPerformanceCounter(&i); - return i.QuadPart; -} - -#elif defined(__GNUC__) && defined(__x86_64__) - -inline boost::uint64_t high_res_clock() -{ - unsigned long low, high; - __asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high)); - return (((boost::uint64_t)high) << 32) | low; -} - -#else - -#include - -inline boost::uint64_t high_res_clock() -{ - boost::posix_time::ptime now = - boost::posix_time::microsec_clock::universal_time(); - - boost::posix_time::ptime epoch( - boost::gregorian::date(1970, 1, 1), - boost::posix_time::seconds(0)); - - return (now - epoch).total_microseconds(); -} - -#endif - -#endif // HIGH_RES_CLOCK_HPP diff --git a/Sources/Vendor/asio/src/tests/latency/tcp_client.cpp b/Sources/Vendor/asio/src/tests/latency/tcp_client.cpp deleted file mode 100644 index 38ac423..0000000 --- a/Sources/Vendor/asio/src/tests/latency/tcp_client.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// -// tcp_client.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "high_res_clock.hpp" - -using asio::ip::tcp; -using boost::posix_time::ptime; -using boost::posix_time::microsec_clock; - -const int num_samples = 100000; - -struct transfer_all -{ - typedef std::size_t result_type; - std::size_t operator()(const asio::error_code& ec, std::size_t) - { - return (ec && ec != asio::error::would_block) ? 0 : ~0; - } -}; - -int main(int argc, char* argv[]) -{ - if (argc != 6) - { - std::fprintf(stderr, - "Usage: tcp_client " - " {spin|block}\n"); - return 1; - } - - const char* ip = argv[1]; - unsigned short port = static_cast(std::atoi(argv[2])); - int num_connections = std::atoi(argv[3]); - std::size_t buf_size = static_cast(std::atoi(argv[4])); - bool spin = (std::strcmp(argv[5], "spin") == 0); - - asio::io_context io_context; - std::vector > sockets; - - for (int i = 0; i < num_connections; ++i) - { - boost::shared_ptr s(new tcp::socket(io_context)); - - tcp::endpoint target(asio::ip::make_address(ip), port); - s->connect(target); - - s->set_option(tcp::no_delay(true)); - - if (spin) - { - s->non_blocking(true); - } - - sockets.push_back(s); - } - - std::vector write_buf(buf_size); - std::vector read_buf(buf_size); - - ptime start = microsec_clock::universal_time(); - boost::uint64_t start_hr = high_res_clock(); - - boost::uint64_t samples[num_samples]; - for (int i = 0; i < num_samples; ++i) - { - tcp::socket& socket = *sockets[i % num_connections]; - - boost::uint64_t t = high_res_clock(); - - asio::error_code ec; - asio::write(socket, - asio::buffer(write_buf), - transfer_all(), ec); - - asio::read(socket, - asio::buffer(read_buf), - transfer_all(), ec); - - samples[i] = high_res_clock() - t; - } - - ptime stop = microsec_clock::universal_time(); - boost::uint64_t stop_hr = high_res_clock(); - boost::uint64_t elapsed_usec = (stop - start).total_microseconds(); - boost::uint64_t elapsed_hr = stop_hr - start_hr; - double scale = 1.0 * elapsed_usec / elapsed_hr; - - std::sort(samples, samples + num_samples); - std::printf(" 0.0%%\t%f\n", samples[0] * scale); - std::printf(" 0.1%%\t%f\n", samples[num_samples / 1000 - 1] * scale); - std::printf(" 1.0%%\t%f\n", samples[num_samples / 100 - 1] * scale); - std::printf(" 10.0%%\t%f\n", samples[num_samples / 10 - 1] * scale); - std::printf(" 20.0%%\t%f\n", samples[num_samples * 2 / 10 - 1] * scale); - std::printf(" 30.0%%\t%f\n", samples[num_samples * 3 / 10 - 1] * scale); - std::printf(" 40.0%%\t%f\n", samples[num_samples * 4 / 10 - 1] * scale); - std::printf(" 50.0%%\t%f\n", samples[num_samples * 5 / 10 - 1] * scale); - std::printf(" 60.0%%\t%f\n", samples[num_samples * 6 / 10 - 1] * scale); - std::printf(" 70.0%%\t%f\n", samples[num_samples * 7 / 10 - 1] * scale); - std::printf(" 80.0%%\t%f\n", samples[num_samples * 8 / 10 - 1] * scale); - std::printf(" 90.0%%\t%f\n", samples[num_samples * 9 / 10 - 1] * scale); - std::printf(" 99.0%%\t%f\n", samples[num_samples * 99 / 100 - 1] * scale); - std::printf(" 99.9%%\t%f\n", samples[num_samples * 999 / 1000 - 1] * scale); - std::printf("100.0%%\t%f\n", samples[num_samples - 1] * scale); - - double total = 0.0; - for (int i = 0; i < num_samples; ++i) total += samples[i] * scale; - std::printf(" mean\t%f\n", total / num_samples); -} diff --git a/Sources/Vendor/asio/src/tests/latency/tcp_server.cpp b/Sources/Vendor/asio/src/tests/latency/tcp_server.cpp deleted file mode 100644 index b981ce8..0000000 --- a/Sources/Vendor/asio/src/tests/latency/tcp_server.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// -// tcp_server.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -using asio::ip::tcp; - -#include - -class tcp_server : asio::coroutine -{ -public: - tcp_server(tcp::acceptor& acceptor, std::size_t buf_size) : - acceptor_(acceptor), - socket_(acceptor_.get_executor().context()), - buffer_(buf_size) - { - } - - void operator()(asio::error_code ec, std::size_t n = 0) - { - reenter (this) for (;;) - { - yield acceptor_.async_accept(socket_, ref(this)); - - while (!ec) - { - yield asio::async_read(socket_, - asio::buffer(buffer_), ref(this)); - - if (!ec) - { - for (std::size_t i = 0; i < n; ++i) buffer_[i] = ~buffer_[i]; - - yield asio::async_write(socket_, - asio::buffer(buffer_), ref(this)); - } - } - - socket_.close(); - } - } - - struct ref - { - explicit ref(tcp_server* p) - : p_(p) - { - } - - void operator()(asio::error_code ec, std::size_t n = 0) - { - (*p_)(ec, n); - } - - private: - tcp_server* p_; - }; - -private: - tcp::acceptor& acceptor_; - tcp::socket socket_; - std::vector buffer_; - tcp::endpoint sender_; -}; - -#include - -int main(int argc, char* argv[]) -{ - if (argc != 5) - { - std::fprintf(stderr, - "Usage: tcp_server " - " {spin|block}\n"); - return 1; - } - - unsigned short port = static_cast(std::atoi(argv[1])); - int max_connections = std::atoi(argv[2]); - std::size_t buf_size = std::atoi(argv[3]); - bool spin = (std::strcmp(argv[4], "spin") == 0); - - asio::io_context io_context(1); - tcp::acceptor acceptor(io_context, tcp::endpoint(tcp::v4(), port)); - std::vector > servers; - - for (int i = 0; i < max_connections; ++i) - { - boost::shared_ptr s(new tcp_server(acceptor, buf_size)); - servers.push_back(s); - (*s)(asio::error_code()); - } - - if (spin) - for (;;) io_context.poll(); - else - io_context.run(); -} diff --git a/Sources/Vendor/asio/src/tests/latency/udp_client.cpp b/Sources/Vendor/asio/src/tests/latency/udp_client.cpp deleted file mode 100644 index dc0e492..0000000 --- a/Sources/Vendor/asio/src/tests/latency/udp_client.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// -// udp_client.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include "high_res_clock.hpp" - -using asio::ip::udp; -using boost::posix_time::ptime; -using boost::posix_time::microsec_clock; - -const int num_samples = 100000; - -int main(int argc, char* argv[]) -{ - if (argc != 6) - { - std::fprintf(stderr, - "Usage: udp_client " - " {spin|block}\n"); - return 1; - } - - const char* ip = argv[1]; - unsigned short first_port = static_cast(std::atoi(argv[2])); - unsigned short num_ports = static_cast(std::atoi(argv[3])); - std::size_t buf_size = static_cast(std::atoi(argv[4])); - bool spin = (std::strcmp(argv[5], "spin") == 0); - - asio::io_context io_context; - - udp::socket socket(io_context, udp::endpoint(udp::v4(), 0)); - - if (spin) - { - socket.non_blocking(true); - } - - udp::endpoint target(asio::ip::make_address(ip), first_port); - unsigned short last_port = first_port + num_ports - 1; - std::vector write_buf(buf_size); - std::vector read_buf(buf_size); - - ptime start = microsec_clock::universal_time(); - boost::uint64_t start_hr = high_res_clock(); - - boost::uint64_t samples[num_samples]; - for (int i = 0; i < num_samples; ++i) - { - boost::uint64_t t = high_res_clock(); - - asio::error_code ec; - socket.send_to(asio::buffer(write_buf), target, 0, ec); - - do socket.receive(asio::buffer(read_buf), 0, ec); - while (ec == asio::error::would_block); - - samples[i] = high_res_clock() - t; - - if (target.port() == last_port) - target.port(first_port); - else - target.port(target.port() + 1); - } - - ptime stop = microsec_clock::universal_time(); - boost::uint64_t stop_hr = high_res_clock(); - boost::uint64_t elapsed_usec = (stop - start).total_microseconds(); - boost::uint64_t elapsed_hr = stop_hr - start_hr; - double scale = 1.0 * elapsed_usec / elapsed_hr; - - std::sort(samples, samples + num_samples); - std::printf(" 0.0%%\t%f\n", samples[0] * scale); - std::printf(" 0.1%%\t%f\n", samples[num_samples / 1000 - 1] * scale); - std::printf(" 1.0%%\t%f\n", samples[num_samples / 100 - 1] * scale); - std::printf(" 10.0%%\t%f\n", samples[num_samples / 10 - 1] * scale); - std::printf(" 20.0%%\t%f\n", samples[num_samples * 2 / 10 - 1] * scale); - std::printf(" 30.0%%\t%f\n", samples[num_samples * 3 / 10 - 1] * scale); - std::printf(" 40.0%%\t%f\n", samples[num_samples * 4 / 10 - 1] * scale); - std::printf(" 50.0%%\t%f\n", samples[num_samples * 5 / 10 - 1] * scale); - std::printf(" 60.0%%\t%f\n", samples[num_samples * 6 / 10 - 1] * scale); - std::printf(" 70.0%%\t%f\n", samples[num_samples * 7 / 10 - 1] * scale); - std::printf(" 80.0%%\t%f\n", samples[num_samples * 8 / 10 - 1] * scale); - std::printf(" 90.0%%\t%f\n", samples[num_samples * 9 / 10 - 1] * scale); - std::printf(" 99.0%%\t%f\n", samples[num_samples * 99 / 100 - 1] * scale); - std::printf(" 99.9%%\t%f\n", samples[num_samples * 999 / 1000 - 1] * scale); - std::printf("100.0%%\t%f\n", samples[num_samples - 1] * scale); - - double total = 0.0; - for (int i = 0; i < num_samples; ++i) total += samples[i] * scale; - std::printf(" mean\t%f\n", total / num_samples); -} diff --git a/Sources/Vendor/asio/src/tests/latency/udp_server.cpp b/Sources/Vendor/asio/src/tests/latency/udp_server.cpp deleted file mode 100644 index b4c7e1b..0000000 --- a/Sources/Vendor/asio/src/tests/latency/udp_server.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// -// udp_server.cpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include -#include -#include -#include -#include -#include -#include -#include "allocator.hpp" - -using asio::ip::udp; - -#include - -class udp_server : asio::coroutine -{ -public: - udp_server(asio::io_context& io_context, - unsigned short port, std::size_t buf_size) : - socket_(io_context, udp::endpoint(udp::v4(), port)), - buffer_(buf_size) - { - } - - void operator()(asio::error_code ec, std::size_t n = 0) - { - reenter (this) for (;;) - { - yield socket_.async_receive_from( - asio::buffer(buffer_), - sender_, ref(this)); - - if (!ec) - { - for (std::size_t i = 0; i < n; ++i) buffer_[i] = ~buffer_[i]; - socket_.send_to(asio::buffer(buffer_, n), sender_, 0, ec); - } - } - } - - friend void* asio_handler_allocate(std::size_t n, udp_server* s) - { - return s->allocator_.allocate(n); - } - - friend void asio_handler_deallocate(void* p, std::size_t, udp_server* s) - { - s->allocator_.deallocate(p); - } - - struct ref - { - explicit ref(udp_server* p) - : p_(p) - { - } - - void operator()(asio::error_code ec, std::size_t n = 0) - { - (*p_)(ec, n); - } - - private: - udp_server* p_; - - friend void* asio_handler_allocate(std::size_t n, ref* r) - { - return asio_handler_allocate(n, r->p_); - } - - friend void asio_handler_deallocate(void* p, std::size_t n, ref* r) - { - asio_handler_deallocate(p, n, r->p_); - } - }; - -private: - udp::socket socket_; - std::vector buffer_; - udp::endpoint sender_; - allocator allocator_; -}; - -#include - -int main(int argc, char* argv[]) -{ - if (argc != 5) - { - std::fprintf(stderr, - "Usage: udp_server " - " {spin|block}\n"); - return 1; - } - - unsigned short first_port = static_cast(std::atoi(argv[1])); - unsigned short num_ports = static_cast(std::atoi(argv[2])); - std::size_t buf_size = std::atoi(argv[3]); - bool spin = (std::strcmp(argv[4], "spin") == 0); - - asio::io_context io_context(1); - std::vector > servers; - - for (unsigned short i = 0; i < num_ports; ++i) - { - unsigned short port = first_port + i; - boost::shared_ptr s(new udp_server(io_context, port, buf_size)); - servers.push_back(s); - (*s)(asio::error_code()); - } - - if (spin) - for (;;) io_context.poll(); - else - io_context.run(); -} diff --git a/Sources/Vendor/asio/src/tests/performance/client.cpp b/Sources/Vendor/asio/src/tests/performance/client.cpp deleted file mode 100644 index dd35c52..0000000 --- a/Sources/Vendor/asio/src/tests/performance/client.cpp +++ /dev/null @@ -1,286 +0,0 @@ -// -// client.cpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2018 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) -// - -#include "asio.hpp" -#include -#include -#include -#include -#include -#include -#include "handler_allocator.hpp" - -class stats -{ -public: - stats() - : mutex_(), - total_bytes_written_(0), - total_bytes_read_(0) - { - } - - void add(size_t bytes_written, size_t bytes_read) - { - asio::detail::mutex::scoped_lock lock(mutex_); - total_bytes_written_ += bytes_written; - total_bytes_read_ += bytes_read; - } - - void print() - { - asio::detail::mutex::scoped_lock lock(mutex_); - std::cout << total_bytes_written_ << " total bytes written\n"; - std::cout << total_bytes_read_ << " total bytes read\n"; - } - -private: - asio::detail::mutex mutex_; - size_t total_bytes_written_; - size_t total_bytes_read_; -}; - -class session -{ -public: - session(asio::io_context& ioc, size_t block_size, stats& s) - : strand_(ioc), - socket_(ioc), - block_size_(block_size), - read_data_(new char[block_size]), - read_data_length_(0), - write_data_(new char[block_size]), - unwritten_count_(0), - bytes_written_(0), - bytes_read_(0), - stats_(s) - { - for (size_t i = 0; i < block_size_; ++i) - write_data_[i] = static_cast(i % 128); - } - - ~session() - { - stats_.add(bytes_written_, bytes_read_); - - delete[] read_data_; - delete[] write_data_; - } - - void start(asio::ip::tcp::resolver::results_type endpoints) - { - asio::async_connect(socket_, endpoints, - asio::bind_executor(strand_, - boost::bind(&session::handle_connect, this, - asio::placeholders::error))); - } - - void stop() - { - asio::post(strand_, boost::bind(&session::close_socket, this)); - } - -private: - void handle_connect(const asio::error_code& err) - { - if (!err) - { - asio::error_code set_option_err; - asio::ip::tcp::no_delay no_delay(true); - socket_.set_option(no_delay, set_option_err); - if (!set_option_err) - { - ++unwritten_count_; - async_write(socket_, asio::buffer(write_data_, block_size_), - asio::bind_executor(strand_, - make_custom_alloc_handler(write_allocator_, - boost::bind(&session::handle_write, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - socket_.async_read_some(asio::buffer(read_data_, block_size_), - asio::bind_executor(strand_, - make_custom_alloc_handler(read_allocator_, - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - } - } - } - - void handle_read(const asio::error_code& err, size_t length) - { - if (!err) - { - bytes_read_ += length; - - read_data_length_ = length; - ++unwritten_count_; - if (unwritten_count_ == 1) - { - std::swap(read_data_, write_data_); - async_write(socket_, asio::buffer(write_data_, read_data_length_), - asio::bind_executor(strand_, - make_custom_alloc_handler(write_allocator_, - boost::bind(&session::handle_write, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - socket_.async_read_some(asio::buffer(read_data_, block_size_), - asio::bind_executor(strand_, - make_custom_alloc_handler(read_allocator_, - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - } - } - } - - void handle_write(const asio::error_code& err, size_t length) - { - if (!err && length > 0) - { - bytes_written_ += length; - - --unwritten_count_; - if (unwritten_count_ == 1) - { - std::swap(read_data_, write_data_); - async_write(socket_, asio::buffer(write_data_, read_data_length_), - asio::bind_executor(strand_, - make_custom_alloc_handler(write_allocator_, - boost::bind(&session::handle_write, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - socket_.async_read_some(asio::buffer(read_data_, block_size_), - asio::bind_executor(strand_, - make_custom_alloc_handler(read_allocator_, - boost::bind(&session::handle_read, this, - asio::placeholders::error, - asio::placeholders::bytes_transferred)))); - } - } - } - - void close_socket() - { - socket_.close(); - } - -private: - asio::io_context::strand strand_; - asio::ip::tcp::socket socket_; - size_t block_size_; - char* read_data_; - size_t read_data_length_; - char* write_data_; - int unwritten_count_; - size_t bytes_written_; - size_t bytes_read_; - stats& stats_; - handler_allocator read_allocator_; - handler_allocator write_allocator_; -}; - -class client -{ -public: - client(asio::io_context& ioc, - const asio::ip::tcp::resolver::results_type endpoints, - size_t block_size, size_t session_count, int timeout) - : io_context_(ioc), - stop_timer_(ioc), - sessions_(), - stats_() - { - stop_timer_.expires_after(asio::chrono::seconds(timeout)); - stop_timer_.async_wait(boost::bind(&client::handle_timeout, this)); - - for (size_t i = 0; i < session_count; ++i) - { - session* new_session = new session(io_context_, block_size, stats_); - new_session->start(endpoints); - sessions_.push_back(new_session); - } - } - - ~client() - { - while (!sessions_.empty()) - { - delete sessions_.front(); - sessions_.pop_front(); - } - - stats_.print(); - } - - void handle_timeout() - { - std::for_each(sessions_.begin(), sessions_.end(), - boost::mem_fn(&session::stop)); - } - -private: - asio::io_context& io_context_; - asio::steady_timer stop_timer_; - std::list sessions_; - stats stats_; -}; - -int main(int argc, char* argv[]) -{ - try - { - if (argc != 7) - { - std::cerr << "Usage: client "; - std::cerr << "